[Home] [Help]
PACKAGE BODY: APPS.XLA_00222_AAD_S_000017_PKG
Source
4 | Copyright (c) 1997 Oracle Corporation |
1 PACKAGE BODY XLA_00222_AAD_S_000017_PKG AS
2 --
3 /*======================================================================+
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | Package Name |
9 | XLA_00222_AAD_S_000017_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : China Receivables Default Accrual |
14 | Code : JA_CN_AR_DEFAULT_ACCRUAL |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 05:03:44 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);
52 type t_rec_value is record
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
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_000017_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_000017_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 )
175 ,p_value_3 => p_lookup_type
172 ,p_token_2 => 'LOOKUP_CODE'
173 ,p_value_2 => p_lookup_code
174 ,p_token_3 => '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_000017_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_000017_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 --Transaction Type Name
241 , p_source_1 IN VARCHAR2
242 --Transaction Number
243 , p_source_2 IN VARCHAR2
244 --Transaction Document Sequence Number
245 , p_source_3 IN NUMBER
246 )
247 RETURN VARCHAR2
248 IS
249 l_component_type VARCHAR2(80) ;
250 l_component_code VARCHAR2(30) ;
251 l_component_type_code VARCHAR2(1) ;
252 l_component_appl_id INTEGER ;
253 l_amb_context_code VARCHAR2(30) ;
254 l_ledger_language VARCHAR2(30) ;
255 l_source VARCHAR2(1996) ;
256 l_description VARCHAR2(2000) ;
257 l_log_module VARCHAR2(240) ;
258 BEGIN
259 IF g_log_enabled THEN
260 l_log_module := C_DEFAULT_MODULE||'.Description_1';
261 END IF;
262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
263 trace
264 (p_msg => 'BEGIN of Description_1'
265 ,p_level => C_LEVEL_PROCEDURE
266 ,p_module => l_log_module);
267 END IF;
268
269 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
270 l_component_type := 'AMB_DESCRIPTION';
271 l_component_code := 'CM_L';
272 l_component_type_code := 'S';
273 l_component_appl_id := 222;
274 l_amb_context_code := 'DEFAULT';
275 l_source := NULL;
276 l_description := NULL;
277
278
279 IF p_source_2 IS NOT NULL
280 THEN
281
282 IF
283 l_ledger_language = 'US' THEN
284 l_description := SUBSTR(CONCAT(l_description,'Credit Memo Application to Transaction Type -'),1,2000);
285 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
286 END IF;
287 l_source := SUBSTR(p_source_1,1,1996);
288 IF l_source IS NOT NULL THEN
289 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
290 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
291 END IF;
292 IF
293 l_ledger_language = 'US' THEN
294 l_description := SUBSTR(CONCAT(l_description,' Transaction Number'),1,2000);
295 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
296 END IF;
297 l_source := SUBSTR(p_source_2,1,1996);
298 IF l_source IS NOT NULL THEN
299 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
300 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
301 END IF;
302 IF
303 l_ledger_language = 'US' THEN
304 l_description := SUBSTR(CONCAT(l_description,' Transaction Document Number'),1,2000);
305 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
306 END IF;
307 l_source := SUBSTR(TO_CHAR(p_source_3),1,1996);
308 IF l_source IS NOT NULL THEN
309 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
310 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
311 END IF;
312 l_description := SUBSTR(l_description,1,1996);
316 ,p_level => C_LEVEL_PROCEDURE
313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
314 trace
315 (p_msg => 'END of Description_1'
317 ,p_module => l_log_module);
318
319 END IF;
320 RETURN l_description;
321
322 END IF;
323 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
324 trace
325 (p_msg => 'END of Description_1'
326 ,p_level => C_LEVEL_PROCEDURE
327 ,p_module => l_log_module);
328 END IF;
329 RETURN NULL;
330 EXCEPTION
331 WHEN VALUE_ERROR THEN
332 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
333 trace
334 (p_msg => 'ERROR: '||sqlerrm
335 ,p_level => C_LEVEL_EXCEPTION
336 ,p_module => l_log_module);
337 END IF;
338 RAISE;
339 WHEN xla_exceptions_pkg.application_exception THEN
340 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
341 trace
342 (p_msg => 'ERROR: '||sqlerrm
343 ,p_level => C_LEVEL_EXCEPTION
344 ,p_module => l_log_module);
345 END IF;
346 RAISE;
347 WHEN OTHERS THEN
348 xla_exceptions_pkg.raise_message
349 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_1');
350 END Description_1;
351
352 ---------------------------------------
353 --
354 -- PRIVATE FUNCTION
355 -- Description_2
356 --
357 ---------------------------------------
358 FUNCTION Description_2 (
359 p_application_id IN NUMBER
360 , p_ae_header_id IN NUMBER DEFAULT NULL
361 --Collection Document Bank Occurrence
362 , p_source_4 IN VARCHAR2
363 --Collection Document Number
364 , p_source_5 IN NUMBER
365 --Collection Document Trade Note Number
366 , p_source_6 IN VARCHAR2
367 --Bordero Type
368 , p_source_7 IN VARCHAR2
369 , p_source_7_meaning IN VARCHAR2
370 )
371 RETURN VARCHAR2
372 IS
373 l_component_type VARCHAR2(80) ;
374 l_component_code VARCHAR2(30) ;
375 l_component_type_code VARCHAR2(1) ;
376 l_component_appl_id INTEGER ;
377 l_amb_context_code VARCHAR2(30) ;
378 l_ledger_language VARCHAR2(30) ;
379 l_source VARCHAR2(1996) ;
380 l_description VARCHAR2(2000) ;
381 l_log_module VARCHAR2(240) ;
382 BEGIN
383 IF g_log_enabled THEN
384 l_log_module := C_DEFAULT_MODULE||'.Description_2';
385 END IF;
386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
387 trace
388 (p_msg => 'BEGIN of Description_2'
389 ,p_level => C_LEVEL_PROCEDURE
390 ,p_module => l_log_module);
391 END IF;
392
393 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
394 l_component_type := 'AMB_DESCRIPTION';
395 l_component_code := 'JLBR_AR_BANK_CHARGES_JED';
396 l_component_type_code := 'S';
397 l_component_appl_id := 222;
398 l_amb_context_code := 'DEFAULT';
399 l_source := NULL;
400 l_description := NULL;
401
402
403 IF NVL(p_source_7,'
404 ') = 'COLLECTION'
405 THEN
406
407 IF
408 l_ledger_language = 'US' THEN
409 l_description := SUBSTR(CONCAT(l_description,'Bank Charges for occurrence :'),1,2000);
410 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
411 END IF;
412 l_source := SUBSTR(p_source_4,1,1996);
413 IF l_source IS NOT NULL THEN
414 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
415 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
416 END IF;
417 IF
418 l_ledger_language = 'US' THEN
419 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
420 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
421 END IF;
422 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
423 IF l_source IS NOT NULL THEN
424 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
425 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
426 END IF;
427 IF
428 l_ledger_language = 'US' THEN
429 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
430 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
431 END IF;
432 l_source := SUBSTR(p_source_6,1,1996);
433 IF l_source IS NOT NULL THEN
434 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
435 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
436 END IF;
437 l_description := SUBSTR(l_description,1,1996);
438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
439 trace
440 (p_msg => 'END of Description_2'
441 ,p_level => C_LEVEL_PROCEDURE
442 ,p_module => l_log_module);
443
444 END IF;
445 RETURN l_description;
446
447 ELSIF NVL(p_source_7,'
448 ') = 'FACTORING'
449 THEN
450
451 IF
452 l_ledger_language = 'US' THEN
453 l_description := SUBSTR(CONCAT(l_description,'Bank Charges for occurrence :'),1,2000);
454 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
455 END IF;
456 l_source := SUBSTR(p_source_4,1,1996);
457 IF l_source IS NOT NULL THEN
458 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
462 l_ledger_language = 'US' THEN
459 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
460 END IF;
461 IF
463 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
464 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
465 END IF;
466 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
467 IF l_source IS NOT NULL THEN
468 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
469 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
470 END IF;
471 IF
472 l_ledger_language = 'US' THEN
473 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
474 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
475 END IF;
476 l_source := SUBSTR(p_source_6,1,1996);
477 IF l_source IS NOT NULL THEN
478 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
479 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
480 END IF;
481 l_description := SUBSTR(l_description,1,1996);
482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
483 trace
484 (p_msg => 'END of Description_2'
485 ,p_level => C_LEVEL_PROCEDURE
486 ,p_module => l_log_module);
487
488 END IF;
489 RETURN l_description;
490
491 END IF;
492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
493 trace
494 (p_msg => 'END of Description_2'
495 ,p_level => C_LEVEL_PROCEDURE
496 ,p_module => l_log_module);
497 END IF;
498 RETURN NULL;
499 EXCEPTION
500 WHEN VALUE_ERROR THEN
501 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
502 trace
503 (p_msg => 'ERROR: '||sqlerrm
504 ,p_level => C_LEVEL_EXCEPTION
505 ,p_module => l_log_module);
506 END IF;
507 RAISE;
508 WHEN xla_exceptions_pkg.application_exception THEN
509 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
510 trace
511 (p_msg => 'ERROR: '||sqlerrm
512 ,p_level => C_LEVEL_EXCEPTION
513 ,p_module => l_log_module);
514 END IF;
515 RAISE;
516 WHEN OTHERS THEN
517 xla_exceptions_pkg.raise_message
518 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_2');
519 END Description_2;
520
521 ---------------------------------------
522 --
523 -- PRIVATE FUNCTION
524 -- Description_3
525 --
526 ---------------------------------------
527 FUNCTION Description_3 (
528 p_application_id IN NUMBER
529 , p_ae_header_id IN NUMBER DEFAULT NULL
530 --Collection Document Bank Occurrence
531 , p_source_4 IN VARCHAR2
532 --Collection Document Number
533 , p_source_5 IN NUMBER
534 --Collection Document Trade Note Number
535 , p_source_6 IN VARCHAR2
536 )
537 RETURN VARCHAR2
538 IS
539 l_component_type VARCHAR2(80) ;
540 l_component_code VARCHAR2(30) ;
541 l_component_type_code VARCHAR2(1) ;
542 l_component_appl_id INTEGER ;
543 l_amb_context_code VARCHAR2(30) ;
544 l_ledger_language VARCHAR2(30) ;
545 l_source VARCHAR2(1996) ;
546 l_description VARCHAR2(2000) ;
547 l_log_module VARCHAR2(240) ;
548 BEGIN
549 IF g_log_enabled THEN
550 l_log_module := C_DEFAULT_MODULE||'.Description_3';
551 END IF;
552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
553 trace
554 (p_msg => 'BEGIN of Description_3'
555 ,p_level => C_LEVEL_PROCEDURE
556 ,p_module => l_log_module);
557 END IF;
558
559 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
560 l_component_type := 'AMB_DESCRIPTION';
561 l_component_code := 'JLBR_AR_BILLS_UND_COLL_JED';
562 l_component_type_code := 'S';
563 l_component_appl_id := 222;
564 l_amb_context_code := 'DEFAULT';
565 l_source := NULL;
566 l_description := NULL;
567
568
569
570 IF
571 l_ledger_language = 'US' THEN
572 l_description := SUBSTR(CONCAT(l_description,'Bills Under Collection for occurrence :'),1,2000);
573 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
574 END IF;
575 l_source := SUBSTR(p_source_4,1,1996);
576 IF l_source IS NOT NULL THEN
577 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
578 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
579 END IF;
580 IF
581 l_ledger_language = 'US' THEN
582 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
583 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
584 END IF;
585 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
586 IF l_source IS NOT NULL THEN
587 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
588 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
589 END IF;
590 IF
591 l_ledger_language = 'US' THEN
592 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
593 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
594 END IF;
595 l_source := SUBSTR(p_source_6,1,1996);
596 IF l_source IS NOT NULL THEN
597 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
598 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
599 END IF;
600 l_description := SUBSTR(l_description,1,1996);
601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
602 trace
606
603 (p_msg => 'END of Description_3'
604 ,p_level => C_LEVEL_PROCEDURE
605 ,p_module => l_log_module);
607 END IF;
608 RETURN l_description;
609
610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
611 trace
612 (p_msg => 'END of Description_3'
613 ,p_level => C_LEVEL_PROCEDURE
614 ,p_module => l_log_module);
615 END IF;
616 RETURN NULL;
617 EXCEPTION
618 WHEN VALUE_ERROR THEN
619 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
620 trace
621 (p_msg => 'ERROR: '||sqlerrm
622 ,p_level => C_LEVEL_EXCEPTION
623 ,p_module => l_log_module);
624 END IF;
625 RAISE;
626 WHEN xla_exceptions_pkg.application_exception THEN
627 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
628 trace
629 (p_msg => 'ERROR: '||sqlerrm
630 ,p_level => C_LEVEL_EXCEPTION
631 ,p_module => l_log_module);
632 END IF;
633 RAISE;
634 WHEN OTHERS THEN
635 xla_exceptions_pkg.raise_message
636 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_3');
637 END Description_3;
638
639 ---------------------------------------
640 --
641 -- PRIVATE FUNCTION
642 -- Description_4
643 --
644 ---------------------------------------
645 FUNCTION Description_4 (
646 p_application_id IN NUMBER
647 , p_ae_header_id IN NUMBER DEFAULT NULL
648 --Collection Document Bank Occurrence
649 , p_source_4 IN VARCHAR2
650 --Collection Document Number
651 , p_source_5 IN NUMBER
652 --Collection Document Trade Note Number
653 , p_source_6 IN VARCHAR2
654 )
655 RETURN VARCHAR2
656 IS
657 l_component_type VARCHAR2(80) ;
658 l_component_code VARCHAR2(30) ;
659 l_component_type_code VARCHAR2(1) ;
660 l_component_appl_id INTEGER ;
661 l_amb_context_code VARCHAR2(30) ;
662 l_ledger_language VARCHAR2(30) ;
663 l_source VARCHAR2(1996) ;
664 l_description VARCHAR2(2000) ;
665 l_log_module VARCHAR2(240) ;
666 BEGIN
667 IF g_log_enabled THEN
668 l_log_module := C_DEFAULT_MODULE||'.Description_4';
669 END IF;
670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
671 trace
672 (p_msg => 'BEGIN of Description_4'
673 ,p_level => C_LEVEL_PROCEDURE
674 ,p_module => l_log_module);
675 END IF;
676
677 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
678 l_component_type := 'AMB_DESCRIPTION';
679 l_component_code := 'JLBR_AR_BILLS_UND_DISC_JED';
680 l_component_type_code := 'S';
681 l_component_appl_id := 222;
682 l_amb_context_code := 'DEFAULT';
683 l_source := NULL;
684 l_description := NULL;
685
686
687
688 IF
689 l_ledger_language = 'US' THEN
690 l_description := SUBSTR(CONCAT(l_description,'Bills Under Discount for occurrence :'),1,2000);
691 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
692 END IF;
693 l_source := SUBSTR(p_source_4,1,1996);
694 IF l_source IS NOT NULL THEN
695 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
696 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
697 END IF;
698 IF
699 l_ledger_language = 'US' THEN
700 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
701 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
702 END IF;
703 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
704 IF l_source IS NOT NULL THEN
705 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
706 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
707 END IF;
708 IF
709 l_ledger_language = 'US' THEN
710 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
711 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
712 END IF;
713 l_source := SUBSTR(p_source_6,1,1996);
714 IF l_source IS NOT NULL THEN
715 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
716 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
717 END IF;
718 l_description := SUBSTR(l_description,1,1996);
719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
720 trace
721 (p_msg => 'END of Description_4'
722 ,p_level => C_LEVEL_PROCEDURE
723 ,p_module => l_log_module);
724
725 END IF;
726 RETURN l_description;
727
728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
729 trace
730 (p_msg => 'END of Description_4'
731 ,p_level => C_LEVEL_PROCEDURE
732 ,p_module => l_log_module);
733 END IF;
734 RETURN NULL;
735 EXCEPTION
736 WHEN VALUE_ERROR THEN
737 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
738 trace
739 (p_msg => 'ERROR: '||sqlerrm
740 ,p_level => C_LEVEL_EXCEPTION
741 ,p_module => l_log_module);
742 END IF;
743 RAISE;
744 WHEN xla_exceptions_pkg.application_exception THEN
745 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
746 trace
747 (p_msg => 'ERROR: '||sqlerrm
748 ,p_level => C_LEVEL_EXCEPTION
749 ,p_module => l_log_module);
750 END IF;
751 RAISE;
752 WHEN OTHERS THEN
756
753 xla_exceptions_pkg.raise_message
754 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_4');
755 END Description_4;
757 ---------------------------------------
758 --
759 -- PRIVATE FUNCTION
760 -- Description_5
761 --
762 ---------------------------------------
763 FUNCTION Description_5 (
764 p_application_id IN NUMBER
765 , p_ae_header_id IN NUMBER DEFAULT NULL
766 --Collection Document Bank Occurrence
767 , p_source_4 IN VARCHAR2
768 --Collection Document Number
769 , p_source_5 IN NUMBER
770 --Collection Document Trade Note Number
771 , p_source_6 IN VARCHAR2
772 --Bordero Type
773 , p_source_7 IN VARCHAR2
774 , p_source_7_meaning IN VARCHAR2
775 )
776 RETURN VARCHAR2
777 IS
778 l_component_type VARCHAR2(80) ;
779 l_component_code VARCHAR2(30) ;
780 l_component_type_code VARCHAR2(1) ;
781 l_component_appl_id INTEGER ;
782 l_amb_context_code VARCHAR2(30) ;
783 l_ledger_language VARCHAR2(30) ;
784 l_source VARCHAR2(1996) ;
785 l_description VARCHAR2(2000) ;
786 l_log_module VARCHAR2(240) ;
787 BEGIN
788 IF g_log_enabled THEN
789 l_log_module := C_DEFAULT_MODULE||'.Description_5';
790 END IF;
791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
792 trace
793 (p_msg => 'BEGIN of Description_5'
794 ,p_level => C_LEVEL_PROCEDURE
795 ,p_module => l_log_module);
796 END IF;
797
798 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
799 l_component_type := 'AMB_DESCRIPTION';
800 l_component_code := 'JLBR_AR_CASH_JED';
801 l_component_type_code := 'S';
802 l_component_appl_id := 222;
803 l_amb_context_code := 'DEFAULT';
804 l_source := NULL;
805 l_description := NULL;
806
807
808 IF NVL(p_source_7,'
809 ') = 'COLLECTION'
810 THEN
811
812 IF
813 l_ledger_language = 'US' THEN
814 l_description := SUBSTR(CONCAT(l_description,'Cash for occurrence :'),1,2000);
815 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
816 END IF;
817 l_source := SUBSTR(p_source_4,1,1996);
818 IF l_source IS NOT NULL THEN
819 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
820 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
821 END IF;
822 IF
823 l_ledger_language = 'US' THEN
824 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
825 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
826 END IF;
827 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
828 IF l_source IS NOT NULL THEN
829 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
830 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
831 END IF;
832 IF
833 l_ledger_language = 'US' THEN
834 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
835 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
836 END IF;
837 l_source := SUBSTR(p_source_6,1,1996);
838 IF l_source IS NOT NULL THEN
839 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
840 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
841 END IF;
842 l_description := SUBSTR(l_description,1,1996);
843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
844 trace
845 (p_msg => 'END of Description_5'
846 ,p_level => C_LEVEL_PROCEDURE
847 ,p_module => l_log_module);
848
849 END IF;
850 RETURN l_description;
851
852 ELSIF NVL(p_source_7,'
853 ') = 'FACTORING'
854 THEN
855
856 IF
857 l_ledger_language = 'US' THEN
858 l_description := SUBSTR(CONCAT(l_description,'Cash for occurrence :'),1,2000);
859 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
860 END IF;
861 l_source := SUBSTR(p_source_4,1,1996);
862 IF l_source IS NOT NULL THEN
863 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
864 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
865 END IF;
866 IF
867 l_ledger_language = 'US' THEN
868 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
869 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
870 END IF;
871 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
872 IF l_source IS NOT NULL THEN
873 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
874 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
875 END IF;
876 IF
877 l_ledger_language = 'US' THEN
878 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
879 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
880 END IF;
881 l_source := SUBSTR(p_source_6,1,1996);
882 IF l_source IS NOT NULL THEN
883 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
884 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
885 END IF;
886 l_description := SUBSTR(l_description,1,1996);
887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
888 trace
889 (p_msg => 'END of Description_5'
890 ,p_level => C_LEVEL_PROCEDURE
891 ,p_module => l_log_module);
892
893 END IF;
894 RETURN l_description;
895
896 END IF;
900 ,p_level => C_LEVEL_PROCEDURE
897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
898 trace
899 (p_msg => 'END of Description_5'
901 ,p_module => l_log_module);
902 END IF;
903 RETURN NULL;
904 EXCEPTION
905 WHEN VALUE_ERROR THEN
906 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
907 trace
908 (p_msg => 'ERROR: '||sqlerrm
909 ,p_level => C_LEVEL_EXCEPTION
910 ,p_module => l_log_module);
911 END IF;
912 RAISE;
913 WHEN xla_exceptions_pkg.application_exception THEN
914 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
915 trace
916 (p_msg => 'ERROR: '||sqlerrm
917 ,p_level => C_LEVEL_EXCEPTION
918 ,p_module => l_log_module);
919 END IF;
920 RAISE;
921 WHEN OTHERS THEN
922 xla_exceptions_pkg.raise_message
923 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_5');
924 END Description_5;
925
926 ---------------------------------------
927 --
928 -- PRIVATE FUNCTION
929 -- Description_6
930 --
931 ---------------------------------------
932 FUNCTION Description_6 (
933 p_application_id IN NUMBER
934 , p_ae_header_id IN NUMBER DEFAULT NULL
935 --Collection Document Bank Occurrence
936 , p_source_4 IN VARCHAR2
937 --Collection Document Number
938 , p_source_5 IN NUMBER
939 --Collection Document Trade Note Number
940 , p_source_6 IN VARCHAR2
941 )
942 RETURN VARCHAR2
943 IS
944 l_component_type VARCHAR2(80) ;
945 l_component_code VARCHAR2(30) ;
946 l_component_type_code VARCHAR2(1) ;
947 l_component_appl_id INTEGER ;
948 l_amb_context_code VARCHAR2(30) ;
949 l_ledger_language VARCHAR2(30) ;
950 l_source VARCHAR2(1996) ;
951 l_description VARCHAR2(2000) ;
952 l_log_module VARCHAR2(240) ;
953 BEGIN
954 IF g_log_enabled THEN
955 l_log_module := C_DEFAULT_MODULE||'.Description_6';
956 END IF;
957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
958 trace
959 (p_msg => 'BEGIN of Description_6'
960 ,p_level => C_LEVEL_PROCEDURE
961 ,p_module => l_log_module);
962 END IF;
963
964 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
965 l_component_type := 'AMB_DESCRIPTION';
966 l_component_code := 'JLBR_AR_COLL_ENDORSEMENT_JED';
967 l_component_type_code := 'S';
968 l_component_appl_id := 222;
969 l_amb_context_code := 'DEFAULT';
970 l_source := NULL;
971 l_description := NULL;
972
973
974
975 IF
976 l_ledger_language = 'US' THEN
977 l_description := SUBSTR(CONCAT(l_description,'Collection Endorsement for occurrence :'),1,2000);
978 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
979 END IF;
980 l_source := SUBSTR(p_source_4,1,1996);
981 IF l_source IS NOT NULL THEN
982 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
983 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
984 END IF;
985 IF
986 l_ledger_language = 'US' THEN
987 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
988 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
989 END IF;
990 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
991 IF l_source IS NOT NULL THEN
992 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
993 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
994 END IF;
995 IF
996 l_ledger_language = 'US' THEN
997 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
998 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
999 END IF;
1000 l_source := SUBSTR(p_source_6,1,1996);
1001 IF l_source IS NOT NULL THEN
1002 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1003 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1004 END IF;
1005 l_description := SUBSTR(l_description,1,1996);
1006 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1007 trace
1008 (p_msg => 'END of Description_6'
1009 ,p_level => C_LEVEL_PROCEDURE
1010 ,p_module => l_log_module);
1011
1012 END IF;
1013 RETURN l_description;
1014
1015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1016 trace
1017 (p_msg => 'END of Description_6'
1018 ,p_level => C_LEVEL_PROCEDURE
1019 ,p_module => l_log_module);
1020 END IF;
1021 RETURN NULL;
1022 EXCEPTION
1023 WHEN VALUE_ERROR THEN
1024 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1025 trace
1026 (p_msg => 'ERROR: '||sqlerrm
1027 ,p_level => C_LEVEL_EXCEPTION
1028 ,p_module => l_log_module);
1029 END IF;
1030 RAISE;
1031 WHEN xla_exceptions_pkg.application_exception THEN
1032 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1033 trace
1034 (p_msg => 'ERROR: '||sqlerrm
1035 ,p_level => C_LEVEL_EXCEPTION
1036 ,p_module => l_log_module);
1037 END IF;
1038 RAISE;
1039 WHEN OTHERS THEN
1040 xla_exceptions_pkg.raise_message
1041 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_6');
1042 END Description_6;
1043
1047 -- Description_7
1044 ---------------------------------------
1045 --
1046 -- PRIVATE FUNCTION
1048 --
1049 ---------------------------------------
1050 FUNCTION Description_7 (
1051 p_application_id IN NUMBER
1052 , p_ae_header_id IN NUMBER DEFAULT NULL
1053 --Collection Document Bank Occurrence
1054 , p_source_4 IN VARCHAR2
1055 --Collection Document Number
1056 , p_source_5 IN NUMBER
1057 --Collection Document Trade Note Number
1058 , p_source_6 IN VARCHAR2
1059 )
1060 RETURN VARCHAR2
1061 IS
1062 l_component_type VARCHAR2(80) ;
1063 l_component_code VARCHAR2(30) ;
1064 l_component_type_code VARCHAR2(1) ;
1065 l_component_appl_id INTEGER ;
1066 l_amb_context_code VARCHAR2(30) ;
1067 l_ledger_language VARCHAR2(30) ;
1068 l_source VARCHAR2(1996) ;
1069 l_description VARCHAR2(2000) ;
1070 l_log_module VARCHAR2(240) ;
1071 BEGIN
1072 IF g_log_enabled THEN
1073 l_log_module := C_DEFAULT_MODULE||'.Description_7';
1074 END IF;
1075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1076 trace
1077 (p_msg => 'BEGIN of Description_7'
1078 ,p_level => C_LEVEL_PROCEDURE
1079 ,p_module => l_log_module);
1080 END IF;
1081
1082 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1083 l_component_type := 'AMB_DESCRIPTION';
1084 l_component_code := 'JLBR_AR_DISC_ENDORSEMENT_JED';
1085 l_component_type_code := 'S';
1086 l_component_appl_id := 222;
1087 l_amb_context_code := 'DEFAULT';
1088 l_source := NULL;
1089 l_description := NULL;
1090
1091
1092
1093 IF
1094 l_ledger_language = 'US' THEN
1095 l_description := SUBSTR(CONCAT(l_description,'Discount Endorsement for occurrence :'),1,2000);
1096 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1097 END IF;
1098 l_source := SUBSTR(p_source_4,1,1996);
1099 IF l_source IS NOT NULL THEN
1100 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1101 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1102 END IF;
1103 IF
1104 l_ledger_language = 'US' THEN
1105 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
1106 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1107 END IF;
1108 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
1109 IF l_source IS NOT NULL THEN
1110 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1111 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1112 END IF;
1113 IF
1114 l_ledger_language = 'US' THEN
1115 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1116 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1117 END IF;
1118 l_source := SUBSTR(p_source_6,1,1996);
1119 IF l_source IS NOT NULL THEN
1120 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1121 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1122 END IF;
1123 l_description := SUBSTR(l_description,1,1996);
1124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1125 trace
1126 (p_msg => 'END of Description_7'
1127 ,p_level => C_LEVEL_PROCEDURE
1128 ,p_module => l_log_module);
1129
1130 END IF;
1131 RETURN l_description;
1132
1133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1134 trace
1135 (p_msg => 'END of Description_7'
1136 ,p_level => C_LEVEL_PROCEDURE
1137 ,p_module => l_log_module);
1138 END IF;
1139 RETURN NULL;
1140 EXCEPTION
1141 WHEN VALUE_ERROR THEN
1142 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1143 trace
1144 (p_msg => 'ERROR: '||sqlerrm
1145 ,p_level => C_LEVEL_EXCEPTION
1146 ,p_module => l_log_module);
1147 END IF;
1148 RAISE;
1149 WHEN xla_exceptions_pkg.application_exception THEN
1150 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1151 trace
1152 (p_msg => 'ERROR: '||sqlerrm
1153 ,p_level => C_LEVEL_EXCEPTION
1154 ,p_module => l_log_module);
1155 END IF;
1156 RAISE;
1157 WHEN OTHERS THEN
1158 xla_exceptions_pkg.raise_message
1159 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_7');
1160 END Description_7;
1161
1162 ---------------------------------------
1163 --
1164 -- PRIVATE FUNCTION
1165 -- Description_8
1166 --
1167 ---------------------------------------
1168 FUNCTION Description_8 (
1169 p_application_id IN NUMBER
1170 , p_ae_header_id IN NUMBER DEFAULT NULL
1171 --Collection Document Bank Occurrence
1172 , p_source_4 IN VARCHAR2
1173 --Collection Document Number
1174 , p_source_5 IN NUMBER
1175 --Collection Document Trade Note Number
1176 , p_source_6 IN VARCHAR2
1177 )
1178 RETURN VARCHAR2
1179 IS
1180 l_component_type VARCHAR2(80) ;
1181 l_component_code VARCHAR2(30) ;
1182 l_component_type_code VARCHAR2(1) ;
1183 l_component_appl_id INTEGER ;
1184 l_amb_context_code VARCHAR2(30) ;
1185 l_ledger_language VARCHAR2(30) ;
1186 l_source VARCHAR2(1996) ;
1187 l_description VARCHAR2(2000) ;
1188 l_log_module VARCHAR2(240) ;
1192 END IF;
1189 BEGIN
1190 IF g_log_enabled THEN
1191 l_log_module := C_DEFAULT_MODULE||'.Description_8';
1193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1194 trace
1195 (p_msg => 'BEGIN of Description_8'
1196 ,p_level => C_LEVEL_PROCEDURE
1197 ,p_module => l_log_module);
1198 END IF;
1199
1200 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1201 l_component_type := 'AMB_DESCRIPTION';
1202 l_component_code := 'JLBR_AR_FACT_CHARGES_JED';
1203 l_component_type_code := 'S';
1204 l_component_appl_id := 222;
1205 l_amb_context_code := 'DEFAULT';
1206 l_source := NULL;
1207 l_description := NULL;
1208
1209
1210
1211 IF
1212 l_ledger_language = 'US' THEN
1213 l_description := SUBSTR(CONCAT(l_description,'Factoring Charges for occurrence :'),1,2000);
1214 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1215 END IF;
1216 l_source := SUBSTR(p_source_4,1,1996);
1217 IF l_source IS NOT NULL THEN
1218 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1219 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1220 END IF;
1221 IF
1222 l_ledger_language = 'US' THEN
1223 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
1224 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1225 END IF;
1226 l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
1227 IF l_source IS NOT NULL THEN
1228 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1229 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1230 END IF;
1231 IF
1232 l_ledger_language = 'US' THEN
1233 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1234 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1235 END IF;
1236 l_source := SUBSTR(p_source_6,1,1996);
1237 IF l_source IS NOT NULL THEN
1238 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1239 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1240 END IF;
1241 l_description := SUBSTR(l_description,1,1996);
1242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1243 trace
1244 (p_msg => 'END of Description_8'
1245 ,p_level => C_LEVEL_PROCEDURE
1246 ,p_module => l_log_module);
1247
1248 END IF;
1249 RETURN l_description;
1250
1251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1252 trace
1253 (p_msg => 'END of Description_8'
1254 ,p_level => C_LEVEL_PROCEDURE
1255 ,p_module => l_log_module);
1256 END IF;
1257 RETURN NULL;
1258 EXCEPTION
1259 WHEN VALUE_ERROR THEN
1260 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1261 trace
1262 (p_msg => 'ERROR: '||sqlerrm
1263 ,p_level => C_LEVEL_EXCEPTION
1264 ,p_module => l_log_module);
1265 END IF;
1266 RAISE;
1267 WHEN xla_exceptions_pkg.application_exception THEN
1268 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1269 trace
1270 (p_msg => 'ERROR: '||sqlerrm
1271 ,p_level => C_LEVEL_EXCEPTION
1272 ,p_module => l_log_module);
1273 END IF;
1274 RAISE;
1275 WHEN OTHERS THEN
1276 xla_exceptions_pkg.raise_message
1277 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_8');
1278 END Description_8;
1279
1280 ---------------------------------------
1281 --
1282 -- PRIVATE FUNCTION
1283 -- Description_9
1284 --
1285 ---------------------------------------
1286 FUNCTION Description_9 (
1287 p_application_id IN NUMBER
1288 , p_ae_header_id IN NUMBER DEFAULT NULL
1289 --Receipt Number
1290 , p_source_8 IN VARCHAR2
1291 --Receipt Document Sequence Number
1292 , p_source_9 IN NUMBER
1293 --Receipt Method Name
1294 , p_source_10 IN VARCHAR2
1295 --Receipt Date
1296 , p_source_11 IN DATE
1297 --Remittance Bank Name
1298 , p_source_12 IN VARCHAR2
1299 --Remittance Bank Account Name
1300 , p_source_13 IN VARCHAR2
1301 )
1302 RETURN VARCHAR2
1303 IS
1304 l_component_type VARCHAR2(80) ;
1305 l_component_code VARCHAR2(30) ;
1306 l_component_type_code VARCHAR2(1) ;
1307 l_component_appl_id INTEGER ;
1308 l_amb_context_code VARCHAR2(30) ;
1309 l_ledger_language VARCHAR2(30) ;
1310 l_source VARCHAR2(1996) ;
1311 l_description VARCHAR2(2000) ;
1312 l_log_module VARCHAR2(240) ;
1313 BEGIN
1314 IF g_log_enabled THEN
1315 l_log_module := C_DEFAULT_MODULE||'.Description_9';
1316 END IF;
1317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1318 trace
1319 (p_msg => 'BEGIN of Description_9'
1320 ,p_level => C_LEVEL_PROCEDURE
1321 ,p_module => l_log_module);
1322 END IF;
1323
1324 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1325 l_component_type := 'AMB_DESCRIPTION';
1326 l_component_code := 'MISC_RCTS_H';
1327 l_component_type_code := 'S';
1328 l_component_appl_id := 222;
1329 l_amb_context_code := 'DEFAULT';
1330 l_source := NULL;
1331 l_description := NULL;
1332
1333
1334
1338 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1335 IF
1336 l_ledger_language = 'US' THEN
1337 l_description := SUBSTR(CONCAT(l_description,'Receipt Number -'),1,2000);
1339 END IF;
1340 l_source := SUBSTR(p_source_8,1,1996);
1341 IF l_source IS NOT NULL THEN
1342 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1343 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1344 END IF;
1345 IF
1346 l_ledger_language = 'US' THEN
1347 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
1348 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1349 END IF;
1350 l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
1351 IF l_source IS NOT NULL THEN
1352 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1353 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1354 END IF;
1355 IF
1356 l_ledger_language = 'US' THEN
1357 l_description := SUBSTR(CONCAT(l_description,'Receipt Method Name -'),1,2000);
1358 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1359 END IF;
1360 l_source := SUBSTR(p_source_10,1,1996);
1361 IF l_source IS NOT NULL THEN
1362 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1363 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1364 END IF;
1365 IF
1366 l_ledger_language = 'US' THEN
1367 l_description := SUBSTR(CONCAT(l_description,'Receipt Date -'),1,2000);
1368 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1369 END IF;
1370 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_11,
1371 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
1372 IF l_source IS NOT NULL THEN
1373 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1374 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1375 END IF;
1376 IF
1377 l_ledger_language = 'US' THEN
1378 l_description := SUBSTR(CONCAT(l_description,'Bank Name -'),1,2000);
1379 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1380 END IF;
1381 l_source := SUBSTR(p_source_12,1,1996);
1382 IF l_source IS NOT NULL THEN
1383 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1384 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1385 END IF;
1386 IF
1387 l_ledger_language = 'US' THEN
1388 l_description := SUBSTR(CONCAT(l_description,'Bank Account Name -'),1,2000);
1389 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1390 END IF;
1391 l_source := SUBSTR(p_source_13,1,1996);
1392 IF l_source IS NOT NULL THEN
1393 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1394 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1395 END IF;
1396 l_description := SUBSTR(l_description,1,1996);
1397 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1398 trace
1399 (p_msg => 'END of Description_9'
1400 ,p_level => C_LEVEL_PROCEDURE
1401 ,p_module => l_log_module);
1402
1403 END IF;
1404 RETURN l_description;
1405
1406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1407 trace
1408 (p_msg => 'END of Description_9'
1409 ,p_level => C_LEVEL_PROCEDURE
1410 ,p_module => l_log_module);
1411 END IF;
1412 RETURN NULL;
1413 EXCEPTION
1414 WHEN VALUE_ERROR THEN
1415 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1416 trace
1417 (p_msg => 'ERROR: '||sqlerrm
1418 ,p_level => C_LEVEL_EXCEPTION
1419 ,p_module => l_log_module);
1420 END IF;
1421 RAISE;
1422 WHEN xla_exceptions_pkg.application_exception THEN
1423 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1424 trace
1425 (p_msg => 'ERROR: '||sqlerrm
1426 ,p_level => C_LEVEL_EXCEPTION
1427 ,p_module => l_log_module);
1428 END IF;
1429 RAISE;
1430 WHEN OTHERS THEN
1431 xla_exceptions_pkg.raise_message
1432 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_9');
1433 END Description_9;
1434
1435 ---------------------------------------
1436 --
1437 -- PRIVATE FUNCTION
1438 -- Description_10
1439 --
1440 ---------------------------------------
1441 FUNCTION Description_10 (
1442 p_application_id IN NUMBER
1443 , p_ae_header_id IN NUMBER DEFAULT NULL
1444 --Receipt Number
1445 , p_source_8 IN VARCHAR2
1446 --Receipt Document Sequence Number
1447 , p_source_9 IN NUMBER
1448 --Receipt Method Name
1449 , p_source_10 IN VARCHAR2
1450 --Receipt Date
1451 , p_source_11 IN DATE
1452 --Remittance Bank Name
1453 , p_source_12 IN VARCHAR2
1454 --Remittance Bank Account Name
1455 , p_source_13 IN VARCHAR2
1456 )
1457 RETURN VARCHAR2
1458 IS
1459 l_component_type VARCHAR2(80) ;
1460 l_component_code VARCHAR2(30) ;
1461 l_component_type_code VARCHAR2(1) ;
1462 l_component_appl_id INTEGER ;
1463 l_amb_context_code VARCHAR2(30) ;
1464 l_ledger_language VARCHAR2(30) ;
1465 l_source VARCHAR2(1996) ;
1466 l_description VARCHAR2(2000) ;
1467 l_log_module VARCHAR2(240) ;
1468 BEGIN
1469 IF g_log_enabled THEN
1470 l_log_module := C_DEFAULT_MODULE||'.Description_10';
1471 END IF;
1475 ,p_level => C_LEVEL_PROCEDURE
1472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1473 trace
1474 (p_msg => 'BEGIN of Description_10'
1476 ,p_module => l_log_module);
1477 END IF;
1478
1479 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1480 l_component_type := 'AMB_DESCRIPTION';
1481 l_component_code := 'RCT_H';
1482 l_component_type_code := 'S';
1483 l_component_appl_id := 222;
1484 l_amb_context_code := 'DEFAULT';
1485 l_source := NULL;
1486 l_description := NULL;
1487
1488
1489
1490 IF
1491 l_ledger_language = 'US' THEN
1492 l_description := SUBSTR(CONCAT(l_description,'Receipt Number -'),1,2000);
1493 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1494 END IF;
1495 l_source := SUBSTR(p_source_8,1,1996);
1496 IF l_source IS NOT NULL THEN
1497 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1498 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1499 END IF;
1500 IF
1501 l_ledger_language = 'US' THEN
1502 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
1503 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1504 END IF;
1505 l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
1506 IF l_source IS NOT NULL THEN
1507 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1508 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1509 END IF;
1510 IF
1511 l_ledger_language = 'US' THEN
1512 l_description := SUBSTR(CONCAT(l_description,'Receipt Method Name -'),1,2000);
1513 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1514 END IF;
1515 l_source := SUBSTR(p_source_10,1,1996);
1516 IF l_source IS NOT NULL THEN
1517 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1518 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1519 END IF;
1520 IF
1521 l_ledger_language = 'US' THEN
1522 l_description := SUBSTR(CONCAT(l_description,'Receipt Date -'),1,2000);
1523 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1524 END IF;
1525 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_11,
1526 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
1527 IF l_source IS NOT NULL THEN
1528 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1529 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1530 END IF;
1531 IF
1532 l_ledger_language = 'US' THEN
1533 l_description := SUBSTR(CONCAT(l_description,'Bank Name -'),1,2000);
1534 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1535 END IF;
1536 l_source := SUBSTR(p_source_12,1,1996);
1537 IF l_source IS NOT NULL THEN
1538 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1539 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1540 END IF;
1541 IF
1542 l_ledger_language = 'US' THEN
1543 l_description := SUBSTR(CONCAT(l_description,'Bank Account Name -'),1,2000);
1544 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1545 END IF;
1546 l_source := SUBSTR(p_source_13,1,1996);
1547 IF l_source IS NOT NULL THEN
1548 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1549 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1550 END IF;
1551 l_description := SUBSTR(l_description,1,1996);
1552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1553 trace
1554 (p_msg => 'END of Description_10'
1555 ,p_level => C_LEVEL_PROCEDURE
1556 ,p_module => l_log_module);
1557
1558 END IF;
1559 RETURN l_description;
1560
1561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1562 trace
1563 (p_msg => 'END of Description_10'
1564 ,p_level => C_LEVEL_PROCEDURE
1565 ,p_module => l_log_module);
1566 END IF;
1567 RETURN NULL;
1568 EXCEPTION
1569 WHEN VALUE_ERROR THEN
1570 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1571 trace
1572 (p_msg => 'ERROR: '||sqlerrm
1573 ,p_level => C_LEVEL_EXCEPTION
1574 ,p_module => l_log_module);
1575 END IF;
1576 RAISE;
1577 WHEN xla_exceptions_pkg.application_exception THEN
1578 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1579 trace
1580 (p_msg => 'ERROR: '||sqlerrm
1581 ,p_level => C_LEVEL_EXCEPTION
1582 ,p_module => l_log_module);
1583 END IF;
1584 RAISE;
1585 WHEN OTHERS THEN
1586 xla_exceptions_pkg.raise_message
1587 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_10');
1588 END Description_10;
1589
1590 ---------------------------------------
1591 --
1592 -- PRIVATE FUNCTION
1593 -- Description_11
1594 --
1595 ---------------------------------------
1596 FUNCTION Description_11 (
1597 p_application_id IN NUMBER
1598 , p_ae_header_id IN NUMBER DEFAULT NULL
1599 --Transaction Type Name
1600 , p_source_1 IN VARCHAR2
1601 --Transaction Number
1602 , p_source_2 IN VARCHAR2
1603 --Transaction Document Sequence Number
1604 , p_source_3 IN NUMBER
1605 )
1606 RETURN VARCHAR2
1607 IS
1608 l_component_type VARCHAR2(80) ;
1609 l_component_code VARCHAR2(30) ;
1610 l_component_type_code VARCHAR2(1) ;
1611 l_component_appl_id INTEGER ;
1612 l_amb_context_code VARCHAR2(30) ;
1613 l_ledger_language VARCHAR2(30) ;
1617 BEGIN
1614 l_source VARCHAR2(1996) ;
1615 l_description VARCHAR2(2000) ;
1616 l_log_module VARCHAR2(240) ;
1618 IF g_log_enabled THEN
1619 l_log_module := C_DEFAULT_MODULE||'.Description_11';
1620 END IF;
1621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1622 trace
1623 (p_msg => 'BEGIN of Description_11'
1624 ,p_level => C_LEVEL_PROCEDURE
1625 ,p_module => l_log_module);
1626 END IF;
1627
1628 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1629 l_component_type := 'AMB_DESCRIPTION';
1630 l_component_code := 'RCT_L';
1631 l_component_type_code := 'S';
1632 l_component_appl_id := 222;
1633 l_amb_context_code := 'DEFAULT';
1634 l_source := NULL;
1635 l_description := NULL;
1636
1637
1638 IF p_source_2 IS NOT NULL
1639 THEN
1640
1641 IF
1642 l_ledger_language = 'US' THEN
1643 l_description := SUBSTR(CONCAT(l_description,'Receipt Application to Transaction Type -'),1,2000);
1644 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1645 END IF;
1646 l_source := SUBSTR(p_source_1,1,1996);
1647 IF l_source IS NOT NULL THEN
1648 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1649 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1650 END IF;
1651 IF
1652 l_ledger_language = 'US' THEN
1653 l_description := SUBSTR(CONCAT(l_description,' Transaction Number'),1,2000);
1654 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1655 END IF;
1656 l_source := SUBSTR(p_source_2,1,1996);
1657 IF l_source IS NOT NULL THEN
1658 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1659 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1660 END IF;
1661 IF
1662 l_ledger_language = 'US' THEN
1663 l_description := SUBSTR(CONCAT(l_description,' Transaction Document Number'),1,2000);
1664 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1665 END IF;
1666 l_source := SUBSTR(TO_CHAR(p_source_3),1,1996);
1667 IF l_source IS NOT NULL THEN
1668 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1669 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1670 END IF;
1671 l_description := SUBSTR(l_description,1,1996);
1672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1673 trace
1674 (p_msg => 'END of Description_11'
1675 ,p_level => C_LEVEL_PROCEDURE
1676 ,p_module => l_log_module);
1677
1678 END IF;
1679 RETURN l_description;
1680
1681 END IF;
1682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1683 trace
1684 (p_msg => 'END of Description_11'
1685 ,p_level => C_LEVEL_PROCEDURE
1686 ,p_module => l_log_module);
1687 END IF;
1688 RETURN NULL;
1689 EXCEPTION
1690 WHEN VALUE_ERROR THEN
1691 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1692 trace
1693 (p_msg => 'ERROR: '||sqlerrm
1694 ,p_level => C_LEVEL_EXCEPTION
1695 ,p_module => l_log_module);
1696 END IF;
1697 RAISE;
1698 WHEN xla_exceptions_pkg.application_exception THEN
1699 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1700 trace
1701 (p_msg => 'ERROR: '||sqlerrm
1702 ,p_level => C_LEVEL_EXCEPTION
1703 ,p_module => l_log_module);
1704 END IF;
1705 RAISE;
1706 WHEN OTHERS THEN
1707 xla_exceptions_pkg.raise_message
1708 (p_location => 'XLA_00222_AAD_S_000017_PKG.Description_11');
1709 END Description_11;
1710
1711 ---------------------------------------
1712 --
1713 -- PRIVATE FUNCTION
1714 -- AcctDerRule_12
1715 --
1716 ---------------------------------------
1717 FUNCTION AcctDerRule_12 (
1718 p_application_id IN NUMBER
1719 , p_ae_header_id IN NUMBER
1720 , p_side IN VARCHAR2
1721 --Credit Memo Distribution GL Account
1722 , p_source_14 IN NUMBER
1723 , x_transaction_coa_id OUT NOCOPY NUMBER
1724 , x_accounting_coa_id OUT NOCOPY NUMBER
1725 , x_value_type_code OUT NOCOPY VARCHAR2
1726 )
1727 RETURN NUMBER
1728 IS
1729 l_component_type VARCHAR2(80) ;
1730 l_component_code VARCHAR2(30) ;
1731 l_component_type_code VARCHAR2(1) ;
1732 l_component_appl_id INTEGER ;
1733 l_amb_context_code VARCHAR2(30) ;
1734 l_log_module VARCHAR2(240) ;
1735 l_output_value NUMBER ;
1736 BEGIN
1737 IF g_log_enabled THEN
1738 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1739 END IF;
1740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1741 trace
1742 (p_msg => 'BEGIN of AcctDerRule_12'
1743 ,p_level => C_LEVEL_PROCEDURE
1744 ,p_module => l_log_module);
1745 END IF;
1746 --
1747 l_component_type := 'AMB_ADR';
1748 l_component_code := 'CM_DIST_CCID';
1749 l_component_type_code := 'S';
1750 l_component_appl_id := 222;
1751 l_amb_context_code := 'DEFAULT';
1752 x_transaction_coa_id := null;
1753 x_accounting_coa_id := null;
1754 --
1755
1756 --
1757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1758 trace
1759 (p_msg => 'END of AcctDerRule_12'
1760 ,p_level => C_LEVEL_PROCEDURE
1761 ,p_module => l_log_module);
1762 END IF;
1763 x_value_type_code := 'S';
1767 --
1764 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
1765 RETURN l_output_value;
1766
1768 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1769 trace
1770 (p_msg => 'END of AcctDerRule_12(invalid)'
1771 ,p_level => C_LEVEL_PROCEDURE
1772 ,p_module => l_log_module);
1773 END IF;
1774 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1775 x_value_type_code := null;
1776 l_output_value := null;
1777 xla_accounting_err_pkg.build_message
1778 (p_appli_s_name => 'XLA'
1779 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1780 ,p_token_1 => 'COMPONENT_NAME'
1781 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1782 l_component_type
1783 , l_component_code
1784 , l_component_type_code
1785 , l_component_appl_id
1786 , l_amb_context_code
1787 )
1788 ,p_token_2 => 'OWNER'
1789 ,p_value_2 => xla_lookups_pkg.get_meaning(
1790 'XLA_OWNER_TYPE'
1791 ,l_component_type_code
1792 )
1793 ,p_token_3 => 'PAD_NAME'
1794 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1795 ,p_token_4 => 'PAD_OWNER'
1796 ,p_value_4 => xla_lookups_pkg.get_meaning(
1797 'XLA_OWNER_TYPE'
1798 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1799 )
1800 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1801 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1802 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1803 ,p_ae_header_id => NULL
1804 );
1805 RETURN l_output_value;
1806 EXCEPTION
1807 WHEN xla_exceptions_pkg.application_exception THEN
1808 RAISE;
1809 WHEN OTHERS THEN
1810 xla_exceptions_pkg.raise_message
1811 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_12');
1812 END AcctDerRule_12;
1813 --
1814
1815 ---------------------------------------
1816 --
1817 -- PRIVATE FUNCTION
1818 -- AcctDerRule_13
1819 --
1820 ---------------------------------------
1821 FUNCTION AcctDerRule_13 (
1822 p_application_id IN NUMBER
1823 , p_ae_header_id IN NUMBER
1824 , p_side IN VARCHAR2
1825 --Collection Document Bank Charges Account
1826 , p_source_15 IN NUMBER
1827 , x_transaction_coa_id OUT NOCOPY NUMBER
1828 , x_accounting_coa_id OUT NOCOPY NUMBER
1829 , x_value_type_code OUT NOCOPY VARCHAR2
1830 )
1831 RETURN NUMBER
1832 IS
1833 l_component_type VARCHAR2(80) ;
1834 l_component_code VARCHAR2(30) ;
1835 l_component_type_code VARCHAR2(1) ;
1836 l_component_appl_id INTEGER ;
1837 l_amb_context_code VARCHAR2(30) ;
1838 l_log_module VARCHAR2(240) ;
1839 l_output_value NUMBER ;
1840 BEGIN
1841 IF g_log_enabled THEN
1842 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1843 END IF;
1844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1845 trace
1846 (p_msg => 'BEGIN of AcctDerRule_13'
1847 ,p_level => C_LEVEL_PROCEDURE
1848 ,p_module => l_log_module);
1849 END IF;
1850 --
1851 l_component_type := 'AMB_ADR';
1852 l_component_code := 'COLL_DOC_BANK_CHARGES';
1853 l_component_type_code := 'S';
1854 l_component_appl_id := 222;
1855 l_amb_context_code := 'DEFAULT';
1856 x_transaction_coa_id := null;
1857 x_accounting_coa_id := null;
1858 --
1859
1860 --
1861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1862 trace
1863 (p_msg => 'END of AcctDerRule_13'
1864 ,p_level => C_LEVEL_PROCEDURE
1865 ,p_module => l_log_module);
1866 END IF;
1867 x_value_type_code := 'S';
1868 l_output_value := TO_NUMBER(TO_NUMBER(p_source_15));
1869 RETURN l_output_value;
1870
1871 --
1872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1873 trace
1874 (p_msg => 'END of AcctDerRule_13(invalid)'
1875 ,p_level => C_LEVEL_PROCEDURE
1876 ,p_module => l_log_module);
1877 END IF;
1878 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1879 x_value_type_code := null;
1880 l_output_value := null;
1881 xla_accounting_err_pkg.build_message
1882 (p_appli_s_name => 'XLA'
1883 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1884 ,p_token_1 => 'COMPONENT_NAME'
1885 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1886 l_component_type
1887 , l_component_code
1888 , l_component_type_code
1892 ,p_token_2 => 'OWNER'
1889 , l_component_appl_id
1890 , l_amb_context_code
1891 )
1893 ,p_value_2 => xla_lookups_pkg.get_meaning(
1894 'XLA_OWNER_TYPE'
1895 ,l_component_type_code
1896 )
1897 ,p_token_3 => 'PAD_NAME'
1898 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1899 ,p_token_4 => 'PAD_OWNER'
1900 ,p_value_4 => xla_lookups_pkg.get_meaning(
1901 'XLA_OWNER_TYPE'
1902 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1903 )
1904 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1905 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1906 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1907 ,p_ae_header_id => NULL
1908 );
1909 RETURN l_output_value;
1910 EXCEPTION
1911 WHEN xla_exceptions_pkg.application_exception THEN
1912 RAISE;
1913 WHEN OTHERS THEN
1914 xla_exceptions_pkg.raise_message
1915 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_13');
1916 END AcctDerRule_13;
1917 --
1918
1919 ---------------------------------------
1920 --
1921 -- PRIVATE FUNCTION
1922 -- AcctDerRule_14
1923 --
1924 ---------------------------------------
1925 FUNCTION AcctDerRule_14 (
1926 p_application_id IN NUMBER
1927 , p_ae_header_id IN NUMBER
1928 , p_side IN VARCHAR2
1929 --Collection Document Bills Under Collection Account
1930 , p_source_16 IN NUMBER
1931 , x_transaction_coa_id OUT NOCOPY NUMBER
1932 , x_accounting_coa_id OUT NOCOPY NUMBER
1933 , x_value_type_code OUT NOCOPY VARCHAR2
1934 )
1935 RETURN NUMBER
1936 IS
1937 l_component_type VARCHAR2(80) ;
1938 l_component_code VARCHAR2(30) ;
1939 l_component_type_code VARCHAR2(1) ;
1940 l_component_appl_id INTEGER ;
1941 l_amb_context_code VARCHAR2(30) ;
1942 l_log_module VARCHAR2(240) ;
1943 l_output_value NUMBER ;
1944 BEGIN
1945 IF g_log_enabled THEN
1946 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
1947 END IF;
1948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1949 trace
1950 (p_msg => 'BEGIN of AcctDerRule_14'
1951 ,p_level => C_LEVEL_PROCEDURE
1952 ,p_module => l_log_module);
1953 END IF;
1954 --
1955 l_component_type := 'AMB_ADR';
1956 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL';
1957 l_component_type_code := 'S';
1958 l_component_appl_id := 222;
1959 l_amb_context_code := 'DEFAULT';
1960 x_transaction_coa_id := null;
1961 x_accounting_coa_id := null;
1962 --
1963
1964 --
1965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1966 trace
1967 (p_msg => 'END of AcctDerRule_14'
1968 ,p_level => C_LEVEL_PROCEDURE
1969 ,p_module => l_log_module);
1970 END IF;
1971 x_value_type_code := 'S';
1972 l_output_value := TO_NUMBER(TO_NUMBER(p_source_16));
1973 RETURN l_output_value;
1974
1975 --
1976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1977 trace
1978 (p_msg => 'END of AcctDerRule_14(invalid)'
1979 ,p_level => C_LEVEL_PROCEDURE
1980 ,p_module => l_log_module);
1981 END IF;
1982 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1983 x_value_type_code := null;
1984 l_output_value := null;
1985 xla_accounting_err_pkg.build_message
1986 (p_appli_s_name => 'XLA'
1987 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1988 ,p_token_1 => 'COMPONENT_NAME'
1989 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1990 l_component_type
1991 , l_component_code
1992 , l_component_type_code
1993 , l_component_appl_id
1994 , l_amb_context_code
1995 )
1996 ,p_token_2 => 'OWNER'
1997 ,p_value_2 => xla_lookups_pkg.get_meaning(
1998 'XLA_OWNER_TYPE'
1999 ,l_component_type_code
2000 )
2001 ,p_token_3 => 'PAD_NAME'
2002 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2003 ,p_token_4 => 'PAD_OWNER'
2004 ,p_value_4 => xla_lookups_pkg.get_meaning(
2005 'XLA_OWNER_TYPE'
2006 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2010 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2007 )
2008 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2009 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2011 ,p_ae_header_id => NULL
2012 );
2013 RETURN l_output_value;
2014 EXCEPTION
2015 WHEN xla_exceptions_pkg.application_exception THEN
2016 RAISE;
2017 WHEN OTHERS THEN
2018 xla_exceptions_pkg.raise_message
2019 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_14');
2020 END AcctDerRule_14;
2021 --
2022
2023 ---------------------------------------
2024 --
2025 -- PRIVATE FUNCTION
2026 -- AcctDerRule_15
2027 --
2028 ---------------------------------------
2029 FUNCTION AcctDerRule_15 (
2030 p_application_id IN NUMBER
2031 , p_ae_header_id IN NUMBER
2032 , p_side IN VARCHAR2
2033 --Collection Document Bills Under Discount Account
2034 , p_source_17 IN NUMBER
2035 , x_transaction_coa_id OUT NOCOPY NUMBER
2036 , x_accounting_coa_id OUT NOCOPY NUMBER
2037 , x_value_type_code OUT NOCOPY VARCHAR2
2038 )
2039 RETURN NUMBER
2040 IS
2041 l_component_type VARCHAR2(80) ;
2042 l_component_code VARCHAR2(30) ;
2043 l_component_type_code VARCHAR2(1) ;
2044 l_component_appl_id INTEGER ;
2045 l_amb_context_code VARCHAR2(30) ;
2046 l_log_module VARCHAR2(240) ;
2047 l_output_value NUMBER ;
2048 BEGIN
2049 IF g_log_enabled THEN
2050 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2051 END IF;
2052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2053 trace
2054 (p_msg => 'BEGIN of AcctDerRule_15'
2055 ,p_level => C_LEVEL_PROCEDURE
2056 ,p_module => l_log_module);
2057 END IF;
2058 --
2059 l_component_type := 'AMB_ADR';
2060 l_component_code := 'COLL_DOC_BILLS_UNDER_DISC';
2061 l_component_type_code := 'S';
2062 l_component_appl_id := 222;
2063 l_amb_context_code := 'DEFAULT';
2064 x_transaction_coa_id := null;
2065 x_accounting_coa_id := null;
2066 --
2067
2068 --
2069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2070 trace
2071 (p_msg => 'END of AcctDerRule_15'
2072 ,p_level => C_LEVEL_PROCEDURE
2073 ,p_module => l_log_module);
2074 END IF;
2075 x_value_type_code := 'S';
2076 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
2077 RETURN l_output_value;
2078
2079 --
2080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2081 trace
2082 (p_msg => 'END of AcctDerRule_15(invalid)'
2083 ,p_level => C_LEVEL_PROCEDURE
2084 ,p_module => l_log_module);
2085 END IF;
2086 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2087 x_value_type_code := null;
2088 l_output_value := null;
2089 xla_accounting_err_pkg.build_message
2090 (p_appli_s_name => 'XLA'
2091 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2092 ,p_token_1 => 'COMPONENT_NAME'
2093 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2094 l_component_type
2095 , l_component_code
2096 , l_component_type_code
2097 , l_component_appl_id
2098 , l_amb_context_code
2099 )
2100 ,p_token_2 => 'OWNER'
2101 ,p_value_2 => xla_lookups_pkg.get_meaning(
2102 'XLA_OWNER_TYPE'
2103 ,l_component_type_code
2104 )
2105 ,p_token_3 => 'PAD_NAME'
2106 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2107 ,p_token_4 => 'PAD_OWNER'
2108 ,p_value_4 => xla_lookups_pkg.get_meaning(
2109 'XLA_OWNER_TYPE'
2110 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2111 )
2112 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2113 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2114 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2115 ,p_ae_header_id => NULL
2116 );
2117 RETURN l_output_value;
2118 EXCEPTION
2119 WHEN xla_exceptions_pkg.application_exception THEN
2120 RAISE;
2121 WHEN OTHERS THEN
2122 xla_exceptions_pkg.raise_message
2123 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_15');
2124 END AcctDerRule_15;
2125 --
2126
2127 ---------------------------------------
2128 --
2129 -- PRIVATE FUNCTION
2130 -- AcctDerRule_16
2131 --
2132 ---------------------------------------
2133 FUNCTION AcctDerRule_16 (
2134 p_application_id IN NUMBER
2135 , p_ae_header_id IN NUMBER
2139 , x_transaction_coa_id OUT NOCOPY NUMBER
2136 , p_side IN VARCHAR2
2137 --Collection Document Cash Account
2138 , p_source_18 IN NUMBER
2140 , x_accounting_coa_id OUT NOCOPY NUMBER
2141 , x_value_type_code OUT NOCOPY VARCHAR2
2142 )
2143 RETURN NUMBER
2144 IS
2145 l_component_type VARCHAR2(80) ;
2146 l_component_code VARCHAR2(30) ;
2147 l_component_type_code VARCHAR2(1) ;
2148 l_component_appl_id INTEGER ;
2149 l_amb_context_code VARCHAR2(30) ;
2150 l_log_module VARCHAR2(240) ;
2151 l_output_value NUMBER ;
2152 BEGIN
2153 IF g_log_enabled THEN
2154 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2155 END IF;
2156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2157 trace
2158 (p_msg => 'BEGIN of AcctDerRule_16'
2159 ,p_level => C_LEVEL_PROCEDURE
2160 ,p_module => l_log_module);
2161 END IF;
2162 --
2163 l_component_type := 'AMB_ADR';
2164 l_component_code := 'COLL_DOC_CASH';
2165 l_component_type_code := 'S';
2166 l_component_appl_id := 222;
2167 l_amb_context_code := 'DEFAULT';
2168 x_transaction_coa_id := null;
2169 x_accounting_coa_id := null;
2170 --
2171
2172 --
2173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2174 trace
2175 (p_msg => 'END of AcctDerRule_16'
2176 ,p_level => C_LEVEL_PROCEDURE
2177 ,p_module => l_log_module);
2178 END IF;
2179 x_value_type_code := 'S';
2180 l_output_value := TO_NUMBER(TO_NUMBER(p_source_18));
2181 RETURN l_output_value;
2182
2183 --
2184 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2185 trace
2186 (p_msg => 'END of AcctDerRule_16(invalid)'
2187 ,p_level => C_LEVEL_PROCEDURE
2188 ,p_module => l_log_module);
2189 END IF;
2190 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2191 x_value_type_code := null;
2192 l_output_value := null;
2193 xla_accounting_err_pkg.build_message
2194 (p_appli_s_name => 'XLA'
2195 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2196 ,p_token_1 => 'COMPONENT_NAME'
2197 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2198 l_component_type
2199 , l_component_code
2200 , l_component_type_code
2201 , l_component_appl_id
2202 , l_amb_context_code
2203 )
2204 ,p_token_2 => 'OWNER'
2205 ,p_value_2 => xla_lookups_pkg.get_meaning(
2206 'XLA_OWNER_TYPE'
2207 ,l_component_type_code
2208 )
2209 ,p_token_3 => 'PAD_NAME'
2210 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2211 ,p_token_4 => 'PAD_OWNER'
2212 ,p_value_4 => xla_lookups_pkg.get_meaning(
2213 'XLA_OWNER_TYPE'
2214 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2215 )
2216 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2217 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2218 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2219 ,p_ae_header_id => NULL
2220 );
2221 RETURN l_output_value;
2222 EXCEPTION
2223 WHEN xla_exceptions_pkg.application_exception THEN
2224 RAISE;
2225 WHEN OTHERS THEN
2226 xla_exceptions_pkg.raise_message
2227 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_16');
2228 END AcctDerRule_16;
2229 --
2230
2231 ---------------------------------------
2232 --
2233 -- PRIVATE FUNCTION
2234 -- AcctDerRule_17
2235 --
2236 ---------------------------------------
2237 FUNCTION AcctDerRule_17 (
2238 p_application_id IN NUMBER
2239 , p_ae_header_id IN NUMBER
2240 , p_side IN VARCHAR2
2241 --Collection Document Collection Endorsement Account
2242 , p_source_19 IN NUMBER
2243 , x_transaction_coa_id OUT NOCOPY NUMBER
2244 , x_accounting_coa_id OUT NOCOPY NUMBER
2245 , x_value_type_code OUT NOCOPY VARCHAR2
2246 )
2247 RETURN NUMBER
2248 IS
2249 l_component_type VARCHAR2(80) ;
2250 l_component_code VARCHAR2(30) ;
2251 l_component_type_code VARCHAR2(1) ;
2252 l_component_appl_id INTEGER ;
2253 l_amb_context_code VARCHAR2(30) ;
2254 l_log_module VARCHAR2(240) ;
2255 l_output_value NUMBER ;
2256 BEGIN
2257 IF g_log_enabled THEN
2258 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2259 END IF;
2260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2261 trace
2265 END IF;
2262 (p_msg => 'BEGIN of AcctDerRule_17'
2263 ,p_level => C_LEVEL_PROCEDURE
2264 ,p_module => l_log_module);
2266 --
2267 l_component_type := 'AMB_ADR';
2268 l_component_code := 'COLL_DOC_COLL_ENDRSMNT';
2269 l_component_type_code := 'S';
2270 l_component_appl_id := 222;
2271 l_amb_context_code := 'DEFAULT';
2272 x_transaction_coa_id := null;
2273 x_accounting_coa_id := null;
2274 --
2275
2276 --
2277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2278 trace
2279 (p_msg => 'END of AcctDerRule_17'
2280 ,p_level => C_LEVEL_PROCEDURE
2281 ,p_module => l_log_module);
2282 END IF;
2283 x_value_type_code := 'S';
2284 l_output_value := TO_NUMBER(TO_NUMBER(p_source_19));
2285 RETURN l_output_value;
2286
2287 --
2288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2289 trace
2290 (p_msg => 'END of AcctDerRule_17(invalid)'
2291 ,p_level => C_LEVEL_PROCEDURE
2292 ,p_module => l_log_module);
2293 END IF;
2294 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2295 x_value_type_code := null;
2296 l_output_value := null;
2297 xla_accounting_err_pkg.build_message
2298 (p_appli_s_name => 'XLA'
2299 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2300 ,p_token_1 => 'COMPONENT_NAME'
2301 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2302 l_component_type
2303 , l_component_code
2304 , l_component_type_code
2305 , l_component_appl_id
2306 , l_amb_context_code
2307 )
2308 ,p_token_2 => 'OWNER'
2309 ,p_value_2 => xla_lookups_pkg.get_meaning(
2310 'XLA_OWNER_TYPE'
2311 ,l_component_type_code
2312 )
2313 ,p_token_3 => 'PAD_NAME'
2314 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2315 ,p_token_4 => 'PAD_OWNER'
2316 ,p_value_4 => xla_lookups_pkg.get_meaning(
2317 'XLA_OWNER_TYPE'
2318 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2319 )
2320 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2321 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2322 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2323 ,p_ae_header_id => NULL
2324 );
2325 RETURN l_output_value;
2326 EXCEPTION
2327 WHEN xla_exceptions_pkg.application_exception THEN
2328 RAISE;
2329 WHEN OTHERS THEN
2330 xla_exceptions_pkg.raise_message
2331 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_17');
2332 END AcctDerRule_17;
2333 --
2334
2335 ---------------------------------------
2336 --
2337 -- PRIVATE FUNCTION
2338 -- AcctDerRule_18
2339 --
2340 ---------------------------------------
2341 FUNCTION AcctDerRule_18 (
2342 p_application_id IN NUMBER
2343 , p_ae_header_id IN NUMBER
2344 , p_side IN VARCHAR2
2345 --Collection Document Discount Endorsement Account
2346 , p_source_20 IN NUMBER
2347 , x_transaction_coa_id OUT NOCOPY NUMBER
2348 , x_accounting_coa_id OUT NOCOPY NUMBER
2349 , x_value_type_code OUT NOCOPY VARCHAR2
2350 )
2351 RETURN NUMBER
2352 IS
2353 l_component_type VARCHAR2(80) ;
2354 l_component_code VARCHAR2(30) ;
2355 l_component_type_code VARCHAR2(1) ;
2356 l_component_appl_id INTEGER ;
2357 l_amb_context_code VARCHAR2(30) ;
2358 l_log_module VARCHAR2(240) ;
2359 l_output_value NUMBER ;
2360 BEGIN
2361 IF g_log_enabled THEN
2362 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2363 END IF;
2364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2365 trace
2366 (p_msg => 'BEGIN of AcctDerRule_18'
2367 ,p_level => C_LEVEL_PROCEDURE
2368 ,p_module => l_log_module);
2369 END IF;
2370 --
2371 l_component_type := 'AMB_ADR';
2372 l_component_code := 'COLL_DOC_DISC_ENDRSMNT';
2373 l_component_type_code := 'S';
2374 l_component_appl_id := 222;
2375 l_amb_context_code := 'DEFAULT';
2376 x_transaction_coa_id := null;
2377 x_accounting_coa_id := null;
2378 --
2379
2380 --
2381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2382 trace
2383 (p_msg => 'END of AcctDerRule_18'
2384 ,p_level => C_LEVEL_PROCEDURE
2385 ,p_module => l_log_module);
2386 END IF;
2387 x_value_type_code := 'S';
2388 l_output_value := TO_NUMBER(TO_NUMBER(p_source_20));
2389 RETURN l_output_value;
2390
2391 --
2395 ,p_level => C_LEVEL_PROCEDURE
2392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2393 trace
2394 (p_msg => 'END of AcctDerRule_18(invalid)'
2396 ,p_module => l_log_module);
2397 END IF;
2398 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2399 x_value_type_code := null;
2400 l_output_value := null;
2401 xla_accounting_err_pkg.build_message
2402 (p_appli_s_name => 'XLA'
2403 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2404 ,p_token_1 => 'COMPONENT_NAME'
2405 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2406 l_component_type
2407 , l_component_code
2408 , l_component_type_code
2409 , l_component_appl_id
2410 , l_amb_context_code
2411 )
2412 ,p_token_2 => 'OWNER'
2413 ,p_value_2 => xla_lookups_pkg.get_meaning(
2414 'XLA_OWNER_TYPE'
2415 ,l_component_type_code
2416 )
2417 ,p_token_3 => 'PAD_NAME'
2418 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2419 ,p_token_4 => 'PAD_OWNER'
2420 ,p_value_4 => xla_lookups_pkg.get_meaning(
2421 'XLA_OWNER_TYPE'
2422 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2423 )
2424 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2425 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2426 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2427 ,p_ae_header_id => NULL
2428 );
2429 RETURN l_output_value;
2430 EXCEPTION
2431 WHEN xla_exceptions_pkg.application_exception THEN
2432 RAISE;
2433 WHEN OTHERS THEN
2434 xla_exceptions_pkg.raise_message
2435 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_18');
2436 END AcctDerRule_18;
2437 --
2438
2439 ---------------------------------------
2440 --
2441 -- PRIVATE FUNCTION
2442 -- AcctDerRule_19
2443 --
2444 ---------------------------------------
2445 FUNCTION AcctDerRule_19 (
2446 p_application_id IN NUMBER
2447 , p_ae_header_id IN NUMBER
2448 , p_side IN VARCHAR2
2449 --Collection Document Factoring Charges Account
2450 , p_source_21 IN NUMBER
2451 , x_transaction_coa_id OUT NOCOPY NUMBER
2452 , x_accounting_coa_id OUT NOCOPY NUMBER
2453 , x_value_type_code OUT NOCOPY VARCHAR2
2454 )
2455 RETURN NUMBER
2456 IS
2457 l_component_type VARCHAR2(80) ;
2458 l_component_code VARCHAR2(30) ;
2459 l_component_type_code VARCHAR2(1) ;
2460 l_component_appl_id INTEGER ;
2461 l_amb_context_code VARCHAR2(30) ;
2462 l_log_module VARCHAR2(240) ;
2463 l_output_value NUMBER ;
2464 BEGIN
2465 IF g_log_enabled THEN
2466 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2467 END IF;
2468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2469 trace
2470 (p_msg => 'BEGIN of AcctDerRule_19'
2471 ,p_level => C_LEVEL_PROCEDURE
2472 ,p_module => l_log_module);
2473 END IF;
2474 --
2475 l_component_type := 'AMB_ADR';
2476 l_component_code := 'COLL_DOC_FACTORING_CHARGES';
2477 l_component_type_code := 'S';
2478 l_component_appl_id := 222;
2479 l_amb_context_code := 'DEFAULT';
2480 x_transaction_coa_id := null;
2481 x_accounting_coa_id := null;
2482 --
2483
2484 --
2485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2486 trace
2487 (p_msg => 'END of AcctDerRule_19'
2488 ,p_level => C_LEVEL_PROCEDURE
2489 ,p_module => l_log_module);
2490 END IF;
2491 x_value_type_code := 'S';
2492 l_output_value := TO_NUMBER(TO_NUMBER(p_source_21));
2493 RETURN l_output_value;
2494
2495 --
2496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2497 trace
2498 (p_msg => 'END of AcctDerRule_19(invalid)'
2499 ,p_level => C_LEVEL_PROCEDURE
2500 ,p_module => l_log_module);
2501 END IF;
2502 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2503 x_value_type_code := null;
2504 l_output_value := null;
2505 xla_accounting_err_pkg.build_message
2506 (p_appli_s_name => 'XLA'
2507 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2508 ,p_token_1 => 'COMPONENT_NAME'
2509 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2510 l_component_type
2511 , l_component_code
2512 , l_component_type_code
2513 , l_component_appl_id
2517 ,p_value_2 => xla_lookups_pkg.get_meaning(
2514 , l_amb_context_code
2515 )
2516 ,p_token_2 => 'OWNER'
2518 'XLA_OWNER_TYPE'
2519 ,l_component_type_code
2520 )
2521 ,p_token_3 => 'PAD_NAME'
2522 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2523 ,p_token_4 => 'PAD_OWNER'
2524 ,p_value_4 => xla_lookups_pkg.get_meaning(
2525 'XLA_OWNER_TYPE'
2526 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2527 )
2528 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2529 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2530 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2531 ,p_ae_header_id => NULL
2532 );
2533 RETURN l_output_value;
2534 EXCEPTION
2535 WHEN xla_exceptions_pkg.application_exception THEN
2536 RAISE;
2537 WHEN OTHERS THEN
2538 xla_exceptions_pkg.raise_message
2539 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_19');
2540 END AcctDerRule_19;
2541 --
2542
2543 ---------------------------------------
2544 --
2545 -- PRIVATE FUNCTION
2546 -- AcctDerRule_20
2547 --
2548 ---------------------------------------
2549 FUNCTION AcctDerRule_20 (
2550 p_application_id IN NUMBER
2551 , p_ae_header_id IN NUMBER
2552 , p_side IN VARCHAR2
2553 --Distribution GL Account
2554 , p_source_22 IN NUMBER
2555 , x_transaction_coa_id OUT NOCOPY NUMBER
2556 , x_accounting_coa_id OUT NOCOPY NUMBER
2557 , x_value_type_code OUT NOCOPY VARCHAR2
2558 )
2559 RETURN NUMBER
2560 IS
2561 l_component_type VARCHAR2(80) ;
2562 l_component_code VARCHAR2(30) ;
2563 l_component_type_code VARCHAR2(1) ;
2564 l_component_appl_id INTEGER ;
2565 l_amb_context_code VARCHAR2(30) ;
2566 l_log_module VARCHAR2(240) ;
2567 l_output_value NUMBER ;
2568 BEGIN
2569 IF g_log_enabled THEN
2570 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2571 END IF;
2572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2573 trace
2574 (p_msg => 'BEGIN of AcctDerRule_20'
2575 ,p_level => C_LEVEL_PROCEDURE
2576 ,p_module => l_log_module);
2577 END IF;
2578 --
2579 l_component_type := 'AMB_ADR';
2580 l_component_code := 'DIST_CCID';
2581 l_component_type_code := 'S';
2582 l_component_appl_id := 222;
2583 l_amb_context_code := 'DEFAULT';
2584 x_transaction_coa_id := null;
2585 x_accounting_coa_id := null;
2586 --
2587
2588 --
2589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2590 trace
2591 (p_msg => 'END of AcctDerRule_20'
2592 ,p_level => C_LEVEL_PROCEDURE
2593 ,p_module => l_log_module);
2594 END IF;
2595 x_value_type_code := 'S';
2596 l_output_value := TO_NUMBER(TO_NUMBER(p_source_22));
2597 RETURN l_output_value;
2598
2599 --
2600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2601 trace
2602 (p_msg => 'END of AcctDerRule_20(invalid)'
2603 ,p_level => C_LEVEL_PROCEDURE
2604 ,p_module => l_log_module);
2605 END IF;
2606 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2607 x_value_type_code := null;
2608 l_output_value := null;
2609 xla_accounting_err_pkg.build_message
2610 (p_appli_s_name => 'XLA'
2611 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2612 ,p_token_1 => 'COMPONENT_NAME'
2613 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2614 l_component_type
2615 , l_component_code
2616 , l_component_type_code
2617 , l_component_appl_id
2618 , l_amb_context_code
2619 )
2620 ,p_token_2 => 'OWNER'
2621 ,p_value_2 => xla_lookups_pkg.get_meaning(
2622 'XLA_OWNER_TYPE'
2623 ,l_component_type_code
2624 )
2625 ,p_token_3 => 'PAD_NAME'
2626 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2627 ,p_token_4 => 'PAD_OWNER'
2628 ,p_value_4 => xla_lookups_pkg.get_meaning(
2629 'XLA_OWNER_TYPE'
2630 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2634 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2631 )
2632 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2633 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2635 ,p_ae_header_id => NULL
2636 );
2637 RETURN l_output_value;
2638 EXCEPTION
2639 WHEN xla_exceptions_pkg.application_exception THEN
2640 RAISE;
2641 WHEN OTHERS THEN
2642 xla_exceptions_pkg.raise_message
2643 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_20');
2644 END AcctDerRule_20;
2645 --
2646
2647 ---------------------------------------
2648 --
2649 -- PRIVATE FUNCTION
2650 -- AcctDerRule_21
2651 --
2652 ---------------------------------------
2653 FUNCTION AcctDerRule_21 (
2654 p_application_id IN NUMBER
2655 , p_ae_header_id IN NUMBER
2656 , p_side IN VARCHAR2
2657 --Remittance Bank Account Unapplied Account
2658 , p_source_23 IN NUMBER
2659 , x_transaction_coa_id OUT NOCOPY NUMBER
2660 , x_accounting_coa_id OUT NOCOPY NUMBER
2661 , x_value_type_code OUT NOCOPY VARCHAR2
2662 )
2663 RETURN NUMBER
2664 IS
2665 l_component_type VARCHAR2(80) ;
2666 l_component_code VARCHAR2(30) ;
2667 l_component_type_code VARCHAR2(1) ;
2668 l_component_appl_id INTEGER ;
2669 l_amb_context_code VARCHAR2(30) ;
2670 l_log_module VARCHAR2(240) ;
2671 l_output_value NUMBER ;
2672 BEGIN
2673 IF g_log_enabled THEN
2674 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
2675 END IF;
2676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2677 trace
2678 (p_msg => 'BEGIN of AcctDerRule_21'
2679 ,p_level => C_LEVEL_PROCEDURE
2680 ,p_module => l_log_module);
2681 END IF;
2682 --
2683 l_component_type := 'AMB_ADR';
2684 l_component_code := 'RMT_BNK_UNAPP_CCID';
2685 l_component_type_code := 'S';
2686 l_component_appl_id := 222;
2687 l_amb_context_code := 'DEFAULT';
2688 x_transaction_coa_id := null;
2689 x_accounting_coa_id := null;
2690 --
2691
2692 --
2693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2694 trace
2695 (p_msg => 'END of AcctDerRule_21'
2696 ,p_level => C_LEVEL_PROCEDURE
2697 ,p_module => l_log_module);
2698 END IF;
2699 x_value_type_code := 'S';
2700 l_output_value := TO_NUMBER(TO_NUMBER(p_source_23));
2701 RETURN l_output_value;
2702
2703 --
2704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2705 trace
2706 (p_msg => 'END of AcctDerRule_21(invalid)'
2707 ,p_level => C_LEVEL_PROCEDURE
2708 ,p_module => l_log_module);
2709 END IF;
2710 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2711 x_value_type_code := null;
2712 l_output_value := null;
2713 xla_accounting_err_pkg.build_message
2714 (p_appli_s_name => 'XLA'
2715 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2716 ,p_token_1 => 'COMPONENT_NAME'
2717 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2718 l_component_type
2719 , l_component_code
2720 , l_component_type_code
2721 , l_component_appl_id
2722 , l_amb_context_code
2723 )
2724 ,p_token_2 => 'OWNER'
2725 ,p_value_2 => xla_lookups_pkg.get_meaning(
2726 'XLA_OWNER_TYPE'
2727 ,l_component_type_code
2728 )
2732 ,p_value_4 => xla_lookups_pkg.get_meaning(
2729 ,p_token_3 => 'PAD_NAME'
2730 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2731 ,p_token_4 => 'PAD_OWNER'
2733 'XLA_OWNER_TYPE'
2734 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2735 )
2736 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2737 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2738 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2739 ,p_ae_header_id => NULL
2740 );
2741 RETURN l_output_value;
2742 EXCEPTION
2743 WHEN xla_exceptions_pkg.application_exception THEN
2744 RAISE;
2745 WHEN OTHERS THEN
2746 xla_exceptions_pkg.raise_message
2747 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_21');
2748 END AcctDerRule_21;
2749 --
2750
2751 ---------------------------------------
2752 --
2753 -- PRIVATE FUNCTION
2754 -- AcctDerRule_22
2755 --
2756 ---------------------------------------
2757 FUNCTION AcctDerRule_22 (
2758 p_application_id IN NUMBER
2759 , p_ae_header_id IN NUMBER
2760 , p_side IN VARCHAR2
2761 --System Gain Account
2762 , p_source_24 IN NUMBER
2763 , x_transaction_coa_id OUT NOCOPY NUMBER
2764 , x_accounting_coa_id OUT NOCOPY NUMBER
2765 , x_value_type_code OUT NOCOPY VARCHAR2
2766 )
2767 RETURN NUMBER
2768 IS
2769 l_component_type VARCHAR2(80) ;
2770 l_component_code VARCHAR2(30) ;
2771 l_component_type_code VARCHAR2(1) ;
2772 l_component_appl_id INTEGER ;
2773 l_amb_context_code VARCHAR2(30) ;
2774 l_log_module VARCHAR2(240) ;
2775 l_output_value NUMBER ;
2776 BEGIN
2777 IF g_log_enabled THEN
2778 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
2779 END IF;
2780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2781 trace
2782 (p_msg => 'BEGIN of AcctDerRule_22'
2783 ,p_level => C_LEVEL_PROCEDURE
2784 ,p_module => l_log_module);
2785 END IF;
2786 --
2787 l_component_type := 'AMB_ADR';
2788 l_component_code := 'SYS_GAIN_CCID';
2789 l_component_type_code := 'S';
2790 l_component_appl_id := 222;
2791 l_amb_context_code := 'DEFAULT';
2792 x_transaction_coa_id := null;
2793 x_accounting_coa_id := null;
2794 --
2795
2796 --
2797 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2798 trace
2799 (p_msg => 'END of AcctDerRule_22'
2800 ,p_level => C_LEVEL_PROCEDURE
2801 ,p_module => l_log_module);
2802 END IF;
2803 x_value_type_code := 'S';
2804 l_output_value := TO_NUMBER(TO_NUMBER(p_source_24));
2805 RETURN l_output_value;
2806
2807 --
2808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2809 trace
2810 (p_msg => 'END of AcctDerRule_22(invalid)'
2811 ,p_level => C_LEVEL_PROCEDURE
2812 ,p_module => l_log_module);
2813 END IF;
2814 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2815 x_value_type_code := null;
2816 l_output_value := null;
2817 xla_accounting_err_pkg.build_message
2818 (p_appli_s_name => 'XLA'
2819 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2820 ,p_token_1 => 'COMPONENT_NAME'
2821 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2822 l_component_type
2823 , l_component_code
2824 , l_component_type_code
2825 , l_component_appl_id
2826 , l_amb_context_code
2827 )
2828 ,p_token_2 => 'OWNER'
2829 ,p_value_2 => xla_lookups_pkg.get_meaning(
2830 'XLA_OWNER_TYPE'
2831 ,l_component_type_code
2832 )
2833 ,p_token_3 => 'PAD_NAME'
2834 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2835 ,p_token_4 => 'PAD_OWNER'
2836 ,p_value_4 => xla_lookups_pkg.get_meaning(
2837 'XLA_OWNER_TYPE'
2838 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2839 )
2840 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2841 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2845 RETURN l_output_value;
2842 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2843 ,p_ae_header_id => NULL
2844 );
2846 EXCEPTION
2850 xla_exceptions_pkg.raise_message
2847 WHEN xla_exceptions_pkg.application_exception THEN
2848 RAISE;
2849 WHEN OTHERS THEN
2851 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_22');
2852 END AcctDerRule_22;
2853 --
2854
2855 ---------------------------------------
2856 --
2857 -- PRIVATE FUNCTION
2858 -- AcctDerRule_23
2859 --
2860 ---------------------------------------
2861 FUNCTION AcctDerRule_23 (
2862 p_application_id IN NUMBER
2863 , p_ae_header_id IN NUMBER
2864 , p_side IN VARCHAR2
2865 --System Loss Account
2866 , p_source_25 IN NUMBER
2867 , x_transaction_coa_id OUT NOCOPY NUMBER
2868 , x_accounting_coa_id OUT NOCOPY NUMBER
2869 , x_value_type_code OUT NOCOPY VARCHAR2
2870 )
2871 RETURN NUMBER
2872 IS
2873 l_component_type VARCHAR2(80) ;
2874 l_component_code VARCHAR2(30) ;
2875 l_component_type_code VARCHAR2(1) ;
2876 l_component_appl_id INTEGER ;
2877 l_amb_context_code VARCHAR2(30) ;
2878 l_log_module VARCHAR2(240) ;
2879 l_output_value NUMBER ;
2880 BEGIN
2881 IF g_log_enabled THEN
2882 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
2883 END IF;
2884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2885 trace
2886 (p_msg => 'BEGIN of AcctDerRule_23'
2887 ,p_level => C_LEVEL_PROCEDURE
2888 ,p_module => l_log_module);
2889 END IF;
2890 --
2891 l_component_type := 'AMB_ADR';
2892 l_component_code := 'SYS_LOSS_CCID';
2893 l_component_type_code := 'S';
2894 l_component_appl_id := 222;
2895 l_amb_context_code := 'DEFAULT';
2896 x_transaction_coa_id := null;
2897 x_accounting_coa_id := null;
2898 --
2899
2900 --
2901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2902 trace
2903 (p_msg => 'END of AcctDerRule_23'
2904 ,p_level => C_LEVEL_PROCEDURE
2905 ,p_module => l_log_module);
2906 END IF;
2907 x_value_type_code := 'S';
2908 l_output_value := TO_NUMBER(TO_NUMBER(p_source_25));
2909 RETURN l_output_value;
2910
2911 --
2912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2913 trace
2914 (p_msg => 'END of AcctDerRule_23(invalid)'
2915 ,p_level => C_LEVEL_PROCEDURE
2916 ,p_module => l_log_module);
2917 END IF;
2918 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2919 x_value_type_code := null;
2920 l_output_value := null;
2921 xla_accounting_err_pkg.build_message
2922 (p_appli_s_name => 'XLA'
2923 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2924 ,p_token_1 => 'COMPONENT_NAME'
2925 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2926 l_component_type
2927 , l_component_code
2928 , l_component_type_code
2929 , l_component_appl_id
2930 , l_amb_context_code
2931 )
2932 ,p_token_2 => 'OWNER'
2933 ,p_value_2 => xla_lookups_pkg.get_meaning(
2934 'XLA_OWNER_TYPE'
2938 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2935 ,l_component_type_code
2936 )
2937 ,p_token_3 => 'PAD_NAME'
2939 ,p_token_4 => 'PAD_OWNER'
2940 ,p_value_4 => xla_lookups_pkg.get_meaning(
2941 'XLA_OWNER_TYPE'
2942 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2943 )
2944 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2945 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2946 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2947 ,p_ae_header_id => NULL
2948 );
2949 RETURN l_output_value;
2950 EXCEPTION
2951 WHEN xla_exceptions_pkg.application_exception THEN
2952 RAISE;
2953 WHEN OTHERS THEN
2954 xla_exceptions_pkg.raise_message
2955 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_23');
2956 END AcctDerRule_23;
2957 --
2958
2959 ---------------------------------------
2960 --
2961 -- PRIVATE FUNCTION
2962 -- AcctDerRule_24
2963 --
2964 ---------------------------------------
2965 FUNCTION AcctDerRule_24 (
2966 p_application_id IN NUMBER
2967 , p_ae_header_id IN NUMBER
2968 , p_side IN VARCHAR2
2969 --Transaction Distribution GL Account
2970 , p_source_26 IN NUMBER
2971 , x_transaction_coa_id OUT NOCOPY NUMBER
2972 , x_accounting_coa_id OUT NOCOPY NUMBER
2973 , x_value_type_code OUT NOCOPY VARCHAR2
2974 )
2975 RETURN NUMBER
2976 IS
2977 l_component_type VARCHAR2(80) ;
2978 l_component_code VARCHAR2(30) ;
2979 l_component_type_code VARCHAR2(1) ;
2980 l_component_appl_id INTEGER ;
2981 l_amb_context_code VARCHAR2(30) ;
2982 l_log_module VARCHAR2(240) ;
2983 l_output_value NUMBER ;
2984 BEGIN
2985 IF g_log_enabled THEN
2986 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
2987 END IF;
2988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2989 trace
2990 (p_msg => 'BEGIN of AcctDerRule_24'
2991 ,p_level => C_LEVEL_PROCEDURE
2992 ,p_module => l_log_module);
2993 END IF;
2994 --
2995 l_component_type := 'AMB_ADR';
2996 l_component_code := 'TRX_DIST_CCID';
2997 l_component_type_code := 'S';
2998 l_component_appl_id := 222;
2999 l_amb_context_code := 'DEFAULT';
3000 x_transaction_coa_id := null;
3001 x_accounting_coa_id := null;
3002 --
3003
3004 --
3005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3006 trace
3010 END IF;
3007 (p_msg => 'END of AcctDerRule_24'
3008 ,p_level => C_LEVEL_PROCEDURE
3009 ,p_module => l_log_module);
3011 x_value_type_code := 'S';
3012 l_output_value := TO_NUMBER(TO_NUMBER(p_source_26));
3013 RETURN l_output_value;
3014
3015 --
3016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3017 trace
3018 (p_msg => 'END of AcctDerRule_24(invalid)'
3019 ,p_level => C_LEVEL_PROCEDURE
3020 ,p_module => l_log_module);
3021 END IF;
3022 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3023 x_value_type_code := null;
3024 l_output_value := null;
3025 xla_accounting_err_pkg.build_message
3026 (p_appli_s_name => 'XLA'
3027 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3028 ,p_token_1 => 'COMPONENT_NAME'
3029 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3030 l_component_type
3031 , l_component_code
3032 , l_component_type_code
3033 , l_component_appl_id
3034 , l_amb_context_code
3035 )
3036 ,p_token_2 => 'OWNER'
3037 ,p_value_2 => xla_lookups_pkg.get_meaning(
3038 'XLA_OWNER_TYPE'
3039 ,l_component_type_code
3040 )
3044 ,p_value_4 => xla_lookups_pkg.get_meaning(
3041 ,p_token_3 => 'PAD_NAME'
3042 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3043 ,p_token_4 => 'PAD_OWNER'
3045 'XLA_OWNER_TYPE'
3046 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3047 )
3048 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3049 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3050 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3051 ,p_ae_header_id => NULL
3052 );
3053 RETURN l_output_value;
3054 EXCEPTION
3055 WHEN xla_exceptions_pkg.application_exception THEN
3056 RAISE;
3057 WHEN OTHERS THEN
3058 xla_exceptions_pkg.raise_message
3059 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctDerRule_24');
3060 END AcctDerRule_24;
3061 --
3062
3063 ---------------------------------------
3064 --
3065 -- PRIVATE FUNCTION
3066 -- AcctLineType_25
3067 --
3068 ---------------------------------------
3069 PROCEDURE AcctLineType_25 (
3070 p_application_id IN NUMBER
3071 ,p_event_id IN NUMBER
3072 ,p_calculate_acctd_flag IN VARCHAR2
3073 ,p_calculate_g_l_flag IN VARCHAR2
3074 ,p_actual_flag IN OUT VARCHAR2
3075 ,p_balance_type_code OUT VARCHAR2
3076 ,p_gain_or_loss_ref OUT VARCHAR2
3077
3078 --Distribution GL Account
3079 , p_source_22 IN NUMBER
3080 --Distribution Source Type
3081 , p_source_27 IN VARCHAR2
3082 --Receivable Activity Type
3083 , p_source_28 IN VARCHAR2
3084 --Distribution Line Identifier
3085 , p_source_29 IN NUMBER
3086 --Distribution Type
3087 , p_source_30 IN VARCHAR2
3088 --Entered Amount
3089 , p_source_31 IN NUMBER
3090 --Currency Code
3091 , p_source_32 IN VARCHAR2
3092 --Exchange Date
3093 , p_source_33 IN DATE
3094 --Exchange Rate
3095 , p_source_34 IN NUMBER
3096 --Exchange Rate Type
3097 , p_source_35 IN VARCHAR2
3098 --Applied To Document Accounting Amount
3099 , p_source_36 IN NUMBER
3100 --Bill To Customer Account Identifier
3101 , p_source_37 IN NUMBER
3102 --Bill To Customer Site Use Identifier
3103 , p_source_38 IN NUMBER
3104 --SLA Party Type
3105 , p_source_39 IN VARCHAR2
3106 )
3107 IS
3108
3109 l_component_type VARCHAR2(80);
3110 l_component_code VARCHAR2(30);
3111 l_component_type_code VARCHAR2(1);
3112 l_component_appl_id INTEGER;
3113 l_amb_context_code VARCHAR2(30);
3114 l_entity_code VARCHAR2(30);
3115 l_event_class_code VARCHAR2(30);
3116 l_ae_header_id NUMBER;
3117 l_event_type_code VARCHAR2(30);
3118 l_line_definition_code VARCHAR2(30);
3119 l_line_definition_owner_code VARCHAR2(1);
3120 --
3121 -- adr variables
3122 l_segment VARCHAR2(30);
3123 l_ccid NUMBER;
3124 l_adr_transaction_coa_id NUMBER;
3125 l_adr_accounting_coa_id NUMBER;
3126 l_adr_flexfield_segment_code VARCHAR2(30);
3127 l_adr_flex_value_set_id NUMBER;
3128 l_adr_value_type_code VARCHAR2(30);
3129 l_adr_value_combination_id NUMBER;
3130 l_adr_value_segment_code VARCHAR2(30);
3131
3132 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3133 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3134 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3135 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3136
3137 -- 4262811 Variables ------------------------------------------------------------------------------------------
3138 l_entered_amt_idx NUMBER;
3139 l_accted_amt_idx NUMBER;
3140 l_acc_rev_flag VARCHAR2(1);
3141 l_accrual_line_num NUMBER;
3142 l_tmp_amt NUMBER;
3143 l_acc_rev_natural_side_code VARCHAR2(1);
3144
3145 l_num_entries NUMBER;
3146 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3147 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3148 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3149 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3150 l_recog_line_1 NUMBER;
3151 l_recog_line_2 NUMBER;
3152
3153 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3154 l_bflow_applied_to_amt NUMBER; -- 5132302
3155 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3156
3157 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3158
3159 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3160 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3161
3162 ---------------------------------------------------------------------------------------------------------------
3163
3164
3165 --
3166 -- bulk performance
3167 --
3171
3168 l_balance_type_code VARCHAR2(1);
3169 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3170 l_log_module VARCHAR2(240);
3172 --
3173 -- Upgrade strategy
3174 --
3175 l_actual_upg_option VARCHAR2(1);
3176 l_enc_upg_option VARCHAR2(1);
3177
3178 --
3179 BEGIN
3180 --
3181 IF g_log_enabled THEN
3182 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
3183 END IF;
3184 --
3185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3186
3187 trace
3188 (p_msg => 'BEGIN of AcctLineType_25'
3189 ,p_level => C_LEVEL_PROCEDURE
3190 ,p_module => l_log_module);
3191
3192 END IF;
3193 --
3194 l_component_type := 'AMB_JLT';
3195 l_component_code := 'ADJ';
3196 l_component_type_code := 'S';
3197 l_component_appl_id := 222;
3198 l_amb_context_code := 'DEFAULT';
3199 l_entity_code := 'ADJUSTMENTS';
3200 l_event_class_code := 'ADJUSTMENT';
3201 l_event_type_code := 'ADJUSTMENT_ALL';
3202 l_line_definition_owner_code := 'S';
3203 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
3204 --
3205 l_balance_type_code := 'A';
3206 l_segment := NULL;
3207 l_ccid := NULL;
3208 l_adr_transaction_coa_id := NULL;
3209 l_adr_accounting_coa_id := NULL;
3210 l_adr_flexfield_segment_code := NULL;
3211 l_adr_flex_value_set_id := NULL;
3212 l_adr_value_type_code := NULL;
3213 l_adr_value_combination_id := NULL;
3214 l_adr_value_segment_code := NULL;
3215
3216 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3217 l_bflow_class_code := ''; -- 4219869 Business Flow
3218 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3219 l_budgetary_control_flag := 'N';
3220
3221 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3222 l_bflow_applied_to_amt := NULL; -- 5132302
3223 l_entered_amt_idx := NULL; -- 4262811
3224 l_accted_amt_idx := NULL; -- 4262811
3225 l_acc_rev_flag := NULL; -- 4262811
3226 l_accrual_line_num := NULL; -- 4262811
3227 l_tmp_amt := NULL; -- 4262811
3228 --
3229
3230 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3231 l_balance_type_code <> 'B' THEN
3232 IF NVL(p_source_27,'
3233 ') = 'ADJ' AND
3234 NVL(p_source_28,'
3235 ') <> 'ENDORSEMENT'
3236 THEN
3237
3238 --
3239 XLA_AE_LINES_PKG.SetNewLine;
3240
3241 p_balance_type_code := l_balance_type_code;
3242 -- set the flag so later we will know whether the gain loss line needs to be created
3243
3244 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3245 p_actual_flag :='A';
3246 END IF;
3247
3248 --
3249 -- bulk performance
3250 --
3251 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3252 p_header_num => 0); -- 4262811
3253 --
3254 -- set accounting line options
3255 --
3256 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3257 p_natural_side_code => 'C'
3258 , p_gain_or_loss_flag => 'N'
3259 , p_gl_transfer_mode_code => 'S'
3260 , p_acct_entry_type_code => 'A'
3261 , p_switch_side_flag => 'Y'
3262 , p_merge_duplicate_code => 'A'
3263 );
3264 --
3265 l_acc_rev_natural_side_code := 'D'; -- 4262811
3266 --
3267 --
3268 -- set accounting line type info
3269 --
3270 xla_ae_lines_pkg.SetAcctLineType
3271 (p_component_type => l_component_type
3272 ,p_event_type_code => l_event_type_code
3273 ,p_line_definition_owner_code => l_line_definition_owner_code
3274 ,p_line_definition_code => l_line_definition_code
3275 ,p_accounting_line_code => l_component_code
3276 ,p_accounting_line_type_code => l_component_type_code
3277 ,p_accounting_line_appl_id => l_component_appl_id
3278 ,p_amb_context_code => l_amb_context_code
3279 ,p_entity_code => l_entity_code
3280 ,p_event_class_code => l_event_class_code);
3281 --
3282 -- set accounting class
3283 --
3284 xla_ae_lines_pkg.SetAcctClass(
3285 p_accounting_class_code => 'ADJ'
3286 , p_ae_header_id => l_ae_header_id
3287 );
3288
3289 --
3290 -- set rounding class
3291 --
3292 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3293 'RECEIVABLE';
3294
3295 --
3296 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3297 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3298 --
3299 -- bulk performance
3300 --
3301 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3302
3303 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3304 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3305
3306 -- 4955764
3310 -- 4458381 Public Sector Enh
3307 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3308 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3309
3311
3312 --
3313 -- set accounting attributes for the line type
3314 --
3315 l_entered_amt_idx := 3;
3316 l_accted_amt_idx := 8;
3317 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3318 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
3319 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
3320 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
3321 l_rec_acct_attrs.array_char_value(2) := p_source_30;
3322 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
3323 l_rec_acct_attrs.array_num_value(3) := p_source_31;
3324 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
3325 l_rec_acct_attrs.array_char_value(4) := p_source_32;
3326 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
3327 l_rec_acct_attrs.array_date_value(5) := p_source_33;
3328 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
3329 l_rec_acct_attrs.array_num_value(6) := p_source_34;
3330 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
3331 l_rec_acct_attrs.array_char_value(7) := p_source_35;
3332 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
3333 l_rec_acct_attrs.array_num_value(8) := p_source_36;
3334 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
3335 l_rec_acct_attrs.array_num_value(9) := p_source_37;
3336 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
3337 l_rec_acct_attrs.array_num_value(10) := p_source_38;
3338 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
3339 l_rec_acct_attrs.array_char_value(11) := p_source_39;
3340
3341 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3342 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3343
3344 ---------------------------------------------------------------------------------------------------------------
3345 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3346 ---------------------------------------------------------------------------------------------------------------
3347 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3348
3349 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3350 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3351
3352 IF xla_accounting_cache_pkg.GetValueChar
3353 (p_source_code => 'LEDGER_CATEGORY_CODE'
3354 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3355 AND l_bflow_method_code = 'PRIOR_ENTRY'
3356 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3357 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3358 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3359 )
3360 THEN
3361 xla_ae_lines_pkg.BflowUpgEntry
3362 (p_business_method_code => l_bflow_method_code
3363 ,p_business_class_code => l_bflow_class_code
3364 ,p_balance_type => l_balance_type_code);
3365 ELSE
3366 NULL;
3367 -- No business flow processing for business flow method of NONE.
3368 END IF;
3369
3370 --
3371 -- call analytical criteria
3372 --
3373
3374 --
3375 -- call description
3376 --
3377 -- No description or it is inherited.
3378 --
3379 -- call ADRs
3380 -- Bug 4922099
3381 --
3382 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3383 (NVL(l_actual_upg_option, 'N') = 'O') OR
3384 (NVL(l_enc_upg_option, 'N') = 'O')
3385 )
3386 THEN
3387 NULL;
3388 --
3389 --
3390
3391 l_ccid := AcctDerRule_20(
3392 p_application_id => p_application_id
3393 , p_ae_header_id => l_ae_header_id
3394 , p_source_22 => p_source_22
3395 , x_transaction_coa_id => l_adr_transaction_coa_id
3396 , x_accounting_coa_id => l_adr_accounting_coa_id
3397 , x_value_type_code => l_adr_value_type_code
3398 , p_side => 'NA'
3399 );
3400
3401 xla_ae_lines_pkg.set_ccid(
3402 p_code_combination_id => l_ccid
3403 , p_value_type_code => l_adr_value_type_code
3404 , p_transaction_coa_id => l_adr_transaction_coa_id
3405 , p_accounting_coa_id => l_adr_accounting_coa_id
3406 , p_adr_code => 'DIST_CCID'
3407 , p_adr_type_code => 'S'
3408 , p_component_type => l_component_type
3409 , p_component_code => l_component_code
3410 , p_component_type_code => l_component_type_code
3411 , p_component_appl_id => l_component_appl_id
3412 , p_amb_context_code => l_amb_context_code
3413 , p_side => 'NA'
3414 );
3415
3416
3417 --
3418 --
3419 END IF;
3420 --
3421 -- Bug 4922099
3422 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3423 (NVL(l_enc_upg_option, 'N') = 'O')
3424 ) AND
3425 (l_bflow_method_code = 'PRIOR_ENTRY')
3426 )
3427 THEN
3428 IF
3429 --
3430 1 = 2
3431 --
3432 THEN
3433 xla_accounting_err_pkg.build_message
3437 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3434 (p_appli_s_name => 'XLA'
3435 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3436 ,p_token_1 => 'LINE_NUMBER'
3438 ,p_token_2 => 'LINE_TYPE_NAME'
3439 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3440 l_component_type
3441 ,l_component_code
3442 ,l_component_type_code
3443 ,l_component_appl_id
3444 ,l_amb_context_code
3445 ,l_entity_code
3446 ,l_event_class_code
3447 )
3448 ,p_token_3 => 'OWNER'
3449 ,p_value_3 => xla_lookups_pkg.get_meaning(
3450 p_lookup_type => 'XLA_OWNER_TYPE'
3454 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3451 ,p_lookup_code => l_component_type_code
3452 )
3453 ,p_token_4 => 'PRODUCT_NAME'
3455 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3456 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3457 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3458 ,p_ae_header_id => NULL
3459 );
3460
3461 IF (C_LEVEL_ERROR>= g_log_level) THEN
3462 trace
3463 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3464 ,p_level => C_LEVEL_ERROR
3465 ,p_module => l_log_module);
3466 END IF;
3467 END IF;
3468 END IF;
3469 --
3470 --
3471 ------------------------------------------------------------------------------------------------
3472 -- 4219869 Business Flow
3473 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3474 -- Prior Entry. Currently, the following code is always generated.
3475 ------------------------------------------------------------------------------------------------
3476 XLA_AE_LINES_PKG.ValidateCurrentLine;
3477
3478 ------------------------------------------------------------------------------------
3479 -- 4219869 Business Flow
3480 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3481 ------------------------------------------------------------------------------------
3482 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3483
3484 ----------------------------------------------------------------------------------
3485 -- 4219869 Business Flow
3486 -- Update journal entry status -- Need to generate this within IF <condition>
3487 ----------------------------------------------------------------------------------
3488 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3489 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3490 ,p_balance_type_code => l_balance_type_code
3491 );
3492
3493 -------------------------------------------------------------------------------------------
3494 -- 4262811 - Generate the Accrual Reversal lines
3495 -------------------------------------------------------------------------------------------
3496 BEGIN
3497 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3498 (g_array_event(p_event_id).array_value_num('header_index'));
3499 IF l_acc_rev_flag IS NULL THEN
3500 l_acc_rev_flag := 'N';
3501 END IF;
3502 EXCEPTION
3503 WHEN OTHERS THEN
3504 l_acc_rev_flag := 'N';
3505 END;
3506 --
3510 -- To allow MPA report to determine if it should generate report process
3507 IF (l_acc_rev_flag = 'Y') THEN
3508
3509 -- 4645092 ------------------------------------------------------------------------------
3511 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3512 ------------------------------------------------------------------------------------------
3513
3514 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3515 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3516 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3517 -- call ADRs
3518 -- Bug 4922099
3519 --
3520 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3521 (NVL(l_actual_upg_option, 'N') = 'O') OR
3522 (NVL(l_enc_upg_option, 'N') = 'O')
3523 )
3524 THEN
3525 NULL;
3526 --
3527 --
3528
3529 l_ccid := AcctDerRule_20(
3530 p_application_id => p_application_id
3531 , p_ae_header_id => l_ae_header_id
3532 , p_source_22 => p_source_22
3533 , x_transaction_coa_id => l_adr_transaction_coa_id
3534 , x_accounting_coa_id => l_adr_accounting_coa_id
3535 , x_value_type_code => l_adr_value_type_code
3536 , p_side => 'NA'
3537 );
3538
3539 xla_ae_lines_pkg.set_ccid(
3540 p_code_combination_id => l_ccid
3541 , p_value_type_code => l_adr_value_type_code
3542 , p_transaction_coa_id => l_adr_transaction_coa_id
3543 , p_accounting_coa_id => l_adr_accounting_coa_id
3544 , p_adr_code => 'DIST_CCID'
3545 , p_adr_type_code => 'S'
3546 , p_component_type => l_component_type
3547 , p_component_code => l_component_code
3548 , p_component_type_code => l_component_type_code
3549 , p_component_appl_id => l_component_appl_id
3550 , p_amb_context_code => l_amb_context_code
3551 , p_side => 'NA'
3552 );
3553
3554
3555 --
3556 --
3557 END IF;
3558
3559 --
3560 -- Update the line information that should be overwritten
3561 --
3562 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3563 p_header_num => 1);
3564 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3565
3566 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3567
3568 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3569 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3570 END IF;
3571
3572 --
3573 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3574 --
3575 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3576 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3577 ELSE
3578 ---------------------------------------------------------------------------------------------------
3579 -- 4262811a Switch Sign
3580 ---------------------------------------------------------------------------------------------------
3581 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3585 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3582 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3583 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3584 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3586 -- 5132302
3587 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3588 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3589
3590 END IF;
3591
3592 -- 4955764
3593 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3594 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3595
3596
3597 XLA_AE_LINES_PKG.ValidateCurrentLine;
3598 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3599
3600 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3601 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3602 ,p_balance_type_code => l_balance_type_code);
3603
3604 END IF;
3605
3606 -----------------------------------------------------------------------------------------
3607 -- 4262811 Multiperiod Accounting
3608 -----------------------------------------------------------------------------------------
3609 -- No MPA option is assigned.
3610
3611
3612 END IF;
3613 END IF;
3614 --
3615
3616 --
3617 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3618 trace
3619 (p_msg => 'END of AcctLineType_25'
3620 ,p_level => C_LEVEL_PROCEDURE
3621 ,p_module => l_log_module);
3622 END IF;
3623 --
3624 EXCEPTION
3625 WHEN xla_exceptions_pkg.application_exception THEN
3626 RAISE;
3627 WHEN OTHERS THEN
3628 xla_exceptions_pkg.raise_message
3629 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_25');
3630 END AcctLineType_25;
3631 --
3632
3633 ---------------------------------------
3634 --
3635 -- PRIVATE FUNCTION
3636 -- AcctLineType_26
3637 --
3638 ---------------------------------------
3639 PROCEDURE AcctLineType_26 (
3640 p_application_id IN NUMBER
3641 ,p_event_id IN NUMBER
3642 ,p_calculate_acctd_flag IN VARCHAR2
3643 ,p_calculate_g_l_flag IN VARCHAR2
3644 ,p_actual_flag IN OUT VARCHAR2
3645 ,p_balance_type_code OUT VARCHAR2
3646 ,p_gain_or_loss_ref OUT VARCHAR2
3647
3648 --Distribution GL Account
3649 , p_source_22 IN NUMBER
3650 --Distribution Source Type
3651 , p_source_27 IN VARCHAR2
3652 --Receivable Activity Type
3653 , p_source_28 IN VARCHAR2
3654 --Distribution Line Identifier
3655 , p_source_29 IN NUMBER
3656 --Distribution Type
3657 , p_source_30 IN VARCHAR2
3658 --Entered Amount
3659 , p_source_31 IN NUMBER
3660 --Currency Code
3661 , p_source_32 IN VARCHAR2
3662 --Exchange Date
3663 , p_source_33 IN DATE
3664 --Exchange Rate
3665 , p_source_34 IN NUMBER
3666 --Exchange Rate Type
3667 , p_source_35 IN VARCHAR2
3668 --Applied To Document Accounting Amount
3669 , p_source_36 IN NUMBER
3670 --Bill To Customer Account Identifier
3671 , p_source_37 IN NUMBER
3672 --Bill To Customer Site Use Identifier
3673 , p_source_38 IN NUMBER
3674 --SLA Party Type
3675 , p_source_39 IN VARCHAR2
3676 )
3677 IS
3678
3679 l_component_type VARCHAR2(80);
3680 l_component_code VARCHAR2(30);
3681 l_component_type_code VARCHAR2(1);
3682 l_component_appl_id INTEGER;
3683 l_amb_context_code VARCHAR2(30);
3684 l_entity_code VARCHAR2(30);
3685 l_event_class_code VARCHAR2(30);
3686 l_ae_header_id NUMBER;
3687 l_event_type_code VARCHAR2(30);
3688 l_line_definition_code VARCHAR2(30);
3689 l_line_definition_owner_code VARCHAR2(1);
3690 --
3691 -- adr variables
3692 l_segment VARCHAR2(30);
3693 l_ccid NUMBER;
3694 l_adr_transaction_coa_id NUMBER;
3695 l_adr_accounting_coa_id NUMBER;
3696 l_adr_flexfield_segment_code VARCHAR2(30);
3697 l_adr_flex_value_set_id NUMBER;
3698 l_adr_value_type_code VARCHAR2(30);
3699 l_adr_value_combination_id NUMBER;
3700 l_adr_value_segment_code VARCHAR2(30);
3701
3702 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3703 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3704 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3705 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3706
3707 -- 4262811 Variables ------------------------------------------------------------------------------------------
3708 l_entered_amt_idx NUMBER;
3709 l_accted_amt_idx NUMBER;
3710 l_acc_rev_flag VARCHAR2(1);
3711 l_accrual_line_num NUMBER;
3715 l_num_entries NUMBER;
3712 l_tmp_amt NUMBER;
3713 l_acc_rev_natural_side_code VARCHAR2(1);
3714
3716 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3717 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3718 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3719 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3720 l_recog_line_1 NUMBER;
3721 l_recog_line_2 NUMBER;
3722
3723 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3724 l_bflow_applied_to_amt NUMBER; -- 5132302
3725 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3726
3727 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3728
3729 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3730 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3731
3732 ---------------------------------------------------------------------------------------------------------------
3733
3734
3735 --
3736 -- bulk performance
3737 --
3738 l_balance_type_code VARCHAR2(1);
3739 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3740 l_log_module VARCHAR2(240);
3741
3742 --
3743 -- Upgrade strategy
3744 --
3748 --
3745 l_actual_upg_option VARCHAR2(1);
3746 l_enc_upg_option VARCHAR2(1);
3747
3749 BEGIN
3750 --
3751 IF g_log_enabled THEN
3752 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
3753 END IF;
3754 --
3755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3756
3757 trace
3758 (p_msg => 'BEGIN of AcctLineType_26'
3759 ,p_level => C_LEVEL_PROCEDURE
3760 ,p_module => l_log_module);
3761
3762 END IF;
3763 --
3764 l_component_type := 'AMB_JLT';
3765 l_component_code := 'ADJ_BR_ENDORSE';
3766 l_component_type_code := 'S';
3767 l_component_appl_id := 222;
3768 l_amb_context_code := 'DEFAULT';
3769 l_entity_code := 'ADJUSTMENTS';
3770 l_event_class_code := 'ADJUSTMENT';
3771 l_event_type_code := 'ADJUSTMENT_ALL';
3772 l_line_definition_owner_code := 'S';
3773 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
3774 --
3775 l_balance_type_code := 'A';
3776 l_segment := NULL;
3777 l_ccid := NULL;
3778 l_adr_transaction_coa_id := NULL;
3779 l_adr_accounting_coa_id := NULL;
3780 l_adr_flexfield_segment_code := NULL;
3781 l_adr_flex_value_set_id := NULL;
3782 l_adr_value_type_code := NULL;
3783 l_adr_value_combination_id := NULL;
3784 l_adr_value_segment_code := NULL;
3785
3786 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3787 l_bflow_class_code := ''; -- 4219869 Business Flow
3788 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3789 l_budgetary_control_flag := 'N';
3790
3791 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3792 l_bflow_applied_to_amt := NULL; -- 5132302
3793 l_entered_amt_idx := NULL; -- 4262811
3794 l_accted_amt_idx := NULL; -- 4262811
3795 l_acc_rev_flag := NULL; -- 4262811
3796 l_accrual_line_num := NULL; -- 4262811
3797 l_tmp_amt := NULL; -- 4262811
3798 --
3799
3800 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3801 l_balance_type_code <> 'B' THEN
3802 IF NVL(p_source_27,'
3803 ') = 'ADJ' AND
3804 NVL(p_source_28,'
3805 ') = 'ENDORSEMENT'
3806 THEN
3807
3808 --
3809 XLA_AE_LINES_PKG.SetNewLine;
3810
3811 p_balance_type_code := l_balance_type_code;
3812 -- set the flag so later we will know whether the gain loss line needs to be created
3813
3814 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3815 p_actual_flag :='A';
3816 END IF;
3817
3818 --
3819 -- bulk performance
3820 --
3821 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3822 p_header_num => 0); -- 4262811
3823 --
3824 -- set accounting line options
3825 --
3826 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3827 p_natural_side_code => 'C'
3828 , p_gain_or_loss_flag => 'N'
3832 , p_merge_duplicate_code => 'A'
3829 , p_gl_transfer_mode_code => 'S'
3830 , p_acct_entry_type_code => 'A'
3831 , p_switch_side_flag => 'Y'
3833 );
3834 --
3835 l_acc_rev_natural_side_code := 'D'; -- 4262811
3836 --
3837 --
3838 -- set accounting line type info
3839 --
3840 xla_ae_lines_pkg.SetAcctLineType
3841 (p_component_type => l_component_type
3842 ,p_event_type_code => l_event_type_code
3843 ,p_line_definition_owner_code => l_line_definition_owner_code
3844 ,p_line_definition_code => l_line_definition_code
3845 ,p_accounting_line_code => l_component_code
3846 ,p_accounting_line_type_code => l_component_type_code
3847 ,p_accounting_line_appl_id => l_component_appl_id
3848 ,p_amb_context_code => l_amb_context_code
3849 ,p_entity_code => l_entity_code
3850 ,p_event_class_code => l_event_class_code);
3851 --
3852 -- set accounting class
3853 --
3854 xla_ae_lines_pkg.SetAcctClass(
3855 p_accounting_class_code => 'ENDORSEMENT'
3856 , p_ae_header_id => l_ae_header_id
3857 );
3858
3859 --
3860 -- set rounding class
3861 --
3862 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3863 'RECEIVABLE';
3864
3865 --
3866 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3867 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3868 --
3869 -- bulk performance
3870 --
3871 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3872
3873 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3874 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3875
3876 -- 4955764
3877 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3878 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3879
3880 -- 4458381 Public Sector Enh
3881
3882 --
3883 -- set accounting attributes for the line type
3884 --
3885 l_entered_amt_idx := 3;
3886 l_accted_amt_idx := 8;
3887 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3888 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
3889 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
3890 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
3891 l_rec_acct_attrs.array_char_value(2) := p_source_30;
3892 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
3893 l_rec_acct_attrs.array_num_value(3) := p_source_31;
3894 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
3895 l_rec_acct_attrs.array_char_value(4) := p_source_32;
3896 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
3897 l_rec_acct_attrs.array_date_value(5) := p_source_33;
3898 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
3899 l_rec_acct_attrs.array_num_value(6) := p_source_34;
3900 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
3901 l_rec_acct_attrs.array_char_value(7) := p_source_35;
3902 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
3903 l_rec_acct_attrs.array_num_value(8) := p_source_36;
3904 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
3905 l_rec_acct_attrs.array_num_value(9) := p_source_37;
3906 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
3907 l_rec_acct_attrs.array_num_value(10) := p_source_38;
3908 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
3909 l_rec_acct_attrs.array_char_value(11) := p_source_39;
3910
3911 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3912 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3913
3914 ---------------------------------------------------------------------------------------------------------------
3915 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3916 ---------------------------------------------------------------------------------------------------------------
3917 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3918
3919 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3920 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3921
3922 IF xla_accounting_cache_pkg.GetValueChar
3923 (p_source_code => 'LEDGER_CATEGORY_CODE'
3924 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3925 AND l_bflow_method_code = 'PRIOR_ENTRY'
3926 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3927 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3928 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3929 )
3930 THEN
3931 xla_ae_lines_pkg.BflowUpgEntry
3932 (p_business_method_code => l_bflow_method_code
3933 ,p_business_class_code => l_bflow_class_code
3934 ,p_balance_type => l_balance_type_code);
3935 ELSE
3936 NULL;
3937 -- No business flow processing for business flow method of NONE.
3938 END IF;
3939
3940 --
3941 -- call analytical criteria
3942 --
3943
3944 --
3948 --
3945 -- call description
3946 --
3947 -- No description or it is inherited.
3949 -- call ADRs
3950 -- Bug 4922099
3951 --
3952 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3953 (NVL(l_actual_upg_option, 'N') = 'O') OR
3954 (NVL(l_enc_upg_option, 'N') = 'O')
3955 )
3956 THEN
3957 NULL;
3958 --
3959 --
3960
3961 l_ccid := AcctDerRule_20(
3962 p_application_id => p_application_id
3963 , p_ae_header_id => l_ae_header_id
3964 , p_source_22 => p_source_22
3965 , x_transaction_coa_id => l_adr_transaction_coa_id
3966 , x_accounting_coa_id => l_adr_accounting_coa_id
3967 , x_value_type_code => l_adr_value_type_code
3968 , p_side => 'NA'
3969 );
3970
3971 xla_ae_lines_pkg.set_ccid(
3972 p_code_combination_id => l_ccid
3973 , p_value_type_code => l_adr_value_type_code
3974 , p_transaction_coa_id => l_adr_transaction_coa_id
3975 , p_accounting_coa_id => l_adr_accounting_coa_id
3976 , p_adr_code => 'DIST_CCID'
3977 , p_adr_type_code => 'S'
3978 , p_component_type => l_component_type
3979 , p_component_code => l_component_code
3980 , p_component_type_code => l_component_type_code
3981 , p_component_appl_id => l_component_appl_id
3982 , p_amb_context_code => l_amb_context_code
3983 , p_side => 'NA'
3984 );
3985
3986
3987 --
3988 --
3989 END IF;
3990 --
3991 -- Bug 4922099
3992 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3993 (NVL(l_enc_upg_option, 'N') = 'O')
3994 ) AND
3995 (l_bflow_method_code = 'PRIOR_ENTRY')
3996 )
3997 THEN
3998 IF
3999 --
4000 1 = 2
4001 --
4002 THEN
4003 xla_accounting_err_pkg.build_message
4004 (p_appli_s_name => 'XLA'
4005 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4006 ,p_token_1 => 'LINE_NUMBER'
4007 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4008 ,p_token_2 => 'LINE_TYPE_NAME'
4009 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4010 l_component_type
4011 ,l_component_code
4012 ,l_component_type_code
4013 ,l_component_appl_id
4014 ,l_amb_context_code
4015 ,l_entity_code
4016 ,l_event_class_code
4017 )
4018 ,p_token_3 => 'OWNER'
4019 ,p_value_3 => xla_lookups_pkg.get_meaning(
4020 p_lookup_type => 'XLA_OWNER_TYPE'
4021 ,p_lookup_code => l_component_type_code
4022 )
4023 ,p_token_4 => 'PRODUCT_NAME'
4024 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4025 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4026 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4027 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4028 ,p_ae_header_id => NULL
4029 );
4030
4031 IF (C_LEVEL_ERROR>= g_log_level) THEN
4032 trace
4033 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4034 ,p_level => C_LEVEL_ERROR
4035 ,p_module => l_log_module);
4036 END IF;
4037 END IF;
4038 END IF;
4039 --
4040 --
4041 ------------------------------------------------------------------------------------------------
4042 -- 4219869 Business Flow
4043 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4044 -- Prior Entry. Currently, the following code is always generated.
4045 ------------------------------------------------------------------------------------------------
4046 XLA_AE_LINES_PKG.ValidateCurrentLine;
4047
4048 ------------------------------------------------------------------------------------
4049 -- 4219869 Business Flow
4050 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4051 ------------------------------------------------------------------------------------
4052 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4053
4054 ----------------------------------------------------------------------------------
4058 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4055 -- 4219869 Business Flow
4056 -- Update journal entry status -- Need to generate this within IF <condition>
4057 ----------------------------------------------------------------------------------
4059 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4060 ,p_balance_type_code => l_balance_type_code
4061 );
4062
4063 -------------------------------------------------------------------------------------------
4064 -- 4262811 - Generate the Accrual Reversal lines
4065 -------------------------------------------------------------------------------------------
4066 BEGIN
4067 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4068 (g_array_event(p_event_id).array_value_num('header_index'));
4069 IF l_acc_rev_flag IS NULL THEN
4070 l_acc_rev_flag := 'N';
4071 END IF;
4072 EXCEPTION
4073 WHEN OTHERS THEN
4074 l_acc_rev_flag := 'N';
4075 END;
4076 --
4077 IF (l_acc_rev_flag = 'Y') THEN
4078
4079 -- 4645092 ------------------------------------------------------------------------------
4080 -- To allow MPA report to determine if it should generate report process
4081 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4082 ------------------------------------------------------------------------------------------
4083
4084 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4085 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4086 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4087 -- call ADRs
4088 -- Bug 4922099
4089 --
4090 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4091 (NVL(l_actual_upg_option, 'N') = 'O') OR
4092 (NVL(l_enc_upg_option, 'N') = 'O')
4093 )
4094 THEN
4095 NULL;
4096 --
4097 --
4098
4099 l_ccid := AcctDerRule_20(
4100 p_application_id => p_application_id
4101 , p_ae_header_id => l_ae_header_id
4102 , p_source_22 => p_source_22
4103 , x_transaction_coa_id => l_adr_transaction_coa_id
4104 , x_accounting_coa_id => l_adr_accounting_coa_id
4105 , x_value_type_code => l_adr_value_type_code
4106 , p_side => 'NA'
4107 );
4108
4109 xla_ae_lines_pkg.set_ccid(
4110 p_code_combination_id => l_ccid
4111 , p_value_type_code => l_adr_value_type_code
4112 , p_transaction_coa_id => l_adr_transaction_coa_id
4113 , p_accounting_coa_id => l_adr_accounting_coa_id
4114 , p_adr_code => 'DIST_CCID'
4115 , p_adr_type_code => 'S'
4116 , p_component_type => l_component_type
4117 , p_component_code => l_component_code
4118 , p_component_type_code => l_component_type_code
4119 , p_component_appl_id => l_component_appl_id
4120 , p_amb_context_code => l_amb_context_code
4121 , p_side => 'NA'
4122 );
4123
4124
4125 --
4126 --
4127 END IF;
4128
4129 --
4130 -- Update the line information that should be overwritten
4131 --
4132 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4133 p_header_num => 1);
4134 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4135
4136 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4137
4138 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4139 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4140 END IF;
4141
4142 --
4143 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4144 --
4145 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4146 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4147 ELSE
4148 ---------------------------------------------------------------------------------------------------
4149 -- 4262811a Switch Sign
4150 ---------------------------------------------------------------------------------------------------
4151 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4152 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4153 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4154 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4155 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4156 -- 5132302
4157 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4158 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4159
4160 END IF;
4161
4162 -- 4955764
4163 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4164 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4165
4166
4167 XLA_AE_LINES_PKG.ValidateCurrentLine;
4171 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4168 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4169
4170 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4172 ,p_balance_type_code => l_balance_type_code);
4173
4174 END IF;
4175
4176 -----------------------------------------------------------------------------------------
4177 -- 4262811 Multiperiod Accounting
4178 -----------------------------------------------------------------------------------------
4179 -- No MPA option is assigned.
4180
4181
4182 END IF;
4183 END IF;
4184 --
4185
4186 --
4187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4188 trace
4189 (p_msg => 'END of AcctLineType_26'
4190 ,p_level => C_LEVEL_PROCEDURE
4191 ,p_module => l_log_module);
4192 END IF;
4193 --
4194 EXCEPTION
4195 WHEN xla_exceptions_pkg.application_exception THEN
4196 RAISE;
4197 WHEN OTHERS THEN
4198 xla_exceptions_pkg.raise_message
4199 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_26');
4200 END AcctLineType_26;
4201 --
4202
4203 ---------------------------------------
4204 --
4205 -- PRIVATE FUNCTION
4206 -- AcctLineType_27
4207 --
4208 ---------------------------------------
4209 PROCEDURE AcctLineType_27 (
4210 p_application_id IN NUMBER
4211 ,p_event_id IN NUMBER
4212 ,p_calculate_acctd_flag IN VARCHAR2
4213 ,p_calculate_g_l_flag IN VARCHAR2
4214 ,p_actual_flag IN OUT VARCHAR2
4215 ,p_balance_type_code OUT VARCHAR2
4216 ,p_gain_or_loss_ref OUT VARCHAR2
4217
4218 --Distribution GL Account
4219 , p_source_22 IN NUMBER
4220 --Distribution Source Type
4221 , p_source_27 IN VARCHAR2
4222 --Distribution Line Identifier
4223 , p_source_29 IN NUMBER
4224 --Distribution Type
4225 , p_source_30 IN VARCHAR2
4226 --Entered Amount
4227 , p_source_31 IN NUMBER
4228 --Currency Code
4229 , p_source_32 IN VARCHAR2
4230 --Exchange Date
4231 , p_source_33 IN DATE
4232 --Exchange Rate
4233 , p_source_34 IN NUMBER
4234 --Exchange Rate Type
4235 , p_source_35 IN VARCHAR2
4236 --Applied To Document Accounting Amount
4237 , p_source_36 IN NUMBER
4238 --Bill To Customer Account Identifier
4239 , p_source_37 IN NUMBER
4240 --Bill To Customer Site Use Identifier
4241 , p_source_38 IN NUMBER
4242 --SLA Party Type
4243 , p_source_39 IN VARCHAR2
4244 )
4245 IS
4246
4247 l_component_type VARCHAR2(80);
4248 l_component_code VARCHAR2(30);
4249 l_component_type_code VARCHAR2(1);
4250 l_component_appl_id INTEGER;
4251 l_amb_context_code VARCHAR2(30);
4252 l_entity_code VARCHAR2(30);
4253 l_event_class_code VARCHAR2(30);
4254 l_ae_header_id NUMBER;
4255 l_event_type_code VARCHAR2(30);
4256 l_line_definition_code VARCHAR2(30);
4257 l_line_definition_owner_code VARCHAR2(1);
4258 --
4259 -- adr variables
4260 l_segment VARCHAR2(30);
4261 l_ccid NUMBER;
4262 l_adr_transaction_coa_id NUMBER;
4263 l_adr_accounting_coa_id NUMBER;
4264 l_adr_flexfield_segment_code VARCHAR2(30);
4265 l_adr_flex_value_set_id NUMBER;
4266 l_adr_value_type_code VARCHAR2(30);
4267 l_adr_value_combination_id NUMBER;
4268 l_adr_value_segment_code VARCHAR2(30);
4269
4270 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4271 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4272 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4273 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4274
4275 -- 4262811 Variables ------------------------------------------------------------------------------------------
4276 l_entered_amt_idx NUMBER;
4277 l_accted_amt_idx NUMBER;
4278 l_acc_rev_flag VARCHAR2(1);
4279 l_accrual_line_num NUMBER;
4280 l_tmp_amt NUMBER;
4281 l_acc_rev_natural_side_code VARCHAR2(1);
4282
4283 l_num_entries NUMBER;
4284 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4285 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4289 l_recog_line_2 NUMBER;
4286 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4287 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4288 l_recog_line_1 NUMBER;
4290
4291 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4292 l_bflow_applied_to_amt NUMBER; -- 5132302
4293 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4294
4295 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4296
4297 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4298 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4299
4300 ---------------------------------------------------------------------------------------------------------------
4301
4302
4303 --
4304 -- bulk performance
4305 --
4306 l_balance_type_code VARCHAR2(1);
4307 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4308 l_log_module VARCHAR2(240);
4309
4310 --
4311 -- Upgrade strategy
4312 --
4313 l_actual_upg_option VARCHAR2(1);
4314 l_enc_upg_option VARCHAR2(1);
4315
4316 --
4317 BEGIN
4318 --
4319 IF g_log_enabled THEN
4320 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
4321 END IF;
4322 --
4323 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4324
4325 trace
4326 (p_msg => 'BEGIN of AcctLineType_27'
4327 ,p_level => C_LEVEL_PROCEDURE
4328 ,p_module => l_log_module);
4329
4330 END IF;
4331 --
4332 l_component_type := 'AMB_JLT';
4333 l_component_code := 'ADJ_CHRG';
4334 l_component_type_code := 'S';
4335 l_component_appl_id := 222;
4336 l_amb_context_code := 'DEFAULT';
4337 l_entity_code := 'ADJUSTMENTS';
4338 l_event_class_code := 'ADJUSTMENT';
4339 l_event_type_code := 'ADJUSTMENT_ALL';
4343 l_balance_type_code := 'A';
4340 l_line_definition_owner_code := 'S';
4341 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
4342 --
4344 l_segment := NULL;
4345 l_ccid := NULL;
4346 l_adr_transaction_coa_id := NULL;
4347 l_adr_accounting_coa_id := NULL;
4348 l_adr_flexfield_segment_code := NULL;
4349 l_adr_flex_value_set_id := NULL;
4350 l_adr_value_type_code := NULL;
4351 l_adr_value_combination_id := NULL;
4352 l_adr_value_segment_code := NULL;
4353
4354 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4355 l_bflow_class_code := ''; -- 4219869 Business Flow
4356 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4357 l_budgetary_control_flag := 'N';
4358
4359 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4360 l_bflow_applied_to_amt := NULL; -- 5132302
4361 l_entered_amt_idx := NULL; -- 4262811
4362 l_accted_amt_idx := NULL; -- 4262811
4363 l_acc_rev_flag := NULL; -- 4262811
4364 l_accrual_line_num := NULL; -- 4262811
4365 l_tmp_amt := NULL; -- 4262811
4366 --
4367
4368 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4369 l_balance_type_code <> 'B' THEN
4370 IF NVL(p_source_27,'
4371 ') = 'FINCHRG' OR
4372 NVL(p_source_27,'
4373 ') = 'FINCHRG_NON_REC_TAX'
4374 THEN
4375
4376 --
4377 XLA_AE_LINES_PKG.SetNewLine;
4378
4379 p_balance_type_code := l_balance_type_code;
4380 -- set the flag so later we will know whether the gain loss line needs to be created
4381
4382 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4383 p_actual_flag :='A';
4384 END IF;
4385
4386 --
4387 -- bulk performance
4388 --
4389 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4390 p_header_num => 0); -- 4262811
4391 --
4392 -- set accounting line options
4393 --
4394 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4395 p_natural_side_code => 'C'
4396 , p_gain_or_loss_flag => 'N'
4397 , p_gl_transfer_mode_code => 'S'
4398 , p_acct_entry_type_code => 'A'
4399 , p_switch_side_flag => 'Y'
4403 l_acc_rev_natural_side_code := 'D'; -- 4262811
4400 , p_merge_duplicate_code => 'A'
4401 );
4402 --
4404 --
4405 --
4406 -- set accounting line type info
4407 --
4408 xla_ae_lines_pkg.SetAcctLineType
4409 (p_component_type => l_component_type
4410 ,p_event_type_code => l_event_type_code
4411 ,p_line_definition_owner_code => l_line_definition_owner_code
4412 ,p_line_definition_code => l_line_definition_code
4413 ,p_accounting_line_code => l_component_code
4414 ,p_accounting_line_type_code => l_component_type_code
4415 ,p_accounting_line_appl_id => l_component_appl_id
4416 ,p_amb_context_code => l_amb_context_code
4417 ,p_entity_code => l_entity_code
4418 ,p_event_class_code => l_event_class_code);
4419 --
4420 -- set accounting class
4421 --
4422 xla_ae_lines_pkg.SetAcctClass(
4423 p_accounting_class_code => 'CHARGES'
4424 , p_ae_header_id => l_ae_header_id
4425 );
4426
4427 --
4428 -- set rounding class
4429 --
4430 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4431 'RECEIVABLE';
4432
4433 --
4434 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4435 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4436 --
4437 -- bulk performance
4438 --
4439 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4440
4441 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4442 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4443
4444 -- 4955764
4445 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4446 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4447
4448 -- 4458381 Public Sector Enh
4449
4450 --
4451 -- set accounting attributes for the line type
4452 --
4453 l_entered_amt_idx := 3;
4454 l_accted_amt_idx := 8;
4455 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4456 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
4457 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
4458 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
4459 l_rec_acct_attrs.array_char_value(2) := p_source_30;
4460 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
4461 l_rec_acct_attrs.array_num_value(3) := p_source_31;
4462 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
4463 l_rec_acct_attrs.array_char_value(4) := p_source_32;
4464 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
4465 l_rec_acct_attrs.array_date_value(5) := p_source_33;
4466 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
4467 l_rec_acct_attrs.array_num_value(6) := p_source_34;
4468 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
4469 l_rec_acct_attrs.array_char_value(7) := p_source_35;
4470 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
4471 l_rec_acct_attrs.array_num_value(8) := p_source_36;
4472 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
4473 l_rec_acct_attrs.array_num_value(9) := p_source_37;
4474 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
4475 l_rec_acct_attrs.array_num_value(10) := p_source_38;
4476 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
4477 l_rec_acct_attrs.array_char_value(11) := p_source_39;
4478
4479 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4480 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4481
4482 ---------------------------------------------------------------------------------------------------------------
4483 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4484 ---------------------------------------------------------------------------------------------------------------
4485 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4486
4487 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4488 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4489
4490 IF xla_accounting_cache_pkg.GetValueChar
4491 (p_source_code => 'LEDGER_CATEGORY_CODE'
4492 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4493 AND l_bflow_method_code = 'PRIOR_ENTRY'
4494 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4495 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4496 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4497 )
4498 THEN
4499 xla_ae_lines_pkg.BflowUpgEntry
4500 (p_business_method_code => l_bflow_method_code
4501 ,p_business_class_code => l_bflow_class_code
4502 ,p_balance_type => l_balance_type_code);
4503 ELSE
4504 NULL;
4505 -- No business flow processing for business flow method of NONE.
4506 END IF;
4507
4508 --
4509 -- call analytical criteria
4510 --
4511
4512 --
4513 -- call description
4514 --
4515 -- No description or it is inherited.
4516 --
4520 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4517 -- call ADRs
4518 -- Bug 4922099
4519 --
4521 (NVL(l_actual_upg_option, 'N') = 'O') OR
4522 (NVL(l_enc_upg_option, 'N') = 'O')
4523 )
4524 THEN
4525 NULL;
4526 --
4527 --
4528
4529 l_ccid := AcctDerRule_20(
4530 p_application_id => p_application_id
4531 , p_ae_header_id => l_ae_header_id
4532 , p_source_22 => p_source_22
4533 , x_transaction_coa_id => l_adr_transaction_coa_id
4534 , x_accounting_coa_id => l_adr_accounting_coa_id
4535 , x_value_type_code => l_adr_value_type_code
4536 , p_side => 'NA'
4537 );
4538
4539 xla_ae_lines_pkg.set_ccid(
4540 p_code_combination_id => l_ccid
4541 , p_value_type_code => l_adr_value_type_code
4542 , p_transaction_coa_id => l_adr_transaction_coa_id
4543 , p_accounting_coa_id => l_adr_accounting_coa_id
4544 , p_adr_code => 'DIST_CCID'
4545 , p_adr_type_code => 'S'
4546 , p_component_type => l_component_type
4547 , p_component_code => l_component_code
4548 , p_component_type_code => l_component_type_code
4549 , p_component_appl_id => l_component_appl_id
4550 , p_amb_context_code => l_amb_context_code
4551 , p_side => 'NA'
4552 );
4553
4554
4555 --
4556 --
4557 END IF;
4558 --
4559 -- Bug 4922099
4560 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4561 (NVL(l_enc_upg_option, 'N') = 'O')
4562 ) AND
4563 (l_bflow_method_code = 'PRIOR_ENTRY')
4564 )
4565 THEN
4566 IF
4567 --
4568 1 = 2
4569 --
4570 THEN
4571 xla_accounting_err_pkg.build_message
4572 (p_appli_s_name => 'XLA'
4573 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4574 ,p_token_1 => 'LINE_NUMBER'
4575 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4576 ,p_token_2 => 'LINE_TYPE_NAME'
4577 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4578 l_component_type
4579 ,l_component_code
4580 ,l_component_type_code
4581 ,l_component_appl_id
4582 ,l_amb_context_code
4583 ,l_entity_code
4584 ,l_event_class_code
4585 )
4586 ,p_token_3 => 'OWNER'
4587 ,p_value_3 => xla_lookups_pkg.get_meaning(
4588 p_lookup_type => 'XLA_OWNER_TYPE'
4589 ,p_lookup_code => l_component_type_code
4590 )
4591 ,p_token_4 => 'PRODUCT_NAME'
4592 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4593 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4594 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4595 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4596 ,p_ae_header_id => NULL
4597 );
4598
4599 IF (C_LEVEL_ERROR>= g_log_level) THEN
4600 trace
4601 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4602 ,p_level => C_LEVEL_ERROR
4603 ,p_module => l_log_module);
4604 END IF;
4605 END IF;
4606 END IF;
4607 --
4608 --
4609 ------------------------------------------------------------------------------------------------
4610 -- 4219869 Business Flow
4611 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4612 -- Prior Entry. Currently, the following code is always generated.
4613 ------------------------------------------------------------------------------------------------
4614 XLA_AE_LINES_PKG.ValidateCurrentLine;
4615
4616 ------------------------------------------------------------------------------------
4617 -- 4219869 Business Flow
4618 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4622 ----------------------------------------------------------------------------------
4619 ------------------------------------------------------------------------------------
4620 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4621
4623 -- 4219869 Business Flow
4624 -- Update journal entry status -- Need to generate this within IF <condition>
4625 ----------------------------------------------------------------------------------
4626 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4627 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4628 ,p_balance_type_code => l_balance_type_code
4629 );
4630
4631 -------------------------------------------------------------------------------------------
4632 -- 4262811 - Generate the Accrual Reversal lines
4633 -------------------------------------------------------------------------------------------
4634 BEGIN
4635 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4636 (g_array_event(p_event_id).array_value_num('header_index'));
4637 IF l_acc_rev_flag IS NULL THEN
4638 l_acc_rev_flag := 'N';
4639 END IF;
4640 EXCEPTION
4641 WHEN OTHERS THEN
4642 l_acc_rev_flag := 'N';
4643 END;
4644 --
4645 IF (l_acc_rev_flag = 'Y') THEN
4646
4647 -- 4645092 ------------------------------------------------------------------------------
4648 -- To allow MPA report to determine if it should generate report process
4649 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4650 ------------------------------------------------------------------------------------------
4651
4652 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4653 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4654 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4655 -- call ADRs
4656 -- Bug 4922099
4657 --
4658 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4659 (NVL(l_actual_upg_option, 'N') = 'O') OR
4660 (NVL(l_enc_upg_option, 'N') = 'O')
4661 )
4662 THEN
4663 NULL;
4664 --
4665 --
4666
4667 l_ccid := AcctDerRule_20(
4668 p_application_id => p_application_id
4669 , p_ae_header_id => l_ae_header_id
4670 , p_source_22 => p_source_22
4671 , x_transaction_coa_id => l_adr_transaction_coa_id
4672 , x_accounting_coa_id => l_adr_accounting_coa_id
4673 , x_value_type_code => l_adr_value_type_code
4674 , p_side => 'NA'
4675 );
4676
4677 xla_ae_lines_pkg.set_ccid(
4678 p_code_combination_id => l_ccid
4679 , p_value_type_code => l_adr_value_type_code
4680 , p_transaction_coa_id => l_adr_transaction_coa_id
4681 , p_accounting_coa_id => l_adr_accounting_coa_id
4682 , p_adr_code => 'DIST_CCID'
4683 , p_adr_type_code => 'S'
4684 , p_component_type => l_component_type
4685 , p_component_code => l_component_code
4686 , p_component_type_code => l_component_type_code
4687 , p_component_appl_id => l_component_appl_id
4688 , p_amb_context_code => l_amb_context_code
4689 , p_side => 'NA'
4690 );
4691
4692
4693 --
4694 --
4695 END IF;
4696
4697 --
4698 -- Update the line information that should be overwritten
4699 --
4700 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4701 p_header_num => 1);
4702 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4703
4704 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4705
4706 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4707 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4708 END IF;
4709
4710 --
4711 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4712 --
4713 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4714 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4715 ELSE
4716 ---------------------------------------------------------------------------------------------------
4717 -- 4262811a Switch Sign
4718 ---------------------------------------------------------------------------------------------------
4719 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4723 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4720 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4721 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4722 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4724 -- 5132302
4725 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4726 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4727
4728 END IF;
4729
4730 -- 4955764
4731 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4732 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4733
4734
4735 XLA_AE_LINES_PKG.ValidateCurrentLine;
4736 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4737
4738 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4739 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4740 ,p_balance_type_code => l_balance_type_code);
4741
4742 END IF;
4743
4744 -----------------------------------------------------------------------------------------
4745 -- 4262811 Multiperiod Accounting
4746 -----------------------------------------------------------------------------------------
4747 -- No MPA option is assigned.
4748
4749
4750 END IF;
4751 END IF;
4752 --
4753
4754 --
4755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4756 trace
4757 (p_msg => 'END of AcctLineType_27'
4758 ,p_level => C_LEVEL_PROCEDURE
4759 ,p_module => l_log_module);
4760 END IF;
4761 --
4765 WHEN OTHERS THEN
4762 EXCEPTION
4763 WHEN xla_exceptions_pkg.application_exception THEN
4764 RAISE;
4766 xla_exceptions_pkg.raise_message
4767 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_27');
4768 END AcctLineType_27;
4769 --
4770
4771 ---------------------------------------
4772 --
4773 -- PRIVATE FUNCTION
4774 -- AcctLineType_28
4775 --
4776 ---------------------------------------
4777 PROCEDURE AcctLineType_28 (
4778 p_application_id IN NUMBER
4779 ,p_event_id IN NUMBER
4780 ,p_calculate_acctd_flag IN VARCHAR2
4781 ,p_calculate_g_l_flag IN VARCHAR2
4782 ,p_actual_flag IN OUT VARCHAR2
4783 ,p_balance_type_code OUT VARCHAR2
4784 ,p_gain_or_loss_ref OUT VARCHAR2
4785
4786 --Distribution GL Account
4787 , p_source_22 IN NUMBER
4788 --Distribution Source Type
4789 , p_source_27 IN VARCHAR2
4790 --Distribution Line Identifier
4791 , p_source_29 IN NUMBER
4792 --Distribution Type
4793 , p_source_30 IN VARCHAR2
4794 --Entered Amount
4795 , p_source_31 IN NUMBER
4796 --Currency Code
4797 , p_source_32 IN VARCHAR2
4798 --Exchange Date
4799 , p_source_33 IN DATE
4800 --Exchange Rate
4801 , p_source_34 IN NUMBER
4802 --Exchange Rate Type
4803 , p_source_35 IN VARCHAR2
4804 --Applied To Document Accounting Amount
4805 , p_source_36 IN NUMBER
4806 --Bill To Customer Account Identifier
4807 , p_source_37 IN NUMBER
4808 --Bill To Customer Site Use Identifier
4809 , p_source_38 IN NUMBER
4810 --SLA Party Type
4811 , p_source_39 IN VARCHAR2
4812 )
4813 IS
4814
4815 l_component_type VARCHAR2(80);
4816 l_component_code VARCHAR2(30);
4817 l_component_type_code VARCHAR2(1);
4818 l_component_appl_id INTEGER;
4819 l_amb_context_code VARCHAR2(30);
4820 l_entity_code VARCHAR2(30);
4821 l_event_class_code VARCHAR2(30);
4822 l_ae_header_id NUMBER;
4823 l_event_type_code VARCHAR2(30);
4824 l_line_definition_code VARCHAR2(30);
4825 l_line_definition_owner_code VARCHAR2(1);
4826 --
4827 -- adr variables
4828 l_segment VARCHAR2(30);
4829 l_ccid NUMBER;
4830 l_adr_transaction_coa_id NUMBER;
4831 l_adr_accounting_coa_id NUMBER;
4832 l_adr_flexfield_segment_code VARCHAR2(30);
4833 l_adr_flex_value_set_id NUMBER;
4834 l_adr_value_type_code VARCHAR2(30);
4835 l_adr_value_combination_id NUMBER;
4836 l_adr_value_segment_code VARCHAR2(30);
4837
4841 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4838 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4839 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4840 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4842
4843 -- 4262811 Variables ------------------------------------------------------------------------------------------
4844 l_entered_amt_idx NUMBER;
4845 l_accted_amt_idx NUMBER;
4846 l_acc_rev_flag VARCHAR2(1);
4847 l_accrual_line_num NUMBER;
4848 l_tmp_amt NUMBER;
4849 l_acc_rev_natural_side_code VARCHAR2(1);
4850
4851 l_num_entries NUMBER;
4852 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4853 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4854 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4855 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4856 l_recog_line_1 NUMBER;
4857 l_recog_line_2 NUMBER;
4858
4859 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4860 l_bflow_applied_to_amt NUMBER; -- 5132302
4861 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4862
4863 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4864
4865 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4866 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4867
4868 ---------------------------------------------------------------------------------------------------------------
4869
4870
4871 --
4872 -- bulk performance
4873 --
4874 l_balance_type_code VARCHAR2(1);
4875 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4876 l_log_module VARCHAR2(240);
4877
4878 --
4879 -- Upgrade strategy
4880 --
4881 l_actual_upg_option VARCHAR2(1);
4882 l_enc_upg_option VARCHAR2(1);
4883
4884 --
4885 BEGIN
4886 --
4887 IF g_log_enabled THEN
4888 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
4889 END IF;
4890 --
4891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4892
4893 trace
4894 (p_msg => 'BEGIN of AcctLineType_28'
4895 ,p_level => C_LEVEL_PROCEDURE
4896 ,p_module => l_log_module);
4897
4898 END IF;
4899 --
4900 l_component_type := 'AMB_JLT';
4901 l_component_code := 'ADJ_DEFAULT_REC';
4902 l_component_type_code := 'S';
4903 l_component_appl_id := 222;
4904 l_amb_context_code := 'DEFAULT';
4905 l_entity_code := 'ADJUSTMENTS';
4906 l_event_class_code := 'ADJUSTMENT';
4907 l_event_type_code := 'ADJUSTMENT_ALL';
4908 l_line_definition_owner_code := 'S';
4909 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
4910 --
4911 l_balance_type_code := 'A';
4912 l_segment := NULL;
4913 l_ccid := NULL;
4914 l_adr_transaction_coa_id := NULL;
4915 l_adr_accounting_coa_id := NULL;
4916 l_adr_flexfield_segment_code := NULL;
4917 l_adr_flex_value_set_id := NULL;
4918 l_adr_value_type_code := NULL;
4919 l_adr_value_combination_id := NULL;
4920 l_adr_value_segment_code := NULL;
4921
4922 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4923 l_bflow_class_code := ''; -- 4219869 Business Flow
4924 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4925 l_budgetary_control_flag := 'N';
4926
4927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4928 l_bflow_applied_to_amt := NULL; -- 5132302
4929 l_entered_amt_idx := NULL; -- 4262811
4933 l_tmp_amt := NULL; -- 4262811
4930 l_accted_amt_idx := NULL; -- 4262811
4931 l_acc_rev_flag := NULL; -- 4262811
4932 l_accrual_line_num := NULL; -- 4262811
4934 --
4935
4936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4937 l_balance_type_code <> 'B' THEN
4938 IF NVL(p_source_27,'
4939 ') = 'REC'
4940 THEN
4941
4942 --
4943 XLA_AE_LINES_PKG.SetNewLine;
4944
4945 p_balance_type_code := l_balance_type_code;
4946 -- set the flag so later we will know whether the gain loss line needs to be created
4947
4948 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4949 p_actual_flag :='A';
4950 END IF;
4951
4952 --
4953 -- bulk performance
4954 --
4955 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4956 p_header_num => 0); -- 4262811
4957 --
4958 -- set accounting line options
4959 --
4960 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4961 p_natural_side_code => 'C'
4962 , p_gain_or_loss_flag => 'N'
4963 , p_gl_transfer_mode_code => 'S'
4964 , p_acct_entry_type_code => 'A'
4965 , p_switch_side_flag => 'Y'
4966 , p_merge_duplicate_code => 'A'
4967 );
4968 --
4969 l_acc_rev_natural_side_code := 'D'; -- 4262811
4970 --
4971 --
4972 -- set accounting line type info
4973 --
4974 xla_ae_lines_pkg.SetAcctLineType
4975 (p_component_type => l_component_type
4976 ,p_event_type_code => l_event_type_code
4977 ,p_line_definition_owner_code => l_line_definition_owner_code
4978 ,p_line_definition_code => l_line_definition_code
4979 ,p_accounting_line_code => l_component_code
4980 ,p_accounting_line_type_code => l_component_type_code
4981 ,p_accounting_line_appl_id => l_component_appl_id
4982 ,p_amb_context_code => l_amb_context_code
4983 ,p_entity_code => l_entity_code
4984 ,p_event_class_code => l_event_class_code);
4985 --
4986 -- set accounting class
4987 --
4988 xla_ae_lines_pkg.SetAcctClass(
4989 p_accounting_class_code => 'RECEIVABLE'
4990 , p_ae_header_id => l_ae_header_id
4991 );
4992
4993 --
4994 -- set rounding class
4995 --
4996 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4997 'RECEIVABLE';
4998
4999 --
5000 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5001 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5002 --
5003 -- bulk performance
5004 --
5005 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5006
5007 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5008 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5009
5010 -- 4955764
5011 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5012 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5013
5014 -- 4458381 Public Sector Enh
5015
5016 --
5017 -- set accounting attributes for the line type
5018 --
5019 l_entered_amt_idx := 3;
5020 l_accted_amt_idx := 8;
5021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5022 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5023 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
5024 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
5025 l_rec_acct_attrs.array_char_value(2) := p_source_30;
5026 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
5027 l_rec_acct_attrs.array_num_value(3) := p_source_31;
5028 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
5029 l_rec_acct_attrs.array_char_value(4) := p_source_32;
5030 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
5031 l_rec_acct_attrs.array_date_value(5) := p_source_33;
5032 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
5033 l_rec_acct_attrs.array_num_value(6) := p_source_34;
5034 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
5035 l_rec_acct_attrs.array_char_value(7) := p_source_35;
5036 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
5037 l_rec_acct_attrs.array_num_value(8) := p_source_36;
5038 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
5039 l_rec_acct_attrs.array_num_value(9) := p_source_37;
5040 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
5041 l_rec_acct_attrs.array_num_value(10) := p_source_38;
5042 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
5046 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5043 l_rec_acct_attrs.array_char_value(11) := p_source_39;
5044
5045 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5047
5048 ---------------------------------------------------------------------------------------------------------------
5049 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5050 ---------------------------------------------------------------------------------------------------------------
5051 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5052
5053 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5054 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5055
5056 IF xla_accounting_cache_pkg.GetValueChar
5057 (p_source_code => 'LEDGER_CATEGORY_CODE'
5058 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5059 AND l_bflow_method_code = 'PRIOR_ENTRY'
5060 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5061 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5062 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5063 )
5064 THEN
5065 xla_ae_lines_pkg.BflowUpgEntry
5066 (p_business_method_code => l_bflow_method_code
5067 ,p_business_class_code => l_bflow_class_code
5068 ,p_balance_type => l_balance_type_code);
5072 END IF;
5069 ELSE
5070 NULL;
5071 -- No business flow processing for business flow method of NONE.
5073
5074 --
5075 -- call analytical criteria
5076 --
5077
5078 --
5079 -- call description
5080 --
5081 -- No description or it is inherited.
5082 --
5083 -- call ADRs
5084 -- Bug 4922099
5085 --
5086 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5087 (NVL(l_actual_upg_option, 'N') = 'O') OR
5088 (NVL(l_enc_upg_option, 'N') = 'O')
5089 )
5090 THEN
5091 NULL;
5092 --
5093 --
5094
5095 l_ccid := AcctDerRule_20(
5096 p_application_id => p_application_id
5097 , p_ae_header_id => l_ae_header_id
5098 , p_source_22 => p_source_22
5099 , x_transaction_coa_id => l_adr_transaction_coa_id
5100 , x_accounting_coa_id => l_adr_accounting_coa_id
5101 , x_value_type_code => l_adr_value_type_code
5102 , p_side => 'NA'
5103 );
5104
5105 xla_ae_lines_pkg.set_ccid(
5106 p_code_combination_id => l_ccid
5107 , p_value_type_code => l_adr_value_type_code
5108 , p_transaction_coa_id => l_adr_transaction_coa_id
5109 , p_accounting_coa_id => l_adr_accounting_coa_id
5110 , p_adr_code => 'DIST_CCID'
5111 , p_adr_type_code => 'S'
5112 , p_component_type => l_component_type
5113 , p_component_code => l_component_code
5114 , p_component_type_code => l_component_type_code
5115 , p_component_appl_id => l_component_appl_id
5116 , p_amb_context_code => l_amb_context_code
5117 , p_side => 'NA'
5118 );
5119
5120
5121 --
5122 --
5123 END IF;
5124 --
5125 -- Bug 4922099
5126 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5127 (NVL(l_enc_upg_option, 'N') = 'O')
5128 ) AND
5129 (l_bflow_method_code = 'PRIOR_ENTRY')
5130 )
5131 THEN
5132 IF
5133 --
5134 1 = 2
5135 --
5136 THEN
5137 xla_accounting_err_pkg.build_message
5138 (p_appli_s_name => 'XLA'
5139 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5140 ,p_token_1 => 'LINE_NUMBER'
5141 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5142 ,p_token_2 => 'LINE_TYPE_NAME'
5143 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5144 l_component_type
5148 ,l_amb_context_code
5145 ,l_component_code
5146 ,l_component_type_code
5147 ,l_component_appl_id
5149 ,l_entity_code
5150 ,l_event_class_code
5151 )
5152 ,p_token_3 => 'OWNER'
5153 ,p_value_3 => xla_lookups_pkg.get_meaning(
5154 p_lookup_type => 'XLA_OWNER_TYPE'
5155 ,p_lookup_code => l_component_type_code
5156 )
5157 ,p_token_4 => 'PRODUCT_NAME'
5158 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5159 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5160 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5161 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5162 ,p_ae_header_id => NULL
5163 );
5164
5165 IF (C_LEVEL_ERROR>= g_log_level) THEN
5166 trace
5167 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5168 ,p_level => C_LEVEL_ERROR
5169 ,p_module => l_log_module);
5170 END IF;
5171 END IF;
5172 END IF;
5173 --
5174 --
5175 ------------------------------------------------------------------------------------------------
5176 -- 4219869 Business Flow
5177 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5178 -- Prior Entry. Currently, the following code is always generated.
5179 ------------------------------------------------------------------------------------------------
5180 XLA_AE_LINES_PKG.ValidateCurrentLine;
5181
5182 ------------------------------------------------------------------------------------
5183 -- 4219869 Business Flow
5184 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5185 ------------------------------------------------------------------------------------
5186 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5187
5188 ----------------------------------------------------------------------------------
5189 -- 4219869 Business Flow
5190 -- Update journal entry status -- Need to generate this within IF <condition>
5191 ----------------------------------------------------------------------------------
5192 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5193 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5194 ,p_balance_type_code => l_balance_type_code
5195 );
5196
5197 -------------------------------------------------------------------------------------------
5198 -- 4262811 - Generate the Accrual Reversal lines
5199 -------------------------------------------------------------------------------------------
5200 BEGIN
5201 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5202 (g_array_event(p_event_id).array_value_num('header_index'));
5203 IF l_acc_rev_flag IS NULL THEN
5207 WHEN OTHERS THEN
5204 l_acc_rev_flag := 'N';
5205 END IF;
5206 EXCEPTION
5208 l_acc_rev_flag := 'N';
5209 END;
5210 --
5211 IF (l_acc_rev_flag = 'Y') THEN
5212
5213 -- 4645092 ------------------------------------------------------------------------------
5214 -- To allow MPA report to determine if it should generate report process
5215 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5216 ------------------------------------------------------------------------------------------
5217
5218 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5219 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5223 --
5220 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5221 -- call ADRs
5222 -- Bug 4922099
5224 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5225 (NVL(l_actual_upg_option, 'N') = 'O') OR
5226 (NVL(l_enc_upg_option, 'N') = 'O')
5227 )
5228 THEN
5229 NULL;
5230 --
5231 --
5232
5233 l_ccid := AcctDerRule_20(
5234 p_application_id => p_application_id
5235 , p_ae_header_id => l_ae_header_id
5236 , p_source_22 => p_source_22
5237 , x_transaction_coa_id => l_adr_transaction_coa_id
5238 , x_accounting_coa_id => l_adr_accounting_coa_id
5239 , x_value_type_code => l_adr_value_type_code
5240 , p_side => 'NA'
5241 );
5242
5243 xla_ae_lines_pkg.set_ccid(
5244 p_code_combination_id => l_ccid
5245 , p_value_type_code => l_adr_value_type_code
5246 , p_transaction_coa_id => l_adr_transaction_coa_id
5247 , p_accounting_coa_id => l_adr_accounting_coa_id
5248 , p_adr_code => 'DIST_CCID'
5249 , p_adr_type_code => 'S'
5250 , p_component_type => l_component_type
5251 , p_component_code => l_component_code
5252 , p_component_type_code => l_component_type_code
5253 , p_component_appl_id => l_component_appl_id
5254 , p_amb_context_code => l_amb_context_code
5255 , p_side => 'NA'
5256 );
5257
5258
5259 --
5260 --
5261 END IF;
5262
5263 --
5264 -- Update the line information that should be overwritten
5265 --
5266 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5267 p_header_num => 1);
5268 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5269
5270 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5271
5272 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5273 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5274 END IF;
5275
5276 --
5277 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5278 --
5279 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5280 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5281 ELSE
5282 ---------------------------------------------------------------------------------------------------
5283 -- 4262811a Switch Sign
5284 ---------------------------------------------------------------------------------------------------
5285 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5286 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5287 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5288 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5289 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5290 -- 5132302
5291 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5292 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5293
5294 END IF;
5295
5296 -- 4955764
5297 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5298 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5299
5300
5301 XLA_AE_LINES_PKG.ValidateCurrentLine;
5302 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5303
5304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5306 ,p_balance_type_code => l_balance_type_code);
5307
5308 END IF;
5309
5310 -----------------------------------------------------------------------------------------
5311 -- 4262811 Multiperiod Accounting
5312 -----------------------------------------------------------------------------------------
5313 -- No MPA option is assigned.
5314
5315
5316 END IF;
5317 END IF;
5318 --
5319
5320 --
5321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5322 trace
5323 (p_msg => 'END of AcctLineType_28'
5324 ,p_level => C_LEVEL_PROCEDURE
5325 ,p_module => l_log_module);
5326 END IF;
5327 --
5328 EXCEPTION
5329 WHEN xla_exceptions_pkg.application_exception THEN
5330 RAISE;
5331 WHEN OTHERS THEN
5332 xla_exceptions_pkg.raise_message
5333 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_28');
5334 END AcctLineType_28;
5335 --
5336
5337 ---------------------------------------
5338 --
5339 -- PRIVATE FUNCTION
5340 -- AcctLineType_29
5341 --
5342 ---------------------------------------
5343 PROCEDURE AcctLineType_29 (
5344 p_application_id IN NUMBER
5345 ,p_event_id IN NUMBER
5349 ,p_balance_type_code OUT VARCHAR2
5346 ,p_calculate_acctd_flag IN VARCHAR2
5347 ,p_calculate_g_l_flag IN VARCHAR2
5348 ,p_actual_flag IN OUT VARCHAR2
5350 ,p_gain_or_loss_ref OUT VARCHAR2
5351
5352 --Distribution GL Account
5353 , p_source_22 IN NUMBER
5354 --Distribution Source Type
5355 , p_source_27 IN VARCHAR2
5356 --Distribution Line Identifier
5357 , p_source_29 IN NUMBER
5358 --Distribution Type
5362 --Currency Code
5359 , p_source_30 IN VARCHAR2
5360 --Entered Amount
5361 , p_source_31 IN NUMBER
5363 , p_source_32 IN VARCHAR2
5364 --Exchange Date
5365 , p_source_33 IN DATE
5366 --Exchange Rate
5367 , p_source_34 IN NUMBER
5368 --Exchange Rate Type
5369 , p_source_35 IN VARCHAR2
5370 --Applied To Document Accounting Amount
5371 , p_source_36 IN NUMBER
5372 --Bill To Customer Account Identifier
5373 , p_source_37 IN NUMBER
5374 --Bill To Customer Site Use Identifier
5375 , p_source_38 IN NUMBER
5376 --SLA Party Type
5377 , p_source_39 IN VARCHAR2
5378 )
5379 IS
5380
5381 l_component_type VARCHAR2(80);
5382 l_component_code VARCHAR2(30);
5383 l_component_type_code VARCHAR2(1);
5384 l_component_appl_id INTEGER;
5385 l_amb_context_code VARCHAR2(30);
5386 l_entity_code VARCHAR2(30);
5387 l_event_class_code VARCHAR2(30);
5388 l_ae_header_id NUMBER;
5389 l_event_type_code VARCHAR2(30);
5390 l_line_definition_code VARCHAR2(30);
5391 l_line_definition_owner_code VARCHAR2(1);
5392 --
5393 -- adr variables
5394 l_segment VARCHAR2(30);
5395 l_ccid NUMBER;
5396 l_adr_transaction_coa_id NUMBER;
5397 l_adr_accounting_coa_id NUMBER;
5398 l_adr_flexfield_segment_code VARCHAR2(30);
5399 l_adr_flex_value_set_id NUMBER;
5400 l_adr_value_type_code VARCHAR2(30);
5401 l_adr_value_combination_id NUMBER;
5402 l_adr_value_segment_code VARCHAR2(30);
5403
5404 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5405 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5406 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5407 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5408
5409 -- 4262811 Variables ------------------------------------------------------------------------------------------
5410 l_entered_amt_idx NUMBER;
5411 l_accted_amt_idx NUMBER;
5412 l_acc_rev_flag VARCHAR2(1);
5413 l_accrual_line_num NUMBER;
5414 l_tmp_amt NUMBER;
5415 l_acc_rev_natural_side_code VARCHAR2(1);
5416
5417 l_num_entries NUMBER;
5418 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5419 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5420 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5421 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5422 l_recog_line_1 NUMBER;
5423 l_recog_line_2 NUMBER;
5424
5425 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5426 l_bflow_applied_to_amt NUMBER; -- 5132302
5427 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5428
5429 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5430
5431 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5432 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5433
5434 ---------------------------------------------------------------------------------------------------------------
5435
5436
5437 --
5438 -- bulk performance
5439 --
5440 l_balance_type_code VARCHAR2(1);
5441 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5442 l_log_module VARCHAR2(240);
5443
5444 --
5445 -- Upgrade strategy
5446 --
5447 l_actual_upg_option VARCHAR2(1);
5448 l_enc_upg_option VARCHAR2(1);
5449
5450 --
5451 BEGIN
5452 --
5453 IF g_log_enabled THEN
5454 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
5455 END IF;
5456 --
5457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5458
5459 trace
5460 (p_msg => 'BEGIN of AcctLineType_29'
5461 ,p_level => C_LEVEL_PROCEDURE
5462 ,p_module => l_log_module);
5466 l_component_type := 'AMB_JLT';
5463
5464 END IF;
5465 --
5467 l_component_code := 'ADJ_DEFERRED_TAX';
5468 l_component_type_code := 'S';
5469 l_component_appl_id := 222;
5470 l_amb_context_code := 'DEFAULT';
5471 l_entity_code := 'ADJUSTMENTS';
5472 l_event_class_code := 'ADJUSTMENT';
5473 l_event_type_code := 'ADJUSTMENT_ALL';
5474 l_line_definition_owner_code := 'S';
5475 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
5476 --
5477 l_balance_type_code := 'A';
5478 l_segment := NULL;
5479 l_ccid := NULL;
5480 l_adr_transaction_coa_id := NULL;
5481 l_adr_accounting_coa_id := NULL;
5482 l_adr_flexfield_segment_code := NULL;
5483 l_adr_flex_value_set_id := NULL;
5484 l_adr_value_type_code := NULL;
5485 l_adr_value_combination_id := NULL;
5486 l_adr_value_segment_code := NULL;
5487
5488 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5489 l_bflow_class_code := ''; -- 4219869 Business Flow
5490 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5491 l_budgetary_control_flag := 'N';
5492
5493 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5494 l_bflow_applied_to_amt := NULL; -- 5132302
5495 l_entered_amt_idx := NULL; -- 4262811
5496 l_accted_amt_idx := NULL; -- 4262811
5497 l_acc_rev_flag := NULL; -- 4262811
5498 l_accrual_line_num := NULL; -- 4262811
5499 l_tmp_amt := NULL; -- 4262811
5500 --
5501
5502 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5503 l_balance_type_code <> 'B' THEN
5504 IF NVL(p_source_27,'
5505 ') = 'DEFERRED_TAX'
5506 THEN
5507
5508 --
5509 XLA_AE_LINES_PKG.SetNewLine;
5510
5511 p_balance_type_code := l_balance_type_code;
5512 -- set the flag so later we will know whether the gain loss line needs to be created
5513
5514 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5515 p_actual_flag :='A';
5516 END IF;
5517
5518 --
5519 -- bulk performance
5520 --
5521 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5522 p_header_num => 0); -- 4262811
5526 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5523 --
5524 -- set accounting line options
5525 --
5527 p_natural_side_code => 'C'
5528 , p_gain_or_loss_flag => 'N'
5529 , p_gl_transfer_mode_code => 'S'
5530 , p_acct_entry_type_code => 'A'
5531 , p_switch_side_flag => 'Y'
5532 , p_merge_duplicate_code => 'A'
5533 );
5534 --
5535 l_acc_rev_natural_side_code := 'D'; -- 4262811
5536 --
5537 --
5538 -- set accounting line type info
5539 --
5540 xla_ae_lines_pkg.SetAcctLineType
5541 (p_component_type => l_component_type
5542 ,p_event_type_code => l_event_type_code
5543 ,p_line_definition_owner_code => l_line_definition_owner_code
5544 ,p_line_definition_code => l_line_definition_code
5545 ,p_accounting_line_code => l_component_code
5546 ,p_accounting_line_type_code => l_component_type_code
5547 ,p_accounting_line_appl_id => l_component_appl_id
5548 ,p_amb_context_code => l_amb_context_code
5549 ,p_entity_code => l_entity_code
5550 ,p_event_class_code => l_event_class_code);
5551 --
5552 -- set accounting class
5553 --
5554 xla_ae_lines_pkg.SetAcctClass(
5555 p_accounting_class_code => 'DEFERRED_TAX'
5556 , p_ae_header_id => l_ae_header_id
5557 );
5558
5559 --
5560 -- set rounding class
5561 --
5562 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5563 'RECEIVABLE';
5564
5565 --
5566 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5567 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5568 --
5569 -- bulk performance
5570 --
5571 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5572
5573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5577 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5574 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5575
5576 -- 4955764
5578 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5579
5580 -- 4458381 Public Sector Enh
5581
5582 --
5583 -- set accounting attributes for the line type
5584 --
5585 l_entered_amt_idx := 3;
5586 l_accted_amt_idx := 8;
5587 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5588 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5589 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
5590 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
5591 l_rec_acct_attrs.array_char_value(2) := p_source_30;
5592 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
5593 l_rec_acct_attrs.array_num_value(3) := p_source_31;
5594 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
5595 l_rec_acct_attrs.array_char_value(4) := p_source_32;
5596 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
5597 l_rec_acct_attrs.array_date_value(5) := p_source_33;
5598 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
5599 l_rec_acct_attrs.array_num_value(6) := p_source_34;
5600 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
5601 l_rec_acct_attrs.array_char_value(7) := p_source_35;
5602 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
5603 l_rec_acct_attrs.array_num_value(8) := p_source_36;
5604 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
5605 l_rec_acct_attrs.array_num_value(9) := p_source_37;
5606 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
5607 l_rec_acct_attrs.array_num_value(10) := p_source_38;
5608 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
5609 l_rec_acct_attrs.array_char_value(11) := p_source_39;
5610
5611 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5612 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5613
5614 ---------------------------------------------------------------------------------------------------------------
5615 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5616 ---------------------------------------------------------------------------------------------------------------
5617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5618
5619 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5620 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5621
5622 IF xla_accounting_cache_pkg.GetValueChar
5623 (p_source_code => 'LEDGER_CATEGORY_CODE'
5624 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5625 AND l_bflow_method_code = 'PRIOR_ENTRY'
5626 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5627 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5628 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5629 )
5630 THEN
5631 xla_ae_lines_pkg.BflowUpgEntry
5632 (p_business_method_code => l_bflow_method_code
5633 ,p_business_class_code => l_bflow_class_code
5634 ,p_balance_type => l_balance_type_code);
5635 ELSE
5636 NULL;
5637 -- No business flow processing for business flow method of NONE.
5638 END IF;
5639
5640 --
5641 -- call analytical criteria
5642 --
5643
5644 --
5645 -- call description
5646 --
5647 -- No description or it is inherited.
5648 --
5649 -- call ADRs
5650 -- Bug 4922099
5651 --
5652 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5653 (NVL(l_actual_upg_option, 'N') = 'O') OR
5654 (NVL(l_enc_upg_option, 'N') = 'O')
5655 )
5656 THEN
5657 NULL;
5658 --
5659 --
5660
5661 l_ccid := AcctDerRule_20(
5662 p_application_id => p_application_id
5663 , p_ae_header_id => l_ae_header_id
5664 , p_source_22 => p_source_22
5665 , x_transaction_coa_id => l_adr_transaction_coa_id
5666 , x_accounting_coa_id => l_adr_accounting_coa_id
5667 , x_value_type_code => l_adr_value_type_code
5671 xla_ae_lines_pkg.set_ccid(
5668 , p_side => 'NA'
5669 );
5670
5672 p_code_combination_id => l_ccid
5673 , p_value_type_code => l_adr_value_type_code
5674 , p_transaction_coa_id => l_adr_transaction_coa_id
5675 , p_accounting_coa_id => l_adr_accounting_coa_id
5676 , p_adr_code => 'DIST_CCID'
5677 , p_adr_type_code => 'S'
5678 , p_component_type => l_component_type
5679 , p_component_code => l_component_code
5680 , p_component_type_code => l_component_type_code
5681 , p_component_appl_id => l_component_appl_id
5682 , p_amb_context_code => l_amb_context_code
5683 , p_side => 'NA'
5684 );
5685
5686
5687 --
5688 --
5689 END IF;
5690 --
5691 -- Bug 4922099
5692 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5693 (NVL(l_enc_upg_option, 'N') = 'O')
5694 ) AND
5695 (l_bflow_method_code = 'PRIOR_ENTRY')
5696 )
5697 THEN
5698 IF
5699 --
5700 1 = 2
5701 --
5702 THEN
5703 xla_accounting_err_pkg.build_message
5704 (p_appli_s_name => 'XLA'
5705 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5706 ,p_token_1 => 'LINE_NUMBER'
5707 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5708 ,p_token_2 => 'LINE_TYPE_NAME'
5709 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5710 l_component_type
5711 ,l_component_code
5712 ,l_component_type_code
5713 ,l_component_appl_id
5714 ,l_amb_context_code
5715 ,l_entity_code
5716 ,l_event_class_code
5717 )
5718 ,p_token_3 => 'OWNER'
5719 ,p_value_3 => xla_lookups_pkg.get_meaning(
5720 p_lookup_type => 'XLA_OWNER_TYPE'
5721 ,p_lookup_code => l_component_type_code
5722 )
5723 ,p_token_4 => 'PRODUCT_NAME'
5724 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5725 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5726 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5727 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5728 ,p_ae_header_id => NULL
5729 );
5730
5731 IF (C_LEVEL_ERROR>= g_log_level) THEN
5732 trace
5733 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5734 ,p_level => C_LEVEL_ERROR
5735 ,p_module => l_log_module);
5736 END IF;
5737 END IF;
5738 END IF;
5739 --
5740 --
5741 ------------------------------------------------------------------------------------------------
5742 -- 4219869 Business Flow
5743 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5744 -- Prior Entry. Currently, the following code is always generated.
5745 ------------------------------------------------------------------------------------------------
5746 XLA_AE_LINES_PKG.ValidateCurrentLine;
5747
5748 ------------------------------------------------------------------------------------
5749 -- 4219869 Business Flow
5750 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5751 ------------------------------------------------------------------------------------
5752 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5753
5754 ----------------------------------------------------------------------------------
5755 -- 4219869 Business Flow
5756 -- Update journal entry status -- Need to generate this within IF <condition>
5757 ----------------------------------------------------------------------------------
5758 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5759 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5760 ,p_balance_type_code => l_balance_type_code
5761 );
5762
5763 -------------------------------------------------------------------------------------------
5764 -- 4262811 - Generate the Accrual Reversal lines
5765 -------------------------------------------------------------------------------------------
5766 BEGIN
5767 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5771 END IF;
5768 (g_array_event(p_event_id).array_value_num('header_index'));
5769 IF l_acc_rev_flag IS NULL THEN
5770 l_acc_rev_flag := 'N';
5772 EXCEPTION
5773 WHEN OTHERS THEN
5774 l_acc_rev_flag := 'N';
5775 END;
5776 --
5777 IF (l_acc_rev_flag = 'Y') THEN
5778
5779 -- 4645092 ------------------------------------------------------------------------------
5780 -- To allow MPA report to determine if it should generate report process
5781 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5782 ------------------------------------------------------------------------------------------
5783
5784 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5785 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5786 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5787 -- call ADRs
5788 -- Bug 4922099
5789 --
5790 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5791 (NVL(l_actual_upg_option, 'N') = 'O') OR
5792 (NVL(l_enc_upg_option, 'N') = 'O')
5793 )
5794 THEN
5795 NULL;
5799 l_ccid := AcctDerRule_20(
5796 --
5797 --
5798
5800 p_application_id => p_application_id
5801 , p_ae_header_id => l_ae_header_id
5802 , p_source_22 => p_source_22
5803 , x_transaction_coa_id => l_adr_transaction_coa_id
5804 , x_accounting_coa_id => l_adr_accounting_coa_id
5805 , x_value_type_code => l_adr_value_type_code
5806 , p_side => 'NA'
5807 );
5808
5809 xla_ae_lines_pkg.set_ccid(
5810 p_code_combination_id => l_ccid
5811 , p_value_type_code => l_adr_value_type_code
5812 , p_transaction_coa_id => l_adr_transaction_coa_id
5813 , p_accounting_coa_id => l_adr_accounting_coa_id
5814 , p_adr_code => 'DIST_CCID'
5815 , p_adr_type_code => 'S'
5816 , p_component_type => l_component_type
5817 , p_component_code => l_component_code
5818 , p_component_type_code => l_component_type_code
5819 , p_component_appl_id => l_component_appl_id
5820 , p_amb_context_code => l_amb_context_code
5821 , p_side => 'NA'
5822 );
5823
5824
5825 --
5826 --
5827 END IF;
5828
5829 --
5830 -- Update the line information that should be overwritten
5831 --
5832 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5833 p_header_num => 1);
5834 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5835
5836 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5837
5838 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5839 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5840 END IF;
5841
5842 --
5843 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5844 --
5845 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5846 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5847 ELSE
5848 ---------------------------------------------------------------------------------------------------
5849 -- 4262811a Switch Sign
5850 ---------------------------------------------------------------------------------------------------
5851 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5852 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5853 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5854 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5855 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5856 -- 5132302
5857 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5858 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5859
5860 END IF;
5861
5862 -- 4955764
5863 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5864 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5865
5866
5867 XLA_AE_LINES_PKG.ValidateCurrentLine;
5868 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5869
5873
5870 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5871 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5872 ,p_balance_type_code => l_balance_type_code);
5874 END IF;
5875
5876 -----------------------------------------------------------------------------------------
5877 -- 4262811 Multiperiod Accounting
5878 -----------------------------------------------------------------------------------------
5879 -- No MPA option is assigned.
5880
5881
5882 END IF;
5883 END IF;
5884 --
5885
5886 --
5887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5888 trace
5889 (p_msg => 'END of AcctLineType_29'
5890 ,p_level => C_LEVEL_PROCEDURE
5891 ,p_module => l_log_module);
5892 END IF;
5893 --
5894 EXCEPTION
5895 WHEN xla_exceptions_pkg.application_exception THEN
5896 RAISE;
5897 WHEN OTHERS THEN
5898 xla_exceptions_pkg.raise_message
5899 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_29');
5900 END AcctLineType_29;
5901 --
5902
5903 ---------------------------------------
5904 --
5905 -- PRIVATE FUNCTION
5906 -- AcctLineType_30
5907 --
5908 ---------------------------------------
5909 PROCEDURE AcctLineType_30 (
5910 p_application_id IN NUMBER
5911 ,p_event_id IN NUMBER
5912 ,p_calculate_acctd_flag IN VARCHAR2
5913 ,p_calculate_g_l_flag IN VARCHAR2
5914 ,p_actual_flag IN OUT VARCHAR2
5915 ,p_balance_type_code OUT VARCHAR2
5916 ,p_gain_or_loss_ref OUT VARCHAR2
5917
5918 --Distribution GL Account
5919 , p_source_22 IN NUMBER
5920 --Distribution Source Type
5921 , p_source_27 IN VARCHAR2
5922 --Distribution Line Identifier
5923 , p_source_29 IN NUMBER
5924 --Distribution Type
5925 , p_source_30 IN VARCHAR2
5926 --Entered Amount
5927 , p_source_31 IN NUMBER
5928 --Currency Code
5929 , p_source_32 IN VARCHAR2
5930 --Exchange Date
5931 , p_source_33 IN DATE
5932 --Exchange Rate
5933 , p_source_34 IN NUMBER
5934 --Exchange Rate Type
5935 , p_source_35 IN VARCHAR2
5936 --Applied To Document Accounting Amount
5937 , p_source_36 IN NUMBER
5938 --Bill To Customer Account Identifier
5939 , p_source_37 IN NUMBER
5940 --Bill To Customer Site Use Identifier
5941 , p_source_38 IN NUMBER
5942 --SLA Party Type
5943 , p_source_39 IN VARCHAR2
5944 )
5945 IS
5946
5947 l_component_type VARCHAR2(80);
5948 l_component_code VARCHAR2(30);
5949 l_component_type_code VARCHAR2(1);
5950 l_component_appl_id INTEGER;
5951 l_amb_context_code VARCHAR2(30);
5952 l_entity_code VARCHAR2(30);
5953 l_event_class_code VARCHAR2(30);
5954 l_ae_header_id NUMBER;
5955 l_event_type_code VARCHAR2(30);
5956 l_line_definition_code VARCHAR2(30);
5957 l_line_definition_owner_code VARCHAR2(1);
5958 --
5959 -- adr variables
5960 l_segment VARCHAR2(30);
5961 l_ccid NUMBER;
5962 l_adr_transaction_coa_id NUMBER;
5963 l_adr_accounting_coa_id NUMBER;
5964 l_adr_flexfield_segment_code VARCHAR2(30);
5965 l_adr_flex_value_set_id NUMBER;
5966 l_adr_value_type_code VARCHAR2(30);
5967 l_adr_value_combination_id NUMBER;
5968 l_adr_value_segment_code VARCHAR2(30);
5969
5970 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5971 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5972 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5973 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5974
5975 -- 4262811 Variables ------------------------------------------------------------------------------------------
5979 l_accrual_line_num NUMBER;
5976 l_entered_amt_idx NUMBER;
5977 l_accted_amt_idx NUMBER;
5978 l_acc_rev_flag VARCHAR2(1);
5980 l_tmp_amt NUMBER;
5981 l_acc_rev_natural_side_code VARCHAR2(1);
5982
5983 l_num_entries NUMBER;
5984 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5985 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5986 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5987 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5988 l_recog_line_1 NUMBER;
5989 l_recog_line_2 NUMBER;
5990
5991 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5992 l_bflow_applied_to_amt NUMBER; -- 5132302
5993 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5994
5995 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5996
5997 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5998 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5999
6000 ---------------------------------------------------------------------------------------------------------------
6001
6002
6003 --
6004 -- bulk performance
6005 --
6006 l_balance_type_code VARCHAR2(1);
6007 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6008 l_log_module VARCHAR2(240);
6009
6010 --
6011 -- Upgrade strategy
6012 --
6013 l_actual_upg_option VARCHAR2(1);
6014 l_enc_upg_option VARCHAR2(1);
6015
6016 --
6017 BEGIN
6018 --
6019 IF g_log_enabled THEN
6020 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
6021 END IF;
6022 --
6023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6024
6025 trace
6026 (p_msg => 'BEGIN of AcctLineType_30'
6027 ,p_level => C_LEVEL_PROCEDURE
6028 ,p_module => l_log_module);
6029
6030 END IF;
6031 --
6032 l_component_type := 'AMB_JLT';
6033 l_component_code := 'ADJ_FINCHRG_NON_REC_TAX';
6034 l_component_type_code := 'S';
6035 l_component_appl_id := 222;
6036 l_amb_context_code := 'DEFAULT';
6037 l_entity_code := 'ADJUSTMENTS';
6038 l_event_class_code := 'ADJUSTMENT';
6039 l_event_type_code := 'ADJUSTMENT_ALL';
6040 l_line_definition_owner_code := 'S';
6041 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
6042 --
6043 l_balance_type_code := 'A';
6044 l_segment := NULL;
6045 l_ccid := NULL;
6046 l_adr_transaction_coa_id := NULL;
6047 l_adr_accounting_coa_id := NULL;
6048 l_adr_flexfield_segment_code := NULL;
6049 l_adr_flex_value_set_id := NULL;
6050 l_adr_value_type_code := NULL;
6051 l_adr_value_combination_id := NULL;
6052 l_adr_value_segment_code := NULL;
6053
6054 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6055 l_bflow_class_code := ''; -- 4219869 Business Flow
6056 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6057 l_budgetary_control_flag := 'N';
6058
6059 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6060 l_bflow_applied_to_amt := NULL; -- 5132302
6061 l_entered_amt_idx := NULL; -- 4262811
6062 l_accted_amt_idx := NULL; -- 4262811
6063 l_acc_rev_flag := NULL; -- 4262811
6064 l_accrual_line_num := NULL; -- 4262811
6065 l_tmp_amt := NULL; -- 4262811
6066 --
6067
6068 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6069 l_balance_type_code <> 'B' THEN
6070 IF NVL(p_source_27,'
6071 ') = 'FINCHRG_NON_REC_TAX'
6072 THEN
6073
6074 --
6075 XLA_AE_LINES_PKG.SetNewLine;
6076
6077 p_balance_type_code := l_balance_type_code;
6078 -- set the flag so later we will know whether the gain loss line needs to be created
6079
6080 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6081 p_actual_flag :='A';
6082 END IF;
6083
6084 --
6085 -- bulk performance
6086 --
6087 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6088 p_header_num => 0); -- 4262811
6089 --
6090 -- set accounting line options
6091 --
6092 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6093 p_natural_side_code => 'C'
6094 , p_gain_or_loss_flag => 'N'
6095 , p_gl_transfer_mode_code => 'S'
6096 , p_acct_entry_type_code => 'A'
6097 , p_switch_side_flag => 'Y'
6098 , p_merge_duplicate_code => 'A'
6099 );
6100 --
6101 l_acc_rev_natural_side_code := 'D'; -- 4262811
6102 --
6103 --
6104 -- set accounting line type info
6105 --
6106 xla_ae_lines_pkg.SetAcctLineType
6107 (p_component_type => l_component_type
6108 ,p_event_type_code => l_event_type_code
6109 ,p_line_definition_owner_code => l_line_definition_owner_code
6110 ,p_line_definition_code => l_line_definition_code
6111 ,p_accounting_line_code => l_component_code
6117 --
6112 ,p_accounting_line_type_code => l_component_type_code
6113 ,p_accounting_line_appl_id => l_component_appl_id
6114 ,p_amb_context_code => l_amb_context_code
6115 ,p_entity_code => l_entity_code
6116 ,p_event_class_code => l_event_class_code);
6118 -- set accounting class
6119 --
6120 xla_ae_lines_pkg.SetAcctClass(
6121 p_accounting_class_code => 'FINCHRG_NON_REC_TAX'
6122 , p_ae_header_id => l_ae_header_id
6123 );
6124
6125 --
6126 -- set rounding class
6127 --
6128 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6129 'RECEIVABLE';
6130
6131 --
6132 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6133 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6134 --
6135 -- bulk performance
6136 --
6137 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6138
6139 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6140 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6141
6142 -- 4955764
6143 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6144 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6145
6146 -- 4458381 Public Sector Enh
6147
6148 --
6149 -- set accounting attributes for the line type
6150 --
6151 l_entered_amt_idx := 3;
6152 l_accted_amt_idx := 8;
6153 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6154 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
6155 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
6156 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
6157 l_rec_acct_attrs.array_char_value(2) := p_source_30;
6158 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
6159 l_rec_acct_attrs.array_num_value(3) := p_source_31;
6160 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
6161 l_rec_acct_attrs.array_char_value(4) := p_source_32;
6162 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
6163 l_rec_acct_attrs.array_date_value(5) := p_source_33;
6164 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
6165 l_rec_acct_attrs.array_num_value(6) := p_source_34;
6166 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
6167 l_rec_acct_attrs.array_char_value(7) := p_source_35;
6168 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
6169 l_rec_acct_attrs.array_num_value(8) := p_source_36;
6170 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
6171 l_rec_acct_attrs.array_num_value(9) := p_source_37;
6172 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
6173 l_rec_acct_attrs.array_num_value(10) := p_source_38;
6174 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
6175 l_rec_acct_attrs.array_char_value(11) := p_source_39;
6176
6177 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6178 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6179
6180 ---------------------------------------------------------------------------------------------------------------
6181 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6182 ---------------------------------------------------------------------------------------------------------------
6183 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6184
6185 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6186 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6187
6188 IF xla_accounting_cache_pkg.GetValueChar
6189 (p_source_code => 'LEDGER_CATEGORY_CODE'
6190 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6191 AND l_bflow_method_code = 'PRIOR_ENTRY'
6192 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6193 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6194 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6195 )
6196 THEN
6197 xla_ae_lines_pkg.BflowUpgEntry
6198 (p_business_method_code => l_bflow_method_code
6199 ,p_business_class_code => l_bflow_class_code
6200 ,p_balance_type => l_balance_type_code);
6201 ELSE
6202 NULL;
6203 -- No business flow processing for business flow method of NONE.
6204 END IF;
6205
6209
6206 --
6207 -- call analytical criteria
6208 --
6210 --
6211 -- call description
6212 --
6213 -- No description or it is inherited.
6214 --
6215 -- call ADRs
6216 -- Bug 4922099
6217 --
6218 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6219 (NVL(l_actual_upg_option, 'N') = 'O') OR
6220 (NVL(l_enc_upg_option, 'N') = 'O')
6221 )
6222 THEN
6223 NULL;
6224 --
6225 --
6226
6227 l_ccid := AcctDerRule_20(
6228 p_application_id => p_application_id
6229 , p_ae_header_id => l_ae_header_id
6230 , p_source_22 => p_source_22
6231 , x_transaction_coa_id => l_adr_transaction_coa_id
6232 , x_accounting_coa_id => l_adr_accounting_coa_id
6233 , x_value_type_code => l_adr_value_type_code
6234 , p_side => 'NA'
6235 );
6236
6237 xla_ae_lines_pkg.set_ccid(
6238 p_code_combination_id => l_ccid
6239 , p_value_type_code => l_adr_value_type_code
6240 , p_transaction_coa_id => l_adr_transaction_coa_id
6241 , p_accounting_coa_id => l_adr_accounting_coa_id
6242 , p_adr_code => 'DIST_CCID'
6243 , p_adr_type_code => 'S'
6244 , p_component_type => l_component_type
6245 , p_component_code => l_component_code
6246 , p_component_type_code => l_component_type_code
6247 , p_component_appl_id => l_component_appl_id
6248 , p_amb_context_code => l_amb_context_code
6249 , p_side => 'NA'
6250 );
6251
6252
6253 --
6254 --
6255 END IF;
6256 --
6257 -- Bug 4922099
6258 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6259 (NVL(l_enc_upg_option, 'N') = 'O')
6263 THEN
6260 ) AND
6261 (l_bflow_method_code = 'PRIOR_ENTRY')
6262 )
6264 IF
6265 --
6266 1 = 2
6267 --
6268 THEN
6269 xla_accounting_err_pkg.build_message
6270 (p_appli_s_name => 'XLA'
6271 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6272 ,p_token_1 => 'LINE_NUMBER'
6273 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6274 ,p_token_2 => 'LINE_TYPE_NAME'
6275 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6276 l_component_type
6277 ,l_component_code
6278 ,l_component_type_code
6279 ,l_component_appl_id
6280 ,l_amb_context_code
6281 ,l_entity_code
6282 ,l_event_class_code
6283 )
6284 ,p_token_3 => 'OWNER'
6285 ,p_value_3 => xla_lookups_pkg.get_meaning(
6286 p_lookup_type => 'XLA_OWNER_TYPE'
6287 ,p_lookup_code => l_component_type_code
6288 )
6289 ,p_token_4 => 'PRODUCT_NAME'
6290 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6291 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6292 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6293 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6294 ,p_ae_header_id => NULL
6295 );
6296
6297 IF (C_LEVEL_ERROR>= g_log_level) THEN
6298 trace
6299 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6300 ,p_level => C_LEVEL_ERROR
6301 ,p_module => l_log_module);
6302 END IF;
6303 END IF;
6304 END IF;
6305 --
6306 --
6310 -- Prior Entry. Currently, the following code is always generated.
6307 ------------------------------------------------------------------------------------------------
6308 -- 4219869 Business Flow
6309 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6311 ------------------------------------------------------------------------------------------------
6312 XLA_AE_LINES_PKG.ValidateCurrentLine;
6313
6314 ------------------------------------------------------------------------------------
6315 -- 4219869 Business Flow
6316 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6317 ------------------------------------------------------------------------------------
6318 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6319
6320 ----------------------------------------------------------------------------------
6321 -- 4219869 Business Flow
6322 -- Update journal entry status -- Need to generate this within IF <condition>
6323 ----------------------------------------------------------------------------------
6324 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6325 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6326 ,p_balance_type_code => l_balance_type_code
6327 );
6328
6329 -------------------------------------------------------------------------------------------
6330 -- 4262811 - Generate the Accrual Reversal lines
6331 -------------------------------------------------------------------------------------------
6332 BEGIN
6333 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6334 (g_array_event(p_event_id).array_value_num('header_index'));
6335 IF l_acc_rev_flag IS NULL THEN
6336 l_acc_rev_flag := 'N';
6337 END IF;
6338 EXCEPTION
6339 WHEN OTHERS THEN
6340 l_acc_rev_flag := 'N';
6341 END;
6342 --
6343 IF (l_acc_rev_flag = 'Y') THEN
6344
6345 -- 4645092 ------------------------------------------------------------------------------
6346 -- To allow MPA report to determine if it should generate report process
6347 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6348 ------------------------------------------------------------------------------------------
6349
6350 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6351 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6352 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6353 -- call ADRs
6354 -- Bug 4922099
6355 --
6356 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6357 (NVL(l_actual_upg_option, 'N') = 'O') OR
6358 (NVL(l_enc_upg_option, 'N') = 'O')
6359 )
6360 THEN
6361 NULL;
6362 --
6363 --
6364
6365 l_ccid := AcctDerRule_20(
6366 p_application_id => p_application_id
6367 , p_ae_header_id => l_ae_header_id
6368 , p_source_22 => p_source_22
6369 , x_transaction_coa_id => l_adr_transaction_coa_id
6370 , x_accounting_coa_id => l_adr_accounting_coa_id
6371 , x_value_type_code => l_adr_value_type_code
6372 , p_side => 'NA'
6373 );
6374
6375 xla_ae_lines_pkg.set_ccid(
6376 p_code_combination_id => l_ccid
6377 , p_value_type_code => l_adr_value_type_code
6378 , p_transaction_coa_id => l_adr_transaction_coa_id
6379 , p_accounting_coa_id => l_adr_accounting_coa_id
6380 , p_adr_code => 'DIST_CCID'
6381 , p_adr_type_code => 'S'
6382 , p_component_type => l_component_type
6383 , p_component_code => l_component_code
6387 , p_side => 'NA'
6384 , p_component_type_code => l_component_type_code
6385 , p_component_appl_id => l_component_appl_id
6386 , p_amb_context_code => l_amb_context_code
6388 );
6389
6390
6391 --
6392 --
6393 END IF;
6394
6395 --
6396 -- Update the line information that should be overwritten
6397 --
6398 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6399 p_header_num => 1);
6400 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6401
6402 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6403
6404 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6405 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6406 END IF;
6407
6408 --
6412 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6409 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6410 --
6411 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6413 ELSE
6414 ---------------------------------------------------------------------------------------------------
6415 -- 4262811a Switch Sign
6416 ---------------------------------------------------------------------------------------------------
6417 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6418 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6419 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6420 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6421 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6422 -- 5132302
6423 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6424 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6425
6426 END IF;
6427
6428 -- 4955764
6429 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6430 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6431
6432
6433 XLA_AE_LINES_PKG.ValidateCurrentLine;
6434 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6435
6436 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6437 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6438 ,p_balance_type_code => l_balance_type_code);
6439
6440 END IF;
6441
6442 -----------------------------------------------------------------------------------------
6443 -- 4262811 Multiperiod Accounting
6444 -----------------------------------------------------------------------------------------
6445 -- No MPA option is assigned.
6446
6447
6448 END IF;
6449 END IF;
6450 --
6451
6452 --
6453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6454 trace
6455 (p_msg => 'END of AcctLineType_30'
6456 ,p_level => C_LEVEL_PROCEDURE
6457 ,p_module => l_log_module);
6458 END IF;
6459 --
6460 EXCEPTION
6461 WHEN xla_exceptions_pkg.application_exception THEN
6462 RAISE;
6463 WHEN OTHERS THEN
6464 xla_exceptions_pkg.raise_message
6465 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_30');
6466 END AcctLineType_30;
6467 --
6468
6469 ---------------------------------------
6470 --
6471 -- PRIVATE FUNCTION
6472 -- AcctLineType_31
6473 --
6474 ---------------------------------------
6475 PROCEDURE AcctLineType_31 (
6476 p_application_id IN NUMBER
6477 ,p_event_id IN NUMBER
6478 ,p_calculate_acctd_flag IN VARCHAR2
6479 ,p_calculate_g_l_flag IN VARCHAR2
6480 ,p_actual_flag IN OUT VARCHAR2
6481 ,p_balance_type_code OUT VARCHAR2
6482 ,p_gain_or_loss_ref OUT VARCHAR2
6483
6484 --Distribution GL Account
6485 , p_source_22 IN NUMBER
6486 --Distribution Source Type
6487 , p_source_27 IN VARCHAR2
6488 --Distribution Line Identifier
6489 , p_source_29 IN NUMBER
6490 --Distribution Type
6491 , p_source_30 IN VARCHAR2
6492 --Entered Amount
6493 , p_source_31 IN NUMBER
6494 --Currency Code
6495 , p_source_32 IN VARCHAR2
6496 --Exchange Date
6497 , p_source_33 IN DATE
6498 --Exchange Rate
6499 , p_source_34 IN NUMBER
6500 --Exchange Rate Type
6501 , p_source_35 IN VARCHAR2
6502 --Applied To Document Accounting Amount
6503 , p_source_36 IN NUMBER
6504 --Bill To Customer Account Identifier
6505 , p_source_37 IN NUMBER
6506 --Bill To Customer Site Use Identifier
6507 , p_source_38 IN NUMBER
6508 --SLA Party Type
6509 , p_source_39 IN VARCHAR2
6510 )
6511 IS
6512
6513 l_component_type VARCHAR2(80);
6514 l_component_code VARCHAR2(30);
6515 l_component_type_code VARCHAR2(1);
6516 l_component_appl_id INTEGER;
6517 l_amb_context_code VARCHAR2(30);
6518 l_entity_code VARCHAR2(30);
6519 l_event_class_code VARCHAR2(30);
6520 l_ae_header_id NUMBER;
6521 l_event_type_code VARCHAR2(30);
6522 l_line_definition_code VARCHAR2(30);
6523 l_line_definition_owner_code VARCHAR2(1);
6524 --
6525 -- adr variables
6526 l_segment VARCHAR2(30);
6527 l_ccid NUMBER;
6528 l_adr_transaction_coa_id NUMBER;
6529 l_adr_accounting_coa_id NUMBER;
6530 l_adr_flexfield_segment_code VARCHAR2(30);
6531 l_adr_flex_value_set_id NUMBER;
6532 l_adr_value_type_code VARCHAR2(30);
6533 l_adr_value_combination_id NUMBER;
6534 l_adr_value_segment_code VARCHAR2(30);
6535
6536 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6537 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6538 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6539 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6540
6544 l_acc_rev_flag VARCHAR2(1);
6541 -- 4262811 Variables ------------------------------------------------------------------------------------------
6542 l_entered_amt_idx NUMBER;
6543 l_accted_amt_idx NUMBER;
6545 l_accrual_line_num NUMBER;
6546 l_tmp_amt NUMBER;
6547 l_acc_rev_natural_side_code VARCHAR2(1);
6548
6549 l_num_entries NUMBER;
6550 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6551 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6552 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6553 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6554 l_recog_line_1 NUMBER;
6555 l_recog_line_2 NUMBER;
6556
6557 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6558 l_bflow_applied_to_amt NUMBER; -- 5132302
6559 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6560
6561 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6562
6563 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6564 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6565
6566 ---------------------------------------------------------------------------------------------------------------
6567
6568
6569 --
6570 -- bulk performance
6571 --
6572 l_balance_type_code VARCHAR2(1);
6573 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6574 l_log_module VARCHAR2(240);
6575
6576 --
6577 -- Upgrade strategy
6578 --
6579 l_actual_upg_option VARCHAR2(1);
6580 l_enc_upg_option VARCHAR2(1);
6581
6582 --
6583 BEGIN
6584 --
6585 IF g_log_enabled THEN
6586 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
6587 END IF;
6588 --
6589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6590
6591 trace
6592 (p_msg => 'BEGIN of AcctLineType_31'
6593 ,p_level => C_LEVEL_PROCEDURE
6594 ,p_module => l_log_module);
6595
6596 END IF;
6597 --
6598 l_component_type := 'AMB_JLT';
6599 l_component_code := 'ADJ_NON_REC_TAX';
6600 l_component_type_code := 'S';
6601 l_component_appl_id := 222;
6602 l_amb_context_code := 'DEFAULT';
6603 l_entity_code := 'ADJUSTMENTS';
6604 l_event_class_code := 'ADJUSTMENT';
6605 l_event_type_code := 'ADJUSTMENT_ALL';
6606 l_line_definition_owner_code := 'S';
6607 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
6608 --
6609 l_balance_type_code := 'A';
6610 l_segment := NULL;
6611 l_ccid := NULL;
6612 l_adr_transaction_coa_id := NULL;
6613 l_adr_accounting_coa_id := NULL;
6614 l_adr_flexfield_segment_code := NULL;
6615 l_adr_flex_value_set_id := NULL;
6616 l_adr_value_type_code := NULL;
6617 l_adr_value_combination_id := NULL;
6618 l_adr_value_segment_code := NULL;
6619
6620 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6621 l_bflow_class_code := ''; -- 4219869 Business Flow
6622 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6623 l_budgetary_control_flag := 'N';
6624
6625 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6626 l_bflow_applied_to_amt := NULL; -- 5132302
6627 l_entered_amt_idx := NULL; -- 4262811
6628 l_accted_amt_idx := NULL; -- 4262811
6629 l_acc_rev_flag := NULL; -- 4262811
6630 l_accrual_line_num := NULL; -- 4262811
6631 l_tmp_amt := NULL; -- 4262811
6632 --
6633
6634 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6635 l_balance_type_code <> 'B' THEN
6636 IF NVL(p_source_27,'
6637 ') = 'ADJ_NON_REC_TAX'
6638 THEN
6639
6640 --
6641 XLA_AE_LINES_PKG.SetNewLine;
6642
6643 p_balance_type_code := l_balance_type_code;
6644 -- set the flag so later we will know whether the gain loss line needs to be created
6645
6646 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6647 p_actual_flag :='A';
6648 END IF;
6649
6650 --
6651 -- bulk performance
6652 --
6653 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6654 p_header_num => 0); -- 4262811
6655 --
6656 -- set accounting line options
6657 --
6658 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6659 p_natural_side_code => 'C'
6660 , p_gain_or_loss_flag => 'N'
6661 , p_gl_transfer_mode_code => 'S'
6665 );
6662 , p_acct_entry_type_code => 'A'
6663 , p_switch_side_flag => 'Y'
6664 , p_merge_duplicate_code => 'A'
6666 --
6667 l_acc_rev_natural_side_code := 'D'; -- 4262811
6668 --
6669 --
6670 -- set accounting line type info
6671 --
6672 xla_ae_lines_pkg.SetAcctLineType
6673 (p_component_type => l_component_type
6674 ,p_event_type_code => l_event_type_code
6675 ,p_line_definition_owner_code => l_line_definition_owner_code
6676 ,p_line_definition_code => l_line_definition_code
6677 ,p_accounting_line_code => l_component_code
6678 ,p_accounting_line_type_code => l_component_type_code
6679 ,p_accounting_line_appl_id => l_component_appl_id
6680 ,p_amb_context_code => l_amb_context_code
6681 ,p_entity_code => l_entity_code
6682 ,p_event_class_code => l_event_class_code);
6683 --
6684 -- set accounting class
6685 --
6686 xla_ae_lines_pkg.SetAcctClass(
6687 p_accounting_class_code => 'ADJ_NON_REC_TAX'
6688 , p_ae_header_id => l_ae_header_id
6689 );
6690
6691 --
6692 -- set rounding class
6693 --
6694 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6695 'RECEIVABLE';
6696
6697 --
6698 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6699 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6700 --
6701 -- bulk performance
6702 --
6706 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6703 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6704
6705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6707
6708 -- 4955764
6709 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6710 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6711
6712 -- 4458381 Public Sector Enh
6713
6714 --
6715 -- set accounting attributes for the line type
6716 --
6717 l_entered_amt_idx := 3;
6718 l_accted_amt_idx := 8;
6719 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6720 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
6721 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
6722 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
6723 l_rec_acct_attrs.array_char_value(2) := p_source_30;
6724 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
6725 l_rec_acct_attrs.array_num_value(3) := p_source_31;
6726 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
6727 l_rec_acct_attrs.array_char_value(4) := p_source_32;
6728 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
6729 l_rec_acct_attrs.array_date_value(5) := p_source_33;
6730 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
6731 l_rec_acct_attrs.array_num_value(6) := p_source_34;
6732 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
6733 l_rec_acct_attrs.array_char_value(7) := p_source_35;
6734 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
6735 l_rec_acct_attrs.array_num_value(8) := p_source_36;
6736 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
6737 l_rec_acct_attrs.array_num_value(9) := p_source_37;
6738 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
6739 l_rec_acct_attrs.array_num_value(10) := p_source_38;
6740 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
6741 l_rec_acct_attrs.array_char_value(11) := p_source_39;
6742
6743 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6747 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6744 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6745
6746 ---------------------------------------------------------------------------------------------------------------
6748 ---------------------------------------------------------------------------------------------------------------
6749 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6750
6751 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6752 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6753
6754 IF xla_accounting_cache_pkg.GetValueChar
6755 (p_source_code => 'LEDGER_CATEGORY_CODE'
6756 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6757 AND l_bflow_method_code = 'PRIOR_ENTRY'
6758 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6759 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6760 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6761 )
6762 THEN
6763 xla_ae_lines_pkg.BflowUpgEntry
6764 (p_business_method_code => l_bflow_method_code
6765 ,p_business_class_code => l_bflow_class_code
6766 ,p_balance_type => l_balance_type_code);
6767 ELSE
6768 NULL;
6769 -- No business flow processing for business flow method of NONE.
6770 END IF;
6771
6772 --
6773 -- call analytical criteria
6774 --
6775
6776 --
6777 -- call description
6778 --
6779 -- No description or it is inherited.
6780 --
6781 -- call ADRs
6782 -- Bug 4922099
6783 --
6784 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6785 (NVL(l_actual_upg_option, 'N') = 'O') OR
6786 (NVL(l_enc_upg_option, 'N') = 'O')
6787 )
6788 THEN
6789 NULL;
6790 --
6791 --
6792
6793 l_ccid := AcctDerRule_20(
6794 p_application_id => p_application_id
6795 , p_ae_header_id => l_ae_header_id
6796 , p_source_22 => p_source_22
6797 , x_transaction_coa_id => l_adr_transaction_coa_id
6798 , x_accounting_coa_id => l_adr_accounting_coa_id
6799 , x_value_type_code => l_adr_value_type_code
6800 , p_side => 'NA'
6801 );
6802
6803 xla_ae_lines_pkg.set_ccid(
6804 p_code_combination_id => l_ccid
6805 , p_value_type_code => l_adr_value_type_code
6806 , p_transaction_coa_id => l_adr_transaction_coa_id
6807 , p_accounting_coa_id => l_adr_accounting_coa_id
6808 , p_adr_code => 'DIST_CCID'
6809 , p_adr_type_code => 'S'
6810 , p_component_type => l_component_type
6811 , p_component_code => l_component_code
6812 , p_component_type_code => l_component_type_code
6813 , p_component_appl_id => l_component_appl_id
6814 , p_amb_context_code => l_amb_context_code
6815 , p_side => 'NA'
6816 );
6817
6818
6819 --
6820 --
6821 END IF;
6822 --
6823 -- Bug 4922099
6824 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6825 (NVL(l_enc_upg_option, 'N') = 'O')
6826 ) AND
6827 (l_bflow_method_code = 'PRIOR_ENTRY')
6828 )
6829 THEN
6830 IF
6831 --
6832 1 = 2
6833 --
6834 THEN
6835 xla_accounting_err_pkg.build_message
6836 (p_appli_s_name => 'XLA'
6837 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6838 ,p_token_1 => 'LINE_NUMBER'
6839 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6840 ,p_token_2 => 'LINE_TYPE_NAME'
6841 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6842 l_component_type
6843 ,l_component_code
6847 ,l_entity_code
6844 ,l_component_type_code
6845 ,l_component_appl_id
6846 ,l_amb_context_code
6848 ,l_event_class_code
6849 )
6850 ,p_token_3 => 'OWNER'
6851 ,p_value_3 => xla_lookups_pkg.get_meaning(
6852 p_lookup_type => 'XLA_OWNER_TYPE'
6853 ,p_lookup_code => l_component_type_code
6854 )
6855 ,p_token_4 => 'PRODUCT_NAME'
6856 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6857 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6858 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6859 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6860 ,p_ae_header_id => NULL
6861 );
6862
6863 IF (C_LEVEL_ERROR>= g_log_level) THEN
6864 trace
6865 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6866 ,p_level => C_LEVEL_ERROR
6867 ,p_module => l_log_module);
6868 END IF;
6869 END IF;
6870 END IF;
6871 --
6872 --
6873 ------------------------------------------------------------------------------------------------
6874 -- 4219869 Business Flow
6875 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6876 -- Prior Entry. Currently, the following code is always generated.
6877 ------------------------------------------------------------------------------------------------
6878 XLA_AE_LINES_PKG.ValidateCurrentLine;
6879
6880 ------------------------------------------------------------------------------------
6881 -- 4219869 Business Flow
6882 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6883 ------------------------------------------------------------------------------------
6884 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6885
6886 ----------------------------------------------------------------------------------
6887 -- 4219869 Business Flow
6888 -- Update journal entry status -- Need to generate this within IF <condition>
6889 ----------------------------------------------------------------------------------
6890 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6891 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6892 ,p_balance_type_code => l_balance_type_code
6893 );
6894
6895 -------------------------------------------------------------------------------------------
6896 -- 4262811 - Generate the Accrual Reversal lines
6897 -------------------------------------------------------------------------------------------
6898 BEGIN
6899 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6900 (g_array_event(p_event_id).array_value_num('header_index'));
6901 IF l_acc_rev_flag IS NULL THEN
6902 l_acc_rev_flag := 'N';
6903 END IF;
6904 EXCEPTION
6905 WHEN OTHERS THEN
6906 l_acc_rev_flag := 'N';
6907 END;
6908 --
6909 IF (l_acc_rev_flag = 'Y') THEN
6910
6911 -- 4645092 ------------------------------------------------------------------------------
6912 -- To allow MPA report to determine if it should generate report process
6913 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6914 ------------------------------------------------------------------------------------------
6915
6916 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6917 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6918 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6919 -- call ADRs
6920 -- Bug 4922099
6921 --
6922 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6926 THEN
6923 (NVL(l_actual_upg_option, 'N') = 'O') OR
6924 (NVL(l_enc_upg_option, 'N') = 'O')
6925 )
6927 NULL;
6928 --
6929 --
6930
6931 l_ccid := AcctDerRule_20(
6932 p_application_id => p_application_id
6933 , p_ae_header_id => l_ae_header_id
6934 , p_source_22 => p_source_22
6935 , x_transaction_coa_id => l_adr_transaction_coa_id
6936 , x_accounting_coa_id => l_adr_accounting_coa_id
6937 , x_value_type_code => l_adr_value_type_code
6938 , p_side => 'NA'
6939 );
6940
6941 xla_ae_lines_pkg.set_ccid(
6942 p_code_combination_id => l_ccid
6943 , p_value_type_code => l_adr_value_type_code
6944 , p_transaction_coa_id => l_adr_transaction_coa_id
6945 , p_accounting_coa_id => l_adr_accounting_coa_id
6946 , p_adr_code => 'DIST_CCID'
6947 , p_adr_type_code => 'S'
6948 , p_component_type => l_component_type
6949 , p_component_code => l_component_code
6950 , p_component_type_code => l_component_type_code
6951 , p_component_appl_id => l_component_appl_id
6952 , p_amb_context_code => l_amb_context_code
6953 , p_side => 'NA'
6954 );
6955
6956
6957 --
6958 --
6959 END IF;
6960
6961 --
6962 -- Update the line information that should be overwritten
6963 --
6964 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6965 p_header_num => 1);
6966 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6967
6968 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6969
6970 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6971 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6972 END IF;
6973
6974 --
6975 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6976 --
6977 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6978 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6979 ELSE
6980 ---------------------------------------------------------------------------------------------------
6981 -- 4262811a Switch Sign
6982 ---------------------------------------------------------------------------------------------------
6983 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6984 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6985 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6986 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6987 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6988 -- 5132302
6989 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6990 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6991
6992 END IF;
6993
6994 -- 4955764
6995 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6996 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6997
6998
6999 XLA_AE_LINES_PKG.ValidateCurrentLine;
7000 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7001
7002 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7003 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7004 ,p_balance_type_code => l_balance_type_code);
7005
7006 END IF;
7007
7008 -----------------------------------------------------------------------------------------
7009 -- 4262811 Multiperiod Accounting
7010 -----------------------------------------------------------------------------------------
7011 -- No MPA option is assigned.
7012
7013
7014 END IF;
7015 END IF;
7016 --
7017
7018 --
7019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7020 trace
7021 (p_msg => 'END of AcctLineType_31'
7022 ,p_level => C_LEVEL_PROCEDURE
7023 ,p_module => l_log_module);
7024 END IF;
7025 --
7026 EXCEPTION
7027 WHEN xla_exceptions_pkg.application_exception THEN
7028 RAISE;
7029 WHEN OTHERS THEN
7030 xla_exceptions_pkg.raise_message
7031 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_31');
7032 END AcctLineType_31;
7033 --
7034
7035 ---------------------------------------
7036 --
7037 -- PRIVATE FUNCTION
7038 -- AcctLineType_32
7039 --
7040 ---------------------------------------
7041 PROCEDURE AcctLineType_32 (
7042 p_application_id IN NUMBER
7043 ,p_event_id IN NUMBER
7044 ,p_calculate_acctd_flag IN VARCHAR2
7045 ,p_calculate_g_l_flag IN VARCHAR2
7046 ,p_actual_flag IN OUT VARCHAR2
7047 ,p_balance_type_code OUT VARCHAR2
7048 ,p_gain_or_loss_ref OUT VARCHAR2
7049
7050 --Distribution GL Account
7051 , p_source_22 IN NUMBER
7052 --Distribution Source Type
7053 , p_source_27 IN VARCHAR2
7054 --Distribution Line Identifier
7055 , p_source_29 IN NUMBER
7059 , p_source_31 IN NUMBER
7056 --Distribution Type
7057 , p_source_30 IN VARCHAR2
7058 --Entered Amount
7060 --Currency Code
7061 , p_source_32 IN VARCHAR2
7062 --Exchange Date
7063 , p_source_33 IN DATE
7064 --Exchange Rate
7065 , p_source_34 IN NUMBER
7066 --Exchange Rate Type
7067 , p_source_35 IN VARCHAR2
7068 --Applied To Document Accounting Amount
7069 , p_source_36 IN NUMBER
7070 --Bill To Customer Account Identifier
7071 , p_source_37 IN NUMBER
7072 --Bill To Customer Site Use Identifier
7073 , p_source_38 IN NUMBER
7074 --SLA Party Type
7075 , p_source_39 IN VARCHAR2
7076 )
7077 IS
7078
7079 l_component_type VARCHAR2(80);
7080 l_component_code VARCHAR2(30);
7081 l_component_type_code VARCHAR2(1);
7082 l_component_appl_id INTEGER;
7083 l_amb_context_code VARCHAR2(30);
7084 l_entity_code VARCHAR2(30);
7085 l_event_class_code VARCHAR2(30);
7086 l_ae_header_id NUMBER;
7087 l_event_type_code VARCHAR2(30);
7088 l_line_definition_code VARCHAR2(30);
7089 l_line_definition_owner_code VARCHAR2(1);
7090 --
7091 -- adr variables
7092 l_segment VARCHAR2(30);
7093 l_ccid NUMBER;
7094 l_adr_transaction_coa_id NUMBER;
7095 l_adr_accounting_coa_id NUMBER;
7096 l_adr_flexfield_segment_code VARCHAR2(30);
7097 l_adr_flex_value_set_id NUMBER;
7098 l_adr_value_type_code VARCHAR2(30);
7099 l_adr_value_combination_id NUMBER;
7100 l_adr_value_segment_code VARCHAR2(30);
7101
7102 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7103 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7104 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7105 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7106
7107 -- 4262811 Variables ------------------------------------------------------------------------------------------
7108 l_entered_amt_idx NUMBER;
7109 l_accted_amt_idx NUMBER;
7110 l_acc_rev_flag VARCHAR2(1);
7111 l_accrual_line_num NUMBER;
7112 l_tmp_amt NUMBER;
7113 l_acc_rev_natural_side_code VARCHAR2(1);
7114
7115 l_num_entries NUMBER;
7116 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7117 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7118 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7119 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7120 l_recog_line_1 NUMBER;
7121 l_recog_line_2 NUMBER;
7122
7123 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7124 l_bflow_applied_to_amt NUMBER; -- 5132302
7125 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7126
7127 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7128
7129 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7130 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7131
7132 ---------------------------------------------------------------------------------------------------------------
7133
7134
7135 --
7136 -- bulk performance
7137 --
7138 l_balance_type_code VARCHAR2(1);
7139 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7140 l_log_module VARCHAR2(240);
7141
7142 --
7143 -- Upgrade strategy
7144 --
7145 l_actual_upg_option VARCHAR2(1);
7146 l_enc_upg_option VARCHAR2(1);
7147
7148 --
7149 BEGIN
7150 --
7151 IF g_log_enabled THEN
7152 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
7153 END IF;
7154 --
7155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7156
7157 trace
7158 (p_msg => 'BEGIN of AcctLineType_32'
7159 ,p_level => C_LEVEL_PROCEDURE
7160 ,p_module => l_log_module);
7161
7162 END IF;
7163 --
7164 l_component_type := 'AMB_JLT';
7165 l_component_code := 'ADJ_TAX';
7166 l_component_type_code := 'S';
7167 l_component_appl_id := 222;
7168 l_amb_context_code := 'DEFAULT';
7169 l_entity_code := 'ADJUSTMENTS';
7170 l_event_class_code := 'ADJUSTMENT';
7171 l_event_type_code := 'ADJUSTMENT_ALL';
7172 l_line_definition_owner_code := 'S';
7173 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
7174 --
7175 l_balance_type_code := 'A';
7176 l_segment := NULL;
7177 l_ccid := NULL;
7178 l_adr_transaction_coa_id := NULL;
7179 l_adr_accounting_coa_id := NULL;
7180 l_adr_flexfield_segment_code := NULL;
7181 l_adr_flex_value_set_id := NULL;
7182 l_adr_value_type_code := NULL;
7183 l_adr_value_combination_id := NULL;
7184 l_adr_value_segment_code := NULL;
7185
7186 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7187 l_bflow_class_code := ''; -- 4219869 Business Flow
7188 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7189 l_budgetary_control_flag := 'N';
7190
7191 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7192 l_bflow_applied_to_amt := NULL; -- 5132302
7193 l_entered_amt_idx := NULL; -- 4262811
7197 l_tmp_amt := NULL; -- 4262811
7194 l_accted_amt_idx := NULL; -- 4262811
7195 l_acc_rev_flag := NULL; -- 4262811
7196 l_accrual_line_num := NULL; -- 4262811
7198 --
7199
7200 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7201 l_balance_type_code <> 'B' THEN
7202 IF NVL(p_source_27,'
7203 ') = 'TAX'
7204 THEN
7205
7206 --
7207 XLA_AE_LINES_PKG.SetNewLine;
7208
7209 p_balance_type_code := l_balance_type_code;
7210 -- set the flag so later we will know whether the gain loss line needs to be created
7211
7212 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7213 p_actual_flag :='A';
7214 END IF;
7215
7216 --
7217 -- bulk performance
7218 --
7219 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7220 p_header_num => 0); -- 4262811
7221 --
7222 -- set accounting line options
7223 --
7224 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7225 p_natural_side_code => 'C'
7226 , p_gain_or_loss_flag => 'N'
7227 , p_gl_transfer_mode_code => 'S'
7228 , p_acct_entry_type_code => 'A'
7229 , p_switch_side_flag => 'Y'
7230 , p_merge_duplicate_code => 'A'
7231 );
7232 --
7233 l_acc_rev_natural_side_code := 'D'; -- 4262811
7234 --
7235 --
7236 -- set accounting line type info
7237 --
7238 xla_ae_lines_pkg.SetAcctLineType
7239 (p_component_type => l_component_type
7240 ,p_event_type_code => l_event_type_code
7241 ,p_line_definition_owner_code => l_line_definition_owner_code
7242 ,p_line_definition_code => l_line_definition_code
7243 ,p_accounting_line_code => l_component_code
7244 ,p_accounting_line_type_code => l_component_type_code
7245 ,p_accounting_line_appl_id => l_component_appl_id
7246 ,p_amb_context_code => l_amb_context_code
7247 ,p_entity_code => l_entity_code
7248 ,p_event_class_code => l_event_class_code);
7249 --
7250 -- set accounting class
7251 --
7252 xla_ae_lines_pkg.SetAcctClass(
7253 p_accounting_class_code => 'TAX'
7254 , p_ae_header_id => l_ae_header_id
7255 );
7256
7257 --
7258 -- set rounding class
7259 --
7260 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7261 'RECEIVABLE';
7262
7263 --
7264 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7265 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7266 --
7267 -- bulk performance
7268 --
7269 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7270
7271 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7272 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7273
7274 -- 4955764
7275 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7276 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7277
7278 -- 4458381 Public Sector Enh
7279
7280 --
7281 -- set accounting attributes for the line type
7282 --
7283 l_entered_amt_idx := 3;
7284 l_accted_amt_idx := 8;
7285 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7286 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
7287 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
7288 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
7289 l_rec_acct_attrs.array_char_value(2) := p_source_30;
7290 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
7291 l_rec_acct_attrs.array_num_value(3) := p_source_31;
7292 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
7293 l_rec_acct_attrs.array_char_value(4) := p_source_32;
7294 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
7295 l_rec_acct_attrs.array_date_value(5) := p_source_33;
7296 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
7297 l_rec_acct_attrs.array_num_value(6) := p_source_34;
7298 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
7299 l_rec_acct_attrs.array_char_value(7) := p_source_35;
7300 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
7301 l_rec_acct_attrs.array_num_value(8) := p_source_36;
7302 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
7303 l_rec_acct_attrs.array_num_value(9) := p_source_37;
7304 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
7305 l_rec_acct_attrs.array_num_value(10) := p_source_38;
7306 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
7307 l_rec_acct_attrs.array_char_value(11) := p_source_39;
7308
7309 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7310 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7311
7312 ---------------------------------------------------------------------------------------------------------------
7313 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7317 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7314 ---------------------------------------------------------------------------------------------------------------
7315 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7316
7318 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7319
7320 IF xla_accounting_cache_pkg.GetValueChar
7321 (p_source_code => 'LEDGER_CATEGORY_CODE'
7322 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7323 AND l_bflow_method_code = 'PRIOR_ENTRY'
7324 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7325 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7326 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7327 )
7328 THEN
7329 xla_ae_lines_pkg.BflowUpgEntry
7330 (p_business_method_code => l_bflow_method_code
7331 ,p_business_class_code => l_bflow_class_code
7332 ,p_balance_type => l_balance_type_code);
7333 ELSE
7334 NULL;
7335 -- No business flow processing for business flow method of NONE.
7336 END IF;
7337
7338 --
7339 -- call analytical criteria
7340 --
7341
7342 --
7343 -- call description
7344 --
7345 -- No description or it is inherited.
7346 --
7347 -- call ADRs
7348 -- Bug 4922099
7349 --
7350 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7351 (NVL(l_actual_upg_option, 'N') = 'O') OR
7352 (NVL(l_enc_upg_option, 'N') = 'O')
7353 )
7354 THEN
7355 NULL;
7356 --
7357 --
7358
7359 l_ccid := AcctDerRule_20(
7360 p_application_id => p_application_id
7361 , p_ae_header_id => l_ae_header_id
7362 , p_source_22 => p_source_22
7363 , x_transaction_coa_id => l_adr_transaction_coa_id
7364 , x_accounting_coa_id => l_adr_accounting_coa_id
7365 , x_value_type_code => l_adr_value_type_code
7366 , p_side => 'NA'
7367 );
7368
7369 xla_ae_lines_pkg.set_ccid(
7370 p_code_combination_id => l_ccid
7371 , p_value_type_code => l_adr_value_type_code
7372 , p_transaction_coa_id => l_adr_transaction_coa_id
7373 , p_accounting_coa_id => l_adr_accounting_coa_id
7374 , p_adr_code => 'DIST_CCID'
7375 , p_adr_type_code => 'S'
7376 , p_component_type => l_component_type
7377 , p_component_code => l_component_code
7378 , p_component_type_code => l_component_type_code
7379 , p_component_appl_id => l_component_appl_id
7380 , p_amb_context_code => l_amb_context_code
7381 , p_side => 'NA'
7382 );
7383
7384
7385 --
7386 --
7387 END IF;
7388 --
7389 -- Bug 4922099
7390 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7391 (NVL(l_enc_upg_option, 'N') = 'O')
7392 ) AND
7393 (l_bflow_method_code = 'PRIOR_ENTRY')
7394 )
7395 THEN
7396 IF
7397 --
7398 1 = 2
7399 --
7400 THEN
7401 xla_accounting_err_pkg.build_message
7402 (p_appli_s_name => 'XLA'
7403 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7404 ,p_token_1 => 'LINE_NUMBER'
7405 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7406 ,p_token_2 => 'LINE_TYPE_NAME'
7407 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7408 l_component_type
7409 ,l_component_code
7410 ,l_component_type_code
7411 ,l_component_appl_id
7412 ,l_amb_context_code
7413 ,l_entity_code
7414 ,l_event_class_code
7415 )
7416 ,p_token_3 => 'OWNER'
7417 ,p_value_3 => xla_lookups_pkg.get_meaning(
7418 p_lookup_type => 'XLA_OWNER_TYPE'
7419 ,p_lookup_code => l_component_type_code
7420 )
7421 ,p_token_4 => 'PRODUCT_NAME'
7422 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7423 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7424 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7428
7425 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7426 ,p_ae_header_id => NULL
7427 );
7429 IF (C_LEVEL_ERROR>= g_log_level) THEN
7430 trace
7431 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7432 ,p_level => C_LEVEL_ERROR
7433 ,p_module => l_log_module);
7434 END IF;
7435 END IF;
7436 END IF;
7437 --
7438 --
7439 ------------------------------------------------------------------------------------------------
7440 -- 4219869 Business Flow
7441 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7442 -- Prior Entry. Currently, the following code is always generated.
7443 ------------------------------------------------------------------------------------------------
7444 XLA_AE_LINES_PKG.ValidateCurrentLine;
7445
7446 ------------------------------------------------------------------------------------
7447 -- 4219869 Business Flow
7448 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7449 ------------------------------------------------------------------------------------
7450 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7451
7452 ----------------------------------------------------------------------------------
7453 -- 4219869 Business Flow
7454 -- Update journal entry status -- Need to generate this within IF <condition>
7455 ----------------------------------------------------------------------------------
7456 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7457 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7458 ,p_balance_type_code => l_balance_type_code
7459 );
7460
7461 -------------------------------------------------------------------------------------------
7462 -- 4262811 - Generate the Accrual Reversal lines
7463 -------------------------------------------------------------------------------------------
7464 BEGIN
7465 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7466 (g_array_event(p_event_id).array_value_num('header_index'));
7467 IF l_acc_rev_flag IS NULL THEN
7468 l_acc_rev_flag := 'N';
7469 END IF;
7470 EXCEPTION
7471 WHEN OTHERS THEN
7472 l_acc_rev_flag := 'N';
7473 END;
7474 --
7475 IF (l_acc_rev_flag = 'Y') THEN
7476
7477 -- 4645092 ------------------------------------------------------------------------------
7478 -- To allow MPA report to determine if it should generate report process
7479 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7480 ------------------------------------------------------------------------------------------
7481
7482 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7483 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7484 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7485 -- call ADRs
7486 -- Bug 4922099
7487 --
7488 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7489 (NVL(l_actual_upg_option, 'N') = 'O') OR
7490 (NVL(l_enc_upg_option, 'N') = 'O')
7491 )
7492 THEN
7493 NULL;
7494 --
7495 --
7496
7497 l_ccid := AcctDerRule_20(
7498 p_application_id => p_application_id
7499 , p_ae_header_id => l_ae_header_id
7500 , p_source_22 => p_source_22
7501 , x_transaction_coa_id => l_adr_transaction_coa_id
7502 , x_accounting_coa_id => l_adr_accounting_coa_id
7503 , x_value_type_code => l_adr_value_type_code
7504 , p_side => 'NA'
7505 );
7506
7507 xla_ae_lines_pkg.set_ccid(
7508 p_code_combination_id => l_ccid
7509 , p_value_type_code => l_adr_value_type_code
7510 , p_transaction_coa_id => l_adr_transaction_coa_id
7511 , p_accounting_coa_id => l_adr_accounting_coa_id
7512 , p_adr_code => 'DIST_CCID'
7513 , p_adr_type_code => 'S'
7514 , p_component_type => l_component_type
7515 , p_component_code => l_component_code
7516 , p_component_type_code => l_component_type_code
7517 , p_component_appl_id => l_component_appl_id
7518 , p_amb_context_code => l_amb_context_code
7519 , p_side => 'NA'
7520 );
7521
7522
7523 --
7524 --
7525 END IF;
7526
7527 --
7528 -- Update the line information that should be overwritten
7529 --
7530 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7531 p_header_num => 1);
7532 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7533
7534 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7535
7536 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7537 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7538 END IF;
7539
7540 --
7541 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7542 --
7546 ---------------------------------------------------------------------------------------------------
7543 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7544 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7545 ELSE
7547 -- 4262811a Switch Sign
7548 ---------------------------------------------------------------------------------------------------
7549 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7550 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7551 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7552 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7553 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7554 -- 5132302
7555 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7556 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7557
7558 END IF;
7559
7560 -- 4955764
7561 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7562 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7563
7564
7565 XLA_AE_LINES_PKG.ValidateCurrentLine;
7566 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7567
7568 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7569 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7570 ,p_balance_type_code => l_balance_type_code);
7571
7572 END IF;
7573
7574 -----------------------------------------------------------------------------------------
7575 -- 4262811 Multiperiod Accounting
7576 -----------------------------------------------------------------------------------------
7577 -- No MPA option is assigned.
7578
7579
7580 END IF;
7581 END IF;
7582 --
7583
7584 --
7585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7586 trace
7587 (p_msg => 'END of AcctLineType_32'
7588 ,p_level => C_LEVEL_PROCEDURE
7589 ,p_module => l_log_module);
7590 END IF;
7591 --
7592 EXCEPTION
7593 WHEN xla_exceptions_pkg.application_exception THEN
7594 RAISE;
7595 WHEN OTHERS THEN
7596 xla_exceptions_pkg.raise_message
7597 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_32');
7598 END AcctLineType_32;
7599 --
7600
7601 ---------------------------------------
7602 --
7603 -- PRIVATE FUNCTION
7604 -- AcctLineType_33
7605 --
7606 ---------------------------------------
7607 PROCEDURE AcctLineType_33 (
7608 p_application_id IN NUMBER
7609 ,p_event_id IN NUMBER
7610 ,p_calculate_acctd_flag IN VARCHAR2
7611 ,p_calculate_g_l_flag IN VARCHAR2
7612 ,p_actual_flag IN OUT VARCHAR2
7613 ,p_balance_type_code OUT VARCHAR2
7614 ,p_gain_or_loss_ref OUT VARCHAR2
7615
7616 --Distribution GL Account
7617 , p_source_22 IN NUMBER
7618 --Distribution Source Type
7619 , p_source_27 IN VARCHAR2
7620 --Distribution Line Identifier
7621 , p_source_29 IN NUMBER
7622 --Distribution Type
7623 , p_source_30 IN VARCHAR2
7624 --Entered Amount
7625 , p_source_31 IN NUMBER
7626 --Currency Code
7627 , p_source_32 IN VARCHAR2
7628 --Exchange Date
7629 , p_source_33 IN DATE
7630 --Exchange Rate
7631 , p_source_34 IN NUMBER
7632 --Exchange Rate Type
7633 , p_source_35 IN VARCHAR2
7634 --SLA Party Type
7635 , p_source_39 IN VARCHAR2
7636 --Accounting Amount
7637 , p_source_40 IN NUMBER
7638 --Drawee Account Identifier
7639 , p_source_41 IN NUMBER
7640 --DRAW_SITE_SITE_USE_ID
7641 , p_source_42 IN NUMBER
7642 )
7643 IS
7644
7645 l_component_type VARCHAR2(80);
7646 l_component_code VARCHAR2(30);
7647 l_component_type_code VARCHAR2(1);
7648 l_component_appl_id INTEGER;
7649 l_amb_context_code VARCHAR2(30);
7650 l_entity_code VARCHAR2(30);
7651 l_event_class_code VARCHAR2(30);
7652 l_ae_header_id NUMBER;
7653 l_event_type_code VARCHAR2(30);
7654 l_line_definition_code VARCHAR2(30);
7655 l_line_definition_owner_code VARCHAR2(1);
7656 --
7657 -- adr variables
7658 l_segment VARCHAR2(30);
7659 l_ccid NUMBER;
7660 l_adr_transaction_coa_id NUMBER;
7661 l_adr_accounting_coa_id NUMBER;
7662 l_adr_flexfield_segment_code VARCHAR2(30);
7663 l_adr_flex_value_set_id NUMBER;
7664 l_adr_value_type_code VARCHAR2(30);
7665 l_adr_value_combination_id NUMBER;
7666 l_adr_value_segment_code VARCHAR2(30);
7667
7668 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7669 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7670 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7671 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7672
7673 -- 4262811 Variables ------------------------------------------------------------------------------------------
7674 l_entered_amt_idx NUMBER;
7675 l_accted_amt_idx NUMBER;
7676 l_acc_rev_flag VARCHAR2(1);
7677 l_accrual_line_num NUMBER;
7681 l_num_entries NUMBER;
7678 l_tmp_amt NUMBER;
7679 l_acc_rev_natural_side_code VARCHAR2(1);
7680
7682 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7683 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7684 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7685 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7686 l_recog_line_1 NUMBER;
7687 l_recog_line_2 NUMBER;
7688
7689 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7690 l_bflow_applied_to_amt NUMBER; -- 5132302
7691 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7692
7693 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7694
7695 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7696 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7697
7698 ---------------------------------------------------------------------------------------------------------------
7699
7700
7701 --
7702 -- bulk performance
7703 --
7704 l_balance_type_code VARCHAR2(1);
7705 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7706 l_log_module VARCHAR2(240);
7707
7708 --
7709 -- Upgrade strategy
7710 --
7711 l_actual_upg_option VARCHAR2(1);
7712 l_enc_upg_option VARCHAR2(1);
7713
7714 --
7715 BEGIN
7716 --
7717 IF g_log_enabled THEN
7718 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
7719 END IF;
7720 --
7721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7722
7723 trace
7724 (p_msg => 'BEGIN of AcctLineType_33'
7725 ,p_level => C_LEVEL_PROCEDURE
7726 ,p_module => l_log_module);
7727
7728 END IF;
7729 --
7730 l_component_type := 'AMB_JLT';
7731 l_component_code := 'BR_DEFERRED_TAX';
7732 l_component_type_code := 'S';
7733 l_component_appl_id := 222;
7734 l_amb_context_code := 'DEFAULT';
7735 l_entity_code := 'BILLS_RECEIVABLE';
7736 l_event_class_code := 'BILL';
7737 l_event_type_code := 'BILL_ALL';
7738 l_line_definition_owner_code := 'S';
7739 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
7740 --
7741 l_balance_type_code := 'A';
7742 l_segment := NULL;
7743 l_ccid := NULL;
7744 l_adr_transaction_coa_id := NULL;
7745 l_adr_accounting_coa_id := NULL;
7746 l_adr_flexfield_segment_code := NULL;
7747 l_adr_flex_value_set_id := NULL;
7748 l_adr_value_type_code := NULL;
7749 l_adr_value_combination_id := NULL;
7750 l_adr_value_segment_code := NULL;
7751
7752 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7753 l_bflow_class_code := ''; -- 4219869 Business Flow
7754 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7755 l_budgetary_control_flag := 'N';
7756
7757 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7758 l_bflow_applied_to_amt := NULL; -- 5132302
7759 l_entered_amt_idx := NULL; -- 4262811
7760 l_accted_amt_idx := NULL; -- 4262811
7761 l_acc_rev_flag := NULL; -- 4262811
7762 l_accrual_line_num := NULL; -- 4262811
7763 l_tmp_amt := NULL; -- 4262811
7764 --
7765
7766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7767 l_balance_type_code <> 'B' THEN
7768 IF NVL(p_source_27,'
7769 ') = 'DEFERRED_TAX'
7770 THEN
7771
7772 --
7773 XLA_AE_LINES_PKG.SetNewLine;
7774
7775 p_balance_type_code := l_balance_type_code;
7776 -- set the flag so later we will know whether the gain loss line needs to be created
7777
7778 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7779 p_actual_flag :='A';
7780 END IF;
7781
7782 --
7783 -- bulk performance
7784 --
7785 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7786 p_header_num => 0); -- 4262811
7787 --
7788 -- set accounting line options
7789 --
7790 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7791 p_natural_side_code => 'C'
7792 , p_gain_or_loss_flag => 'N'
7793 , p_gl_transfer_mode_code => 'S'
7794 , p_acct_entry_type_code => 'A'
7795 , p_switch_side_flag => 'Y'
7796 , p_merge_duplicate_code => 'A'
7797 );
7798 --
7799 l_acc_rev_natural_side_code := 'D'; -- 4262811
7800 --
7801 --
7802 -- set accounting line type info
7803 --
7804 xla_ae_lines_pkg.SetAcctLineType
7805 (p_component_type => l_component_type
7806 ,p_event_type_code => l_event_type_code
7807 ,p_line_definition_owner_code => l_line_definition_owner_code
7808 ,p_line_definition_code => l_line_definition_code
7809 ,p_accounting_line_code => l_component_code
7810 ,p_accounting_line_type_code => l_component_type_code
7811 ,p_accounting_line_appl_id => l_component_appl_id
7812 ,p_amb_context_code => l_amb_context_code
7813 ,p_entity_code => l_entity_code
7814 ,p_event_class_code => l_event_class_code);
7815 --
7816 -- set accounting class
7817 --
7818 xla_ae_lines_pkg.SetAcctClass(
7822
7819 p_accounting_class_code => 'DEFERRED_TAX'
7820 , p_ae_header_id => l_ae_header_id
7821 );
7823 --
7824 -- set rounding class
7825 --
7826 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7827 'DEFERRED_TAX';
7828
7829 --
7830 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7831 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7832 --
7833 -- bulk performance
7834 --
7835 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7836
7837 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7838 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7839
7840 -- 4955764
7841 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7842 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7843
7844 -- 4458381 Public Sector Enh
7845
7846 --
7847 -- set accounting attributes for the line type
7848 --
7849 l_entered_amt_idx := 3;
7850 l_accted_amt_idx := 8;
7851 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7852 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
7853 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
7854 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
7855 l_rec_acct_attrs.array_char_value(2) := p_source_30;
7856 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
7857 l_rec_acct_attrs.array_num_value(3) := p_source_31;
7858 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
7859 l_rec_acct_attrs.array_char_value(4) := p_source_32;
7860 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
7861 l_rec_acct_attrs.array_date_value(5) := p_source_33;
7862 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
7863 l_rec_acct_attrs.array_num_value(6) := p_source_34;
7864 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
7865 l_rec_acct_attrs.array_char_value(7) := p_source_35;
7866 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
7867 l_rec_acct_attrs.array_num_value(8) := p_source_40;
7868 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
7869 l_rec_acct_attrs.array_num_value(9) := p_source_41;
7870 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
7871 l_rec_acct_attrs.array_num_value(10) := p_source_42;
7872 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
7873 l_rec_acct_attrs.array_char_value(11) := p_source_39;
7874
7875 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7876 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7877
7878 ---------------------------------------------------------------------------------------------------------------
7879 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7880 ---------------------------------------------------------------------------------------------------------------
7881 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7882
7883 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7884 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7885
7886 IF xla_accounting_cache_pkg.GetValueChar
7887 (p_source_code => 'LEDGER_CATEGORY_CODE'
7888 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7889 AND l_bflow_method_code = 'PRIOR_ENTRY'
7890 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7891 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7892 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7893 )
7894 THEN
7895 xla_ae_lines_pkg.BflowUpgEntry
7896 (p_business_method_code => l_bflow_method_code
7897 ,p_business_class_code => l_bflow_class_code
7898 ,p_balance_type => l_balance_type_code);
7899 ELSE
7900 NULL;
7901 -- No business flow processing for business flow method of NONE.
7902 END IF;
7903
7904 --
7905 -- call analytical criteria
7906 --
7907
7908 --
7909 -- call description
7910 --
7911 -- No description or it is inherited.
7912 --
7913 -- call ADRs
7914 -- Bug 4922099
7915 --
7916 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7917 (NVL(l_actual_upg_option, 'N') = 'O') OR
7918 (NVL(l_enc_upg_option, 'N') = 'O')
7919 )
7920 THEN
7921 NULL;
7922 --
7923 --
7924
7925 l_ccid := AcctDerRule_20(
7926 p_application_id => p_application_id
7927 , p_ae_header_id => l_ae_header_id
7928 , p_source_22 => p_source_22
7929 , x_transaction_coa_id => l_adr_transaction_coa_id
7930 , x_accounting_coa_id => l_adr_accounting_coa_id
7931 , x_value_type_code => l_adr_value_type_code
7932 , p_side => 'NA'
7933 );
7934
7935 xla_ae_lines_pkg.set_ccid(
7936 p_code_combination_id => l_ccid
7937 , p_value_type_code => l_adr_value_type_code
7938 , p_transaction_coa_id => l_adr_transaction_coa_id
7939 , p_accounting_coa_id => l_adr_accounting_coa_id
7943 , p_component_code => l_component_code
7940 , p_adr_code => 'DIST_CCID'
7941 , p_adr_type_code => 'S'
7942 , p_component_type => l_component_type
7944 , p_component_type_code => l_component_type_code
7945 , p_component_appl_id => l_component_appl_id
7946 , p_amb_context_code => l_amb_context_code
7947 , p_side => 'NA'
7948 );
7949
7950
7951 --
7952 --
7953 END IF;
7954 --
7955 -- Bug 4922099
7956 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7957 (NVL(l_enc_upg_option, 'N') = 'O')
7958 ) AND
7959 (l_bflow_method_code = 'PRIOR_ENTRY')
7960 )
7961 THEN
7962 IF
7963 --
7964 1 = 2
7965 --
7966 THEN
7967 xla_accounting_err_pkg.build_message
7968 (p_appli_s_name => 'XLA'
7969 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7970 ,p_token_1 => 'LINE_NUMBER'
7971 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7972 ,p_token_2 => 'LINE_TYPE_NAME'
7973 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7974 l_component_type
7975 ,l_component_code
7976 ,l_component_type_code
7977 ,l_component_appl_id
7978 ,l_amb_context_code
7979 ,l_entity_code
7980 ,l_event_class_code
7981 )
7982 ,p_token_3 => 'OWNER'
7983 ,p_value_3 => xla_lookups_pkg.get_meaning(
7984 p_lookup_type => 'XLA_OWNER_TYPE'
7985 ,p_lookup_code => l_component_type_code
7986 )
7987 ,p_token_4 => 'PRODUCT_NAME'
7988 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7989 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7990 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7991 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7992 ,p_ae_header_id => NULL
7993 );
7994
7995 IF (C_LEVEL_ERROR>= g_log_level) THEN
7996 trace
7997 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7998 ,p_level => C_LEVEL_ERROR
7999 ,p_module => l_log_module);
8000 END IF;
8001 END IF;
8002 END IF;
8003 --
8004 --
8005 ------------------------------------------------------------------------------------------------
8006 -- 4219869 Business Flow
8007 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8008 -- Prior Entry. Currently, the following code is always generated.
8009 ------------------------------------------------------------------------------------------------
8010 XLA_AE_LINES_PKG.ValidateCurrentLine;
8011
8012 ------------------------------------------------------------------------------------
8013 -- 4219869 Business Flow
8014 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8015 ------------------------------------------------------------------------------------
8016 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8017
8021 ----------------------------------------------------------------------------------
8018 ----------------------------------------------------------------------------------
8019 -- 4219869 Business Flow
8020 -- Update journal entry status -- Need to generate this within IF <condition>
8022 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8023 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8024 ,p_balance_type_code => l_balance_type_code
8025 );
8026
8027 -------------------------------------------------------------------------------------------
8028 -- 4262811 - Generate the Accrual Reversal lines
8029 -------------------------------------------------------------------------------------------
8030 BEGIN
8031 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8032 (g_array_event(p_event_id).array_value_num('header_index'));
8033 IF l_acc_rev_flag IS NULL THEN
8034 l_acc_rev_flag := 'N';
8035 END IF;
8036 EXCEPTION
8037 WHEN OTHERS THEN
8038 l_acc_rev_flag := 'N';
8039 END;
8040 --
8041 IF (l_acc_rev_flag = 'Y') THEN
8042
8043 -- 4645092 ------------------------------------------------------------------------------
8044 -- To allow MPA report to determine if it should generate report process
8045 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8046 ------------------------------------------------------------------------------------------
8047
8048 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8049 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8050 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8051 -- call ADRs
8052 -- Bug 4922099
8053 --
8054 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8055 (NVL(l_actual_upg_option, 'N') = 'O') OR
8056 (NVL(l_enc_upg_option, 'N') = 'O')
8057 )
8058 THEN
8059 NULL;
8060 --
8061 --
8062
8063 l_ccid := AcctDerRule_20(
8064 p_application_id => p_application_id
8065 , p_ae_header_id => l_ae_header_id
8066 , p_source_22 => p_source_22
8067 , x_transaction_coa_id => l_adr_transaction_coa_id
8068 , x_accounting_coa_id => l_adr_accounting_coa_id
8069 , x_value_type_code => l_adr_value_type_code
8070 , p_side => 'NA'
8071 );
8072
8073 xla_ae_lines_pkg.set_ccid(
8074 p_code_combination_id => l_ccid
8075 , p_value_type_code => l_adr_value_type_code
8076 , p_transaction_coa_id => l_adr_transaction_coa_id
8077 , p_accounting_coa_id => l_adr_accounting_coa_id
8078 , p_adr_code => 'DIST_CCID'
8079 , p_adr_type_code => 'S'
8080 , p_component_type => l_component_type
8081 , p_component_code => l_component_code
8082 , p_component_type_code => l_component_type_code
8083 , p_component_appl_id => l_component_appl_id
8084 , p_amb_context_code => l_amb_context_code
8085 , p_side => 'NA'
8086 );
8087
8088
8089 --
8090 --
8091 END IF;
8092
8093 --
8094 -- Update the line information that should be overwritten
8095 --
8096 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8097 p_header_num => 1);
8098 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8099
8100 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8101
8102 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8103 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8104 END IF;
8105
8106 --
8107 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8108 --
8109 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8110 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8111 ELSE
8112 ---------------------------------------------------------------------------------------------------
8113 -- 4262811a Switch Sign
8114 ---------------------------------------------------------------------------------------------------
8115 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8116 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8117 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8118 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8119 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8120 -- 5132302
8121 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8122 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8123
8124 END IF;
8125
8126 -- 4955764
8127 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8128 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8129
8130
8131 XLA_AE_LINES_PKG.ValidateCurrentLine;
8132 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8133
8134 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8138 END IF;
8135 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8136 ,p_balance_type_code => l_balance_type_code);
8137
8139
8140 -----------------------------------------------------------------------------------------
8141 -- 4262811 Multiperiod Accounting
8142 -----------------------------------------------------------------------------------------
8143 -- No MPA option is assigned.
8144
8145
8146 END IF;
8147 END IF;
8148 --
8149
8150 --
8151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8152 trace
8153 (p_msg => 'END of AcctLineType_33'
8154 ,p_level => C_LEVEL_PROCEDURE
8155 ,p_module => l_log_module);
8156 END IF;
8157 --
8158 EXCEPTION
8159 WHEN xla_exceptions_pkg.application_exception THEN
8160 RAISE;
8161 WHEN OTHERS THEN
8162 xla_exceptions_pkg.raise_message
8163 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_33');
8164 END AcctLineType_33;
8165 --
8166
8167 ---------------------------------------
8168 --
8169 -- PRIVATE FUNCTION
8170 -- AcctLineType_34
8171 --
8172 ---------------------------------------
8173 PROCEDURE AcctLineType_34 (
8174 p_application_id IN NUMBER
8175 ,p_event_id IN NUMBER
8176 ,p_calculate_acctd_flag IN VARCHAR2
8177 ,p_calculate_g_l_flag IN VARCHAR2
8178 ,p_actual_flag IN OUT VARCHAR2
8179 ,p_balance_type_code OUT VARCHAR2
8180 ,p_gain_or_loss_ref OUT VARCHAR2
8181
8182 --Distribution GL Account
8183 , p_source_22 IN NUMBER
8184 --Distribution Source Type
8185 , p_source_27 IN VARCHAR2
8186 --Distribution Line Identifier
8187 , p_source_29 IN NUMBER
8188 --Distribution Type
8189 , p_source_30 IN VARCHAR2
8190 --Entered Amount
8191 , p_source_31 IN NUMBER
8192 --Currency Code
8193 , p_source_32 IN VARCHAR2
8194 --Exchange Date
8195 , p_source_33 IN DATE
8196 --Exchange Rate
8197 , p_source_34 IN NUMBER
8198 --Exchange Rate Type
8199 , p_source_35 IN VARCHAR2
8200 --SLA Party Type
8201 , p_source_39 IN VARCHAR2
8202 --Accounting Amount
8203 , p_source_40 IN NUMBER
8204 --Drawee Account Identifier
8205 , p_source_41 IN NUMBER
8206 --DRAW_SITE_SITE_USE_ID
8207 , p_source_42 IN NUMBER
8208 )
8209 IS
8210
8211 l_component_type VARCHAR2(80);
8212 l_component_code VARCHAR2(30);
8213 l_component_type_code VARCHAR2(1);
8214 l_component_appl_id INTEGER;
8215 l_amb_context_code VARCHAR2(30);
8216 l_entity_code VARCHAR2(30);
8217 l_event_class_code VARCHAR2(30);
8218 l_ae_header_id NUMBER;
8219 l_event_type_code VARCHAR2(30);
8220 l_line_definition_code VARCHAR2(30);
8221 l_line_definition_owner_code VARCHAR2(1);
8222 --
8223 -- adr variables
8224 l_segment VARCHAR2(30);
8225 l_ccid NUMBER;
8226 l_adr_transaction_coa_id NUMBER;
8227 l_adr_accounting_coa_id NUMBER;
8228 l_adr_flexfield_segment_code VARCHAR2(30);
8229 l_adr_flex_value_set_id NUMBER;
8230 l_adr_value_type_code VARCHAR2(30);
8231 l_adr_value_combination_id NUMBER;
8232 l_adr_value_segment_code VARCHAR2(30);
8233
8234 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8235 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8236 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8237 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8238
8239 -- 4262811 Variables ------------------------------------------------------------------------------------------
8240 l_entered_amt_idx NUMBER;
8241 l_accted_amt_idx NUMBER;
8242 l_acc_rev_flag VARCHAR2(1);
8243 l_accrual_line_num NUMBER;
8244 l_tmp_amt NUMBER;
8245 l_acc_rev_natural_side_code VARCHAR2(1);
8246
8247 l_num_entries NUMBER;
8248 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8249 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8250 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8251 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8252 l_recog_line_1 NUMBER;
8253 l_recog_line_2 NUMBER;
8254
8255 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8256 l_bflow_applied_to_amt NUMBER; -- 5132302
8257 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8258
8259 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8260
8261 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8262 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8263
8264 ---------------------------------------------------------------------------------------------------------------
8265
8266
8267 --
8268 -- bulk performance
8269 --
8270 l_balance_type_code VARCHAR2(1);
8271 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8272 l_log_module VARCHAR2(240);
8273
8274 --
8275 -- Upgrade strategy
8276 --
8277 l_actual_upg_option VARCHAR2(1);
8278 l_enc_upg_option VARCHAR2(1);
8279
8280 --
8281 BEGIN
8282 --
8286 --
8283 IF g_log_enabled THEN
8284 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
8285 END IF;
8287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8288
8289 trace
8290 (p_msg => 'BEGIN of AcctLineType_34'
8291 ,p_level => C_LEVEL_PROCEDURE
8292 ,p_module => l_log_module);
8293
8294 END IF;
8295 --
8296 l_component_type := 'AMB_JLT';
8297 l_component_code := 'BR_FACTOR';
8298 l_component_type_code := 'S';
8299 l_component_appl_id := 222;
8300 l_amb_context_code := 'DEFAULT';
8301 l_entity_code := 'BILLS_RECEIVABLE';
8302 l_event_class_code := 'BILL';
8303 l_event_type_code := 'BILL_ALL';
8304 l_line_definition_owner_code := 'S';
8305 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
8306 --
8307 l_balance_type_code := 'A';
8308 l_segment := NULL;
8309 l_ccid := NULL;
8310 l_adr_transaction_coa_id := NULL;
8311 l_adr_accounting_coa_id := NULL;
8312 l_adr_flexfield_segment_code := NULL;
8313 l_adr_flex_value_set_id := NULL;
8314 l_adr_value_type_code := NULL;
8315 l_adr_value_combination_id := NULL;
8316 l_adr_value_segment_code := NULL;
8317
8318 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8319 l_bflow_class_code := ''; -- 4219869 Business Flow
8320 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8321 l_budgetary_control_flag := 'N';
8322
8323 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8324 l_bflow_applied_to_amt := NULL; -- 5132302
8325 l_entered_amt_idx := NULL; -- 4262811
8326 l_accted_amt_idx := NULL; -- 4262811
8327 l_acc_rev_flag := NULL; -- 4262811
8328 l_accrual_line_num := NULL; -- 4262811
8329 l_tmp_amt := NULL; -- 4262811
8330 --
8331
8332 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8333 l_balance_type_code <> 'B' THEN
8334 IF NVL(p_source_27,'
8335 ') = 'FACTOR'
8336 THEN
8337
8338 --
8339 XLA_AE_LINES_PKG.SetNewLine;
8340
8341 p_balance_type_code := l_balance_type_code;
8342 -- set the flag so later we will know whether the gain loss line needs to be created
8343
8344 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8345 p_actual_flag :='A';
8346 END IF;
8347
8348 --
8349 -- bulk performance
8350 --
8351 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8352 p_header_num => 0); -- 4262811
8353 --
8354 -- set accounting line options
8355 --
8356 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8357 p_natural_side_code => 'C'
8358 , p_gain_or_loss_flag => 'N'
8359 , p_gl_transfer_mode_code => 'S'
8360 , p_acct_entry_type_code => 'A'
8361 , p_switch_side_flag => 'Y'
8362 , p_merge_duplicate_code => 'A'
8363 );
8364 --
8365 l_acc_rev_natural_side_code := 'D'; -- 4262811
8366 --
8367 --
8368 -- set accounting line type info
8369 --
8370 xla_ae_lines_pkg.SetAcctLineType
8371 (p_component_type => l_component_type
8372 ,p_event_type_code => l_event_type_code
8373 ,p_line_definition_owner_code => l_line_definition_owner_code
8374 ,p_line_definition_code => l_line_definition_code
8375 ,p_accounting_line_code => l_component_code
8376 ,p_accounting_line_type_code => l_component_type_code
8377 ,p_accounting_line_appl_id => l_component_appl_id
8378 ,p_amb_context_code => l_amb_context_code
8379 ,p_entity_code => l_entity_code
8380 ,p_event_class_code => l_event_class_code);
8381 --
8382 -- set accounting class
8383 --
8384 xla_ae_lines_pkg.SetAcctClass(
8385 p_accounting_class_code => 'FAC_BR'
8386 , p_ae_header_id => l_ae_header_id
8387 );
8388
8389 --
8390 -- set rounding class
8391 --
8392 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8393 'FAC_BR';
8394
8395 --
8396 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8397 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8398 --
8399 -- bulk performance
8400 --
8401 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8402
8403 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8404 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8405
8406 -- 4955764
8407 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8408 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8409
8410 -- 4458381 Public Sector Enh
8411
8412 --
8413 -- set accounting attributes for the line type
8414 --
8415 l_entered_amt_idx := 3;
8416 l_accted_amt_idx := 8;
8417 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8418 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8419 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
8420 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
8424 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
8421 l_rec_acct_attrs.array_char_value(2) := p_source_30;
8422 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
8423 l_rec_acct_attrs.array_num_value(3) := p_source_31;
8425 l_rec_acct_attrs.array_char_value(4) := p_source_32;
8426 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
8427 l_rec_acct_attrs.array_date_value(5) := p_source_33;
8428 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
8429 l_rec_acct_attrs.array_num_value(6) := p_source_34;
8430 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
8431 l_rec_acct_attrs.array_char_value(7) := p_source_35;
8432 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
8433 l_rec_acct_attrs.array_num_value(8) := p_source_40;
8434 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
8435 l_rec_acct_attrs.array_num_value(9) := p_source_41;
8436 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
8437 l_rec_acct_attrs.array_num_value(10) := p_source_42;
8438 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
8439 l_rec_acct_attrs.array_char_value(11) := p_source_39;
8440
8441 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8442 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8443
8444 ---------------------------------------------------------------------------------------------------------------
8445 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8446 ---------------------------------------------------------------------------------------------------------------
8447 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8448
8449 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8450 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8451
8452 IF xla_accounting_cache_pkg.GetValueChar
8453 (p_source_code => 'LEDGER_CATEGORY_CODE'
8454 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8455 AND l_bflow_method_code = 'PRIOR_ENTRY'
8456 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8457 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8458 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8459 )
8460 THEN
8461 xla_ae_lines_pkg.BflowUpgEntry
8462 (p_business_method_code => l_bflow_method_code
8463 ,p_business_class_code => l_bflow_class_code
8464 ,p_balance_type => l_balance_type_code);
8465 ELSE
8466 NULL;
8467 -- No business flow processing for business flow method of NONE.
8468 END IF;
8469
8470 --
8471 -- call analytical criteria
8472 --
8473
8474 --
8475 -- call description
8476 --
8477 -- No description or it is inherited.
8478 --
8479 -- call ADRs
8480 -- Bug 4922099
8481 --
8482 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8483 (NVL(l_actual_upg_option, 'N') = 'O') OR
8484 (NVL(l_enc_upg_option, 'N') = 'O')
8485 )
8486 THEN
8487 NULL;
8488 --
8489 --
8490
8491 l_ccid := AcctDerRule_20(
8492 p_application_id => p_application_id
8493 , p_ae_header_id => l_ae_header_id
8494 , p_source_22 => p_source_22
8495 , x_transaction_coa_id => l_adr_transaction_coa_id
8496 , x_accounting_coa_id => l_adr_accounting_coa_id
8497 , x_value_type_code => l_adr_value_type_code
8498 , p_side => 'NA'
8499 );
8500
8501 xla_ae_lines_pkg.set_ccid(
8502 p_code_combination_id => l_ccid
8503 , p_value_type_code => l_adr_value_type_code
8504 , p_transaction_coa_id => l_adr_transaction_coa_id
8505 , p_accounting_coa_id => l_adr_accounting_coa_id
8506 , p_adr_code => 'DIST_CCID'
8507 , p_adr_type_code => 'S'
8508 , p_component_type => l_component_type
8509 , p_component_code => l_component_code
8510 , p_component_type_code => l_component_type_code
8511 , p_component_appl_id => l_component_appl_id
8512 , p_amb_context_code => l_amb_context_code
8513 , p_side => 'NA'
8514 );
8515
8516
8517 --
8518 --
8519 END IF;
8520 --
8521 -- Bug 4922099
8522 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8523 (NVL(l_enc_upg_option, 'N') = 'O')
8524 ) AND
8525 (l_bflow_method_code = 'PRIOR_ENTRY')
8526 )
8527 THEN
8528 IF
8529 --
8530 1 = 2
8531 --
8532 THEN
8533 xla_accounting_err_pkg.build_message
8534 (p_appli_s_name => 'XLA'
8535 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8536 ,p_token_1 => 'LINE_NUMBER'
8537 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8538 ,p_token_2 => 'LINE_TYPE_NAME'
8539 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8540 l_component_type
8541 ,l_component_code
8545 ,l_entity_code
8542 ,l_component_type_code
8543 ,l_component_appl_id
8544 ,l_amb_context_code
8546 ,l_event_class_code
8547 )
8548 ,p_token_3 => 'OWNER'
8549 ,p_value_3 => xla_lookups_pkg.get_meaning(
8550 p_lookup_type => 'XLA_OWNER_TYPE'
8551 ,p_lookup_code => l_component_type_code
8552 )
8553 ,p_token_4 => 'PRODUCT_NAME'
8554 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8555 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8556 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8557 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8558 ,p_ae_header_id => NULL
8559 );
8560
8561 IF (C_LEVEL_ERROR>= g_log_level) THEN
8562 trace
8563 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8564 ,p_level => C_LEVEL_ERROR
8565 ,p_module => l_log_module);
8566 END IF;
8567 END IF;
8568 END IF;
8569 --
8570 --
8571 ------------------------------------------------------------------------------------------------
8572 -- 4219869 Business Flow
8573 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8574 -- Prior Entry. Currently, the following code is always generated.
8575 ------------------------------------------------------------------------------------------------
8576 XLA_AE_LINES_PKG.ValidateCurrentLine;
8577
8578 ------------------------------------------------------------------------------------
8579 -- 4219869 Business Flow
8580 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8581 ------------------------------------------------------------------------------------
8582 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8583
8584 ----------------------------------------------------------------------------------
8585 -- 4219869 Business Flow
8586 -- Update journal entry status -- Need to generate this within IF <condition>
8587 ----------------------------------------------------------------------------------
8588 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8589 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8590 ,p_balance_type_code => l_balance_type_code
8591 );
8592
8593 -------------------------------------------------------------------------------------------
8594 -- 4262811 - Generate the Accrual Reversal lines
8595 -------------------------------------------------------------------------------------------
8596 BEGIN
8597 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8598 (g_array_event(p_event_id).array_value_num('header_index'));
8599 IF l_acc_rev_flag IS NULL THEN
8600 l_acc_rev_flag := 'N';
8601 END IF;
8602 EXCEPTION
8603 WHEN OTHERS THEN
8604 l_acc_rev_flag := 'N';
8605 END;
8606 --
8607 IF (l_acc_rev_flag = 'Y') THEN
8608
8609 -- 4645092 ------------------------------------------------------------------------------
8610 -- To allow MPA report to determine if it should generate report process
8611 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8612 ------------------------------------------------------------------------------------------
8613
8614 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8615 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8616 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8617 -- call ADRs
8618 -- Bug 4922099
8619 --
8620 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8621 (NVL(l_actual_upg_option, 'N') = 'O') OR
8622 (NVL(l_enc_upg_option, 'N') = 'O')
8623 )
8624 THEN
8625 NULL;
8626 --
8627 --
8628
8629 l_ccid := AcctDerRule_20(
8630 p_application_id => p_application_id
8631 , p_ae_header_id => l_ae_header_id
8632 , p_source_22 => p_source_22
8633 , x_transaction_coa_id => l_adr_transaction_coa_id
8634 , x_accounting_coa_id => l_adr_accounting_coa_id
8635 , x_value_type_code => l_adr_value_type_code
8636 , p_side => 'NA'
8637 );
8638
8639 xla_ae_lines_pkg.set_ccid(
8640 p_code_combination_id => l_ccid
8641 , p_value_type_code => l_adr_value_type_code
8642 , p_transaction_coa_id => l_adr_transaction_coa_id
8643 , p_accounting_coa_id => l_adr_accounting_coa_id
8644 , p_adr_code => 'DIST_CCID'
8645 , p_adr_type_code => 'S'
8646 , p_component_type => l_component_type
8647 , p_component_code => l_component_code
8651 , p_side => 'NA'
8648 , p_component_type_code => l_component_type_code
8649 , p_component_appl_id => l_component_appl_id
8650 , p_amb_context_code => l_amb_context_code
8652 );
8653
8654
8655 --
8656 --
8657 END IF;
8658
8659 --
8660 -- Update the line information that should be overwritten
8661 --
8662 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8663 p_header_num => 1);
8664 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8665
8666 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8667
8668 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8669 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8670 END IF;
8671
8672 --
8673 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8674 --
8675 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8676 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8677 ELSE
8678 ---------------------------------------------------------------------------------------------------
8679 -- 4262811a Switch Sign
8680 ---------------------------------------------------------------------------------------------------
8681 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8682 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8683 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8684 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8685 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8686 -- 5132302
8687 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8688 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8689
8690 END IF;
8691
8692 -- 4955764
8693 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8694 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8695
8696
8697 XLA_AE_LINES_PKG.ValidateCurrentLine;
8698 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8699
8700 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8701 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8702 ,p_balance_type_code => l_balance_type_code);
8703
8704 END IF;
8705
8706 -----------------------------------------------------------------------------------------
8707 -- 4262811 Multiperiod Accounting
8708 -----------------------------------------------------------------------------------------
8709 -- No MPA option is assigned.
8710
8711
8712 END IF;
8713 END IF;
8714 --
8715
8716 --
8717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8718 trace
8719 (p_msg => 'END of AcctLineType_34'
8720 ,p_level => C_LEVEL_PROCEDURE
8721 ,p_module => l_log_module);
8722 END IF;
8723 --
8724 EXCEPTION
8725 WHEN xla_exceptions_pkg.application_exception THEN
8726 RAISE;
8727 WHEN OTHERS THEN
8728 xla_exceptions_pkg.raise_message
8729 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_34');
8730 END AcctLineType_34;
8731 --
8732
8733 ---------------------------------------
8734 --
8735 -- PRIVATE FUNCTION
8736 -- AcctLineType_35
8737 --
8738 ---------------------------------------
8739 PROCEDURE AcctLineType_35 (
8740 p_application_id IN NUMBER
8741 ,p_event_id IN NUMBER
8742 ,p_calculate_acctd_flag IN VARCHAR2
8743 ,p_calculate_g_l_flag IN VARCHAR2
8744 ,p_actual_flag IN OUT VARCHAR2
8745 ,p_balance_type_code OUT VARCHAR2
8746 ,p_gain_or_loss_ref OUT VARCHAR2
8747
8748 --Distribution GL Account
8749 , p_source_22 IN NUMBER
8750 --Distribution Source Type
8751 , p_source_27 IN VARCHAR2
8752 --Distribution Line Identifier
8753 , p_source_29 IN NUMBER
8754 --Distribution Type
8755 , p_source_30 IN VARCHAR2
8756 --Entered Amount
8757 , p_source_31 IN NUMBER
8758 --Currency Code
8759 , p_source_32 IN VARCHAR2
8760 --Exchange Date
8761 , p_source_33 IN DATE
8762 --Exchange Rate
8763 , p_source_34 IN NUMBER
8764 --Exchange Rate Type
8765 , p_source_35 IN VARCHAR2
8766 --SLA Party Type
8767 , p_source_39 IN VARCHAR2
8768 --Accounting Amount
8769 , p_source_40 IN NUMBER
8770 --Drawee Account Identifier
8771 , p_source_41 IN NUMBER
8772 --DRAW_SITE_SITE_USE_ID
8773 , p_source_42 IN NUMBER
8774 )
8775 IS
8776
8777 l_component_type VARCHAR2(80);
8778 l_component_code VARCHAR2(30);
8779 l_component_type_code VARCHAR2(1);
8780 l_component_appl_id INTEGER;
8781 l_amb_context_code VARCHAR2(30);
8782 l_entity_code VARCHAR2(30);
8783 l_event_class_code VARCHAR2(30);
8784 l_ae_header_id NUMBER;
8785 l_event_type_code VARCHAR2(30);
8789 -- adr variables
8786 l_line_definition_code VARCHAR2(30);
8787 l_line_definition_owner_code VARCHAR2(1);
8788 --
8790 l_segment VARCHAR2(30);
8791 l_ccid NUMBER;
8792 l_adr_transaction_coa_id NUMBER;
8793 l_adr_accounting_coa_id NUMBER;
8794 l_adr_flexfield_segment_code VARCHAR2(30);
8795 l_adr_flex_value_set_id NUMBER;
8796 l_adr_value_type_code VARCHAR2(30);
8797 l_adr_value_combination_id NUMBER;
8798 l_adr_value_segment_code VARCHAR2(30);
8799
8800 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8801 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8802 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8803 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8804
8805 -- 4262811 Variables ------------------------------------------------------------------------------------------
8806 l_entered_amt_idx NUMBER;
8807 l_accted_amt_idx NUMBER;
8808 l_acc_rev_flag VARCHAR2(1);
8809 l_accrual_line_num NUMBER;
8810 l_tmp_amt NUMBER;
8811 l_acc_rev_natural_side_code VARCHAR2(1);
8812
8813 l_num_entries NUMBER;
8814 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8815 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8816 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8817 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8818 l_recog_line_1 NUMBER;
8819 l_recog_line_2 NUMBER;
8820
8821 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8822 l_bflow_applied_to_amt NUMBER; -- 5132302
8823 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8824
8825 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8826
8827 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8828 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8829
8830 ---------------------------------------------------------------------------------------------------------------
8831
8832
8833 --
8834 -- bulk performance
8835 --
8836 l_balance_type_code VARCHAR2(1);
8837 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8838 l_log_module VARCHAR2(240);
8839
8840 --
8841 -- Upgrade strategy
8842 --
8843 l_actual_upg_option VARCHAR2(1);
8844 l_enc_upg_option VARCHAR2(1);
8845
8846 --
8847 BEGIN
8848 --
8849 IF g_log_enabled THEN
8850 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
8851 END IF;
8852 --
8853 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8854
8855 trace
8856 (p_msg => 'BEGIN of AcctLineType_35'
8857 ,p_level => C_LEVEL_PROCEDURE
8858 ,p_module => l_log_module);
8859
8860 END IF;
8861 --
8862 l_component_type := 'AMB_JLT';
8863 l_component_code := 'BR_REC';
8864 l_component_type_code := 'S';
8865 l_component_appl_id := 222;
8866 l_amb_context_code := 'DEFAULT';
8867 l_entity_code := 'BILLS_RECEIVABLE';
8868 l_event_class_code := 'BILL';
8869 l_event_type_code := 'BILL_ALL';
8870 l_line_definition_owner_code := 'S';
8871 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
8872 --
8873 l_balance_type_code := 'A';
8874 l_segment := NULL;
8875 l_ccid := NULL;
8876 l_adr_transaction_coa_id := NULL;
8877 l_adr_accounting_coa_id := NULL;
8878 l_adr_flexfield_segment_code := NULL;
8879 l_adr_flex_value_set_id := NULL;
8880 l_adr_value_type_code := NULL;
8881 l_adr_value_combination_id := NULL;
8882 l_adr_value_segment_code := NULL;
8883
8884 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8885 l_bflow_class_code := ''; -- 4219869 Business Flow
8886 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8887 l_budgetary_control_flag := 'N';
8888
8889 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8890 l_bflow_applied_to_amt := NULL; -- 5132302
8891 l_entered_amt_idx := NULL; -- 4262811
8892 l_accted_amt_idx := NULL; -- 4262811
8893 l_acc_rev_flag := NULL; -- 4262811
8894 l_accrual_line_num := NULL; -- 4262811
8895 l_tmp_amt := NULL; -- 4262811
8896 --
8897
8898 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8899 l_balance_type_code <> 'B' THEN
8900 IF NVL(p_source_27,'
8901 ') = 'REC'
8902 THEN
8903
8904 --
8905 XLA_AE_LINES_PKG.SetNewLine;
8906
8907 p_balance_type_code := l_balance_type_code;
8908 -- set the flag so later we will know whether the gain loss line needs to be created
8909
8910 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8911 p_actual_flag :='A';
8912 END IF;
8913
8914 --
8915 -- bulk performance
8916 --
8917 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8918 p_header_num => 0); -- 4262811
8919 --
8920 -- set accounting line options
8921 --
8925 , p_gl_transfer_mode_code => 'S'
8922 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8923 p_natural_side_code => 'C'
8924 , p_gain_or_loss_flag => 'N'
8926 , p_acct_entry_type_code => 'A'
8927 , p_switch_side_flag => 'Y'
8928 , p_merge_duplicate_code => 'A'
8929 );
8930 --
8931 l_acc_rev_natural_side_code := 'D'; -- 4262811
8932 --
8933 --
8934 -- set accounting line type info
8935 --
8936 xla_ae_lines_pkg.SetAcctLineType
8937 (p_component_type => l_component_type
8938 ,p_event_type_code => l_event_type_code
8939 ,p_line_definition_owner_code => l_line_definition_owner_code
8940 ,p_line_definition_code => l_line_definition_code
8941 ,p_accounting_line_code => l_component_code
8942 ,p_accounting_line_type_code => l_component_type_code
8943 ,p_accounting_line_appl_id => l_component_appl_id
8944 ,p_amb_context_code => l_amb_context_code
8945 ,p_entity_code => l_entity_code
8946 ,p_event_class_code => l_event_class_code);
8947 --
8948 -- set accounting class
8949 --
8950 xla_ae_lines_pkg.SetAcctClass(
8951 p_accounting_class_code => 'RECEIVABLE'
8952 , p_ae_header_id => l_ae_header_id
8953 );
8954
8955 --
8956 -- set rounding class
8957 --
8958 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8959 'RECEIVABLE';
8960
8961 --
8962 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8963 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8964 --
8965 -- bulk performance
8966 --
8967 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8968
8969 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8970 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8971
8972 -- 4955764
8973 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8974 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8975
8976 -- 4458381 Public Sector Enh
8977
8978 --
8979 -- set accounting attributes for the line type
8980 --
8981 l_entered_amt_idx := 3;
8982 l_accted_amt_idx := 8;
8983 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8984 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8985 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
8986 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
8987 l_rec_acct_attrs.array_char_value(2) := p_source_30;
8988 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
8989 l_rec_acct_attrs.array_num_value(3) := p_source_31;
8990 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
8991 l_rec_acct_attrs.array_char_value(4) := p_source_32;
8992 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
8993 l_rec_acct_attrs.array_date_value(5) := p_source_33;
8994 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
8995 l_rec_acct_attrs.array_num_value(6) := p_source_34;
8996 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
8997 l_rec_acct_attrs.array_char_value(7) := p_source_35;
8998 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
8999 l_rec_acct_attrs.array_num_value(8) := p_source_40;
9000 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
9001 l_rec_acct_attrs.array_num_value(9) := p_source_41;
9002 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
9003 l_rec_acct_attrs.array_num_value(10) := p_source_42;
9004 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
9005 l_rec_acct_attrs.array_char_value(11) := p_source_39;
9006
9007 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9008 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9009
9010 ---------------------------------------------------------------------------------------------------------------
9011 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9012 ---------------------------------------------------------------------------------------------------------------
9013 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9014
9015 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9016 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9017
9018 IF xla_accounting_cache_pkg.GetValueChar
9019 (p_source_code => 'LEDGER_CATEGORY_CODE'
9020 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9021 AND l_bflow_method_code = 'PRIOR_ENTRY'
9022 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9023 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9024 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9025 )
9026 THEN
9027 xla_ae_lines_pkg.BflowUpgEntry
9028 (p_business_method_code => l_bflow_method_code
9029 ,p_business_class_code => l_bflow_class_code
9030 ,p_balance_type => l_balance_type_code);
9031 ELSE
9032 NULL;
9036 --
9033 -- No business flow processing for business flow method of NONE.
9034 END IF;
9035
9037 -- call analytical criteria
9038 --
9039
9040 --
9041 -- call description
9042 --
9043 -- No description or it is inherited.
9044 --
9045 -- call ADRs
9046 -- Bug 4922099
9047 --
9048 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9049 (NVL(l_actual_upg_option, 'N') = 'O') OR
9050 (NVL(l_enc_upg_option, 'N') = 'O')
9051 )
9052 THEN
9053 NULL;
9054 --
9055 --
9056
9057 l_ccid := AcctDerRule_20(
9058 p_application_id => p_application_id
9059 , p_ae_header_id => l_ae_header_id
9060 , p_source_22 => p_source_22
9061 , x_transaction_coa_id => l_adr_transaction_coa_id
9062 , x_accounting_coa_id => l_adr_accounting_coa_id
9063 , x_value_type_code => l_adr_value_type_code
9064 , p_side => 'NA'
9065 );
9066
9067 xla_ae_lines_pkg.set_ccid(
9068 p_code_combination_id => l_ccid
9069 , p_value_type_code => l_adr_value_type_code
9070 , p_transaction_coa_id => l_adr_transaction_coa_id
9071 , p_accounting_coa_id => l_adr_accounting_coa_id
9072 , p_adr_code => 'DIST_CCID'
9073 , p_adr_type_code => 'S'
9074 , p_component_type => l_component_type
9075 , p_component_code => l_component_code
9076 , p_component_type_code => l_component_type_code
9077 , p_component_appl_id => l_component_appl_id
9078 , p_amb_context_code => l_amb_context_code
9079 , p_side => 'NA'
9080 );
9081
9082
9083 --
9084 --
9085 END IF;
9086 --
9087 -- Bug 4922099
9088 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9089 (NVL(l_enc_upg_option, 'N') = 'O')
9090 ) AND
9091 (l_bflow_method_code = 'PRIOR_ENTRY')
9092 )
9093 THEN
9094 IF
9095 --
9096 1 = 2
9097 --
9098 THEN
9099 xla_accounting_err_pkg.build_message
9100 (p_appli_s_name => 'XLA'
9101 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9102 ,p_token_1 => 'LINE_NUMBER'
9103 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9104 ,p_token_2 => 'LINE_TYPE_NAME'
9105 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9106 l_component_type
9107 ,l_component_code
9108 ,l_component_type_code
9109 ,l_component_appl_id
9110 ,l_amb_context_code
9111 ,l_entity_code
9112 ,l_event_class_code
9113 )
9114 ,p_token_3 => 'OWNER'
9115 ,p_value_3 => xla_lookups_pkg.get_meaning(
9116 p_lookup_type => 'XLA_OWNER_TYPE'
9117 ,p_lookup_code => l_component_type_code
9118 )
9119 ,p_token_4 => 'PRODUCT_NAME'
9120 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9121 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9122 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9123 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9124 ,p_ae_header_id => NULL
9125 );
9126
9127 IF (C_LEVEL_ERROR>= g_log_level) THEN
9128 trace
9129 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9130 ,p_level => C_LEVEL_ERROR
9131 ,p_module => l_log_module);
9132 END IF;
9133 END IF;
9134 END IF;
9135 --
9136 --
9137 ------------------------------------------------------------------------------------------------
9138 -- 4219869 Business Flow
9139 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9140 -- Prior Entry. Currently, the following code is always generated.
9141 ------------------------------------------------------------------------------------------------
9142 XLA_AE_LINES_PKG.ValidateCurrentLine;
9143
9144 ------------------------------------------------------------------------------------
9145 -- 4219869 Business Flow
9146 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9147 ------------------------------------------------------------------------------------
9151 -- 4219869 Business Flow
9148 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9149
9150 ----------------------------------------------------------------------------------
9152 -- Update journal entry status -- Need to generate this within IF <condition>
9153 ----------------------------------------------------------------------------------
9154 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9155 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9156 ,p_balance_type_code => l_balance_type_code
9157 );
9158
9159 -------------------------------------------------------------------------------------------
9160 -- 4262811 - Generate the Accrual Reversal lines
9161 -------------------------------------------------------------------------------------------
9162 BEGIN
9163 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9164 (g_array_event(p_event_id).array_value_num('header_index'));
9165 IF l_acc_rev_flag IS NULL THEN
9166 l_acc_rev_flag := 'N';
9167 END IF;
9168 EXCEPTION
9169 WHEN OTHERS THEN
9170 l_acc_rev_flag := 'N';
9171 END;
9172 --
9173 IF (l_acc_rev_flag = 'Y') THEN
9174
9175 -- 4645092 ------------------------------------------------------------------------------
9176 -- To allow MPA report to determine if it should generate report process
9177 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9178 ------------------------------------------------------------------------------------------
9179
9180 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9181 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9182 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9183 -- call ADRs
9184 -- Bug 4922099
9185 --
9186 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9187 (NVL(l_actual_upg_option, 'N') = 'O') OR
9188 (NVL(l_enc_upg_option, 'N') = 'O')
9189 )
9190 THEN
9191 NULL;
9192 --
9193 --
9194
9195 l_ccid := AcctDerRule_20(
9196 p_application_id => p_application_id
9197 , p_ae_header_id => l_ae_header_id
9198 , p_source_22 => p_source_22
9199 , x_transaction_coa_id => l_adr_transaction_coa_id
9200 , x_accounting_coa_id => l_adr_accounting_coa_id
9201 , x_value_type_code => l_adr_value_type_code
9202 , p_side => 'NA'
9203 );
9204
9205 xla_ae_lines_pkg.set_ccid(
9206 p_code_combination_id => l_ccid
9207 , p_value_type_code => l_adr_value_type_code
9208 , p_transaction_coa_id => l_adr_transaction_coa_id
9209 , p_accounting_coa_id => l_adr_accounting_coa_id
9210 , p_adr_code => 'DIST_CCID'
9211 , p_adr_type_code => 'S'
9212 , p_component_type => l_component_type
9213 , p_component_code => l_component_code
9214 , p_component_type_code => l_component_type_code
9215 , p_component_appl_id => l_component_appl_id
9216 , p_amb_context_code => l_amb_context_code
9217 , p_side => 'NA'
9218 );
9219
9220
9221 --
9222 --
9223 END IF;
9224
9225 --
9226 -- Update the line information that should be overwritten
9227 --
9228 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9229 p_header_num => 1);
9230 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9231
9235 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9232 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9233
9234 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9236 END IF;
9237
9238 --
9239 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9240 --
9241 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9242 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9243 ELSE
9244 ---------------------------------------------------------------------------------------------------
9245 -- 4262811a Switch Sign
9246 ---------------------------------------------------------------------------------------------------
9247 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9248 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9249 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9250 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9251 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9252 -- 5132302
9253 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9254 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9255
9256 END IF;
9257
9258 -- 4955764
9259 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9260 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9261
9262
9263 XLA_AE_LINES_PKG.ValidateCurrentLine;
9264 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9265
9266 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9267 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9268 ,p_balance_type_code => l_balance_type_code);
9269
9270 END IF;
9271
9272 -----------------------------------------------------------------------------------------
9273 -- 4262811 Multiperiod Accounting
9274 -----------------------------------------------------------------------------------------
9275 -- No MPA option is assigned.
9276
9277
9278 END IF;
9279 END IF;
9280 --
9281
9282 --
9283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9284 trace
9285 (p_msg => 'END of AcctLineType_35'
9286 ,p_level => C_LEVEL_PROCEDURE
9287 ,p_module => l_log_module);
9288 END IF;
9289 --
9290 EXCEPTION
9291 WHEN xla_exceptions_pkg.application_exception THEN
9292 RAISE;
9293 WHEN OTHERS THEN
9294 xla_exceptions_pkg.raise_message
9295 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_35');
9296 END AcctLineType_35;
9297 --
9298
9299 ---------------------------------------
9300 --
9301 -- PRIVATE FUNCTION
9302 -- AcctLineType_36
9303 --
9304 ---------------------------------------
9305 PROCEDURE AcctLineType_36 (
9306 p_application_id IN NUMBER
9307 ,p_event_id IN NUMBER
9308 ,p_calculate_acctd_flag IN VARCHAR2
9309 ,p_calculate_g_l_flag IN VARCHAR2
9310 ,p_actual_flag IN OUT VARCHAR2
9311 ,p_balance_type_code OUT VARCHAR2
9312 ,p_gain_or_loss_ref OUT VARCHAR2
9313
9314 --Distribution GL Account
9315 , p_source_22 IN NUMBER
9316 --Distribution Source Type
9317 , p_source_27 IN VARCHAR2
9318 --Distribution Line Identifier
9319 , p_source_29 IN NUMBER
9320 --Distribution Type
9321 , p_source_30 IN VARCHAR2
9322 --Entered Amount
9323 , p_source_31 IN NUMBER
9324 --Currency Code
9325 , p_source_32 IN VARCHAR2
9326 --Exchange Date
9327 , p_source_33 IN DATE
9328 --Exchange Rate
9329 , p_source_34 IN NUMBER
9330 --Exchange Rate Type
9331 , p_source_35 IN VARCHAR2
9332 --SLA Party Type
9333 , p_source_39 IN VARCHAR2
9334 --Accounting Amount
9335 , p_source_40 IN NUMBER
9336 --Drawee Account Identifier
9337 , p_source_41 IN NUMBER
9338 --DRAW_SITE_SITE_USE_ID
9339 , p_source_42 IN NUMBER
9340 )
9341 IS
9342
9343 l_component_type VARCHAR2(80);
9344 l_component_code VARCHAR2(30);
9345 l_component_type_code VARCHAR2(1);
9346 l_component_appl_id INTEGER;
9347 l_amb_context_code VARCHAR2(30);
9348 l_entity_code VARCHAR2(30);
9349 l_event_class_code VARCHAR2(30);
9350 l_ae_header_id NUMBER;
9351 l_event_type_code VARCHAR2(30);
9352 l_line_definition_code VARCHAR2(30);
9353 l_line_definition_owner_code VARCHAR2(1);
9354 --
9355 -- adr variables
9356 l_segment VARCHAR2(30);
9357 l_ccid NUMBER;
9358 l_adr_transaction_coa_id NUMBER;
9359 l_adr_accounting_coa_id NUMBER;
9360 l_adr_flexfield_segment_code VARCHAR2(30);
9361 l_adr_flex_value_set_id NUMBER;
9362 l_adr_value_type_code VARCHAR2(30);
9363 l_adr_value_combination_id NUMBER;
9364 l_adr_value_segment_code VARCHAR2(30);
9365
9366 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9370
9367 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9368 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9369 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9371 -- 4262811 Variables ------------------------------------------------------------------------------------------
9372 l_entered_amt_idx NUMBER;
9373 l_accted_amt_idx NUMBER;
9374 l_acc_rev_flag VARCHAR2(1);
9375 l_accrual_line_num NUMBER;
9376 l_tmp_amt NUMBER;
9377 l_acc_rev_natural_side_code VARCHAR2(1);
9378
9379 l_num_entries NUMBER;
9380 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9381 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9382 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9383 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9384 l_recog_line_1 NUMBER;
9385 l_recog_line_2 NUMBER;
9386
9387 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9388 l_bflow_applied_to_amt NUMBER; -- 5132302
9389 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9390
9391 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9392
9393 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9394 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9395
9396 ---------------------------------------------------------------------------------------------------------------
9397
9398
9399 --
9400 -- bulk performance
9401 --
9402 l_balance_type_code VARCHAR2(1);
9403 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9404 l_log_module VARCHAR2(240);
9405
9406 --
9407 -- Upgrade strategy
9408 --
9409 l_actual_upg_option VARCHAR2(1);
9410 l_enc_upg_option VARCHAR2(1);
9411
9412 --
9413 BEGIN
9414 --
9415 IF g_log_enabled THEN
9416 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
9417 END IF;
9418 --
9419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9420
9421 trace
9422 (p_msg => 'BEGIN of AcctLineType_36'
9423 ,p_level => C_LEVEL_PROCEDURE
9424 ,p_module => l_log_module);
9425
9426 END IF;
9427 --
9428 l_component_type := 'AMB_JLT';
9429 l_component_code := 'BR_REMIT';
9430 l_component_type_code := 'S';
9431 l_component_appl_id := 222;
9432 l_amb_context_code := 'DEFAULT';
9433 l_entity_code := 'BILLS_RECEIVABLE';
9434 l_event_class_code := 'BILL';
9435 l_event_type_code := 'BILL_ALL';
9436 l_line_definition_owner_code := 'S';
9437 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
9438 --
9439 l_balance_type_code := 'A';
9440 l_segment := NULL;
9441 l_ccid := NULL;
9442 l_adr_transaction_coa_id := NULL;
9443 l_adr_accounting_coa_id := NULL;
9444 l_adr_flexfield_segment_code := NULL;
9445 l_adr_flex_value_set_id := NULL;
9446 l_adr_value_type_code := NULL;
9447 l_adr_value_combination_id := NULL;
9448 l_adr_value_segment_code := NULL;
9449
9450 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9451 l_bflow_class_code := ''; -- 4219869 Business Flow
9452 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9453 l_budgetary_control_flag := 'N';
9454
9455 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9456 l_bflow_applied_to_amt := NULL; -- 5132302
9457 l_entered_amt_idx := NULL; -- 4262811
9458 l_accted_amt_idx := NULL; -- 4262811
9459 l_acc_rev_flag := NULL; -- 4262811
9460 l_accrual_line_num := NULL; -- 4262811
9461 l_tmp_amt := NULL; -- 4262811
9462 --
9463
9464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9465 l_balance_type_code <> 'B' THEN
9466 IF NVL(p_source_27,'
9467 ') = 'REMITTANCE'
9468 THEN
9469
9470 --
9471 XLA_AE_LINES_PKG.SetNewLine;
9472
9473 p_balance_type_code := l_balance_type_code;
9474 -- set the flag so later we will know whether the gain loss line needs to be created
9475
9476 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9477 p_actual_flag :='A';
9478 END IF;
9479
9480 --
9481 -- bulk performance
9482 --
9483 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9484 p_header_num => 0); -- 4262811
9485 --
9486 -- set accounting line options
9487 --
9488 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9489 p_natural_side_code => 'C'
9490 , p_gain_or_loss_flag => 'N'
9491 , p_gl_transfer_mode_code => 'S'
9492 , p_acct_entry_type_code => 'A'
9493 , p_switch_side_flag => 'Y'
9494 , p_merge_duplicate_code => 'A'
9495 );
9496 --
9497 l_acc_rev_natural_side_code := 'D'; -- 4262811
9498 --
9499 --
9500 -- set accounting line type info
9501 --
9502 xla_ae_lines_pkg.SetAcctLineType
9503 (p_component_type => l_component_type
9504 ,p_event_type_code => l_event_type_code
9508 ,p_accounting_line_type_code => l_component_type_code
9505 ,p_line_definition_owner_code => l_line_definition_owner_code
9506 ,p_line_definition_code => l_line_definition_code
9507 ,p_accounting_line_code => l_component_code
9509 ,p_accounting_line_appl_id => l_component_appl_id
9510 ,p_amb_context_code => l_amb_context_code
9511 ,p_entity_code => l_entity_code
9512 ,p_event_class_code => l_event_class_code);
9513 --
9514 -- set accounting class
9515 --
9516 xla_ae_lines_pkg.SetAcctClass(
9517 p_accounting_class_code => 'REM_BR'
9518 , p_ae_header_id => l_ae_header_id
9519 );
9520
9521 --
9522 -- set rounding class
9523 --
9524 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9525 'REM_BR';
9526
9527 --
9528 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9529 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9530 --
9531 -- bulk performance
9532 --
9533 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9534
9535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9536 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9537
9538 -- 4955764
9539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9541
9542 -- 4458381 Public Sector Enh
9543
9544 --
9545 -- set accounting attributes for the line type
9546 --
9547 l_entered_amt_idx := 3;
9548 l_accted_amt_idx := 8;
9549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9550 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
9551 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
9552 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
9553 l_rec_acct_attrs.array_char_value(2) := p_source_30;
9554 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
9555 l_rec_acct_attrs.array_num_value(3) := p_source_31;
9556 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
9557 l_rec_acct_attrs.array_char_value(4) := p_source_32;
9558 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
9559 l_rec_acct_attrs.array_date_value(5) := p_source_33;
9560 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
9561 l_rec_acct_attrs.array_num_value(6) := p_source_34;
9562 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
9563 l_rec_acct_attrs.array_char_value(7) := p_source_35;
9564 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
9565 l_rec_acct_attrs.array_num_value(8) := p_source_40;
9566 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
9567 l_rec_acct_attrs.array_num_value(9) := p_source_41;
9568 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
9569 l_rec_acct_attrs.array_num_value(10) := p_source_42;
9570 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
9571 l_rec_acct_attrs.array_char_value(11) := p_source_39;
9572
9573 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9574 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9575
9576 ---------------------------------------------------------------------------------------------------------------
9577 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9578 ---------------------------------------------------------------------------------------------------------------
9579 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9580
9581 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9582 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9583
9584 IF xla_accounting_cache_pkg.GetValueChar
9585 (p_source_code => 'LEDGER_CATEGORY_CODE'
9586 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9587 AND l_bflow_method_code = 'PRIOR_ENTRY'
9588 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9589 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9590 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9591 )
9592 THEN
9593 xla_ae_lines_pkg.BflowUpgEntry
9594 (p_business_method_code => l_bflow_method_code
9595 ,p_business_class_code => l_bflow_class_code
9596 ,p_balance_type => l_balance_type_code);
9597 ELSE
9598 NULL;
9599 -- No business flow processing for business flow method of NONE.
9600 END IF;
9601
9602 --
9603 -- call analytical criteria
9604 --
9605
9606 --
9607 -- call description
9608 --
9609 -- No description or it is inherited.
9610 --
9611 -- call ADRs
9612 -- Bug 4922099
9613 --
9614 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9615 (NVL(l_actual_upg_option, 'N') = 'O') OR
9616 (NVL(l_enc_upg_option, 'N') = 'O')
9617 )
9618 THEN
9619 NULL;
9620 --
9621 --
9622
9626 , p_source_22 => p_source_22
9623 l_ccid := AcctDerRule_20(
9624 p_application_id => p_application_id
9625 , p_ae_header_id => l_ae_header_id
9627 , x_transaction_coa_id => l_adr_transaction_coa_id
9628 , x_accounting_coa_id => l_adr_accounting_coa_id
9629 , x_value_type_code => l_adr_value_type_code
9630 , p_side => 'NA'
9631 );
9632
9633 xla_ae_lines_pkg.set_ccid(
9634 p_code_combination_id => l_ccid
9635 , p_value_type_code => l_adr_value_type_code
9636 , p_transaction_coa_id => l_adr_transaction_coa_id
9637 , p_accounting_coa_id => l_adr_accounting_coa_id
9638 , p_adr_code => 'DIST_CCID'
9639 , p_adr_type_code => 'S'
9640 , p_component_type => l_component_type
9641 , p_component_code => l_component_code
9642 , p_component_type_code => l_component_type_code
9643 , p_component_appl_id => l_component_appl_id
9644 , p_amb_context_code => l_amb_context_code
9645 , p_side => 'NA'
9646 );
9647
9648
9649 --
9650 --
9651 END IF;
9652 --
9653 -- Bug 4922099
9654 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9655 (NVL(l_enc_upg_option, 'N') = 'O')
9656 ) AND
9657 (l_bflow_method_code = 'PRIOR_ENTRY')
9658 )
9659 THEN
9660 IF
9661 --
9662 1 = 2
9663 --
9664 THEN
9665 xla_accounting_err_pkg.build_message
9666 (p_appli_s_name => 'XLA'
9667 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9668 ,p_token_1 => 'LINE_NUMBER'
9669 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9670 ,p_token_2 => 'LINE_TYPE_NAME'
9671 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9672 l_component_type
9673 ,l_component_code
9674 ,l_component_type_code
9675 ,l_component_appl_id
9676 ,l_amb_context_code
9677 ,l_entity_code
9678 ,l_event_class_code
9679 )
9680 ,p_token_3 => 'OWNER'
9681 ,p_value_3 => xla_lookups_pkg.get_meaning(
9682 p_lookup_type => 'XLA_OWNER_TYPE'
9683 ,p_lookup_code => l_component_type_code
9684 )
9685 ,p_token_4 => 'PRODUCT_NAME'
9686 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9687 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9688 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9689 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9690 ,p_ae_header_id => NULL
9691 );
9692
9693 IF (C_LEVEL_ERROR>= g_log_level) THEN
9694 trace
9695 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9696 ,p_level => C_LEVEL_ERROR
9697 ,p_module => l_log_module);
9698 END IF;
9699 END IF;
9700 END IF;
9701 --
9702 --
9703 ------------------------------------------------------------------------------------------------
9704 -- 4219869 Business Flow
9705 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9706 -- Prior Entry. Currently, the following code is always generated.
9707 ------------------------------------------------------------------------------------------------
9708 XLA_AE_LINES_PKG.ValidateCurrentLine;
9709
9710 ------------------------------------------------------------------------------------
9711 -- 4219869 Business Flow
9712 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9713 ------------------------------------------------------------------------------------
9714 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9715
9716 ----------------------------------------------------------------------------------
9717 -- 4219869 Business Flow
9718 -- Update journal entry status -- Need to generate this within IF <condition>
9719 ----------------------------------------------------------------------------------
9720 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9721 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9722 ,p_balance_type_code => l_balance_type_code
9723 );
9724
9725 -------------------------------------------------------------------------------------------
9729 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9726 -- 4262811 - Generate the Accrual Reversal lines
9727 -------------------------------------------------------------------------------------------
9728 BEGIN
9730 (g_array_event(p_event_id).array_value_num('header_index'));
9731 IF l_acc_rev_flag IS NULL THEN
9732 l_acc_rev_flag := 'N';
9733 END IF;
9734 EXCEPTION
9735 WHEN OTHERS THEN
9736 l_acc_rev_flag := 'N';
9737 END;
9738 --
9739 IF (l_acc_rev_flag = 'Y') THEN
9740
9741 -- 4645092 ------------------------------------------------------------------------------
9742 -- To allow MPA report to determine if it should generate report process
9743 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9744 ------------------------------------------------------------------------------------------
9745
9746 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9747 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9748 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9749 -- call ADRs
9750 -- Bug 4922099
9751 --
9752 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9753 (NVL(l_actual_upg_option, 'N') = 'O') OR
9754 (NVL(l_enc_upg_option, 'N') = 'O')
9755 )
9756 THEN
9757 NULL;
9758 --
9759 --
9760
9761 l_ccid := AcctDerRule_20(
9762 p_application_id => p_application_id
9763 , p_ae_header_id => l_ae_header_id
9764 , p_source_22 => p_source_22
9765 , x_transaction_coa_id => l_adr_transaction_coa_id
9766 , x_accounting_coa_id => l_adr_accounting_coa_id
9767 , x_value_type_code => l_adr_value_type_code
9768 , p_side => 'NA'
9769 );
9770
9771 xla_ae_lines_pkg.set_ccid(
9772 p_code_combination_id => l_ccid
9773 , p_value_type_code => l_adr_value_type_code
9774 , p_transaction_coa_id => l_adr_transaction_coa_id
9775 , p_accounting_coa_id => l_adr_accounting_coa_id
9776 , p_adr_code => 'DIST_CCID'
9777 , p_adr_type_code => 'S'
9778 , p_component_type => l_component_type
9779 , p_component_code => l_component_code
9780 , p_component_type_code => l_component_type_code
9781 , p_component_appl_id => l_component_appl_id
9782 , p_amb_context_code => l_amb_context_code
9783 , p_side => 'NA'
9784 );
9785
9786
9787 --
9788 --
9789 END IF;
9790
9791 --
9792 -- Update the line information that should be overwritten
9793 --
9794 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9795 p_header_num => 1);
9796 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9797
9798 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9799
9800 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9801 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9802 END IF;
9803
9804 --
9805 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9806 --
9807 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9808 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9809 ELSE
9810 ---------------------------------------------------------------------------------------------------
9811 -- 4262811a Switch Sign
9812 ---------------------------------------------------------------------------------------------------
9813 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9816 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9817 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9818 -- 5132302
9819 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9820 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9821
9822 END IF;
9823
9824 -- 4955764
9825 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9826 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9827
9828
9829 XLA_AE_LINES_PKG.ValidateCurrentLine;
9830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9831
9832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9834 ,p_balance_type_code => l_balance_type_code);
9835
9836 END IF;
9837
9838 -----------------------------------------------------------------------------------------
9839 -- 4262811 Multiperiod Accounting
9840 -----------------------------------------------------------------------------------------
9841 -- No MPA option is assigned.
9842
9846 --
9843
9844 END IF;
9845 END IF;
9847
9848 --
9849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9850 trace
9851 (p_msg => 'END of AcctLineType_36'
9852 ,p_level => C_LEVEL_PROCEDURE
9853 ,p_module => l_log_module);
9854 END IF;
9855 --
9856 EXCEPTION
9857 WHEN xla_exceptions_pkg.application_exception THEN
9858 RAISE;
9859 WHEN OTHERS THEN
9860 xla_exceptions_pkg.raise_message
9861 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_36');
9862 END AcctLineType_36;
9863 --
9864
9865 ---------------------------------------
9866 --
9867 -- PRIVATE FUNCTION
9868 -- AcctLineType_37
9869 --
9870 ---------------------------------------
9871 PROCEDURE AcctLineType_37 (
9872 p_application_id IN NUMBER
9873 ,p_event_id IN NUMBER
9874 ,p_calculate_acctd_flag IN VARCHAR2
9875 ,p_calculate_g_l_flag IN VARCHAR2
9876 ,p_actual_flag IN OUT VARCHAR2
9877 ,p_balance_type_code OUT VARCHAR2
9878 ,p_gain_or_loss_ref OUT VARCHAR2
9879
9880 --Distribution GL Account
9881 , p_source_22 IN NUMBER
9882 --Distribution Source Type
9883 , p_source_27 IN VARCHAR2
9884 --Distribution Line Identifier
9885 , p_source_29 IN NUMBER
9886 --Distribution Type
9887 , p_source_30 IN VARCHAR2
9888 --Entered Amount
9889 , p_source_31 IN NUMBER
9890 --Currency Code
9891 , p_source_32 IN VARCHAR2
9892 --Exchange Date
9893 , p_source_33 IN DATE
9894 --Exchange Rate
9895 , p_source_34 IN NUMBER
9896 --Exchange Rate Type
9897 , p_source_35 IN VARCHAR2
9898 --SLA Party Type
9899 , p_source_39 IN VARCHAR2
9900 --Accounting Amount
9901 , p_source_40 IN NUMBER
9902 --Drawee Account Identifier
9903 , p_source_41 IN NUMBER
9904 --DRAW_SITE_SITE_USE_ID
9905 , p_source_42 IN NUMBER
9906 )
9907 IS
9908
9909 l_component_type VARCHAR2(80);
9910 l_component_code VARCHAR2(30);
9911 l_component_type_code VARCHAR2(1);
9912 l_component_appl_id INTEGER;
9913 l_amb_context_code VARCHAR2(30);
9914 l_entity_code VARCHAR2(30);
9915 l_event_class_code VARCHAR2(30);
9916 l_ae_header_id NUMBER;
9917 l_event_type_code VARCHAR2(30);
9918 l_line_definition_code VARCHAR2(30);
9919 l_line_definition_owner_code VARCHAR2(1);
9920 --
9921 -- adr variables
9922 l_segment VARCHAR2(30);
9923 l_ccid NUMBER;
9924 l_adr_transaction_coa_id NUMBER;
9925 l_adr_accounting_coa_id NUMBER;
9926 l_adr_flexfield_segment_code VARCHAR2(30);
9927 l_adr_flex_value_set_id NUMBER;
9928 l_adr_value_type_code VARCHAR2(30);
9929 l_adr_value_combination_id NUMBER;
9930 l_adr_value_segment_code VARCHAR2(30);
9931
9932 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9933 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9934 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9935 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9936
9937 -- 4262811 Variables ------------------------------------------------------------------------------------------
9938 l_entered_amt_idx NUMBER;
9939 l_accted_amt_idx NUMBER;
9940 l_acc_rev_flag VARCHAR2(1);
9941 l_accrual_line_num NUMBER;
9942 l_tmp_amt NUMBER;
9943 l_acc_rev_natural_side_code VARCHAR2(1);
9944
9945 l_num_entries NUMBER;
9946 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9947 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9948 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9949 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9950 l_recog_line_1 NUMBER;
9951 l_recog_line_2 NUMBER;
9952
9953 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9954 l_bflow_applied_to_amt NUMBER; -- 5132302
9955 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9956
9957 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9958
9959 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9960 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9961
9962 ---------------------------------------------------------------------------------------------------------------
9963
9964
9965 --
9966 -- bulk performance
9967 --
9968 l_balance_type_code VARCHAR2(1);
9969 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9970 l_log_module VARCHAR2(240);
9971
9972 --
9973 -- Upgrade strategy
9974 --
9975 l_actual_upg_option VARCHAR2(1);
9976 l_enc_upg_option VARCHAR2(1);
9977
9978 --
9979 BEGIN
9980 --
9981 IF g_log_enabled THEN
9982 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
9983 END IF;
9984 --
9985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9986
9987 trace
9988 (p_msg => 'BEGIN of AcctLineType_37'
9989 ,p_level => C_LEVEL_PROCEDURE
9990 ,p_module => l_log_module);
9991
9995 l_component_code := 'BR_TAX';
9992 END IF;
9993 --
9994 l_component_type := 'AMB_JLT';
9996 l_component_type_code := 'S';
9997 l_component_appl_id := 222;
9998 l_amb_context_code := 'DEFAULT';
9999 l_entity_code := 'BILLS_RECEIVABLE';
10000 l_event_class_code := 'BILL';
10001 l_event_type_code := 'BILL_ALL';
10002 l_line_definition_owner_code := 'S';
10003 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
10004 --
10005 l_balance_type_code := 'A';
10006 l_segment := NULL;
10007 l_ccid := NULL;
10008 l_adr_transaction_coa_id := NULL;
10009 l_adr_accounting_coa_id := NULL;
10010 l_adr_flexfield_segment_code := NULL;
10011 l_adr_flex_value_set_id := NULL;
10012 l_adr_value_type_code := NULL;
10013 l_adr_value_combination_id := NULL;
10014 l_adr_value_segment_code := NULL;
10015
10016 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10017 l_bflow_class_code := ''; -- 4219869 Business Flow
10018 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10019 l_budgetary_control_flag := 'N';
10020
10021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10022 l_bflow_applied_to_amt := NULL; -- 5132302
10023 l_entered_amt_idx := NULL; -- 4262811
10024 l_accted_amt_idx := NULL; -- 4262811
10025 l_acc_rev_flag := NULL; -- 4262811
10026 l_accrual_line_num := NULL; -- 4262811
10027 l_tmp_amt := NULL; -- 4262811
10028 --
10029
10030 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10031 l_balance_type_code <> 'B' THEN
10032 IF NVL(p_source_27,'
10033 ') = 'TAX'
10034 THEN
10035
10036 --
10037 XLA_AE_LINES_PKG.SetNewLine;
10038
10039 p_balance_type_code := l_balance_type_code;
10040 -- set the flag so later we will know whether the gain loss line needs to be created
10041
10042 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10043 p_actual_flag :='A';
10044 END IF;
10045
10046 --
10047 -- bulk performance
10048 --
10049 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10050 p_header_num => 0); -- 4262811
10051 --
10052 -- set accounting line options
10053 --
10054 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10055 p_natural_side_code => 'C'
10056 , p_gain_or_loss_flag => 'N'
10057 , p_gl_transfer_mode_code => 'S'
10058 , p_acct_entry_type_code => 'A'
10059 , p_switch_side_flag => 'Y'
10060 , p_merge_duplicate_code => 'A'
10061 );
10062 --
10063 l_acc_rev_natural_side_code := 'D'; -- 4262811
10064 --
10065 --
10066 -- set accounting line type info
10067 --
10068 xla_ae_lines_pkg.SetAcctLineType
10069 (p_component_type => l_component_type
10070 ,p_event_type_code => l_event_type_code
10071 ,p_line_definition_owner_code => l_line_definition_owner_code
10072 ,p_line_definition_code => l_line_definition_code
10073 ,p_accounting_line_code => l_component_code
10074 ,p_accounting_line_type_code => l_component_type_code
10075 ,p_accounting_line_appl_id => l_component_appl_id
10076 ,p_amb_context_code => l_amb_context_code
10077 ,p_entity_code => l_entity_code
10078 ,p_event_class_code => l_event_class_code);
10079 --
10080 -- set accounting class
10081 --
10082 xla_ae_lines_pkg.SetAcctClass(
10083 p_accounting_class_code => 'TAX'
10084 , p_ae_header_id => l_ae_header_id
10085 );
10086
10087 --
10088 -- set rounding class
10089 --
10090 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10091 'TAX';
10092
10093 --
10094 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10095 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10096 --
10097 -- bulk performance
10098 --
10099 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10100
10101 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10102 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10103
10104 -- 4955764
10105 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10106 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10107
10108 -- 4458381 Public Sector Enh
10109
10110 --
10111 -- set accounting attributes for the line type
10112 --
10113 l_entered_amt_idx := 3;
10114 l_accted_amt_idx := 8;
10115 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10116 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
10117 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
10118 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
10119 l_rec_acct_attrs.array_char_value(2) := p_source_30;
10120 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
10121 l_rec_acct_attrs.array_num_value(3) := p_source_31;
10125 l_rec_acct_attrs.array_date_value(5) := p_source_33;
10122 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
10123 l_rec_acct_attrs.array_char_value(4) := p_source_32;
10124 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
10126 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
10127 l_rec_acct_attrs.array_num_value(6) := p_source_34;
10128 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
10129 l_rec_acct_attrs.array_char_value(7) := p_source_35;
10130 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
10131 l_rec_acct_attrs.array_num_value(8) := p_source_40;
10132 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
10133 l_rec_acct_attrs.array_num_value(9) := p_source_41;
10134 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
10135 l_rec_acct_attrs.array_num_value(10) := p_source_42;
10136 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
10137 l_rec_acct_attrs.array_char_value(11) := p_source_39;
10138
10139 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10140 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10141
10142 ---------------------------------------------------------------------------------------------------------------
10143 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10144 ---------------------------------------------------------------------------------------------------------------
10145 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10146
10147 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10148 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10149
10150 IF xla_accounting_cache_pkg.GetValueChar
10151 (p_source_code => 'LEDGER_CATEGORY_CODE'
10152 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10153 AND l_bflow_method_code = 'PRIOR_ENTRY'
10154 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10155 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10156 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10157 )
10158 THEN
10159 xla_ae_lines_pkg.BflowUpgEntry
10160 (p_business_method_code => l_bflow_method_code
10161 ,p_business_class_code => l_bflow_class_code
10162 ,p_balance_type => l_balance_type_code);
10163 ELSE
10164 NULL;
10165 -- No business flow processing for business flow method of NONE.
10166 END IF;
10167
10168 --
10169 -- call analytical criteria
10170 --
10171
10172 --
10173 -- call description
10174 --
10175 -- No description or it is inherited.
10176 --
10177 -- call ADRs
10178 -- Bug 4922099
10179 --
10180 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10181 (NVL(l_actual_upg_option, 'N') = 'O') OR
10182 (NVL(l_enc_upg_option, 'N') = 'O')
10183 )
10184 THEN
10185 NULL;
10186 --
10187 --
10188
10189 l_ccid := AcctDerRule_20(
10190 p_application_id => p_application_id
10191 , p_ae_header_id => l_ae_header_id
10192 , p_source_22 => p_source_22
10193 , x_transaction_coa_id => l_adr_transaction_coa_id
10194 , x_accounting_coa_id => l_adr_accounting_coa_id
10195 , x_value_type_code => l_adr_value_type_code
10196 , p_side => 'NA'
10197 );
10198
10199 xla_ae_lines_pkg.set_ccid(
10200 p_code_combination_id => l_ccid
10201 , p_value_type_code => l_adr_value_type_code
10202 , p_transaction_coa_id => l_adr_transaction_coa_id
10203 , p_accounting_coa_id => l_adr_accounting_coa_id
10204 , p_adr_code => 'DIST_CCID'
10205 , p_adr_type_code => 'S'
10206 , p_component_type => l_component_type
10207 , p_component_code => l_component_code
10208 , p_component_type_code => l_component_type_code
10209 , p_component_appl_id => l_component_appl_id
10210 , p_amb_context_code => l_amb_context_code
10211 , p_side => 'NA'
10212 );
10213
10214
10215 --
10216 --
10217 END IF;
10218 --
10219 -- Bug 4922099
10220 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10221 (NVL(l_enc_upg_option, 'N') = 'O')
10222 ) AND
10223 (l_bflow_method_code = 'PRIOR_ENTRY')
10224 )
10225 THEN
10226 IF
10227 --
10228 1 = 2
10229 --
10230 THEN
10231 xla_accounting_err_pkg.build_message
10232 (p_appli_s_name => 'XLA'
10233 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10234 ,p_token_1 => 'LINE_NUMBER'
10235 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10236 ,p_token_2 => 'LINE_TYPE_NAME'
10237 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10238 l_component_type
10239 ,l_component_code
10240 ,l_component_type_code
10244 ,l_event_class_code
10241 ,l_component_appl_id
10242 ,l_amb_context_code
10243 ,l_entity_code
10245 )
10246 ,p_token_3 => 'OWNER'
10247 ,p_value_3 => xla_lookups_pkg.get_meaning(
10248 p_lookup_type => 'XLA_OWNER_TYPE'
10249 ,p_lookup_code => l_component_type_code
10250 )
10251 ,p_token_4 => 'PRODUCT_NAME'
10252 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10253 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10254 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10255 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10256 ,p_ae_header_id => NULL
10257 );
10258
10259 IF (C_LEVEL_ERROR>= g_log_level) THEN
10260 trace
10261 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10262 ,p_level => C_LEVEL_ERROR
10263 ,p_module => l_log_module);
10264 END IF;
10265 END IF;
10266 END IF;
10267 --
10268 --
10269 ------------------------------------------------------------------------------------------------
10270 -- 4219869 Business Flow
10271 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10272 -- Prior Entry. Currently, the following code is always generated.
10273 ------------------------------------------------------------------------------------------------
10274 XLA_AE_LINES_PKG.ValidateCurrentLine;
10275
10276 ------------------------------------------------------------------------------------
10277 -- 4219869 Business Flow
10278 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10279 ------------------------------------------------------------------------------------
10280 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10281
10282 ----------------------------------------------------------------------------------
10283 -- 4219869 Business Flow
10284 -- Update journal entry status -- Need to generate this within IF <condition>
10285 ----------------------------------------------------------------------------------
10286 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10287 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10288 ,p_balance_type_code => l_balance_type_code
10289 );
10290
10291 -------------------------------------------------------------------------------------------
10292 -- 4262811 - Generate the Accrual Reversal lines
10293 -------------------------------------------------------------------------------------------
10294 BEGIN
10295 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10296 (g_array_event(p_event_id).array_value_num('header_index'));
10297 IF l_acc_rev_flag IS NULL THEN
10298 l_acc_rev_flag := 'N';
10299 END IF;
10300 EXCEPTION
10301 WHEN OTHERS THEN
10302 l_acc_rev_flag := 'N';
10303 END;
10304 --
10305 IF (l_acc_rev_flag = 'Y') THEN
10306
10307 -- 4645092 ------------------------------------------------------------------------------
10308 -- To allow MPA report to determine if it should generate report process
10309 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10310 ------------------------------------------------------------------------------------------
10311
10312 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10313 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10314 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10315 -- call ADRs
10316 -- Bug 4922099
10317 --
10318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10319 (NVL(l_actual_upg_option, 'N') = 'O') OR
10320 (NVL(l_enc_upg_option, 'N') = 'O')
10321 )
10322 THEN
10323 NULL;
10324 --
10325 --
10326
10327 l_ccid := AcctDerRule_20(
10328 p_application_id => p_application_id
10329 , p_ae_header_id => l_ae_header_id
10330 , p_source_22 => p_source_22
10331 , x_transaction_coa_id => l_adr_transaction_coa_id
10332 , x_accounting_coa_id => l_adr_accounting_coa_id
10333 , x_value_type_code => l_adr_value_type_code
10334 , p_side => 'NA'
10335 );
10336
10337 xla_ae_lines_pkg.set_ccid(
10338 p_code_combination_id => l_ccid
10339 , p_value_type_code => l_adr_value_type_code
10340 , p_transaction_coa_id => l_adr_transaction_coa_id
10341 , p_accounting_coa_id => l_adr_accounting_coa_id
10342 , p_adr_code => 'DIST_CCID'
10343 , p_adr_type_code => 'S'
10347 , p_component_appl_id => l_component_appl_id
10344 , p_component_type => l_component_type
10345 , p_component_code => l_component_code
10346 , p_component_type_code => l_component_type_code
10348 , p_amb_context_code => l_amb_context_code
10349 , p_side => 'NA'
10350 );
10351
10352
10353 --
10354 --
10355 END IF;
10356
10357 --
10358 -- Update the line information that should be overwritten
10359 --
10360 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10361 p_header_num => 1);
10362 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10363
10364 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10365
10366 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10367 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10368 END IF;
10369
10370 --
10371 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10372 --
10373 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10374 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10375 ELSE
10376 ---------------------------------------------------------------------------------------------------
10377 -- 4262811a Switch Sign
10378 ---------------------------------------------------------------------------------------------------
10379 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10380 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10381 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10382 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10383 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10384 -- 5132302
10385 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10386 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10387
10388 END IF;
10389
10390 -- 4955764
10391 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10392 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10393
10394
10395 XLA_AE_LINES_PKG.ValidateCurrentLine;
10396 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10397
10398 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10399 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10400 ,p_balance_type_code => l_balance_type_code);
10401
10402 END IF;
10403
10404 -----------------------------------------------------------------------------------------
10405 -- 4262811 Multiperiod Accounting
10406 -----------------------------------------------------------------------------------------
10407 -- No MPA option is assigned.
10408
10409
10410 END IF;
10411 END IF;
10412 --
10413
10414 --
10415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10416 trace
10417 (p_msg => 'END of AcctLineType_37'
10418 ,p_level => C_LEVEL_PROCEDURE
10419 ,p_module => l_log_module);
10420 END IF;
10421 --
10422 EXCEPTION
10423 WHEN xla_exceptions_pkg.application_exception THEN
10424 RAISE;
10425 WHEN OTHERS THEN
10426 xla_exceptions_pkg.raise_message
10427 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_37');
10428 END AcctLineType_37;
10429 --
10430
10431 ---------------------------------------
10432 --
10433 -- PRIVATE FUNCTION
10434 -- AcctLineType_38
10435 --
10436 ---------------------------------------
10437 PROCEDURE AcctLineType_38 (
10438 p_application_id IN NUMBER
10439 ,p_event_id IN NUMBER
10440 ,p_calculate_acctd_flag IN VARCHAR2
10441 ,p_calculate_g_l_flag IN VARCHAR2
10442 ,p_actual_flag IN OUT VARCHAR2
10443 ,p_balance_type_code OUT VARCHAR2
10444 ,p_gain_or_loss_ref OUT VARCHAR2
10445
10446 --Distribution GL Account
10447 , p_source_22 IN NUMBER
10448 --Distribution Source Type
10449 , p_source_27 IN VARCHAR2
10450 --Distribution Line Identifier
10451 , p_source_29 IN NUMBER
10452 --Distribution Type
10453 , p_source_30 IN VARCHAR2
10454 --Entered Amount
10455 , p_source_31 IN NUMBER
10456 --Currency Code
10457 , p_source_32 IN VARCHAR2
10458 --Exchange Date
10459 , p_source_33 IN DATE
10460 --Exchange Rate
10461 , p_source_34 IN NUMBER
10462 --Exchange Rate Type
10463 , p_source_35 IN VARCHAR2
10464 --SLA Party Type
10465 , p_source_39 IN VARCHAR2
10466 --Accounting Amount
10467 , p_source_40 IN NUMBER
10468 --Drawee Account Identifier
10469 , p_source_41 IN NUMBER
10470 --DRAW_SITE_SITE_USE_ID
10471 , p_source_42 IN NUMBER
10472 )
10473 IS
10474
10478 l_component_appl_id INTEGER;
10475 l_component_type VARCHAR2(80);
10476 l_component_code VARCHAR2(30);
10477 l_component_type_code VARCHAR2(1);
10479 l_amb_context_code VARCHAR2(30);
10480 l_entity_code VARCHAR2(30);
10481 l_event_class_code VARCHAR2(30);
10482 l_ae_header_id NUMBER;
10483 l_event_type_code VARCHAR2(30);
10484 l_line_definition_code VARCHAR2(30);
10485 l_line_definition_owner_code VARCHAR2(1);
10486 --
10487 -- adr variables
10488 l_segment VARCHAR2(30);
10489 l_ccid NUMBER;
10490 l_adr_transaction_coa_id NUMBER;
10491 l_adr_accounting_coa_id NUMBER;
10492 l_adr_flexfield_segment_code VARCHAR2(30);
10493 l_adr_flex_value_set_id NUMBER;
10494 l_adr_value_type_code VARCHAR2(30);
10495 l_adr_value_combination_id NUMBER;
10496 l_adr_value_segment_code VARCHAR2(30);
10497
10498 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10499 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10500 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10501 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10502
10503 -- 4262811 Variables ------------------------------------------------------------------------------------------
10504 l_entered_amt_idx NUMBER;
10505 l_accted_amt_idx NUMBER;
10506 l_acc_rev_flag VARCHAR2(1);
10507 l_accrual_line_num NUMBER;
10508 l_tmp_amt NUMBER;
10509 l_acc_rev_natural_side_code VARCHAR2(1);
10510
10511 l_num_entries NUMBER;
10512 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10513 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10514 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10515 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10516 l_recog_line_1 NUMBER;
10517 l_recog_line_2 NUMBER;
10518
10519 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10520 l_bflow_applied_to_amt NUMBER; -- 5132302
10521 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10522
10523 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10524
10525 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10526 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10527
10528 ---------------------------------------------------------------------------------------------------------------
10529
10530
10531 --
10532 -- bulk performance
10533 --
10534 l_balance_type_code VARCHAR2(1);
10535 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10536 l_log_module VARCHAR2(240);
10537
10538 --
10539 -- Upgrade strategy
10540 --
10541 l_actual_upg_option VARCHAR2(1);
10542 l_enc_upg_option VARCHAR2(1);
10543
10544 --
10545 BEGIN
10546 --
10547 IF g_log_enabled THEN
10548 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
10549 END IF;
10550 --
10551 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10552
10553 trace
10554 (p_msg => 'BEGIN of AcctLineType_38'
10555 ,p_level => C_LEVEL_PROCEDURE
10556 ,p_module => l_log_module);
10557
10558 END IF;
10559 --
10560 l_component_type := 'AMB_JLT';
10561 l_component_code := 'BR_UNPAID';
10562 l_component_type_code := 'S';
10563 l_component_appl_id := 222;
10564 l_amb_context_code := 'DEFAULT';
10565 l_entity_code := 'BILLS_RECEIVABLE';
10566 l_event_class_code := 'BILL';
10567 l_event_type_code := 'BILL_ALL';
10568 l_line_definition_owner_code := 'S';
10569 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
10570 --
10571 l_balance_type_code := 'A';
10572 l_segment := NULL;
10573 l_ccid := NULL;
10574 l_adr_transaction_coa_id := NULL;
10575 l_adr_accounting_coa_id := NULL;
10576 l_adr_flexfield_segment_code := NULL;
10577 l_adr_flex_value_set_id := NULL;
10578 l_adr_value_type_code := NULL;
10579 l_adr_value_combination_id := NULL;
10580 l_adr_value_segment_code := NULL;
10581
10582 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10583 l_bflow_class_code := ''; -- 4219869 Business Flow
10584 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10585 l_budgetary_control_flag := 'N';
10586
10587 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10588 l_bflow_applied_to_amt := NULL; -- 5132302
10589 l_entered_amt_idx := NULL; -- 4262811
10590 l_accted_amt_idx := NULL; -- 4262811
10591 l_acc_rev_flag := NULL; -- 4262811
10592 l_accrual_line_num := NULL; -- 4262811
10593 l_tmp_amt := NULL; -- 4262811
10594 --
10595
10596 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10597 l_balance_type_code <> 'B' THEN
10598 IF NVL(p_source_27,'
10599 ') = 'UNPAIDREC'
10600 THEN
10601
10602 --
10603 XLA_AE_LINES_PKG.SetNewLine;
10604
10605 p_balance_type_code := l_balance_type_code;
10606 -- set the flag so later we will know whether the gain loss line needs to be created
10607
10608 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10612 --
10609 p_actual_flag :='A';
10610 END IF;
10611
10613 -- bulk performance
10614 --
10615 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10616 p_header_num => 0); -- 4262811
10617 --
10618 -- set accounting line options
10619 --
10620 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10621 p_natural_side_code => 'C'
10622 , p_gain_or_loss_flag => 'N'
10623 , p_gl_transfer_mode_code => 'S'
10624 , p_acct_entry_type_code => 'A'
10625 , p_switch_side_flag => 'Y'
10626 , p_merge_duplicate_code => 'A'
10627 );
10628 --
10629 l_acc_rev_natural_side_code := 'D'; -- 4262811
10630 --
10631 --
10632 -- set accounting line type info
10633 --
10634 xla_ae_lines_pkg.SetAcctLineType
10635 (p_component_type => l_component_type
10636 ,p_event_type_code => l_event_type_code
10637 ,p_line_definition_owner_code => l_line_definition_owner_code
10638 ,p_line_definition_code => l_line_definition_code
10639 ,p_accounting_line_code => l_component_code
10640 ,p_accounting_line_type_code => l_component_type_code
10641 ,p_accounting_line_appl_id => l_component_appl_id
10642 ,p_amb_context_code => l_amb_context_code
10643 ,p_entity_code => l_entity_code
10644 ,p_event_class_code => l_event_class_code);
10645 --
10646 -- set accounting class
10647 --
10648 xla_ae_lines_pkg.SetAcctClass(
10649 p_accounting_class_code => 'UNPAID_BR'
10650 , p_ae_header_id => l_ae_header_id
10651 );
10652
10653 --
10654 -- set rounding class
10655 --
10656 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10657 'UNPAID_BR';
10658
10659 --
10660 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10661 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10662 --
10663 -- bulk performance
10664 --
10665 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10666
10667 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10668 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10669
10670 -- 4955764
10671 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10672 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10673
10674 -- 4458381 Public Sector Enh
10675
10676 --
10677 -- set accounting attributes for the line type
10678 --
10679 l_entered_amt_idx := 3;
10680 l_accted_amt_idx := 8;
10681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10682 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
10683 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
10684 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
10685 l_rec_acct_attrs.array_char_value(2) := p_source_30;
10686 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
10687 l_rec_acct_attrs.array_num_value(3) := p_source_31;
10688 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
10689 l_rec_acct_attrs.array_char_value(4) := p_source_32;
10690 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
10691 l_rec_acct_attrs.array_date_value(5) := p_source_33;
10692 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
10693 l_rec_acct_attrs.array_num_value(6) := p_source_34;
10694 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
10695 l_rec_acct_attrs.array_char_value(7) := p_source_35;
10696 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
10697 l_rec_acct_attrs.array_num_value(8) := p_source_40;
10698 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
10699 l_rec_acct_attrs.array_num_value(9) := p_source_41;
10700 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
10701 l_rec_acct_attrs.array_num_value(10) := p_source_42;
10702 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
10703 l_rec_acct_attrs.array_char_value(11) := p_source_39;
10704
10705 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10706 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10707
10708 ---------------------------------------------------------------------------------------------------------------
10709 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10710 ---------------------------------------------------------------------------------------------------------------
10711 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10712
10713 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10714 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10715
10716 IF xla_accounting_cache_pkg.GetValueChar
10717 (p_source_code => 'LEDGER_CATEGORY_CODE'
10718 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10719 AND l_bflow_method_code = 'PRIOR_ENTRY'
10720 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10721 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10722 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10723 )
10724 THEN
10728 ,p_balance_type => l_balance_type_code);
10725 xla_ae_lines_pkg.BflowUpgEntry
10726 (p_business_method_code => l_bflow_method_code
10727 ,p_business_class_code => l_bflow_class_code
10729 ELSE
10730 NULL;
10731 -- No business flow processing for business flow method of NONE.
10732 END IF;
10733
10734 --
10735 -- call analytical criteria
10736 --
10737
10738 --
10739 -- call description
10740 --
10741 -- No description or it is inherited.
10742 --
10743 -- call ADRs
10744 -- Bug 4922099
10745 --
10746 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10747 (NVL(l_actual_upg_option, 'N') = 'O') OR
10748 (NVL(l_enc_upg_option, 'N') = 'O')
10749 )
10750 THEN
10751 NULL;
10752 --
10753 --
10754
10755 l_ccid := AcctDerRule_20(
10756 p_application_id => p_application_id
10757 , p_ae_header_id => l_ae_header_id
10758 , p_source_22 => p_source_22
10759 , x_transaction_coa_id => l_adr_transaction_coa_id
10760 , x_accounting_coa_id => l_adr_accounting_coa_id
10761 , x_value_type_code => l_adr_value_type_code
10762 , p_side => 'NA'
10763 );
10764
10765 xla_ae_lines_pkg.set_ccid(
10766 p_code_combination_id => l_ccid
10767 , p_value_type_code => l_adr_value_type_code
10768 , p_transaction_coa_id => l_adr_transaction_coa_id
10769 , p_accounting_coa_id => l_adr_accounting_coa_id
10770 , p_adr_code => 'DIST_CCID'
10771 , p_adr_type_code => 'S'
10772 , p_component_type => l_component_type
10773 , p_component_code => l_component_code
10774 , p_component_type_code => l_component_type_code
10775 , p_component_appl_id => l_component_appl_id
10776 , p_amb_context_code => l_amb_context_code
10777 , p_side => 'NA'
10778 );
10779
10780
10781 --
10782 --
10783 END IF;
10784 --
10785 -- Bug 4922099
10786 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10787 (NVL(l_enc_upg_option, 'N') = 'O')
10788 ) AND
10789 (l_bflow_method_code = 'PRIOR_ENTRY')
10790 )
10791 THEN
10792 IF
10793 --
10794 1 = 2
10795 --
10796 THEN
10797 xla_accounting_err_pkg.build_message
10798 (p_appli_s_name => 'XLA'
10799 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10800 ,p_token_1 => 'LINE_NUMBER'
10801 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10802 ,p_token_2 => 'LINE_TYPE_NAME'
10803 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10804 l_component_type
10805 ,l_component_code
10806 ,l_component_type_code
10807 ,l_component_appl_id
10808 ,l_amb_context_code
10809 ,l_entity_code
10810 ,l_event_class_code
10811 )
10812 ,p_token_3 => 'OWNER'
10813 ,p_value_3 => xla_lookups_pkg.get_meaning(
10814 p_lookup_type => 'XLA_OWNER_TYPE'
10815 ,p_lookup_code => l_component_type_code
10816 )
10817 ,p_token_4 => 'PRODUCT_NAME'
10818 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10819 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10820 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10821 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10822 ,p_ae_header_id => NULL
10823 );
10824
10825 IF (C_LEVEL_ERROR>= g_log_level) THEN
10826 trace
10827 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10828 ,p_level => C_LEVEL_ERROR
10829 ,p_module => l_log_module);
10830 END IF;
10831 END IF;
10832 END IF;
10833 --
10834 --
10835 ------------------------------------------------------------------------------------------------
10836 -- 4219869 Business Flow
10837 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10838 -- Prior Entry. Currently, the following code is always generated.
10839 ------------------------------------------------------------------------------------------------
10840 XLA_AE_LINES_PKG.ValidateCurrentLine;
10841
10845 ------------------------------------------------------------------------------------
10842 ------------------------------------------------------------------------------------
10843 -- 4219869 Business Flow
10844 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10846 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10847
10848 ----------------------------------------------------------------------------------
10849 -- 4219869 Business Flow
10850 -- Update journal entry status -- Need to generate this within IF <condition>
10851 ----------------------------------------------------------------------------------
10852 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10853 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10854 ,p_balance_type_code => l_balance_type_code
10855 );
10856
10857 -------------------------------------------------------------------------------------------
10858 -- 4262811 - Generate the Accrual Reversal lines
10859 -------------------------------------------------------------------------------------------
10860 BEGIN
10861 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10862 (g_array_event(p_event_id).array_value_num('header_index'));
10863 IF l_acc_rev_flag IS NULL THEN
10864 l_acc_rev_flag := 'N';
10865 END IF;
10866 EXCEPTION
10867 WHEN OTHERS THEN
10868 l_acc_rev_flag := 'N';
10869 END;
10870 --
10871 IF (l_acc_rev_flag = 'Y') THEN
10872
10873 -- 4645092 ------------------------------------------------------------------------------
10874 -- To allow MPA report to determine if it should generate report process
10875 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10876 ------------------------------------------------------------------------------------------
10877
10878 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10879 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10880 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10881 -- call ADRs
10882 -- Bug 4922099
10883 --
10884 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10885 (NVL(l_actual_upg_option, 'N') = 'O') OR
10886 (NVL(l_enc_upg_option, 'N') = 'O')
10887 )
10888 THEN
10889 NULL;
10890 --
10891 --
10892
10893 l_ccid := AcctDerRule_20(
10894 p_application_id => p_application_id
10895 , p_ae_header_id => l_ae_header_id
10896 , p_source_22 => p_source_22
10897 , x_transaction_coa_id => l_adr_transaction_coa_id
10898 , x_accounting_coa_id => l_adr_accounting_coa_id
10899 , x_value_type_code => l_adr_value_type_code
10900 , p_side => 'NA'
10901 );
10902
10903 xla_ae_lines_pkg.set_ccid(
10904 p_code_combination_id => l_ccid
10905 , p_value_type_code => l_adr_value_type_code
10906 , p_transaction_coa_id => l_adr_transaction_coa_id
10907 , p_accounting_coa_id => l_adr_accounting_coa_id
10908 , p_adr_code => 'DIST_CCID'
10909 , p_adr_type_code => 'S'
10910 , p_component_type => l_component_type
10911 , p_component_code => l_component_code
10912 , p_component_type_code => l_component_type_code
10913 , p_component_appl_id => l_component_appl_id
10914 , p_amb_context_code => l_amb_context_code
10915 , p_side => 'NA'
10916 );
10917
10918
10919 --
10920 --
10921 END IF;
10922
10923 --
10924 -- Update the line information that should be overwritten
10925 --
10926 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10927 p_header_num => 1);
10928 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10929
10930 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10931
10932 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10933 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10934 END IF;
10935
10936 --
10937 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10938 --
10939 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10940 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10941 ELSE
10942 ---------------------------------------------------------------------------------------------------
10943 -- 4262811a Switch Sign
10944 ---------------------------------------------------------------------------------------------------
10945 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10946 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10948 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10950 -- 5132302
10951 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10953
10954 END IF;
10955
10959
10956 -- 4955764
10957 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10958 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10960
10961 XLA_AE_LINES_PKG.ValidateCurrentLine;
10962 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10963
10964 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10965 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10966 ,p_balance_type_code => l_balance_type_code);
10967
10968 END IF;
10969
10970 -----------------------------------------------------------------------------------------
10971 -- 4262811 Multiperiod Accounting
10972 -----------------------------------------------------------------------------------------
10973 -- No MPA option is assigned.
10974
10975
10976 END IF;
10977 END IF;
10978 --
10979
10980 --
10981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10982 trace
10983 (p_msg => 'END of AcctLineType_38'
10984 ,p_level => C_LEVEL_PROCEDURE
10985 ,p_module => l_log_module);
10986 END IF;
10987 --
10988 EXCEPTION
10989 WHEN xla_exceptions_pkg.application_exception THEN
10990 RAISE;
10991 WHEN OTHERS THEN
10992 xla_exceptions_pkg.raise_message
10993 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_38');
10994 END AcctLineType_38;
10995 --
10996
10997 ---------------------------------------
10998 --
10999 -- PRIVATE FUNCTION
11000 -- AcctLineType_39
11001 --
11002 ---------------------------------------
11003 PROCEDURE AcctLineType_39 (
11004 p_application_id IN NUMBER
11005 ,p_event_id IN NUMBER
11006 ,p_calculate_acctd_flag IN VARCHAR2
11007 ,p_calculate_g_l_flag IN VARCHAR2
11008 ,p_actual_flag IN OUT VARCHAR2
11009 ,p_balance_type_code OUT VARCHAR2
11010 ,p_gain_or_loss_ref OUT VARCHAR2
11011
11012 --Transaction Distribution GL Account
11013 , p_source_26 IN NUMBER
11014 --Bill To Customer Account Identifier
11015 , p_source_37 IN NUMBER
11016 --Bill To Customer Site Use Identifier
11017 , p_source_38 IN NUMBER
11018 --SLA Party Type
11019 , p_source_39 IN VARCHAR2
11020 --Transaction Distribution Account Class
11021 , p_source_43 IN VARCHAR2
11022 --Transaction Distribution Identifier
11023 , p_source_44 IN NUMBER
11024 --Transaction Distribution Type
11025 , p_source_45 IN VARCHAR2
11026 --Transaction Distribution Entered Amount
11027 , p_source_46 IN NUMBER
11028 --Transaction Currency Code
11029 , p_source_47 IN VARCHAR2
11030 --Transaction Exchange Date
11031 , p_source_48 IN DATE
11032 --Transaction Exchange Rate
11033 , p_source_49 IN NUMBER
11034 --Transaction Exchange Rate Type
11035 , p_source_50 IN VARCHAR2
11036 --Transaction Accounting Amount
11037 , p_source_51 IN NUMBER
11038 )
11039 IS
11040
11041 l_component_type VARCHAR2(80);
11042 l_component_code VARCHAR2(30);
11043 l_component_type_code VARCHAR2(1);
11044 l_component_appl_id INTEGER;
11045 l_amb_context_code VARCHAR2(30);
11046 l_entity_code VARCHAR2(30);
11047 l_event_class_code VARCHAR2(30);
11048 l_ae_header_id NUMBER;
11049 l_event_type_code VARCHAR2(30);
11050 l_line_definition_code VARCHAR2(30);
11051 l_line_definition_owner_code VARCHAR2(1);
11052 --
11053 -- adr variables
11054 l_segment VARCHAR2(30);
11055 l_ccid NUMBER;
11056 l_adr_transaction_coa_id NUMBER;
11057 l_adr_accounting_coa_id NUMBER;
11058 l_adr_flexfield_segment_code VARCHAR2(30);
11059 l_adr_flex_value_set_id NUMBER;
11060 l_adr_value_type_code VARCHAR2(30);
11061 l_adr_value_combination_id NUMBER;
11062 l_adr_value_segment_code VARCHAR2(30);
11063
11064 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11065 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11066 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11067 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11068
11069 -- 4262811 Variables ------------------------------------------------------------------------------------------
11070 l_entered_amt_idx NUMBER;
11071 l_accted_amt_idx NUMBER;
11072 l_acc_rev_flag VARCHAR2(1);
11073 l_accrual_line_num NUMBER;
11074 l_tmp_amt NUMBER;
11075 l_acc_rev_natural_side_code VARCHAR2(1);
11076
11077 l_num_entries NUMBER;
11078 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11079 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11080 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11081 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11082 l_recog_line_1 NUMBER;
11083 l_recog_line_2 NUMBER;
11084
11085 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11086 l_bflow_applied_to_amt NUMBER; -- 5132302
11087 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11088
11092 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11089 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11090
11091 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11093
11094 ---------------------------------------------------------------------------------------------------------------
11095
11096
11097 --
11098 -- bulk performance
11099 --
11100 l_balance_type_code VARCHAR2(1);
11101 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11102 l_log_module VARCHAR2(240);
11103
11104 --
11105 -- Upgrade strategy
11106 --
11107 l_actual_upg_option VARCHAR2(1);
11108 l_enc_upg_option VARCHAR2(1);
11109
11110 --
11111 BEGIN
11112 --
11113 IF g_log_enabled THEN
11114 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
11115 END IF;
11116 --
11117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11118
11119 trace
11120 (p_msg => 'BEGIN of AcctLineType_39'
11121 ,p_level => C_LEVEL_PROCEDURE
11122 ,p_module => l_log_module);
11123
11124 END IF;
11125 --
11126 l_component_type := 'AMB_JLT';
11127 l_component_code := 'CB_DEFAULT_REC';
11128 l_component_type_code := 'S';
11129 l_component_appl_id := 222;
11130 l_amb_context_code := 'DEFAULT';
11131 l_entity_code := 'TRANSACTIONS';
11132 l_event_class_code := 'CHARGEBACK';
11133 l_event_type_code := 'CHARGEBACK_ALL';
11134 l_line_definition_owner_code := 'S';
11135 l_line_definition_code := 'AR_CB_DEFAULT_ACCRUAL';
11136 --
11137 l_balance_type_code := 'A';
11138 l_segment := NULL;
11139 l_ccid := NULL;
11140 l_adr_transaction_coa_id := NULL;
11141 l_adr_accounting_coa_id := NULL;
11142 l_adr_flexfield_segment_code := NULL;
11143 l_adr_flex_value_set_id := NULL;
11144 l_adr_value_type_code := NULL;
11145 l_adr_value_combination_id := NULL;
11146 l_adr_value_segment_code := NULL;
11147
11148 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11149 l_bflow_class_code := ''; -- 4219869 Business Flow
11150 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11151 l_budgetary_control_flag := 'N';
11152
11153 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11154 l_bflow_applied_to_amt := NULL; -- 5132302
11155 l_entered_amt_idx := NULL; -- 4262811
11156 l_accted_amt_idx := NULL; -- 4262811
11157 l_acc_rev_flag := NULL; -- 4262811
11158 l_accrual_line_num := NULL; -- 4262811
11159 l_tmp_amt := NULL; -- 4262811
11160 --
11161
11162 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11163 l_balance_type_code <> 'B' THEN
11164 IF NVL(p_source_43,'
11165 ') = 'REC'
11166 THEN
11167
11168 --
11169 XLA_AE_LINES_PKG.SetNewLine;
11170
11171 p_balance_type_code := l_balance_type_code;
11172 -- set the flag so later we will know whether the gain loss line needs to be created
11173
11174 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11175 p_actual_flag :='A';
11176 END IF;
11177
11178 --
11179 -- bulk performance
11180 --
11181 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11182 p_header_num => 0); -- 4262811
11183 --
11184 -- set accounting line options
11185 --
11186 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11187 p_natural_side_code => 'D'
11188 , p_gain_or_loss_flag => 'N'
11189 , p_gl_transfer_mode_code => 'S'
11190 , p_acct_entry_type_code => 'A'
11191 , p_switch_side_flag => 'Y'
11192 , p_merge_duplicate_code => 'A'
11193 );
11194 --
11195 l_acc_rev_natural_side_code := 'C'; -- 4262811
11196 --
11197 --
11198 -- set accounting line type info
11199 --
11200 xla_ae_lines_pkg.SetAcctLineType
11201 (p_component_type => l_component_type
11202 ,p_event_type_code => l_event_type_code
11203 ,p_line_definition_owner_code => l_line_definition_owner_code
11204 ,p_line_definition_code => l_line_definition_code
11205 ,p_accounting_line_code => l_component_code
11206 ,p_accounting_line_type_code => l_component_type_code
11207 ,p_accounting_line_appl_id => l_component_appl_id
11208 ,p_amb_context_code => l_amb_context_code
11209 ,p_entity_code => l_entity_code
11210 ,p_event_class_code => l_event_class_code);
11211 --
11212 -- set accounting class
11213 --
11214 xla_ae_lines_pkg.SetAcctClass(
11215 p_accounting_class_code => 'RECEIVABLE'
11216 , p_ae_header_id => l_ae_header_id
11217 );
11218
11219 --
11220 -- set rounding class
11221 --
11222 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11223 'RECEIVABLE';
11224
11225 --
11226 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11230 --
11227 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11228 --
11229 -- bulk performance
11231 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11232
11233 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11234 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11235
11236 -- 4955764
11237 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11238 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11239
11240 -- 4458381 Public Sector Enh
11241
11242 --
11243 -- set accounting attributes for the line type
11244 --
11245 l_entered_amt_idx := 3;
11246 l_accted_amt_idx := 8;
11247 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11248 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
11249 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
11250 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
11251 l_rec_acct_attrs.array_char_value(2) := p_source_45;
11252 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
11253 l_rec_acct_attrs.array_num_value(3) := p_source_46;
11254 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
11255 l_rec_acct_attrs.array_char_value(4) := p_source_47;
11256 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
11257 l_rec_acct_attrs.array_date_value(5) := p_source_48;
11258 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
11259 l_rec_acct_attrs.array_num_value(6) := p_source_49;
11260 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
11261 l_rec_acct_attrs.array_char_value(7) := p_source_50;
11262 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
11263 l_rec_acct_attrs.array_num_value(8) := p_source_51;
11264 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
11265 l_rec_acct_attrs.array_num_value(9) := p_source_37;
11266 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
11267 l_rec_acct_attrs.array_num_value(10) := p_source_38;
11268 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
11269 l_rec_acct_attrs.array_char_value(11) := p_source_39;
11270
11271 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11272 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11273
11274 ---------------------------------------------------------------------------------------------------------------
11275 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11276 ---------------------------------------------------------------------------------------------------------------
11277 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11278
11279 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11280 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11281
11282 IF xla_accounting_cache_pkg.GetValueChar
11283 (p_source_code => 'LEDGER_CATEGORY_CODE'
11284 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11285 AND l_bflow_method_code = 'PRIOR_ENTRY'
11286 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11287 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11288 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11289 )
11290 THEN
11291 xla_ae_lines_pkg.BflowUpgEntry
11292 (p_business_method_code => l_bflow_method_code
11293 ,p_business_class_code => l_bflow_class_code
11294 ,p_balance_type => l_balance_type_code);
11295 ELSE
11296 NULL;
11297 -- No business flow processing for business flow method of NONE.
11298 END IF;
11299
11300 --
11301 -- call analytical criteria
11302 --
11303
11304 --
11305 -- call description
11306 --
11307 -- No description or it is inherited.
11308 --
11309 -- call ADRs
11310 -- Bug 4922099
11311 --
11312 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11313 (NVL(l_actual_upg_option, 'N') = 'O') OR
11314 (NVL(l_enc_upg_option, 'N') = 'O')
11315 )
11316 THEN
11317 NULL;
11318 --
11319 --
11320
11321 l_ccid := AcctDerRule_24(
11322 p_application_id => p_application_id
11323 , p_ae_header_id => l_ae_header_id
11324 , p_source_26 => p_source_26
11325 , x_transaction_coa_id => l_adr_transaction_coa_id
11326 , x_accounting_coa_id => l_adr_accounting_coa_id
11327 , x_value_type_code => l_adr_value_type_code
11328 , p_side => 'NA'
11329 );
11330
11331 xla_ae_lines_pkg.set_ccid(
11332 p_code_combination_id => l_ccid
11333 , p_value_type_code => l_adr_value_type_code
11334 , p_transaction_coa_id => l_adr_transaction_coa_id
11335 , p_accounting_coa_id => l_adr_accounting_coa_id
11336 , p_adr_code => 'TRX_DIST_CCID'
11337 , p_adr_type_code => 'S'
11338 , p_component_type => l_component_type
11339 , p_component_code => l_component_code
11340 , p_component_type_code => l_component_type_code
11341 , p_component_appl_id => l_component_appl_id
11342 , p_amb_context_code => l_amb_context_code
11343 , p_side => 'NA'
11344 );
11345
11349 END IF;
11346
11347 --
11348 --
11350 --
11351 -- Bug 4922099
11352 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11353 (NVL(l_enc_upg_option, 'N') = 'O')
11354 ) AND
11355 (l_bflow_method_code = 'PRIOR_ENTRY')
11356 )
11357 THEN
11358 IF
11359 --
11360 1 = 2
11361 --
11362 THEN
11363 xla_accounting_err_pkg.build_message
11364 (p_appli_s_name => 'XLA'
11365 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11366 ,p_token_1 => 'LINE_NUMBER'
11367 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11368 ,p_token_2 => 'LINE_TYPE_NAME'
11369 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11370 l_component_type
11371 ,l_component_code
11372 ,l_component_type_code
11373 ,l_component_appl_id
11374 ,l_amb_context_code
11375 ,l_entity_code
11376 ,l_event_class_code
11377 )
11378 ,p_token_3 => 'OWNER'
11379 ,p_value_3 => xla_lookups_pkg.get_meaning(
11380 p_lookup_type => 'XLA_OWNER_TYPE'
11381 ,p_lookup_code => l_component_type_code
11382 )
11383 ,p_token_4 => 'PRODUCT_NAME'
11384 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11385 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11386 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11387 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11388 ,p_ae_header_id => NULL
11389 );
11390
11391 IF (C_LEVEL_ERROR>= g_log_level) THEN
11392 trace
11393 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11394 ,p_level => C_LEVEL_ERROR
11395 ,p_module => l_log_module);
11396 END IF;
11397 END IF;
11398 END IF;
11399 --
11400 --
11401 ------------------------------------------------------------------------------------------------
11402 -- 4219869 Business Flow
11403 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11404 -- Prior Entry. Currently, the following code is always generated.
11405 ------------------------------------------------------------------------------------------------
11406 XLA_AE_LINES_PKG.ValidateCurrentLine;
11407
11408 ------------------------------------------------------------------------------------
11409 -- 4219869 Business Flow
11410 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11411 ------------------------------------------------------------------------------------
11412 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11413
11414 ----------------------------------------------------------------------------------
11415 -- 4219869 Business Flow
11416 -- Update journal entry status -- Need to generate this within IF <condition>
11417 ----------------------------------------------------------------------------------
11418 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11419 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11420 ,p_balance_type_code => l_balance_type_code
11421 );
11422
11423 -------------------------------------------------------------------------------------------
11424 -- 4262811 - Generate the Accrual Reversal lines
11425 -------------------------------------------------------------------------------------------
11426 BEGIN
11427 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11428 (g_array_event(p_event_id).array_value_num('header_index'));
11429 IF l_acc_rev_flag IS NULL THEN
11430 l_acc_rev_flag := 'N';
11431 END IF;
11432 EXCEPTION
11433 WHEN OTHERS THEN
11434 l_acc_rev_flag := 'N';
11435 END;
11436 --
11437 IF (l_acc_rev_flag = 'Y') THEN
11438
11439 -- 4645092 ------------------------------------------------------------------------------
11440 -- To allow MPA report to determine if it should generate report process
11441 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11442 ------------------------------------------------------------------------------------------
11443
11444 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11445 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11446 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11447 -- call ADRs
11448 -- Bug 4922099
11449 --
11453 )
11450 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11451 (NVL(l_actual_upg_option, 'N') = 'O') OR
11452 (NVL(l_enc_upg_option, 'N') = 'O')
11454 THEN
11455 NULL;
11456 --
11457 --
11458
11459 l_ccid := AcctDerRule_24(
11460 p_application_id => p_application_id
11461 , p_ae_header_id => l_ae_header_id
11462 , p_source_26 => p_source_26
11463 , x_transaction_coa_id => l_adr_transaction_coa_id
11464 , x_accounting_coa_id => l_adr_accounting_coa_id
11465 , x_value_type_code => l_adr_value_type_code
11466 , p_side => 'NA'
11467 );
11468
11469 xla_ae_lines_pkg.set_ccid(
11470 p_code_combination_id => l_ccid
11471 , p_value_type_code => l_adr_value_type_code
11472 , p_transaction_coa_id => l_adr_transaction_coa_id
11473 , p_accounting_coa_id => l_adr_accounting_coa_id
11474 , p_adr_code => 'TRX_DIST_CCID'
11475 , p_adr_type_code => 'S'
11476 , p_component_type => l_component_type
11477 , p_component_code => l_component_code
11478 , p_component_type_code => l_component_type_code
11479 , p_component_appl_id => l_component_appl_id
11480 , p_amb_context_code => l_amb_context_code
11481 , p_side => 'NA'
11482 );
11483
11484
11485 --
11486 --
11487 END IF;
11488
11489 --
11490 -- Update the line information that should be overwritten
11491 --
11492 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11493 p_header_num => 1);
11494 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11495
11496 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11497
11498 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11499 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11500 END IF;
11501
11502 --
11503 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11504 --
11505 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11506 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11507 ELSE
11508 ---------------------------------------------------------------------------------------------------
11509 -- 4262811a Switch Sign
11510 ---------------------------------------------------------------------------------------------------
11511 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11512 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11513 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11514 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11515 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11516 -- 5132302
11517 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11518 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11519
11520 END IF;
11521
11522 -- 4955764
11523 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11524 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11525
11526
11527 XLA_AE_LINES_PKG.ValidateCurrentLine;
11528 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11529
11530 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11531 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11532 ,p_balance_type_code => l_balance_type_code);
11533
11534 END IF;
11535
11536 -----------------------------------------------------------------------------------------
11537 -- 4262811 Multiperiod Accounting
11538 -----------------------------------------------------------------------------------------
11539 -- No MPA option is assigned.
11540
11541
11542 END IF;
11543 END IF;
11544 --
11545
11546 --
11547 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11548 trace
11549 (p_msg => 'END of AcctLineType_39'
11550 ,p_level => C_LEVEL_PROCEDURE
11551 ,p_module => l_log_module);
11552 END IF;
11553 --
11554 EXCEPTION
11555 WHEN xla_exceptions_pkg.application_exception THEN
11556 RAISE;
11557 WHEN OTHERS THEN
11558 xla_exceptions_pkg.raise_message
11559 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_39');
11560 END AcctLineType_39;
11561 --
11562
11563 ---------------------------------------
11564 --
11565 -- PRIVATE FUNCTION
11566 -- AcctLineType_40
11567 --
11568 ---------------------------------------
11569 PROCEDURE AcctLineType_40 (
11570 p_application_id IN NUMBER
11571 ,p_event_id IN NUMBER
11572 ,p_calculate_acctd_flag IN VARCHAR2
11573 ,p_calculate_g_l_flag IN VARCHAR2
11574 ,p_actual_flag IN OUT VARCHAR2
11575 ,p_balance_type_code OUT VARCHAR2
11576 ,p_gain_or_loss_ref OUT VARCHAR2
11577
11578 --Transaction Distribution GL Account
11579 , p_source_26 IN NUMBER
11583 , p_source_38 IN NUMBER
11580 --Bill To Customer Account Identifier
11581 , p_source_37 IN NUMBER
11582 --Bill To Customer Site Use Identifier
11584 --SLA Party Type
11585 , p_source_39 IN VARCHAR2
11586 --Transaction Distribution Account Class
11587 , p_source_43 IN VARCHAR2
11588 --Transaction Distribution Identifier
11589 , p_source_44 IN NUMBER
11590 --Transaction Distribution Type
11591 , p_source_45 IN VARCHAR2
11592 --Transaction Distribution Entered Amount
11593 , p_source_46 IN NUMBER
11594 --Transaction Currency Code
11595 , p_source_47 IN VARCHAR2
11596 --Transaction Exchange Date
11597 , p_source_48 IN DATE
11598 --Transaction Exchange Rate
11599 , p_source_49 IN NUMBER
11600 --Transaction Exchange Rate Type
11601 , p_source_50 IN VARCHAR2
11602 --Transaction Accounting Amount
11603 , p_source_51 IN NUMBER
11604 )
11605 IS
11606
11607 l_component_type VARCHAR2(80);
11608 l_component_code VARCHAR2(30);
11609 l_component_type_code VARCHAR2(1);
11610 l_component_appl_id INTEGER;
11611 l_amb_context_code VARCHAR2(30);
11612 l_entity_code VARCHAR2(30);
11613 l_event_class_code VARCHAR2(30);
11614 l_ae_header_id NUMBER;
11615 l_event_type_code VARCHAR2(30);
11616 l_line_definition_code VARCHAR2(30);
11617 l_line_definition_owner_code VARCHAR2(1);
11618 --
11619 -- adr variables
11620 l_segment VARCHAR2(30);
11621 l_ccid NUMBER;
11622 l_adr_transaction_coa_id NUMBER;
11623 l_adr_accounting_coa_id NUMBER;
11624 l_adr_flexfield_segment_code VARCHAR2(30);
11625 l_adr_flex_value_set_id NUMBER;
11626 l_adr_value_type_code VARCHAR2(30);
11627 l_adr_value_combination_id NUMBER;
11628 l_adr_value_segment_code VARCHAR2(30);
11629
11630 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11631 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11632 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11633 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11634
11635 -- 4262811 Variables ------------------------------------------------------------------------------------------
11636 l_entered_amt_idx NUMBER;
11637 l_accted_amt_idx NUMBER;
11638 l_acc_rev_flag VARCHAR2(1);
11639 l_accrual_line_num NUMBER;
11640 l_tmp_amt NUMBER;
11641 l_acc_rev_natural_side_code VARCHAR2(1);
11642
11643 l_num_entries NUMBER;
11644 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11645 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11646 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11647 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11648 l_recog_line_1 NUMBER;
11649 l_recog_line_2 NUMBER;
11650
11651 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11652 l_bflow_applied_to_amt NUMBER; -- 5132302
11653 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11654
11655 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11656
11657 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11658 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11659
11660 ---------------------------------------------------------------------------------------------------------------
11661
11662
11663 --
11664 -- bulk performance
11665 --
11666 l_balance_type_code VARCHAR2(1);
11667 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11668 l_log_module VARCHAR2(240);
11669
11670 --
11671 -- Upgrade strategy
11672 --
11673 l_actual_upg_option VARCHAR2(1);
11674 l_enc_upg_option VARCHAR2(1);
11675
11676 --
11677 BEGIN
11678 --
11679 IF g_log_enabled THEN
11680 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
11681 END IF;
11682 --
11683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11684
11685 trace
11686 (p_msg => 'BEGIN of AcctLineType_40'
11687 ,p_level => C_LEVEL_PROCEDURE
11688 ,p_module => l_log_module);
11689
11690 END IF;
11691 --
11692 l_component_type := 'AMB_JLT';
11693 l_component_code := 'CB_REV';
11694 l_component_type_code := 'S';
11695 l_component_appl_id := 222;
11696 l_amb_context_code := 'DEFAULT';
11697 l_entity_code := 'TRANSACTIONS';
11698 l_event_class_code := 'CHARGEBACK';
11699 l_event_type_code := 'CHARGEBACK_ALL';
11700 l_line_definition_owner_code := 'S';
11701 l_line_definition_code := 'AR_CB_DEFAULT_ACCRUAL';
11702 --
11703 l_balance_type_code := 'A';
11704 l_segment := NULL;
11705 l_ccid := NULL;
11706 l_adr_transaction_coa_id := NULL;
11707 l_adr_accounting_coa_id := NULL;
11708 l_adr_flexfield_segment_code := NULL;
11709 l_adr_flex_value_set_id := NULL;
11710 l_adr_value_type_code := NULL;
11711 l_adr_value_combination_id := NULL;
11712 l_adr_value_segment_code := NULL;
11713
11714 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11715 l_bflow_class_code := ''; -- 4219869 Business Flow
11719 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11716 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11717 l_budgetary_control_flag := 'N';
11718
11720 l_bflow_applied_to_amt := NULL; -- 5132302
11721 l_entered_amt_idx := NULL; -- 4262811
11722 l_accted_amt_idx := NULL; -- 4262811
11723 l_acc_rev_flag := NULL; -- 4262811
11724 l_accrual_line_num := NULL; -- 4262811
11725 l_tmp_amt := NULL; -- 4262811
11726 --
11727
11728 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11729 l_balance_type_code <> 'B' THEN
11730 IF NVL(p_source_43,'
11731 ') = 'REV'
11732 THEN
11733
11734 --
11735 XLA_AE_LINES_PKG.SetNewLine;
11736
11737 p_balance_type_code := l_balance_type_code;
11738 -- set the flag so later we will know whether the gain loss line needs to be created
11739
11740 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11741 p_actual_flag :='A';
11742 END IF;
11743
11744 --
11745 -- bulk performance
11746 --
11747 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11748 p_header_num => 0); -- 4262811
11749 --
11750 -- set accounting line options
11751 --
11752 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11753 p_natural_side_code => 'C'
11754 , p_gain_or_loss_flag => 'N'
11755 , p_gl_transfer_mode_code => 'S'
11756 , p_acct_entry_type_code => 'A'
11757 , p_switch_side_flag => 'Y'
11758 , p_merge_duplicate_code => 'A'
11759 );
11760 --
11761 l_acc_rev_natural_side_code := 'D'; -- 4262811
11762 --
11763 --
11764 -- set accounting line type info
11765 --
11766 xla_ae_lines_pkg.SetAcctLineType
11767 (p_component_type => l_component_type
11768 ,p_event_type_code => l_event_type_code
11769 ,p_line_definition_owner_code => l_line_definition_owner_code
11770 ,p_line_definition_code => l_line_definition_code
11771 ,p_accounting_line_code => l_component_code
11772 ,p_accounting_line_type_code => l_component_type_code
11773 ,p_accounting_line_appl_id => l_component_appl_id
11774 ,p_amb_context_code => l_amb_context_code
11775 ,p_entity_code => l_entity_code
11776 ,p_event_class_code => l_event_class_code);
11777 --
11778 -- set accounting class
11779 --
11780 xla_ae_lines_pkg.SetAcctClass(
11781 p_accounting_class_code => 'REVENUE'
11782 , p_ae_header_id => l_ae_header_id
11783 );
11784
11785 --
11786 -- set rounding class
11787 --
11788 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11789 'RECEIVABLE';
11790
11791 --
11792 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11793 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11794 --
11795 -- bulk performance
11796 --
11797 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11798
11799 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11800 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11801
11802 -- 4955764
11803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11805
11806 -- 4458381 Public Sector Enh
11807
11808 --
11809 -- set accounting attributes for the line type
11810 --
11811 l_entered_amt_idx := 3;
11812 l_accted_amt_idx := 8;
11813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11814 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
11815 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
11816 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
11817 l_rec_acct_attrs.array_char_value(2) := p_source_45;
11818 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
11819 l_rec_acct_attrs.array_num_value(3) := p_source_46;
11820 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
11821 l_rec_acct_attrs.array_char_value(4) := p_source_47;
11822 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
11823 l_rec_acct_attrs.array_date_value(5) := p_source_48;
11824 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
11825 l_rec_acct_attrs.array_num_value(6) := p_source_49;
11826 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
11827 l_rec_acct_attrs.array_char_value(7) := p_source_50;
11828 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
11829 l_rec_acct_attrs.array_num_value(8) := p_source_51;
11830 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
11831 l_rec_acct_attrs.array_num_value(9) := p_source_37;
11832 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
11833 l_rec_acct_attrs.array_num_value(10) := p_source_38;
11834 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
11835 l_rec_acct_attrs.array_char_value(11) := p_source_39;
11836
11837 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11838 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11839
11843 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11840 ---------------------------------------------------------------------------------------------------------------
11841 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11842 ---------------------------------------------------------------------------------------------------------------
11844
11845 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11846 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11847
11848 IF xla_accounting_cache_pkg.GetValueChar
11849 (p_source_code => 'LEDGER_CATEGORY_CODE'
11850 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11851 AND l_bflow_method_code = 'PRIOR_ENTRY'
11852 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11853 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11854 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11855 )
11856 THEN
11857 xla_ae_lines_pkg.BflowUpgEntry
11858 (p_business_method_code => l_bflow_method_code
11859 ,p_business_class_code => l_bflow_class_code
11860 ,p_balance_type => l_balance_type_code);
11861 ELSE
11862 NULL;
11863 -- No business flow processing for business flow method of NONE.
11864 END IF;
11865
11866 --
11867 -- call analytical criteria
11868 --
11869
11870 --
11871 -- call description
11872 --
11873 -- No description or it is inherited.
11874 --
11875 -- call ADRs
11876 -- Bug 4922099
11877 --
11878 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11879 (NVL(l_actual_upg_option, 'N') = 'O') OR
11880 (NVL(l_enc_upg_option, 'N') = 'O')
11881 )
11882 THEN
11883 NULL;
11884 --
11885 --
11886
11887 l_ccid := AcctDerRule_24(
11888 p_application_id => p_application_id
11889 , p_ae_header_id => l_ae_header_id
11890 , p_source_26 => p_source_26
11891 , x_transaction_coa_id => l_adr_transaction_coa_id
11892 , x_accounting_coa_id => l_adr_accounting_coa_id
11893 , x_value_type_code => l_adr_value_type_code
11894 , p_side => 'NA'
11895 );
11896
11897 xla_ae_lines_pkg.set_ccid(
11898 p_code_combination_id => l_ccid
11899 , p_value_type_code => l_adr_value_type_code
11900 , p_transaction_coa_id => l_adr_transaction_coa_id
11901 , p_accounting_coa_id => l_adr_accounting_coa_id
11902 , p_adr_code => 'TRX_DIST_CCID'
11903 , p_adr_type_code => 'S'
11904 , p_component_type => l_component_type
11905 , p_component_code => l_component_code
11906 , p_component_type_code => l_component_type_code
11907 , p_component_appl_id => l_component_appl_id
11908 , p_amb_context_code => l_amb_context_code
11909 , p_side => 'NA'
11910 );
11911
11912
11913 --
11914 --
11915 END IF;
11916 --
11917 -- Bug 4922099
11918 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11919 (NVL(l_enc_upg_option, 'N') = 'O')
11920 ) AND
11921 (l_bflow_method_code = 'PRIOR_ENTRY')
11922 )
11923 THEN
11924 IF
11925 --
11926 1 = 2
11927 --
11928 THEN
11929 xla_accounting_err_pkg.build_message
11930 (p_appli_s_name => 'XLA'
11931 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11932 ,p_token_1 => 'LINE_NUMBER'
11933 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11934 ,p_token_2 => 'LINE_TYPE_NAME'
11935 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11936 l_component_type
11937 ,l_component_code
11938 ,l_component_type_code
11939 ,l_component_appl_id
11940 ,l_amb_context_code
11941 ,l_entity_code
11942 ,l_event_class_code
11943 )
11944 ,p_token_3 => 'OWNER'
11945 ,p_value_3 => xla_lookups_pkg.get_meaning(
11946 p_lookup_type => 'XLA_OWNER_TYPE'
11947 ,p_lookup_code => l_component_type_code
11948 )
11949 ,p_token_4 => 'PRODUCT_NAME'
11953 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11950 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11951 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11952 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11954 ,p_ae_header_id => NULL
11955 );
11956
11957 IF (C_LEVEL_ERROR>= g_log_level) THEN
11958 trace
11959 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11960 ,p_level => C_LEVEL_ERROR
11961 ,p_module => l_log_module);
11962 END IF;
11963 END IF;
11964 END IF;
11965 --
11966 --
11967 ------------------------------------------------------------------------------------------------
11968 -- 4219869 Business Flow
11969 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11970 -- Prior Entry. Currently, the following code is always generated.
11971 ------------------------------------------------------------------------------------------------
11972 XLA_AE_LINES_PKG.ValidateCurrentLine;
11973
11974 ------------------------------------------------------------------------------------
11975 -- 4219869 Business Flow
11976 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11977 ------------------------------------------------------------------------------------
11978 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11979
11980 ----------------------------------------------------------------------------------
11981 -- 4219869 Business Flow
11982 -- Update journal entry status -- Need to generate this within IF <condition>
11983 ----------------------------------------------------------------------------------
11984 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11985 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11986 ,p_balance_type_code => l_balance_type_code
11987 );
11988
11989 -------------------------------------------------------------------------------------------
11990 -- 4262811 - Generate the Accrual Reversal lines
11991 -------------------------------------------------------------------------------------------
11992 BEGIN
11993 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11994 (g_array_event(p_event_id).array_value_num('header_index'));
11995 IF l_acc_rev_flag IS NULL THEN
11996 l_acc_rev_flag := 'N';
11997 END IF;
11998 EXCEPTION
11999 WHEN OTHERS THEN
12000 l_acc_rev_flag := 'N';
12001 END;
12002 --
12003 IF (l_acc_rev_flag = 'Y') THEN
12004
12005 -- 4645092 ------------------------------------------------------------------------------
12006 -- To allow MPA report to determine if it should generate report process
12007 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12008 ------------------------------------------------------------------------------------------
12009
12010 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12011 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12012 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12013 -- call ADRs
12014 -- Bug 4922099
12015 --
12016 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12017 (NVL(l_actual_upg_option, 'N') = 'O') OR
12018 (NVL(l_enc_upg_option, 'N') = 'O')
12019 )
12020 THEN
12021 NULL;
12022 --
12023 --
12024
12025 l_ccid := AcctDerRule_24(
12026 p_application_id => p_application_id
12027 , p_ae_header_id => l_ae_header_id
12028 , p_source_26 => p_source_26
12029 , x_transaction_coa_id => l_adr_transaction_coa_id
12030 , x_accounting_coa_id => l_adr_accounting_coa_id
12031 , x_value_type_code => l_adr_value_type_code
12032 , p_side => 'NA'
12033 );
12034
12035 xla_ae_lines_pkg.set_ccid(
12036 p_code_combination_id => l_ccid
12037 , p_value_type_code => l_adr_value_type_code
12038 , p_transaction_coa_id => l_adr_transaction_coa_id
12039 , p_accounting_coa_id => l_adr_accounting_coa_id
12040 , p_adr_code => 'TRX_DIST_CCID'
12041 , p_adr_type_code => 'S'
12042 , p_component_type => l_component_type
12043 , p_component_code => l_component_code
12044 , p_component_type_code => l_component_type_code
12045 , p_component_appl_id => l_component_appl_id
12046 , p_amb_context_code => l_amb_context_code
12047 , p_side => 'NA'
12048 );
12049
12050
12051 --
12052 --
12053 END IF;
12054
12055 --
12056 -- Update the line information that should be overwritten
12057 --
12058 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12059 p_header_num => 1);
12060 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12061
12062 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12063
12064 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12065 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12069 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12066 END IF;
12067
12068 --
12070 --
12071 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12072 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12073 ELSE
12074 ---------------------------------------------------------------------------------------------------
12075 -- 4262811a Switch Sign
12076 ---------------------------------------------------------------------------------------------------
12077 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12078 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12079 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12080 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12081 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12082 -- 5132302
12083 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12084 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12085
12086 END IF;
12087
12088 -- 4955764
12089 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12090 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12091
12092
12093 XLA_AE_LINES_PKG.ValidateCurrentLine;
12094 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12095
12096 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12097 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12098 ,p_balance_type_code => l_balance_type_code);
12099
12100 END IF;
12101
12102 -----------------------------------------------------------------------------------------
12103 -- 4262811 Multiperiod Accounting
12104 -----------------------------------------------------------------------------------------
12105 -- No MPA option is assigned.
12106
12107
12108 END IF;
12109 END IF;
12110 --
12111
12112 --
12113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12114 trace
12115 (p_msg => 'END of AcctLineType_40'
12116 ,p_level => C_LEVEL_PROCEDURE
12117 ,p_module => l_log_module);
12118 END IF;
12119 --
12120 EXCEPTION
12121 WHEN xla_exceptions_pkg.application_exception THEN
12122 RAISE;
12123 WHEN OTHERS THEN
12124 xla_exceptions_pkg.raise_message
12125 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_40');
12126 END AcctLineType_40;
12127 --
12128
12129 ---------------------------------------
12130 --
12131 -- PRIVATE FUNCTION
12132 -- AcctLineType_41
12133 --
12134 ---------------------------------------
12135 PROCEDURE AcctLineType_41 (
12136 p_application_id IN NUMBER
12137 ,p_event_id IN NUMBER
12138 ,p_calculate_acctd_flag IN VARCHAR2
12139 ,p_calculate_g_l_flag IN VARCHAR2
12140 ,p_actual_flag IN OUT VARCHAR2
12141 ,p_balance_type_code OUT VARCHAR2
12142 ,p_gain_or_loss_ref OUT VARCHAR2
12143
12144 --Distribution GL Account
12145 , p_source_22 IN NUMBER
12146 --Distribution Source Type
12147 , p_source_27 IN VARCHAR2
12148 --Entered Amount
12149 , p_source_31 IN NUMBER
12150 --SLA Party Type
12151 , p_source_39 IN VARCHAR2
12152 --Credit Memo Distribution Identifier
12153 , p_source_52 IN NUMBER
12154 --Credit memo distributions type
12155 , p_source_53 IN VARCHAR2
12156 --Credit Memo Currency Code
12157 , p_source_54 IN VARCHAR2
12158 --Credit Memo Exchange Date
12159 , p_source_55 IN DATE
12160 --Credit Memo Exchange Rate
12161 , p_source_56 IN NUMBER
12162 --Credit Memo Exchange Rate Type
12163 , p_source_57 IN VARCHAR2
12164 --Gain Loss Reference
12165 , p_source_58 IN VARCHAR2
12166 --Credit Memo Accounting Amount
12167 , p_source_59 IN NUMBER
12168 --Credit Memo Bill To Customer Account Identifier
12169 , p_source_60 IN NUMBER
12170 --Credit Memo Bill To Customer Site Use Identifier
12171 , p_source_61 IN NUMBER
12172 --Credit Memo Tax Line Identifier
12173 , p_source_62 IN NUMBER
12174 )
12175 IS
12176
12177 l_component_type VARCHAR2(80);
12178 l_component_code VARCHAR2(30);
12179 l_component_type_code VARCHAR2(1);
12180 l_component_appl_id INTEGER;
12181 l_amb_context_code VARCHAR2(30);
12182 l_entity_code VARCHAR2(30);
12183 l_event_class_code VARCHAR2(30);
12184 l_ae_header_id NUMBER;
12185 l_event_type_code VARCHAR2(30);
12186 l_line_definition_code VARCHAR2(30);
12187 l_line_definition_owner_code VARCHAR2(1);
12188 --
12189 -- adr variables
12190 l_segment VARCHAR2(30);
12191 l_ccid NUMBER;
12192 l_adr_transaction_coa_id NUMBER;
12193 l_adr_accounting_coa_id NUMBER;
12197 l_adr_value_combination_id NUMBER;
12194 l_adr_flexfield_segment_code VARCHAR2(30);
12195 l_adr_flex_value_set_id NUMBER;
12196 l_adr_value_type_code VARCHAR2(30);
12198 l_adr_value_segment_code VARCHAR2(30);
12199
12200 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12201 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12202 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12203 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12204
12205 -- 4262811 Variables ------------------------------------------------------------------------------------------
12206 l_entered_amt_idx NUMBER;
12207 l_accted_amt_idx NUMBER;
12208 l_acc_rev_flag VARCHAR2(1);
12209 l_accrual_line_num NUMBER;
12210 l_tmp_amt NUMBER;
12211 l_acc_rev_natural_side_code VARCHAR2(1);
12212
12213 l_num_entries NUMBER;
12214 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12215 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12216 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12217 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12218 l_recog_line_1 NUMBER;
12219 l_recog_line_2 NUMBER;
12220
12221 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12222 l_bflow_applied_to_amt NUMBER; -- 5132302
12223 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12224
12225 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12226
12227 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12228 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12229
12230 ---------------------------------------------------------------------------------------------------------------
12231
12232
12233 --
12234 -- bulk performance
12235 --
12236 l_balance_type_code VARCHAR2(1);
12237 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12238 l_log_module VARCHAR2(240);
12239
12240 --
12241 -- Upgrade strategy
12242 --
12243 l_actual_upg_option VARCHAR2(1);
12244 l_enc_upg_option VARCHAR2(1);
12245
12246 --
12247 BEGIN
12248 --
12249 IF g_log_enabled THEN
12250 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
12251 END IF;
12252 --
12253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12254
12255 trace
12256 (p_msg => 'BEGIN of AcctLineType_41'
12257 ,p_level => C_LEVEL_PROCEDURE
12258 ,p_module => l_log_module);
12259
12260 END IF;
12261 --
12262 l_component_type := 'AMB_JLT';
12263 l_component_code := 'CM_APP_DEFAULT_DEFERRED_TAX';
12264 l_component_type_code := 'S';
12265 l_component_appl_id := 222;
12266 l_amb_context_code := 'DEFAULT';
12267 l_entity_code := 'TRANSACTIONS';
12268 l_event_class_code := 'CREDIT_MEMO';
12269 l_event_type_code := 'CREDIT_MEMO_ALL';
12270 l_line_definition_owner_code := 'S';
12271 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
12272 --
12273 l_balance_type_code := 'A';
12274 l_segment := NULL;
12275 l_ccid := NULL;
12276 l_adr_transaction_coa_id := NULL;
12277 l_adr_accounting_coa_id := NULL;
12278 l_adr_flexfield_segment_code := NULL;
12279 l_adr_flex_value_set_id := NULL;
12280 l_adr_value_type_code := NULL;
12281 l_adr_value_combination_id := NULL;
12282 l_adr_value_segment_code := NULL;
12283
12284 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12285 l_bflow_class_code := ''; -- 4219869 Business Flow
12286 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12287 l_budgetary_control_flag := 'N';
12288
12289 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12290 l_bflow_applied_to_amt := NULL; -- 5132302
12291 l_entered_amt_idx := NULL; -- 4262811
12292 l_accted_amt_idx := NULL; -- 4262811
12293 l_acc_rev_flag := NULL; -- 4262811
12294 l_accrual_line_num := NULL; -- 4262811
12295 l_tmp_amt := NULL; -- 4262811
12296 --
12297
12298 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12299 l_balance_type_code <> 'B' THEN
12300 IF NVL(p_source_27,'
12301 ') = 'DEFERRED_TAX'
12302 THEN
12303
12304 --
12305 XLA_AE_LINES_PKG.SetNewLine;
12306
12307 p_balance_type_code := l_balance_type_code;
12308 -- set the flag so later we will know whether the gain loss line needs to be created
12309
12310 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12311 p_actual_flag :='A';
12312 END IF;
12313
12314 --
12315 -- bulk performance
12316 --
12317 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12318 p_header_num => 0); -- 4262811
12319 --
12320 -- set accounting line options
12321 --
12322 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12323 p_natural_side_code => 'C'
12324 , p_gain_or_loss_flag => 'N'
12325 , p_gl_transfer_mode_code => 'S'
12326 , p_acct_entry_type_code => 'A'
12327 , p_switch_side_flag => 'Y'
12328 , p_merge_duplicate_code => 'A'
12332 --
12329 );
12330 --
12331 l_acc_rev_natural_side_code := 'D'; -- 4262811
12333 --
12334 -- set accounting line type info
12335 --
12336 xla_ae_lines_pkg.SetAcctLineType
12337 (p_component_type => l_component_type
12338 ,p_event_type_code => l_event_type_code
12339 ,p_line_definition_owner_code => l_line_definition_owner_code
12340 ,p_line_definition_code => l_line_definition_code
12341 ,p_accounting_line_code => l_component_code
12342 ,p_accounting_line_type_code => l_component_type_code
12343 ,p_accounting_line_appl_id => l_component_appl_id
12344 ,p_amb_context_code => l_amb_context_code
12345 ,p_entity_code => l_entity_code
12346 ,p_event_class_code => l_event_class_code);
12347 --
12348 -- set accounting class
12349 --
12350 xla_ae_lines_pkg.SetAcctClass(
12351 p_accounting_class_code => 'DEFERRED_TAX'
12352 , p_ae_header_id => l_ae_header_id
12353 );
12354
12355 --
12356 -- set rounding class
12357 --
12358 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12359 'RECEIVABLE';
12360
12361 --
12362 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12363 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12364 --
12365 -- bulk performance
12366 --
12367 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12368
12369 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12370 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12371
12372 -- 4955764
12373 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12374 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12375
12376 -- 4458381 Public Sector Enh
12377
12378 --
12379 -- set accounting attributes for the line type
12380 --
12381 l_entered_amt_idx := 3;
12382 l_accted_amt_idx := 9;
12383 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12384 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12385 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
12386 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
12387 l_rec_acct_attrs.array_char_value(2) := p_source_53;
12388 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
12389 l_rec_acct_attrs.array_num_value(3) := p_source_31;
12390 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
12391 l_rec_acct_attrs.array_char_value(4) := p_source_54;
12392 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
12393 l_rec_acct_attrs.array_date_value(5) := p_source_55;
12394 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
12395 l_rec_acct_attrs.array_num_value(6) := p_source_56;
12396 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
12397 l_rec_acct_attrs.array_char_value(7) := p_source_57;
12398 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
12399 l_rec_acct_attrs.array_char_value(8) := p_source_58;
12400 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
12401 l_rec_acct_attrs.array_num_value(9) := p_source_59;
12402 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
12403 l_rec_acct_attrs.array_num_value(10) := p_source_60;
12404 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
12405 l_rec_acct_attrs.array_num_value(11) := p_source_61;
12406 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
12407 l_rec_acct_attrs.array_char_value(12) := p_source_39;
12408 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
12409 l_rec_acct_attrs.array_num_value(13) := p_source_62;
12410
12411 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12412 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12413
12414 ---------------------------------------------------------------------------------------------------------------
12415 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12416 ---------------------------------------------------------------------------------------------------------------
12417 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12418
12419 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12420 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12421
12422 IF xla_accounting_cache_pkg.GetValueChar
12423 (p_source_code => 'LEDGER_CATEGORY_CODE'
12424 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12425 AND l_bflow_method_code = 'PRIOR_ENTRY'
12426 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12427 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12428 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12429 )
12430 THEN
12431 xla_ae_lines_pkg.BflowUpgEntry
12432 (p_business_method_code => l_bflow_method_code
12433 ,p_business_class_code => l_bflow_class_code
12434 ,p_balance_type => l_balance_type_code);
12435 ELSE
12436 NULL;
12437 -- No business flow processing for business flow method of NONE.
12438 END IF;
12439
12440 --
12441 -- call analytical criteria
12442 --
12443
12447 -- No description or it is inherited.
12444 --
12445 -- call description
12446 --
12448 --
12449 -- call ADRs
12450 -- Bug 4922099
12451 --
12452 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12453 (NVL(l_actual_upg_option, 'N') = 'O') OR
12454 (NVL(l_enc_upg_option, 'N') = 'O')
12455 )
12456 THEN
12457 NULL;
12458 --
12459 --
12460
12461 l_ccid := AcctDerRule_20(
12462 p_application_id => p_application_id
12463 , p_ae_header_id => l_ae_header_id
12464 , p_source_22 => p_source_22
12465 , x_transaction_coa_id => l_adr_transaction_coa_id
12466 , x_accounting_coa_id => l_adr_accounting_coa_id
12467 , x_value_type_code => l_adr_value_type_code
12468 , p_side => 'NA'
12469 );
12470
12471 xla_ae_lines_pkg.set_ccid(
12472 p_code_combination_id => l_ccid
12473 , p_value_type_code => l_adr_value_type_code
12474 , p_transaction_coa_id => l_adr_transaction_coa_id
12475 , p_accounting_coa_id => l_adr_accounting_coa_id
12476 , p_adr_code => 'DIST_CCID'
12477 , p_adr_type_code => 'S'
12478 , p_component_type => l_component_type
12479 , p_component_code => l_component_code
12480 , p_component_type_code => l_component_type_code
12481 , p_component_appl_id => l_component_appl_id
12482 , p_amb_context_code => l_amb_context_code
12483 , p_side => 'NA'
12484 );
12485
12486
12487 --
12488 --
12489 END IF;
12490 --
12491 -- Bug 4922099
12492 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12493 (NVL(l_enc_upg_option, 'N') = 'O')
12494 ) AND
12495 (l_bflow_method_code = 'PRIOR_ENTRY')
12496 )
12497 THEN
12498 IF
12499 --
12500 1 = 2
12501 --
12502 THEN
12503 xla_accounting_err_pkg.build_message
12504 (p_appli_s_name => 'XLA'
12505 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12506 ,p_token_1 => 'LINE_NUMBER'
12507 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12508 ,p_token_2 => 'LINE_TYPE_NAME'
12509 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12510 l_component_type
12511 ,l_component_code
12512 ,l_component_type_code
12513 ,l_component_appl_id
12514 ,l_amb_context_code
12515 ,l_entity_code
12516 ,l_event_class_code
12517 )
12518 ,p_token_3 => 'OWNER'
12519 ,p_value_3 => xla_lookups_pkg.get_meaning(
12520 p_lookup_type => 'XLA_OWNER_TYPE'
12521 ,p_lookup_code => l_component_type_code
12522 )
12523 ,p_token_4 => 'PRODUCT_NAME'
12524 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12525 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12526 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12527 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12528 ,p_ae_header_id => NULL
12529 );
12530
12531 IF (C_LEVEL_ERROR>= g_log_level) THEN
12532 trace
12533 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12534 ,p_level => C_LEVEL_ERROR
12535 ,p_module => l_log_module);
12536 END IF;
12537 END IF;
12538 END IF;
12539 --
12540 --
12541 ------------------------------------------------------------------------------------------------
12542 -- 4219869 Business Flow
12543 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12544 -- Prior Entry. Currently, the following code is always generated.
12545 ------------------------------------------------------------------------------------------------
12546 XLA_AE_LINES_PKG.ValidateCurrentLine;
12547
12548 ------------------------------------------------------------------------------------
12549 -- 4219869 Business Flow
12550 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12551 ------------------------------------------------------------------------------------
12552 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12553
12554 ----------------------------------------------------------------------------------
12555 -- 4219869 Business Flow
12559 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12556 -- Update journal entry status -- Need to generate this within IF <condition>
12557 ----------------------------------------------------------------------------------
12558 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12560 ,p_balance_type_code => l_balance_type_code
12561 );
12562
12563 -------------------------------------------------------------------------------------------
12564 -- 4262811 - Generate the Accrual Reversal lines
12565 -------------------------------------------------------------------------------------------
12566 BEGIN
12567 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12568 (g_array_event(p_event_id).array_value_num('header_index'));
12569 IF l_acc_rev_flag IS NULL THEN
12570 l_acc_rev_flag := 'N';
12571 END IF;
12572 EXCEPTION
12573 WHEN OTHERS THEN
12574 l_acc_rev_flag := 'N';
12575 END;
12576 --
12577 IF (l_acc_rev_flag = 'Y') THEN
12578
12579 -- 4645092 ------------------------------------------------------------------------------
12580 -- To allow MPA report to determine if it should generate report process
12581 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12582 ------------------------------------------------------------------------------------------
12583
12584 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12585 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12586 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12587 -- call ADRs
12588 -- Bug 4922099
12589 --
12590 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12591 (NVL(l_actual_upg_option, 'N') = 'O') OR
12592 (NVL(l_enc_upg_option, 'N') = 'O')
12593 )
12594 THEN
12595 NULL;
12596 --
12597 --
12598
12599 l_ccid := AcctDerRule_20(
12600 p_application_id => p_application_id
12601 , p_ae_header_id => l_ae_header_id
12602 , p_source_22 => p_source_22
12603 , x_transaction_coa_id => l_adr_transaction_coa_id
12604 , x_accounting_coa_id => l_adr_accounting_coa_id
12605 , x_value_type_code => l_adr_value_type_code
12606 , p_side => 'NA'
12607 );
12608
12609 xla_ae_lines_pkg.set_ccid(
12610 p_code_combination_id => l_ccid
12611 , p_value_type_code => l_adr_value_type_code
12612 , p_transaction_coa_id => l_adr_transaction_coa_id
12613 , p_accounting_coa_id => l_adr_accounting_coa_id
12614 , p_adr_code => 'DIST_CCID'
12615 , p_adr_type_code => 'S'
12616 , p_component_type => l_component_type
12617 , p_component_code => l_component_code
12618 , p_component_type_code => l_component_type_code
12619 , p_component_appl_id => l_component_appl_id
12620 , p_amb_context_code => l_amb_context_code
12621 , p_side => 'NA'
12622 );
12623
12624
12625 --
12626 --
12627 END IF;
12628
12629 --
12630 -- Update the line information that should be overwritten
12631 --
12632 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12633 p_header_num => 1);
12634 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12635
12636 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12637
12638 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12639 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12640 END IF;
12641
12642 --
12643 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12644 --
12645 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12646 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12647 ELSE
12648 ---------------------------------------------------------------------------------------------------
12649 -- 4262811a Switch Sign
12650 ---------------------------------------------------------------------------------------------------
12651 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12652 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12653 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12654 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12655 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12656 -- 5132302
12657 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12658 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12659
12660 END IF;
12661
12662 -- 4955764
12663 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12664 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12665
12666
12667 XLA_AE_LINES_PKG.ValidateCurrentLine;
12668 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12669
12670 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12674 END IF;
12671 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12672 ,p_balance_type_code => l_balance_type_code);
12673
12675
12676 -----------------------------------------------------------------------------------------
12677 -- 4262811 Multiperiod Accounting
12678 -----------------------------------------------------------------------------------------
12679 -- No MPA option is assigned.
12680
12681
12682 END IF;
12683 END IF;
12684 --
12685
12686 --
12687 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12688 trace
12689 (p_msg => 'END of AcctLineType_41'
12690 ,p_level => C_LEVEL_PROCEDURE
12691 ,p_module => l_log_module);
12692 END IF;
12693 --
12694 EXCEPTION
12695 WHEN xla_exceptions_pkg.application_exception THEN
12696 RAISE;
12697 WHEN OTHERS THEN
12698 xla_exceptions_pkg.raise_message
12699 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_41');
12700 END AcctLineType_41;
12701 --
12702
12703 ---------------------------------------
12704 --
12705 -- PRIVATE FUNCTION
12706 -- AcctLineType_42
12707 --
12708 ---------------------------------------
12709 PROCEDURE AcctLineType_42 (
12710 p_application_id IN NUMBER
12711 ,p_event_id IN NUMBER
12712 ,p_calculate_acctd_flag IN VARCHAR2
12713 ,p_calculate_g_l_flag IN VARCHAR2
12714 ,p_actual_flag IN OUT VARCHAR2
12715 ,p_balance_type_code OUT VARCHAR2
12716 ,p_gain_or_loss_ref OUT VARCHAR2
12717
12718 --Transaction Type Name
12719 , p_source_1 IN VARCHAR2
12720 --Transaction Number
12721 , p_source_2 IN VARCHAR2
12722 --Transaction Document Sequence Number
12723 , p_source_3 IN NUMBER
12724 --Distribution GL Account
12725 , p_source_22 IN NUMBER
12726 --Distribution Source Type
12727 , p_source_27 IN VARCHAR2
12728 --Entered Amount
12729 , p_source_31 IN NUMBER
12730 --SLA Party Type
12731 , p_source_39 IN VARCHAR2
12732 --Credit Memo Distribution Identifier
12733 , p_source_52 IN NUMBER
12734 --Credit memo distributions type
12735 , p_source_53 IN VARCHAR2
12736 --Credit Memo Currency Code
12737 , p_source_54 IN VARCHAR2
12738 --Credit Memo Exchange Date
12739 , p_source_55 IN DATE
12740 --Credit Memo Exchange Rate
12741 , p_source_56 IN NUMBER
12742 --Credit Memo Exchange Rate Type
12743 , p_source_57 IN VARCHAR2
12744 --Gain Loss Reference
12745 , p_source_58 IN VARCHAR2
12746 --Credit Memo Accounting Amount
12747 , p_source_59 IN NUMBER
12748 --Credit Memo Bill To Customer Account Identifier
12749 , p_source_60 IN NUMBER
12750 --Credit Memo Bill To Customer Site Use Identifier
12751 , p_source_61 IN NUMBER
12752 --Credit Memo Tax Line Identifier
12753 , p_source_62 IN NUMBER
12754 )
12755 IS
12756
12757 l_component_type VARCHAR2(80);
12758 l_component_code VARCHAR2(30);
12759 l_component_type_code VARCHAR2(1);
12760 l_component_appl_id INTEGER;
12761 l_amb_context_code VARCHAR2(30);
12762 l_entity_code VARCHAR2(30);
12763 l_event_class_code VARCHAR2(30);
12764 l_ae_header_id NUMBER;
12765 l_event_type_code VARCHAR2(30);
12766 l_line_definition_code VARCHAR2(30);
12767 l_line_definition_owner_code VARCHAR2(1);
12768 --
12769 -- adr variables
12770 l_segment VARCHAR2(30);
12771 l_ccid NUMBER;
12772 l_adr_transaction_coa_id NUMBER;
12773 l_adr_accounting_coa_id NUMBER;
12774 l_adr_flexfield_segment_code VARCHAR2(30);
12775 l_adr_flex_value_set_id NUMBER;
12776 l_adr_value_type_code VARCHAR2(30);
12777 l_adr_value_combination_id NUMBER;
12778 l_adr_value_segment_code VARCHAR2(30);
12779
12780 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12781 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12782 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12783 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12784
12785 -- 4262811 Variables ------------------------------------------------------------------------------------------
12786 l_entered_amt_idx NUMBER;
12787 l_accted_amt_idx NUMBER;
12788 l_acc_rev_flag VARCHAR2(1);
12789 l_accrual_line_num NUMBER;
12790 l_tmp_amt NUMBER;
12791 l_acc_rev_natural_side_code VARCHAR2(1);
12792
12793 l_num_entries NUMBER;
12794 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12795 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12796 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12797 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12798 l_recog_line_1 NUMBER;
12799 l_recog_line_2 NUMBER;
12800
12801 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12802 l_bflow_applied_to_amt NUMBER; -- 5132302
12803 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12804
12805 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12806
12807 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12808 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12809
12813 --
12810 ---------------------------------------------------------------------------------------------------------------
12811
12812
12814 -- bulk performance
12815 --
12816 l_balance_type_code VARCHAR2(1);
12817 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12818 l_log_module VARCHAR2(240);
12819
12820 --
12821 -- Upgrade strategy
12822 --
12823 l_actual_upg_option VARCHAR2(1);
12824 l_enc_upg_option VARCHAR2(1);
12825
12826 --
12827 BEGIN
12828 --
12829 IF g_log_enabled THEN
12830 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
12831 END IF;
12832 --
12833 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12834
12835 trace
12836 (p_msg => 'BEGIN of AcctLineType_42'
12837 ,p_level => C_LEVEL_PROCEDURE
12838 ,p_module => l_log_module);
12839
12840 END IF;
12841 --
12842 l_component_type := 'AMB_JLT';
12843 l_component_code := 'CM_APP_DEFAULT_REC';
12844 l_component_type_code := 'S';
12845 l_component_appl_id := 222;
12846 l_amb_context_code := 'DEFAULT';
12847 l_entity_code := 'TRANSACTIONS';
12848 l_event_class_code := 'CREDIT_MEMO';
12849 l_event_type_code := 'CREDIT_MEMO_ALL';
12850 l_line_definition_owner_code := 'S';
12851 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
12852 --
12853 l_balance_type_code := 'A';
12854 l_segment := NULL;
12855 l_ccid := NULL;
12856 l_adr_transaction_coa_id := NULL;
12857 l_adr_accounting_coa_id := NULL;
12858 l_adr_flexfield_segment_code := NULL;
12859 l_adr_flex_value_set_id := NULL;
12860 l_adr_value_type_code := NULL;
12861 l_adr_value_combination_id := NULL;
12862 l_adr_value_segment_code := NULL;
12863
12864 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12865 l_bflow_class_code := ''; -- 4219869 Business Flow
12866 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12867 l_budgetary_control_flag := 'N';
12868
12869 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12870 l_bflow_applied_to_amt := NULL; -- 5132302
12871 l_entered_amt_idx := NULL; -- 4262811
12872 l_accted_amt_idx := NULL; -- 4262811
12873 l_acc_rev_flag := NULL; -- 4262811
12874 l_accrual_line_num := NULL; -- 4262811
12875 l_tmp_amt := NULL; -- 4262811
12876 --
12877
12878 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12879 l_balance_type_code <> 'B' THEN
12880 IF NVL(p_source_27,'
12881 ') = 'REC'
12882 THEN
12883
12884 --
12885 XLA_AE_LINES_PKG.SetNewLine;
12886
12887 p_balance_type_code := l_balance_type_code;
12888 -- set the flag so later we will know whether the gain loss line needs to be created
12889
12890 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12891 p_actual_flag :='A';
12892 END IF;
12893
12894 --
12895 -- bulk performance
12896 --
12897 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12898 p_header_num => 0); -- 4262811
12899 --
12900 -- set accounting line options
12901 --
12902 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12903 p_natural_side_code => 'C'
12904 , p_gain_or_loss_flag => 'N'
12905 , p_gl_transfer_mode_code => 'S'
12906 , p_acct_entry_type_code => 'A'
12907 , p_switch_side_flag => 'Y'
12908 , p_merge_duplicate_code => 'A'
12909 );
12910 --
12911 l_acc_rev_natural_side_code := 'D'; -- 4262811
12912 --
12913 --
12914 -- set accounting line type info
12915 --
12916 xla_ae_lines_pkg.SetAcctLineType
12917 (p_component_type => l_component_type
12918 ,p_event_type_code => l_event_type_code
12919 ,p_line_definition_owner_code => l_line_definition_owner_code
12920 ,p_line_definition_code => l_line_definition_code
12921 ,p_accounting_line_code => l_component_code
12922 ,p_accounting_line_type_code => l_component_type_code
12923 ,p_accounting_line_appl_id => l_component_appl_id
12924 ,p_amb_context_code => l_amb_context_code
12925 ,p_entity_code => l_entity_code
12926 ,p_event_class_code => l_event_class_code);
12927 --
12928 -- set accounting class
12929 --
12930 xla_ae_lines_pkg.SetAcctClass(
12931 p_accounting_class_code => 'RECEIVABLE'
12932 , p_ae_header_id => l_ae_header_id
12933 );
12934
12935 --
12936 -- set rounding class
12937 --
12938 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12939 'RECEIVABLE';
12940
12941 --
12942 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12943 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12944 --
12945 -- bulk performance
12946 --
12947 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12948
12949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12950 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12951
12955
12952 -- 4955764
12953 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12954 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12956 -- 4458381 Public Sector Enh
12957
12958 --
12959 -- set accounting attributes for the line type
12960 --
12961 l_entered_amt_idx := 3;
12962 l_accted_amt_idx := 9;
12963 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12964 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12965 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
12966 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
12967 l_rec_acct_attrs.array_char_value(2) := p_source_53;
12968 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
12969 l_rec_acct_attrs.array_num_value(3) := p_source_31;
12970 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
12971 l_rec_acct_attrs.array_char_value(4) := p_source_54;
12972 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
12973 l_rec_acct_attrs.array_date_value(5) := p_source_55;
12974 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
12975 l_rec_acct_attrs.array_num_value(6) := p_source_56;
12976 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
12977 l_rec_acct_attrs.array_char_value(7) := p_source_57;
12978 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
12979 l_rec_acct_attrs.array_char_value(8) := p_source_58;
12980 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
12981 l_rec_acct_attrs.array_num_value(9) := p_source_59;
12982 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
12983 l_rec_acct_attrs.array_num_value(10) := p_source_60;
12984 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
12985 l_rec_acct_attrs.array_num_value(11) := p_source_61;
12986 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
12987 l_rec_acct_attrs.array_char_value(12) := p_source_39;
12988 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
12989 l_rec_acct_attrs.array_num_value(13) := p_source_62;
12990
12991 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12992 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12993
12994 ---------------------------------------------------------------------------------------------------------------
12995 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12996 ---------------------------------------------------------------------------------------------------------------
12997 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12998
12999 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13000 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13001
13002 IF xla_accounting_cache_pkg.GetValueChar
13003 (p_source_code => 'LEDGER_CATEGORY_CODE'
13004 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13005 AND l_bflow_method_code = 'PRIOR_ENTRY'
13006 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13007 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13008 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13009 )
13010 THEN
13011 xla_ae_lines_pkg.BflowUpgEntry
13012 (p_business_method_code => l_bflow_method_code
13013 ,p_business_class_code => l_bflow_class_code
13014 ,p_balance_type => l_balance_type_code);
13015 ELSE
13016 NULL;
13017 -- No business flow processing for business flow method of NONE.
13018 END IF;
13019
13020 --
13021 -- call analytical criteria
13022 --
13023
13024 --
13025 -- call description
13026 --
13027
13028 xla_ae_lines_pkg.SetLineDescription(
13029 p_ae_header_id => l_ae_header_id
13030 ,p_description => Description_1 (
13031 p_application_id => p_application_id
13032 , p_ae_header_id => l_ae_header_id
13033 , p_source_1 => p_source_1
13034 , p_source_2 => p_source_2
13035 , p_source_3 => p_source_3
13036 )
13037 );
13038
13039
13040 --
13041 -- call ADRs
13042 -- Bug 4922099
13043 --
13044 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13045 (NVL(l_actual_upg_option, 'N') = 'O') OR
13046 (NVL(l_enc_upg_option, 'N') = 'O')
13047 )
13048 THEN
13049 NULL;
13050 --
13051 --
13052
13053 l_ccid := AcctDerRule_20(
13054 p_application_id => p_application_id
13055 , p_ae_header_id => l_ae_header_id
13056 , p_source_22 => p_source_22
13057 , x_transaction_coa_id => l_adr_transaction_coa_id
13058 , x_accounting_coa_id => l_adr_accounting_coa_id
13059 , x_value_type_code => l_adr_value_type_code
13060 , p_side => 'NA'
13061 );
13062
13063 xla_ae_lines_pkg.set_ccid(
13064 p_code_combination_id => l_ccid
13065 , p_value_type_code => l_adr_value_type_code
13066 , p_transaction_coa_id => l_adr_transaction_coa_id
13067 , p_accounting_coa_id => l_adr_accounting_coa_id
13068 , p_adr_code => 'DIST_CCID'
13069 , p_adr_type_code => 'S'
13070 , p_component_type => l_component_type
13071 , p_component_code => l_component_code
13072 , p_component_type_code => l_component_type_code
13076 );
13073 , p_component_appl_id => l_component_appl_id
13074 , p_amb_context_code => l_amb_context_code
13075 , p_side => 'NA'
13077
13078
13079 --
13080 --
13081 END IF;
13082 --
13083 -- Bug 4922099
13084 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13085 (NVL(l_enc_upg_option, 'N') = 'O')
13086 ) AND
13087 (l_bflow_method_code = 'PRIOR_ENTRY')
13088 )
13089 THEN
13090 IF
13091 --
13092 1 = 2
13093 --
13094 THEN
13095 xla_accounting_err_pkg.build_message
13096 (p_appli_s_name => 'XLA'
13097 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13098 ,p_token_1 => 'LINE_NUMBER'
13099 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13100 ,p_token_2 => 'LINE_TYPE_NAME'
13101 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13102 l_component_type
13103 ,l_component_code
13104 ,l_component_type_code
13105 ,l_component_appl_id
13106 ,l_amb_context_code
13107 ,l_entity_code
13108 ,l_event_class_code
13109 )
13110 ,p_token_3 => 'OWNER'
13111 ,p_value_3 => xla_lookups_pkg.get_meaning(
13112 p_lookup_type => 'XLA_OWNER_TYPE'
13113 ,p_lookup_code => l_component_type_code
13114 )
13115 ,p_token_4 => 'PRODUCT_NAME'
13116 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13117 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13118 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13119 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13120 ,p_ae_header_id => NULL
13121 );
13122
13123 IF (C_LEVEL_ERROR>= g_log_level) THEN
13124 trace
13125 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13126 ,p_level => C_LEVEL_ERROR
13127 ,p_module => l_log_module);
13128 END IF;
13129 END IF;
13130 END IF;
13131 --
13132 --
13133 ------------------------------------------------------------------------------------------------
13134 -- 4219869 Business Flow
13135 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13136 -- Prior Entry. Currently, the following code is always generated.
13137 ------------------------------------------------------------------------------------------------
13138 XLA_AE_LINES_PKG.ValidateCurrentLine;
13139
13140 ------------------------------------------------------------------------------------
13141 -- 4219869 Business Flow
13142 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13143 ------------------------------------------------------------------------------------
13144 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13145
13146 ----------------------------------------------------------------------------------
13147 -- 4219869 Business Flow
13148 -- Update journal entry status -- Need to generate this within IF <condition>
13149 ----------------------------------------------------------------------------------
13150 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13151 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13152 ,p_balance_type_code => l_balance_type_code
13153 );
13154
13155 -------------------------------------------------------------------------------------------
13156 -- 4262811 - Generate the Accrual Reversal lines
13157 -------------------------------------------------------------------------------------------
13158 BEGIN
13159 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13160 (g_array_event(p_event_id).array_value_num('header_index'));
13161 IF l_acc_rev_flag IS NULL THEN
13162 l_acc_rev_flag := 'N';
13163 END IF;
13164 EXCEPTION
13165 WHEN OTHERS THEN
13166 l_acc_rev_flag := 'N';
13167 END;
13168 --
13169 IF (l_acc_rev_flag = 'Y') THEN
13170
13171 -- 4645092 ------------------------------------------------------------------------------
13172 -- To allow MPA report to determine if it should generate report process
13173 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13174 ------------------------------------------------------------------------------------------
13175
13179 -- call ADRs
13176 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13177 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13178 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13180 -- Bug 4922099
13181 --
13182 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13183 (NVL(l_actual_upg_option, 'N') = 'O') OR
13184 (NVL(l_enc_upg_option, 'N') = 'O')
13185 )
13186 THEN
13187 NULL;
13188 --
13189 --
13190
13191 l_ccid := AcctDerRule_20(
13192 p_application_id => p_application_id
13193 , p_ae_header_id => l_ae_header_id
13194 , p_source_22 => p_source_22
13195 , x_transaction_coa_id => l_adr_transaction_coa_id
13196 , x_accounting_coa_id => l_adr_accounting_coa_id
13197 , x_value_type_code => l_adr_value_type_code
13198 , p_side => 'NA'
13199 );
13200
13201 xla_ae_lines_pkg.set_ccid(
13202 p_code_combination_id => l_ccid
13203 , p_value_type_code => l_adr_value_type_code
13204 , p_transaction_coa_id => l_adr_transaction_coa_id
13205 , p_accounting_coa_id => l_adr_accounting_coa_id
13206 , p_adr_code => 'DIST_CCID'
13207 , p_adr_type_code => 'S'
13208 , p_component_type => l_component_type
13209 , p_component_code => l_component_code
13210 , p_component_type_code => l_component_type_code
13211 , p_component_appl_id => l_component_appl_id
13212 , p_amb_context_code => l_amb_context_code
13213 , p_side => 'NA'
13214 );
13215
13216
13217 --
13218 --
13219 END IF;
13220
13221 --
13222 -- Update the line information that should be overwritten
13223 --
13224 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13225 p_header_num => 1);
13226 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13227
13228 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13229
13230 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13231 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13232 END IF;
13233
13234 --
13235 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13236 --
13237 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13238 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13239 ELSE
13240 ---------------------------------------------------------------------------------------------------
13241 -- 4262811a Switch Sign
13242 ---------------------------------------------------------------------------------------------------
13243 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13244 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13245 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13246 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13247 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13248 -- 5132302
13249 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13250 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13251
13252 END IF;
13253
13254 -- 4955764
13255 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13256 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13257
13258
13259 XLA_AE_LINES_PKG.ValidateCurrentLine;
13260 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13261
13262 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13263 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13264 ,p_balance_type_code => l_balance_type_code);
13265
13266 END IF;
13267
13268 -----------------------------------------------------------------------------------------
13269 -- 4262811 Multiperiod Accounting
13270 -----------------------------------------------------------------------------------------
13271 -- No MPA option is assigned.
13272
13273
13274 END IF;
13275 END IF;
13276 --
13277
13278 --
13279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13280 trace
13281 (p_msg => 'END of AcctLineType_42'
13282 ,p_level => C_LEVEL_PROCEDURE
13283 ,p_module => l_log_module);
13284 END IF;
13285 --
13286 EXCEPTION
13287 WHEN xla_exceptions_pkg.application_exception THEN
13288 RAISE;
13289 WHEN OTHERS THEN
13290 xla_exceptions_pkg.raise_message
13291 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_42');
13292 END AcctLineType_42;
13293 --
13294
13295 ---------------------------------------
13296 --
13297 -- PRIVATE FUNCTION
13298 -- AcctLineType_43
13299 --
13300 ---------------------------------------
13301 PROCEDURE AcctLineType_43 (
13302 p_application_id IN NUMBER
13303 ,p_event_id IN NUMBER
13304 ,p_calculate_acctd_flag IN VARCHAR2
13308 ,p_gain_or_loss_ref OUT VARCHAR2
13305 ,p_calculate_g_l_flag IN VARCHAR2
13306 ,p_actual_flag IN OUT VARCHAR2
13307 ,p_balance_type_code OUT VARCHAR2
13309
13310 --Distribution GL Account
13311 , p_source_22 IN NUMBER
13312 --Distribution Source Type
13313 , p_source_27 IN VARCHAR2
13314 --Entered Amount
13315 , p_source_31 IN NUMBER
13316 --SLA Party Type
13317 , p_source_39 IN VARCHAR2
13318 --Credit Memo Distribution Identifier
13319 , p_source_52 IN NUMBER
13320 --Credit memo distributions type
13321 , p_source_53 IN VARCHAR2
13322 --Credit Memo Currency Code
13323 , p_source_54 IN VARCHAR2
13324 --Credit Memo Exchange Date
13325 , p_source_55 IN DATE
13326 --Credit Memo Exchange Rate
13327 , p_source_56 IN NUMBER
13328 --Credit Memo Exchange Rate Type
13329 , p_source_57 IN VARCHAR2
13330 --Gain Loss Reference
13331 , p_source_58 IN VARCHAR2
13332 --Credit Memo Accounting Amount
13333 , p_source_59 IN NUMBER
13334 --Credit Memo Bill To Customer Account Identifier
13335 , p_source_60 IN NUMBER
13336 --Credit Memo Bill To Customer Site Use Identifier
13337 , p_source_61 IN NUMBER
13338 --Credit Memo Tax Line Identifier
13339 , p_source_62 IN NUMBER
13340 )
13341 IS
13342
13343 l_component_type VARCHAR2(80);
13344 l_component_code VARCHAR2(30);
13345 l_component_type_code VARCHAR2(1);
13346 l_component_appl_id INTEGER;
13347 l_amb_context_code VARCHAR2(30);
13348 l_entity_code VARCHAR2(30);
13349 l_event_class_code VARCHAR2(30);
13350 l_ae_header_id NUMBER;
13351 l_event_type_code VARCHAR2(30);
13352 l_line_definition_code VARCHAR2(30);
13353 l_line_definition_owner_code VARCHAR2(1);
13354 --
13355 -- adr variables
13356 l_segment VARCHAR2(30);
13357 l_ccid NUMBER;
13358 l_adr_transaction_coa_id NUMBER;
13359 l_adr_accounting_coa_id NUMBER;
13360 l_adr_flexfield_segment_code VARCHAR2(30);
13361 l_adr_flex_value_set_id NUMBER;
13362 l_adr_value_type_code VARCHAR2(30);
13363 l_adr_value_combination_id NUMBER;
13364 l_adr_value_segment_code VARCHAR2(30);
13365
13366 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13367 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13368 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13369 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13370
13371 -- 4262811 Variables ------------------------------------------------------------------------------------------
13372 l_entered_amt_idx NUMBER;
13373 l_accted_amt_idx NUMBER;
13374 l_acc_rev_flag VARCHAR2(1);
13375 l_accrual_line_num NUMBER;
13376 l_tmp_amt NUMBER;
13377 l_acc_rev_natural_side_code VARCHAR2(1);
13378
13379 l_num_entries NUMBER;
13380 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13381 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13382 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13383 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13384 l_recog_line_1 NUMBER;
13385 l_recog_line_2 NUMBER;
13386
13387 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13388 l_bflow_applied_to_amt NUMBER; -- 5132302
13389 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13390
13391 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13392
13393 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13394 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13395
13396 ---------------------------------------------------------------------------------------------------------------
13397
13398
13399 --
13400 -- bulk performance
13401 --
13402 l_balance_type_code VARCHAR2(1);
13403 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13404 l_log_module VARCHAR2(240);
13405
13406 --
13407 -- Upgrade strategy
13408 --
13409 l_actual_upg_option VARCHAR2(1);
13410 l_enc_upg_option VARCHAR2(1);
13411
13412 --
13413 BEGIN
13414 --
13415 IF g_log_enabled THEN
13416 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
13417 END IF;
13418 --
13419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13420
13421 trace
13422 (p_msg => 'BEGIN of AcctLineType_43'
13423 ,p_level => C_LEVEL_PROCEDURE
13424 ,p_module => l_log_module);
13425
13426 END IF;
13427 --
13428 l_component_type := 'AMB_JLT';
13429 l_component_code := 'CM_APP_DEFAULT_TAX';
13430 l_component_type_code := 'S';
13431 l_component_appl_id := 222;
13432 l_amb_context_code := 'DEFAULT';
13433 l_entity_code := 'TRANSACTIONS';
13434 l_event_class_code := 'CREDIT_MEMO';
13435 l_event_type_code := 'CREDIT_MEMO_ALL';
13436 l_line_definition_owner_code := 'S';
13437 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
13438 --
13439 l_balance_type_code := 'A';
13440 l_segment := NULL;
13441 l_ccid := NULL;
13442 l_adr_transaction_coa_id := NULL;
13446 l_adr_value_type_code := NULL;
13443 l_adr_accounting_coa_id := NULL;
13444 l_adr_flexfield_segment_code := NULL;
13445 l_adr_flex_value_set_id := NULL;
13447 l_adr_value_combination_id := NULL;
13448 l_adr_value_segment_code := NULL;
13449
13450 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13451 l_bflow_class_code := ''; -- 4219869 Business Flow
13452 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13453 l_budgetary_control_flag := 'N';
13454
13455 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13456 l_bflow_applied_to_amt := NULL; -- 5132302
13457 l_entered_amt_idx := NULL; -- 4262811
13458 l_accted_amt_idx := NULL; -- 4262811
13459 l_acc_rev_flag := NULL; -- 4262811
13460 l_accrual_line_num := NULL; -- 4262811
13461 l_tmp_amt := NULL; -- 4262811
13462 --
13463
13464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13465 l_balance_type_code <> 'B' THEN
13466 IF NVL(p_source_27,'
13467 ') = 'TAX'
13468 THEN
13469
13470 --
13471 XLA_AE_LINES_PKG.SetNewLine;
13472
13473 p_balance_type_code := l_balance_type_code;
13474 -- set the flag so later we will know whether the gain loss line needs to be created
13475
13476 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13477 p_actual_flag :='A';
13478 END IF;
13479
13480 --
13481 -- bulk performance
13482 --
13483 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13484 p_header_num => 0); -- 4262811
13485 --
13486 -- set accounting line options
13487 --
13488 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13489 p_natural_side_code => 'C'
13490 , p_gain_or_loss_flag => 'N'
13491 , p_gl_transfer_mode_code => 'S'
13492 , p_acct_entry_type_code => 'A'
13493 , p_switch_side_flag => 'Y'
13494 , p_merge_duplicate_code => 'A'
13495 );
13496 --
13497 l_acc_rev_natural_side_code := 'D'; -- 4262811
13498 --
13499 --
13500 -- set accounting line type info
13501 --
13502 xla_ae_lines_pkg.SetAcctLineType
13503 (p_component_type => l_component_type
13504 ,p_event_type_code => l_event_type_code
13505 ,p_line_definition_owner_code => l_line_definition_owner_code
13506 ,p_line_definition_code => l_line_definition_code
13507 ,p_accounting_line_code => l_component_code
13508 ,p_accounting_line_type_code => l_component_type_code
13509 ,p_accounting_line_appl_id => l_component_appl_id
13510 ,p_amb_context_code => l_amb_context_code
13511 ,p_entity_code => l_entity_code
13512 ,p_event_class_code => l_event_class_code);
13513 --
13514 -- set accounting class
13515 --
13516 xla_ae_lines_pkg.SetAcctClass(
13517 p_accounting_class_code => 'TAX'
13518 , p_ae_header_id => l_ae_header_id
13519 );
13520
13521 --
13522 -- set rounding class
13523 --
13524 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13525 'RECEIVABLE';
13526
13527 --
13528 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13529 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13530 --
13531 -- bulk performance
13532 --
13533 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13534
13535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13536 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13537
13538 -- 4955764
13539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13541
13542 -- 4458381 Public Sector Enh
13543
13544 --
13545 -- set accounting attributes for the line type
13546 --
13547 l_entered_amt_idx := 3;
13548 l_accted_amt_idx := 9;
13549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13550 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
13551 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
13552 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
13553 l_rec_acct_attrs.array_char_value(2) := p_source_53;
13554 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
13555 l_rec_acct_attrs.array_num_value(3) := p_source_31;
13556 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
13557 l_rec_acct_attrs.array_char_value(4) := p_source_54;
13558 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
13559 l_rec_acct_attrs.array_date_value(5) := p_source_55;
13560 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
13561 l_rec_acct_attrs.array_num_value(6) := p_source_56;
13562 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
13563 l_rec_acct_attrs.array_char_value(7) := p_source_57;
13564 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
13565 l_rec_acct_attrs.array_char_value(8) := p_source_58;
13569 l_rec_acct_attrs.array_num_value(10) := p_source_60;
13566 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
13567 l_rec_acct_attrs.array_num_value(9) := p_source_59;
13568 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
13570 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
13571 l_rec_acct_attrs.array_num_value(11) := p_source_61;
13572 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
13573 l_rec_acct_attrs.array_char_value(12) := p_source_39;
13574 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
13575 l_rec_acct_attrs.array_num_value(13) := p_source_62;
13576
13577 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13578 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13579
13580 ---------------------------------------------------------------------------------------------------------------
13581 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13582 ---------------------------------------------------------------------------------------------------------------
13583 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13584
13585 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13586 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13587
13588 IF xla_accounting_cache_pkg.GetValueChar
13589 (p_source_code => 'LEDGER_CATEGORY_CODE'
13590 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13591 AND l_bflow_method_code = 'PRIOR_ENTRY'
13592 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13593 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13594 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13595 )
13596 THEN
13597 xla_ae_lines_pkg.BflowUpgEntry
13598 (p_business_method_code => l_bflow_method_code
13599 ,p_business_class_code => l_bflow_class_code
13600 ,p_balance_type => l_balance_type_code);
13601 ELSE
13602 NULL;
13603 -- No business flow processing for business flow method of NONE.
13604 END IF;
13605
13606 --
13607 -- call analytical criteria
13608 --
13609
13610 --
13611 -- call description
13612 --
13613 -- No description or it is inherited.
13614 --
13615 -- call ADRs
13616 -- Bug 4922099
13617 --
13618 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13619 (NVL(l_actual_upg_option, 'N') = 'O') OR
13620 (NVL(l_enc_upg_option, 'N') = 'O')
13621 )
13622 THEN
13623 NULL;
13624 --
13625 --
13626
13627 l_ccid := AcctDerRule_20(
13628 p_application_id => p_application_id
13629 , p_ae_header_id => l_ae_header_id
13630 , p_source_22 => p_source_22
13631 , x_transaction_coa_id => l_adr_transaction_coa_id
13632 , x_accounting_coa_id => l_adr_accounting_coa_id
13633 , x_value_type_code => l_adr_value_type_code
13634 , p_side => 'NA'
13635 );
13636
13637 xla_ae_lines_pkg.set_ccid(
13638 p_code_combination_id => l_ccid
13639 , p_value_type_code => l_adr_value_type_code
13640 , p_transaction_coa_id => l_adr_transaction_coa_id
13641 , p_accounting_coa_id => l_adr_accounting_coa_id
13642 , p_adr_code => 'DIST_CCID'
13643 , p_adr_type_code => 'S'
13644 , p_component_type => l_component_type
13645 , p_component_code => l_component_code
13646 , p_component_type_code => l_component_type_code
13647 , p_component_appl_id => l_component_appl_id
13648 , p_amb_context_code => l_amb_context_code
13649 , p_side => 'NA'
13650 );
13651
13652
13653 --
13654 --
13655 END IF;
13656 --
13657 -- Bug 4922099
13658 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13659 (NVL(l_enc_upg_option, 'N') = 'O')
13660 ) AND
13661 (l_bflow_method_code = 'PRIOR_ENTRY')
13662 )
13663 THEN
13664 IF
13665 --
13666 1 = 2
13667 --
13668 THEN
13669 xla_accounting_err_pkg.build_message
13670 (p_appli_s_name => 'XLA'
13671 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13672 ,p_token_1 => 'LINE_NUMBER'
13673 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13674 ,p_token_2 => 'LINE_TYPE_NAME'
13675 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13676 l_component_type
13677 ,l_component_code
13678 ,l_component_type_code
13679 ,l_component_appl_id
13680 ,l_amb_context_code
13681 ,l_entity_code
13685 ,p_value_3 => xla_lookups_pkg.get_meaning(
13682 ,l_event_class_code
13683 )
13684 ,p_token_3 => 'OWNER'
13686 p_lookup_type => 'XLA_OWNER_TYPE'
13687 ,p_lookup_code => l_component_type_code
13688 )
13689 ,p_token_4 => 'PRODUCT_NAME'
13690 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13691 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13692 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13693 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13694 ,p_ae_header_id => NULL
13695 );
13696
13697 IF (C_LEVEL_ERROR>= g_log_level) THEN
13698 trace
13699 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13700 ,p_level => C_LEVEL_ERROR
13701 ,p_module => l_log_module);
13702 END IF;
13703 END IF;
13704 END IF;
13705 --
13706 --
13707 ------------------------------------------------------------------------------------------------
13708 -- 4219869 Business Flow
13709 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13710 -- Prior Entry. Currently, the following code is always generated.
13711 ------------------------------------------------------------------------------------------------
13712 XLA_AE_LINES_PKG.ValidateCurrentLine;
13713
13714 ------------------------------------------------------------------------------------
13715 -- 4219869 Business Flow
13716 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13717 ------------------------------------------------------------------------------------
13718 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13719
13720 ----------------------------------------------------------------------------------
13721 -- 4219869 Business Flow
13722 -- Update journal entry status -- Need to generate this within IF <condition>
13723 ----------------------------------------------------------------------------------
13724 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13725 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13726 ,p_balance_type_code => l_balance_type_code
13727 );
13728
13729 -------------------------------------------------------------------------------------------
13730 -- 4262811 - Generate the Accrual Reversal lines
13731 -------------------------------------------------------------------------------------------
13732 BEGIN
13733 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13734 (g_array_event(p_event_id).array_value_num('header_index'));
13735 IF l_acc_rev_flag IS NULL THEN
13736 l_acc_rev_flag := 'N';
13737 END IF;
13738 EXCEPTION
13739 WHEN OTHERS THEN
13740 l_acc_rev_flag := 'N';
13741 END;
13742 --
13743 IF (l_acc_rev_flag = 'Y') THEN
13744
13745 -- 4645092 ------------------------------------------------------------------------------
13746 -- To allow MPA report to determine if it should generate report process
13747 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13748 ------------------------------------------------------------------------------------------
13749
13750 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13751 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13752 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13753 -- call ADRs
13754 -- Bug 4922099
13755 --
13756 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13757 (NVL(l_actual_upg_option, 'N') = 'O') OR
13758 (NVL(l_enc_upg_option, 'N') = 'O')
13759 )
13760 THEN
13761 NULL;
13762 --
13763 --
13764
13765 l_ccid := AcctDerRule_20(
13766 p_application_id => p_application_id
13767 , p_ae_header_id => l_ae_header_id
13768 , p_source_22 => p_source_22
13769 , x_transaction_coa_id => l_adr_transaction_coa_id
13770 , x_accounting_coa_id => l_adr_accounting_coa_id
13771 , x_value_type_code => l_adr_value_type_code
13772 , p_side => 'NA'
13773 );
13774
13775 xla_ae_lines_pkg.set_ccid(
13776 p_code_combination_id => l_ccid
13777 , p_value_type_code => l_adr_value_type_code
13778 , p_transaction_coa_id => l_adr_transaction_coa_id
13779 , p_accounting_coa_id => l_adr_accounting_coa_id
13780 , p_adr_code => 'DIST_CCID'
13781 , p_adr_type_code => 'S'
13782 , p_component_type => l_component_type
13783 , p_component_code => l_component_code
13784 , p_component_type_code => l_component_type_code
13785 , p_component_appl_id => l_component_appl_id
13789
13786 , p_amb_context_code => l_amb_context_code
13787 , p_side => 'NA'
13788 );
13790
13791 --
13792 --
13793 END IF;
13794
13795 --
13796 -- Update the line information that should be overwritten
13797 --
13798 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13799 p_header_num => 1);
13800 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13801
13802 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13803
13804 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13805 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13806 END IF;
13807
13808 --
13809 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13810 --
13811 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13812 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13813 ELSE
13814 ---------------------------------------------------------------------------------------------------
13815 -- 4262811a Switch Sign
13816 ---------------------------------------------------------------------------------------------------
13817 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13818 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13819 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13820 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13821 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13822 -- 5132302
13823 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13824 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13825
13826 END IF;
13827
13828 -- 4955764
13829 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13830 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13831
13832
13833 XLA_AE_LINES_PKG.ValidateCurrentLine;
13834 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13835
13836 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13837 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13838 ,p_balance_type_code => l_balance_type_code);
13839
13840 END IF;
13841
13842 -----------------------------------------------------------------------------------------
13843 -- 4262811 Multiperiod Accounting
13844 -----------------------------------------------------------------------------------------
13845 -- No MPA option is assigned.
13846
13847
13848 END IF;
13849 END IF;
13850 --
13851
13852 --
13853 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13854 trace
13855 (p_msg => 'END of AcctLineType_43'
13856 ,p_level => C_LEVEL_PROCEDURE
13857 ,p_module => l_log_module);
13858 END IF;
13859 --
13860 EXCEPTION
13861 WHEN xla_exceptions_pkg.application_exception THEN
13862 RAISE;
13863 WHEN OTHERS THEN
13864 xla_exceptions_pkg.raise_message
13865 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_43');
13866 END AcctLineType_43;
13867 --
13868
13869 ---------------------------------------
13870 --
13871 -- PRIVATE FUNCTION
13872 -- AcctLineType_44
13873 --
13874 ---------------------------------------
13875 PROCEDURE AcctLineType_44 (
13876 p_application_id IN NUMBER
13877 ,p_event_id IN NUMBER
13878 ,p_calculate_acctd_flag IN VARCHAR2
13879 ,p_calculate_g_l_flag IN VARCHAR2
13880 ,p_actual_flag IN OUT VARCHAR2
13881 ,p_balance_type_code OUT VARCHAR2
13882 ,p_gain_or_loss_ref OUT VARCHAR2
13883
13884 --Distribution GL Account
13885 , p_source_22 IN NUMBER
13886 --Distribution Source Type
13887 , p_source_27 IN VARCHAR2
13888 --Receivable Activity Type
13889 , p_source_28 IN VARCHAR2
13890 --Entered Amount
13891 , p_source_31 IN NUMBER
13892 --SLA Party Type
13893 , p_source_39 IN VARCHAR2
13894 --Credit Memo Distribution Identifier
13895 , p_source_52 IN NUMBER
13896 --Credit memo distributions type
13897 , p_source_53 IN VARCHAR2
13898 --Credit Memo Currency Code
13899 , p_source_54 IN VARCHAR2
13900 --Credit Memo Exchange Date
13901 , p_source_55 IN DATE
13902 --Credit Memo Exchange Rate
13903 , p_source_56 IN NUMBER
13904 --Credit Memo Exchange Rate Type
13905 , p_source_57 IN VARCHAR2
13906 --Gain Loss Reference
13907 , p_source_58 IN VARCHAR2
13908 --Credit Memo Accounting Amount
13909 , p_source_59 IN NUMBER
13910 --Credit Memo Bill To Customer Account Identifier
13911 , p_source_60 IN NUMBER
13912 --Credit Memo Bill To Customer Site Use Identifier
13913 , p_source_61 IN NUMBER
13914 --Credit Memo Tax Line Identifier
13915 , p_source_62 IN NUMBER
13916 )
13917 IS
13918
13919 l_component_type VARCHAR2(80);
13923 l_amb_context_code VARCHAR2(30);
13920 l_component_code VARCHAR2(30);
13921 l_component_type_code VARCHAR2(1);
13922 l_component_appl_id INTEGER;
13924 l_entity_code VARCHAR2(30);
13925 l_event_class_code VARCHAR2(30);
13926 l_ae_header_id NUMBER;
13927 l_event_type_code VARCHAR2(30);
13928 l_line_definition_code VARCHAR2(30);
13929 l_line_definition_owner_code VARCHAR2(1);
13930 --
13931 -- adr variables
13932 l_segment VARCHAR2(30);
13933 l_ccid NUMBER;
13934 l_adr_transaction_coa_id NUMBER;
13935 l_adr_accounting_coa_id NUMBER;
13936 l_adr_flexfield_segment_code VARCHAR2(30);
13937 l_adr_flex_value_set_id NUMBER;
13938 l_adr_value_type_code VARCHAR2(30);
13939 l_adr_value_combination_id NUMBER;
13940 l_adr_value_segment_code VARCHAR2(30);
13941
13942 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13943 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13944 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13945 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13946
13947 -- 4262811 Variables ------------------------------------------------------------------------------------------
13948 l_entered_amt_idx NUMBER;
13949 l_accted_amt_idx NUMBER;
13950 l_acc_rev_flag VARCHAR2(1);
13951 l_accrual_line_num NUMBER;
13952 l_tmp_amt NUMBER;
13953 l_acc_rev_natural_side_code VARCHAR2(1);
13954
13955 l_num_entries NUMBER;
13956 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13957 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13958 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13959 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13960 l_recog_line_1 NUMBER;
13961 l_recog_line_2 NUMBER;
13962
13963 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13964 l_bflow_applied_to_amt NUMBER; -- 5132302
13965 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13966
13967 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13968
13969 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13970 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13971
13972 ---------------------------------------------------------------------------------------------------------------
13973
13974
13975 --
13976 -- bulk performance
13977 --
13978 l_balance_type_code VARCHAR2(1);
13979 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13980 l_log_module VARCHAR2(240);
13981
13982 --
13983 -- Upgrade strategy
13984 --
13985 l_actual_upg_option VARCHAR2(1);
13986 l_enc_upg_option VARCHAR2(1);
13987
13988 --
13989 BEGIN
13990 --
13991 IF g_log_enabled THEN
13992 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
13993 END IF;
13994 --
13995 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13996
13997 trace
13998 (p_msg => 'BEGIN of AcctLineType_44'
13999 ,p_level => C_LEVEL_PROCEDURE
14000 ,p_module => l_log_module);
14001
14002 END IF;
14003 --
14004 l_component_type := 'AMB_JLT';
14005 l_component_code := 'CM_APP_REFUND';
14006 l_component_type_code := 'S';
14007 l_component_appl_id := 222;
14008 l_amb_context_code := 'DEFAULT';
14009 l_entity_code := 'TRANSACTIONS';
14010 l_event_class_code := 'CREDIT_MEMO';
14011 l_event_type_code := 'CREDIT_MEMO_ALL';
14012 l_line_definition_owner_code := 'S';
14013 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
14014 --
14015 l_balance_type_code := 'A';
14016 l_segment := NULL;
14017 l_ccid := NULL;
14018 l_adr_transaction_coa_id := NULL;
14019 l_adr_accounting_coa_id := NULL;
14020 l_adr_flexfield_segment_code := NULL;
14021 l_adr_flex_value_set_id := NULL;
14022 l_adr_value_type_code := NULL;
14023 l_adr_value_combination_id := NULL;
14024 l_adr_value_segment_code := NULL;
14025
14026 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14027 l_bflow_class_code := ''; -- 4219869 Business Flow
14028 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14029 l_budgetary_control_flag := 'N';
14030
14031 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14032 l_bflow_applied_to_amt := NULL; -- 5132302
14033 l_entered_amt_idx := NULL; -- 4262811
14034 l_accted_amt_idx := NULL; -- 4262811
14035 l_acc_rev_flag := NULL; -- 4262811
14036 l_accrual_line_num := NULL; -- 4262811
14037 l_tmp_amt := NULL; -- 4262811
14038 --
14039
14040 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14041 l_balance_type_code <> 'B' THEN
14042 IF (NVL(p_source_27,'
14043 ') = 'ACTIVITY' AND
14044 NVL(p_source_28,'
14045 ') = 'REFUND') OR
14046 (NVL(p_source_27,'
14047 ') = 'ACTIVITY' AND
14048 NVL(p_source_28,'
14049 ') = 'CM_REFUND')
14050 THEN
14051
14052 --
14053 XLA_AE_LINES_PKG.SetNewLine;
14054
14055 p_balance_type_code := l_balance_type_code;
14059 p_actual_flag :='A';
14056 -- set the flag so later we will know whether the gain loss line needs to be created
14057
14058 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14060 END IF;
14061
14062 --
14063 -- bulk performance
14064 --
14065 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14066 p_header_num => 0); -- 4262811
14067 --
14068 -- set accounting line options
14069 --
14070 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14071 p_natural_side_code => 'C'
14072 , p_gain_or_loss_flag => 'N'
14073 , p_gl_transfer_mode_code => 'S'
14074 , p_acct_entry_type_code => 'A'
14075 , p_switch_side_flag => 'Y'
14076 , p_merge_duplicate_code => 'A'
14077 );
14078 --
14079 l_acc_rev_natural_side_code := 'D'; -- 4262811
14080 --
14081 --
14082 -- set accounting line type info
14083 --
14084 xla_ae_lines_pkg.SetAcctLineType
14085 (p_component_type => l_component_type
14086 ,p_event_type_code => l_event_type_code
14087 ,p_line_definition_owner_code => l_line_definition_owner_code
14088 ,p_line_definition_code => l_line_definition_code
14089 ,p_accounting_line_code => l_component_code
14090 ,p_accounting_line_type_code => l_component_type_code
14091 ,p_accounting_line_appl_id => l_component_appl_id
14092 ,p_amb_context_code => l_amb_context_code
14093 ,p_entity_code => l_entity_code
14094 ,p_event_class_code => l_event_class_code);
14095 --
14096 -- set accounting class
14097 --
14098 xla_ae_lines_pkg.SetAcctClass(
14099 p_accounting_class_code => 'REFUND'
14100 , p_ae_header_id => l_ae_header_id
14101 );
14102
14103 --
14104 -- set rounding class
14105 --
14106 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14107 'REFUND';
14108
14109 --
14110 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14111 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14112 --
14113 -- bulk performance
14114 --
14115 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14116
14117 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14118 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14119
14120 -- 4955764
14121 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14122 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14123
14124 -- 4458381 Public Sector Enh
14125
14126 --
14127 -- set accounting attributes for the line type
14128 --
14129 l_entered_amt_idx := 3;
14130 l_accted_amt_idx := 9;
14131 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14132 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
14133 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
14134 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
14135 l_rec_acct_attrs.array_char_value(2) := p_source_53;
14136 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
14137 l_rec_acct_attrs.array_num_value(3) := p_source_31;
14138 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
14139 l_rec_acct_attrs.array_char_value(4) := p_source_54;
14140 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
14141 l_rec_acct_attrs.array_date_value(5) := p_source_55;
14142 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
14143 l_rec_acct_attrs.array_num_value(6) := p_source_56;
14144 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
14145 l_rec_acct_attrs.array_char_value(7) := p_source_57;
14146 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
14147 l_rec_acct_attrs.array_char_value(8) := p_source_58;
14148 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
14149 l_rec_acct_attrs.array_num_value(9) := p_source_59;
14150 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
14151 l_rec_acct_attrs.array_num_value(10) := p_source_60;
14152 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
14153 l_rec_acct_attrs.array_num_value(11) := p_source_61;
14154 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
14155 l_rec_acct_attrs.array_char_value(12) := p_source_39;
14156 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
14157 l_rec_acct_attrs.array_num_value(13) := p_source_62;
14158
14159 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14160 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14161
14162 ---------------------------------------------------------------------------------------------------------------
14163 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14164 ---------------------------------------------------------------------------------------------------------------
14165 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14166
14167 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14168 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14169
14170 IF xla_accounting_cache_pkg.GetValueChar
14174 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14171 (p_source_code => 'LEDGER_CATEGORY_CODE'
14172 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14173 AND l_bflow_method_code = 'PRIOR_ENTRY'
14175 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14176 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14177 )
14178 THEN
14179 xla_ae_lines_pkg.BflowUpgEntry
14180 (p_business_method_code => l_bflow_method_code
14181 ,p_business_class_code => l_bflow_class_code
14182 ,p_balance_type => l_balance_type_code);
14183 ELSE
14184 NULL;
14185 -- No business flow processing for business flow method of NONE.
14186 END IF;
14187
14188 --
14189 -- call analytical criteria
14190 --
14191
14192 --
14193 -- call description
14194 --
14195 -- No description or it is inherited.
14196 --
14197 -- call ADRs
14198 -- Bug 4922099
14199 --
14200 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14201 (NVL(l_actual_upg_option, 'N') = 'O') OR
14202 (NVL(l_enc_upg_option, 'N') = 'O')
14203 )
14204 THEN
14205 NULL;
14206 --
14207 --
14208
14209 l_ccid := AcctDerRule_20(
14210 p_application_id => p_application_id
14211 , p_ae_header_id => l_ae_header_id
14212 , p_source_22 => p_source_22
14213 , x_transaction_coa_id => l_adr_transaction_coa_id
14214 , x_accounting_coa_id => l_adr_accounting_coa_id
14215 , x_value_type_code => l_adr_value_type_code
14216 , p_side => 'NA'
14217 );
14218
14219 xla_ae_lines_pkg.set_ccid(
14220 p_code_combination_id => l_ccid
14221 , p_value_type_code => l_adr_value_type_code
14222 , p_transaction_coa_id => l_adr_transaction_coa_id
14223 , p_accounting_coa_id => l_adr_accounting_coa_id
14224 , p_adr_code => 'DIST_CCID'
14225 , p_adr_type_code => 'S'
14226 , p_component_type => l_component_type
14227 , p_component_code => l_component_code
14228 , p_component_type_code => l_component_type_code
14229 , p_component_appl_id => l_component_appl_id
14230 , p_amb_context_code => l_amb_context_code
14231 , p_side => 'NA'
14232 );
14233
14234
14235 --
14236 --
14237 END IF;
14238 --
14239 -- Bug 4922099
14240 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14241 (NVL(l_enc_upg_option, 'N') = 'O')
14242 ) AND
14243 (l_bflow_method_code = 'PRIOR_ENTRY')
14244 )
14245 THEN
14246 IF
14247 --
14248 1 = 2
14249 --
14250 THEN
14251 xla_accounting_err_pkg.build_message
14252 (p_appli_s_name => 'XLA'
14253 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14254 ,p_token_1 => 'LINE_NUMBER'
14255 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14259 ,l_component_code
14256 ,p_token_2 => 'LINE_TYPE_NAME'
14257 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14258 l_component_type
14260 ,l_component_type_code
14261 ,l_component_appl_id
14262 ,l_amb_context_code
14263 ,l_entity_code
14264 ,l_event_class_code
14265 )
14266 ,p_token_3 => 'OWNER'
14270 )
14267 ,p_value_3 => xla_lookups_pkg.get_meaning(
14268 p_lookup_type => 'XLA_OWNER_TYPE'
14269 ,p_lookup_code => l_component_type_code
14271 ,p_token_4 => 'PRODUCT_NAME'
14272 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14273 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14274 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14275 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14276 ,p_ae_header_id => NULL
14277 );
14278
14279 IF (C_LEVEL_ERROR>= g_log_level) THEN
14280 trace
14281 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14282 ,p_level => C_LEVEL_ERROR
14283 ,p_module => l_log_module);
14284 END IF;
14285 END IF;
14286 END IF;
14287 --
14288 --
14289 ------------------------------------------------------------------------------------------------
14290 -- 4219869 Business Flow
14291 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14292 -- Prior Entry. Currently, the following code is always generated.
14293 ------------------------------------------------------------------------------------------------
14294 XLA_AE_LINES_PKG.ValidateCurrentLine;
14295
14296 ------------------------------------------------------------------------------------
14297 -- 4219869 Business Flow
14298 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14299 ------------------------------------------------------------------------------------
14300 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14301
14302 ----------------------------------------------------------------------------------
14303 -- 4219869 Business Flow
14304 -- Update journal entry status -- Need to generate this within IF <condition>
14305 ----------------------------------------------------------------------------------
14306 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14307 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14308 ,p_balance_type_code => l_balance_type_code
14309 );
14310
14311 -------------------------------------------------------------------------------------------
14312 -- 4262811 - Generate the Accrual Reversal lines
14313 -------------------------------------------------------------------------------------------
14314 BEGIN
14315 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14316 (g_array_event(p_event_id).array_value_num('header_index'));
14317 IF l_acc_rev_flag IS NULL THEN
14318 l_acc_rev_flag := 'N';
14319 END IF;
14320 EXCEPTION
14321 WHEN OTHERS THEN
14322 l_acc_rev_flag := 'N';
14323 END;
14324 --
14325 IF (l_acc_rev_flag = 'Y') THEN
14326
14327 -- 4645092 ------------------------------------------------------------------------------
14328 -- To allow MPA report to determine if it should generate report process
14329 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14330 ------------------------------------------------------------------------------------------
14331
14332 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14333 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14334 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14335 -- call ADRs
14336 -- Bug 4922099
14337 --
14338 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14339 (NVL(l_actual_upg_option, 'N') = 'O') OR
14340 (NVL(l_enc_upg_option, 'N') = 'O')
14341 )
14342 THEN
14343 NULL;
14344 --
14345 --
14346
14347 l_ccid := AcctDerRule_20(
14348 p_application_id => p_application_id
14349 , p_ae_header_id => l_ae_header_id
14350 , p_source_22 => p_source_22
14351 , x_transaction_coa_id => l_adr_transaction_coa_id
14352 , x_accounting_coa_id => l_adr_accounting_coa_id
14353 , x_value_type_code => l_adr_value_type_code
14354 , p_side => 'NA'
14355 );
14356
14357 xla_ae_lines_pkg.set_ccid(
14358 p_code_combination_id => l_ccid
14359 , p_value_type_code => l_adr_value_type_code
14360 , p_transaction_coa_id => l_adr_transaction_coa_id
14361 , p_accounting_coa_id => l_adr_accounting_coa_id
14362 , p_adr_code => 'DIST_CCID'
14363 , p_adr_type_code => 'S'
14364 , p_component_type => l_component_type
14365 , p_component_code => l_component_code
14366 , p_component_type_code => l_component_type_code
14367 , p_component_appl_id => l_component_appl_id
14368 , p_amb_context_code => l_amb_context_code
14369 , p_side => 'NA'
14370 );
14371
14372
14373 --
14374 --
14378 -- Update the line information that should be overwritten
14375 END IF;
14376
14377 --
14379 --
14380 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14381 p_header_num => 1);
14382 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14383
14384 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14385
14386 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14387 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14388 END IF;
14389
14390 --
14391 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14392 --
14393 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14394 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14395 ELSE
14396 ---------------------------------------------------------------------------------------------------
14397 -- 4262811a Switch Sign
14398 ---------------------------------------------------------------------------------------------------
14399 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14400 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14401 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14402 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14403 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14404 -- 5132302
14405 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14406 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14407
14408 END IF;
14409
14410 -- 4955764
14411 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14412 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14413
14414
14415 XLA_AE_LINES_PKG.ValidateCurrentLine;
14416 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14417
14418 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14419 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14420 ,p_balance_type_code => l_balance_type_code);
14421
14422 END IF;
14423
14424 -----------------------------------------------------------------------------------------
14425 -- 4262811 Multiperiod Accounting
14426 -----------------------------------------------------------------------------------------
14427 -- No MPA option is assigned.
14428
14429
14430 END IF;
14431 END IF;
14432 --
14433
14434 --
14435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14436 trace
14437 (p_msg => 'END of AcctLineType_44'
14438 ,p_level => C_LEVEL_PROCEDURE
14439 ,p_module => l_log_module);
14440 END IF;
14441 --
14442 EXCEPTION
14443 WHEN xla_exceptions_pkg.application_exception THEN
14444 RAISE;
14445 WHEN OTHERS THEN
14446 xla_exceptions_pkg.raise_message
14447 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_44');
14448 END AcctLineType_44;
14449 --
14450
14451 ---------------------------------------
14452 --
14453 -- PRIVATE FUNCTION
14454 -- AcctLineType_45
14455 --
14456 ---------------------------------------
14457 PROCEDURE AcctLineType_45 (
14458 p_application_id IN NUMBER
14459 ,p_event_id IN NUMBER
14460 ,p_calculate_acctd_flag IN VARCHAR2
14461 ,p_calculate_g_l_flag IN VARCHAR2
14462 ,p_actual_flag IN OUT VARCHAR2
14463 ,p_balance_type_code OUT VARCHAR2
14464 ,p_gain_or_loss_ref OUT VARCHAR2
14465
14466 --Credit Memo Distribution GL Account
14467 , p_source_14 IN NUMBER
14468 --SLA Party Type
14469 , p_source_39 IN VARCHAR2
14470 --Credit Memo Distribution Identifier
14471 , p_source_52 IN NUMBER
14472 --Credit memo distributions type
14473 , p_source_53 IN VARCHAR2
14474 --Credit Memo Currency Code
14475 , p_source_54 IN VARCHAR2
14476 --Credit Memo Exchange Date
14477 , p_source_55 IN DATE
14478 --Credit Memo Exchange Rate
14479 , p_source_56 IN NUMBER
14480 --Credit Memo Exchange Rate Type
14481 , p_source_57 IN VARCHAR2
14482 --Gain Loss Reference
14483 , p_source_58 IN VARCHAR2
14484 --Credit Memo Accounting Amount
14485 , p_source_59 IN NUMBER
14486 --Credit Memo Bill To Customer Account Identifier
14487 , p_source_60 IN NUMBER
14488 --Credit Memo Bill To Customer Site Use Identifier
14489 , p_source_61 IN NUMBER
14490 --Credit Memo Tax Line Identifier
14491 , p_source_62 IN NUMBER
14492 --Credit Memo Distribution Account Class
14493 , p_source_63 IN VARCHAR2
14494 --Credit Memo Distribution Entered Amount
14495 , p_source_64 IN NUMBER
14496 )
14497 IS
14498
14499 l_component_type VARCHAR2(80);
14500 l_component_code VARCHAR2(30);
14501 l_component_type_code VARCHAR2(1);
14502 l_component_appl_id INTEGER;
14503 l_amb_context_code VARCHAR2(30);
14504 l_entity_code VARCHAR2(30);
14508 l_line_definition_code VARCHAR2(30);
14505 l_event_class_code VARCHAR2(30);
14506 l_ae_header_id NUMBER;
14507 l_event_type_code VARCHAR2(30);
14509 l_line_definition_owner_code VARCHAR2(1);
14510 --
14511 -- adr variables
14512 l_segment VARCHAR2(30);
14513 l_ccid NUMBER;
14514 l_adr_transaction_coa_id NUMBER;
14515 l_adr_accounting_coa_id NUMBER;
14516 l_adr_flexfield_segment_code VARCHAR2(30);
14517 l_adr_flex_value_set_id NUMBER;
14518 l_adr_value_type_code VARCHAR2(30);
14519 l_adr_value_combination_id NUMBER;
14520 l_adr_value_segment_code VARCHAR2(30);
14521
14522 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14523 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14524 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14525 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14526
14527 -- 4262811 Variables ------------------------------------------------------------------------------------------
14528 l_entered_amt_idx NUMBER;
14532 l_tmp_amt NUMBER;
14529 l_accted_amt_idx NUMBER;
14530 l_acc_rev_flag VARCHAR2(1);
14531 l_accrual_line_num NUMBER;
14533 l_acc_rev_natural_side_code VARCHAR2(1);
14534
14535 l_num_entries NUMBER;
14536 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14537 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14538 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14539 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14540 l_recog_line_1 NUMBER;
14541 l_recog_line_2 NUMBER;
14542
14543 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14544 l_bflow_applied_to_amt NUMBER; -- 5132302
14545 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14546
14547 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14548
14549 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14550 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14551
14552 ---------------------------------------------------------------------------------------------------------------
14553
14554
14555 --
14556 -- bulk performance
14557 --
14558 l_balance_type_code VARCHAR2(1);
14559 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14560 l_log_module VARCHAR2(240);
14561
14562 --
14563 -- Upgrade strategy
14564 --
14565 l_actual_upg_option VARCHAR2(1);
14566 l_enc_upg_option VARCHAR2(1);
14567
14568 --
14569 BEGIN
14570 --
14571 IF g_log_enabled THEN
14572 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
14573 END IF;
14574 --
14575 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14576
14577 trace
14578 (p_msg => 'BEGIN of AcctLineType_45'
14579 ,p_level => C_LEVEL_PROCEDURE
14580 ,p_module => l_log_module);
14581
14582 END IF;
14583 --
14584 l_component_type := 'AMB_JLT';
14585 l_component_code := 'CM_CHARGES';
14586 l_component_type_code := 'S';
14587 l_component_appl_id := 222;
14588 l_amb_context_code := 'DEFAULT';
14592 l_line_definition_owner_code := 'S';
14589 l_entity_code := 'TRANSACTIONS';
14590 l_event_class_code := 'CREDIT_MEMO';
14591 l_event_type_code := 'CREDIT_MEMO_ALL';
14593 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
14594 --
14595 l_balance_type_code := 'A';
14596 l_segment := NULL;
14597 l_ccid := NULL;
14598 l_adr_transaction_coa_id := NULL;
14599 l_adr_accounting_coa_id := NULL;
14600 l_adr_flexfield_segment_code := NULL;
14601 l_adr_flex_value_set_id := NULL;
14602 l_adr_value_type_code := NULL;
14603 l_adr_value_combination_id := NULL;
14604 l_adr_value_segment_code := NULL;
14605
14606 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14607 l_bflow_class_code := ''; -- 4219869 Business Flow
14608 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14609 l_budgetary_control_flag := 'N';
14610
14611 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14612 l_bflow_applied_to_amt := NULL; -- 5132302
14613 l_entered_amt_idx := NULL; -- 4262811
14614 l_accted_amt_idx := NULL; -- 4262811
14615 l_acc_rev_flag := NULL; -- 4262811
14616 l_accrual_line_num := NULL; -- 4262811
14617 l_tmp_amt := NULL; -- 4262811
14618 --
14619
14620 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14621 l_balance_type_code <> 'B' THEN
14622 IF NVL(p_source_63,'
14623 ') = 'CHARGES'
14624 THEN
14625
14626 --
14627 XLA_AE_LINES_PKG.SetNewLine;
14628
14629 p_balance_type_code := l_balance_type_code;
14630 -- set the flag so later we will know whether the gain loss line needs to be created
14631
14632 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14633 p_actual_flag :='A';
14634 END IF;
14635
14636 --
14637 -- bulk performance
14638 --
14639 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14640 p_header_num => 0); -- 4262811
14641 --
14642 -- set accounting line options
14643 --
14644 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14645 p_natural_side_code => 'C'
14646 , p_gain_or_loss_flag => 'N'
14647 , p_gl_transfer_mode_code => 'S'
14648 , p_acct_entry_type_code => 'A'
14649 , p_switch_side_flag => 'Y'
14650 , p_merge_duplicate_code => 'A'
14651 );
14652 --
14653 l_acc_rev_natural_side_code := 'D'; -- 4262811
14654 --
14655 --
14656 -- set accounting line type info
14657 --
14658 xla_ae_lines_pkg.SetAcctLineType
14659 (p_component_type => l_component_type
14660 ,p_event_type_code => l_event_type_code
14661 ,p_line_definition_owner_code => l_line_definition_owner_code
14662 ,p_line_definition_code => l_line_definition_code
14663 ,p_accounting_line_code => l_component_code
14664 ,p_accounting_line_type_code => l_component_type_code
14665 ,p_accounting_line_appl_id => l_component_appl_id
14666 ,p_amb_context_code => l_amb_context_code
14667 ,p_entity_code => l_entity_code
14668 ,p_event_class_code => l_event_class_code);
14669 --
14670 -- set accounting class
14671 --
14672 xla_ae_lines_pkg.SetAcctClass(
14673 p_accounting_class_code => 'CHARGES'
14674 , p_ae_header_id => l_ae_header_id
14675 );
14676
14677 --
14678 -- set rounding class
14679 --
14680 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14681 'RECEIVABLE';
14682
14683 --
14684 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14685 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14686 --
14687 -- bulk performance
14688 --
14692 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14689 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14690
14691 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14693
14697
14694 -- 4955764
14695 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14696 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14698 -- 4458381 Public Sector Enh
14699
14700 --
14701 -- set accounting attributes for the line type
14702 --
14703 l_entered_amt_idx := 3;
14704 l_accted_amt_idx := 9;
14705 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14706 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
14707 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
14708 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
14709 l_rec_acct_attrs.array_char_value(2) := p_source_53;
14710 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
14711 l_rec_acct_attrs.array_num_value(3) := p_source_64;
14712 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
14713 l_rec_acct_attrs.array_char_value(4) := p_source_54;
14714 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
14715 l_rec_acct_attrs.array_date_value(5) := p_source_55;
14716 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
14717 l_rec_acct_attrs.array_num_value(6) := p_source_56;
14718 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
14719 l_rec_acct_attrs.array_char_value(7) := p_source_57;
14720 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
14721 l_rec_acct_attrs.array_char_value(8) := p_source_58;
14722 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
14723 l_rec_acct_attrs.array_num_value(9) := p_source_59;
14724 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
14725 l_rec_acct_attrs.array_num_value(10) := p_source_60;
14726 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
14727 l_rec_acct_attrs.array_num_value(11) := p_source_61;
14728 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
14729 l_rec_acct_attrs.array_char_value(12) := p_source_39;
14730 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
14731 l_rec_acct_attrs.array_num_value(13) := p_source_62;
14732
14733 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14734 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14735
14736 ---------------------------------------------------------------------------------------------------------------
14737 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14738 ---------------------------------------------------------------------------------------------------------------
14739 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14740
14741 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14742 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14743
14744 IF xla_accounting_cache_pkg.GetValueChar
14745 (p_source_code => 'LEDGER_CATEGORY_CODE'
14746 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14747 AND l_bflow_method_code = 'PRIOR_ENTRY'
14748 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14749 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14750 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14751 )
14752 THEN
14753 xla_ae_lines_pkg.BflowUpgEntry
14754 (p_business_method_code => l_bflow_method_code
14755 ,p_business_class_code => l_bflow_class_code
14756 ,p_balance_type => l_balance_type_code);
14757 ELSE
14758 NULL;
14759 -- No business flow processing for business flow method of NONE.
14760 END IF;
14761
14762 --
14763 -- call analytical criteria
14764 --
14765
14766 --
14767 -- call description
14768 --
14769 -- No description or it is inherited.
14770 --
14771 -- call ADRs
14772 -- Bug 4922099
14773 --
14774 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14775 (NVL(l_actual_upg_option, 'N') = 'O') OR
14776 (NVL(l_enc_upg_option, 'N') = 'O')
14777 )
14778 THEN
14779 NULL;
14780 --
14781 --
14782
14783 l_ccid := AcctDerRule_12(
14784 p_application_id => p_application_id
14785 , p_ae_header_id => l_ae_header_id
14786 , p_source_14 => p_source_14
14787 , x_transaction_coa_id => l_adr_transaction_coa_id
14788 , x_accounting_coa_id => l_adr_accounting_coa_id
14789 , x_value_type_code => l_adr_value_type_code
14790 , p_side => 'NA'
14791 );
14792
14793 xla_ae_lines_pkg.set_ccid(
14794 p_code_combination_id => l_ccid
14795 , p_value_type_code => l_adr_value_type_code
14796 , p_transaction_coa_id => l_adr_transaction_coa_id
14797 , p_accounting_coa_id => l_adr_accounting_coa_id
14798 , p_adr_code => 'CM_DIST_CCID'
14799 , p_adr_type_code => 'S'
14800 , p_component_type => l_component_type
14801 , p_component_code => l_component_code
14802 , p_component_type_code => l_component_type_code
14803 , p_component_appl_id => l_component_appl_id
14804 , p_amb_context_code => l_amb_context_code
14805 , p_side => 'NA'
14806 );
14807
14808
14809 --
14810 --
14811 END IF;
14812 --
14816 ) AND
14813 -- Bug 4922099
14814 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14815 (NVL(l_enc_upg_option, 'N') = 'O')
14817 (l_bflow_method_code = 'PRIOR_ENTRY')
14818 )
14819 THEN
14820 IF
14821 --
14822 1 = 2
14823 --
14824 THEN
14825 xla_accounting_err_pkg.build_message
14826 (p_appli_s_name => 'XLA'
14827 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14828 ,p_token_1 => 'LINE_NUMBER'
14829 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14833 ,l_component_code
14830 ,p_token_2 => 'LINE_TYPE_NAME'
14831 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14832 l_component_type
14834 ,l_component_type_code
14835 ,l_component_appl_id
14836 ,l_amb_context_code
14837 ,l_entity_code
14838 ,l_event_class_code
14839 )
14840 ,p_token_3 => 'OWNER'
14841 ,p_value_3 => xla_lookups_pkg.get_meaning(
14842 p_lookup_type => 'XLA_OWNER_TYPE'
14843 ,p_lookup_code => l_component_type_code
14844 )
14845 ,p_token_4 => 'PRODUCT_NAME'
14846 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14847 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14848 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14849 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14850 ,p_ae_header_id => NULL
14851 );
14852
14853 IF (C_LEVEL_ERROR>= g_log_level) THEN
14854 trace
14855 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14856 ,p_level => C_LEVEL_ERROR
14857 ,p_module => l_log_module);
14858 END IF;
14859 END IF;
14860 END IF;
14861 --
14862 --
14863 ------------------------------------------------------------------------------------------------
14864 -- 4219869 Business Flow
14865 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14866 -- Prior Entry. Currently, the following code is always generated.
14867 ------------------------------------------------------------------------------------------------
14868 XLA_AE_LINES_PKG.ValidateCurrentLine;
14869
14870 ------------------------------------------------------------------------------------
14871 -- 4219869 Business Flow
14872 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14873 ------------------------------------------------------------------------------------
14874 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14875
14876 ----------------------------------------------------------------------------------
14877 -- 4219869 Business Flow
14878 -- Update journal entry status -- Need to generate this within IF <condition>
14879 ----------------------------------------------------------------------------------
14880 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14881 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14882 ,p_balance_type_code => l_balance_type_code
14883 );
14884
14885 -------------------------------------------------------------------------------------------
14886 -- 4262811 - Generate the Accrual Reversal lines
14890 (g_array_event(p_event_id).array_value_num('header_index'));
14887 -------------------------------------------------------------------------------------------
14888 BEGIN
14889 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14891 IF l_acc_rev_flag IS NULL THEN
14892 l_acc_rev_flag := 'N';
14893 END IF;
14894 EXCEPTION
14895 WHEN OTHERS THEN
14896 l_acc_rev_flag := 'N';
14897 END;
14898 --
14899 IF (l_acc_rev_flag = 'Y') THEN
14900
14901 -- 4645092 ------------------------------------------------------------------------------
14902 -- To allow MPA report to determine if it should generate report process
14903 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14904 ------------------------------------------------------------------------------------------
14905
14906 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14907 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14908 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14909 -- call ADRs
14910 -- Bug 4922099
14911 --
14912 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14913 (NVL(l_actual_upg_option, 'N') = 'O') OR
14914 (NVL(l_enc_upg_option, 'N') = 'O')
14915 )
14916 THEN
14917 NULL;
14918 --
14919 --
14920
14921 l_ccid := AcctDerRule_12(
14922 p_application_id => p_application_id
14923 , p_ae_header_id => l_ae_header_id
14924 , p_source_14 => p_source_14
14925 , x_transaction_coa_id => l_adr_transaction_coa_id
14926 , x_accounting_coa_id => l_adr_accounting_coa_id
14927 , x_value_type_code => l_adr_value_type_code
14928 , p_side => 'NA'
14929 );
14930
14931 xla_ae_lines_pkg.set_ccid(
14932 p_code_combination_id => l_ccid
14933 , p_value_type_code => l_adr_value_type_code
14934 , p_transaction_coa_id => l_adr_transaction_coa_id
14935 , p_accounting_coa_id => l_adr_accounting_coa_id
14936 , p_adr_code => 'CM_DIST_CCID'
14937 , p_adr_type_code => 'S'
14938 , p_component_type => l_component_type
14939 , p_component_code => l_component_code
14940 , p_component_type_code => l_component_type_code
14941 , p_component_appl_id => l_component_appl_id
14942 , p_amb_context_code => l_amb_context_code
14943 , p_side => 'NA'
14944 );
14945
14946
14947 --
14948 --
14949 END IF;
14950
14951 --
14952 -- Update the line information that should be overwritten
14953 --
14954 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14955 p_header_num => 1);
14956 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14957
14958 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14959
14960 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14961 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14962 END IF;
14963
14964 --
14965 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14966 --
14967 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14968 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14969 ELSE
14970 ---------------------------------------------------------------------------------------------------
14971 -- 4262811a Switch Sign
14972 ---------------------------------------------------------------------------------------------------
14973 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14974 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14975 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14976 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14977 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14978 -- 5132302
14979 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14980 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14981
14982 END IF;
14983
14984 -- 4955764
14985 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14986 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14987
14988
14989 XLA_AE_LINES_PKG.ValidateCurrentLine;
14990 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14991
14992 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14993 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14994 ,p_balance_type_code => l_balance_type_code);
14995
14996 END IF;
14997
14998 -----------------------------------------------------------------------------------------
14999 -- 4262811 Multiperiod Accounting
15003
15000 -----------------------------------------------------------------------------------------
15001 -- No MPA option is assigned.
15002
15004 END IF;
15005 END IF;
15006 --
15007
15008 --
15009 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15010 trace
15011 (p_msg => 'END of AcctLineType_45'
15012 ,p_level => C_LEVEL_PROCEDURE
15013 ,p_module => l_log_module);
15014 END IF;
15015 --
15016 EXCEPTION
15017 WHEN xla_exceptions_pkg.application_exception THEN
15018 RAISE;
15019 WHEN OTHERS THEN
15020 xla_exceptions_pkg.raise_message
15021 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_45');
15022 END AcctLineType_45;
15023 --
15024
15025 ---------------------------------------
15026 --
15027 -- PRIVATE FUNCTION
15028 -- AcctLineType_46
15029 --
15030 ---------------------------------------
15031 PROCEDURE AcctLineType_46 (
15032 p_application_id IN NUMBER
15033 ,p_event_id IN NUMBER
15034 ,p_calculate_acctd_flag IN VARCHAR2
15035 ,p_calculate_g_l_flag IN VARCHAR2
15036 ,p_actual_flag IN OUT VARCHAR2
15037 ,p_balance_type_code OUT VARCHAR2
15038 ,p_gain_or_loss_ref OUT VARCHAR2
15039
15040 --Distribution GL Account
15041 , p_source_22 IN NUMBER
15042 --SLA Party Type
15043 , p_source_39 IN VARCHAR2
15044 --Credit Memo Distribution Identifier
15045 , p_source_52 IN NUMBER
15046 --Credit memo distributions type
15047 , p_source_53 IN VARCHAR2
15048 --Credit Memo Currency Code
15049 , p_source_54 IN VARCHAR2
15050 --Credit Memo Exchange Date
15051 , p_source_55 IN DATE
15052 --Credit Memo Exchange Rate
15053 , p_source_56 IN NUMBER
15054 --Credit Memo Exchange Rate Type
15055 , p_source_57 IN VARCHAR2
15056 --Gain Loss Reference
15057 , p_source_58 IN VARCHAR2
15058 --Credit Memo Accounting Amount
15059 , p_source_59 IN NUMBER
15060 --Credit Memo Bill To Customer Account Identifier
15061 , p_source_60 IN NUMBER
15062 --Credit Memo Bill To Customer Site Use Identifier
15063 , p_source_61 IN NUMBER
15064 --Credit Memo Tax Line Identifier
15065 , p_source_62 IN NUMBER
15066 --Credit Memo Distribution Account Class
15067 , p_source_63 IN VARCHAR2
15068 --Credit Memo Distribution Entered Amount
15069 , p_source_64 IN NUMBER
15070 )
15071 IS
15072
15073 l_component_type VARCHAR2(80);
15074 l_component_code VARCHAR2(30);
15075 l_component_type_code VARCHAR2(1);
15076 l_component_appl_id INTEGER;
15077 l_amb_context_code VARCHAR2(30);
15078 l_entity_code VARCHAR2(30);
15079 l_event_class_code VARCHAR2(30);
15080 l_ae_header_id NUMBER;
15081 l_event_type_code VARCHAR2(30);
15082 l_line_definition_code VARCHAR2(30);
15083 l_line_definition_owner_code VARCHAR2(1);
15084 --
15085 -- adr variables
15086 l_segment VARCHAR2(30);
15087 l_ccid NUMBER;
15088 l_adr_transaction_coa_id NUMBER;
15089 l_adr_accounting_coa_id NUMBER;
15090 l_adr_flexfield_segment_code VARCHAR2(30);
15091 l_adr_flex_value_set_id NUMBER;
15092 l_adr_value_type_code VARCHAR2(30);
15093 l_adr_value_combination_id NUMBER;
15094 l_adr_value_segment_code VARCHAR2(30);
15095
15096 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15097 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15098 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15099 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15100
15101 -- 4262811 Variables ------------------------------------------------------------------------------------------
15105 l_accrual_line_num NUMBER;
15102 l_entered_amt_idx NUMBER;
15103 l_accted_amt_idx NUMBER;
15104 l_acc_rev_flag VARCHAR2(1);
15106 l_tmp_amt NUMBER;
15107 l_acc_rev_natural_side_code VARCHAR2(1);
15108
15109 l_num_entries NUMBER;
15110 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15111 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15112 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15116
15113 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15114 l_recog_line_1 NUMBER;
15115 l_recog_line_2 NUMBER;
15117 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15118 l_bflow_applied_to_amt NUMBER; -- 5132302
15119 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15120
15121 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15122
15123 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15124 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15125
15126 ---------------------------------------------------------------------------------------------------------------
15127
15128
15129 --
15130 -- bulk performance
15131 --
15132 l_balance_type_code VARCHAR2(1);
15133 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15134 l_log_module VARCHAR2(240);
15135
15136 --
15137 -- Upgrade strategy
15138 --
15139 l_actual_upg_option VARCHAR2(1);
15140 l_enc_upg_option VARCHAR2(1);
15141
15142 --
15143 BEGIN
15144 --
15145 IF g_log_enabled THEN
15146 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
15147 END IF;
15148 --
15149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15150
15151 trace
15152 (p_msg => 'BEGIN of AcctLineType_46'
15153 ,p_level => C_LEVEL_PROCEDURE
15154 ,p_module => l_log_module);
15155
15156 END IF;
15157 --
15158 l_component_type := 'AMB_JLT';
15159 l_component_code := 'CM_DEFAULT_FREIGHT';
15160 l_component_type_code := 'S';
15161 l_component_appl_id := 222;
15162 l_amb_context_code := 'DEFAULT';
15163 l_entity_code := 'TRANSACTIONS';
15164 l_event_class_code := 'CREDIT_MEMO';
15165 l_event_type_code := 'CREDIT_MEMO_ALL';
15166 l_line_definition_owner_code := 'S';
15167 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
15168 --
15169 l_balance_type_code := 'A';
15170 l_segment := NULL;
15171 l_ccid := NULL;
15172 l_adr_transaction_coa_id := NULL;
15173 l_adr_accounting_coa_id := NULL;
15174 l_adr_flexfield_segment_code := NULL;
15175 l_adr_flex_value_set_id := NULL;
15176 l_adr_value_type_code := NULL;
15177 l_adr_value_combination_id := NULL;
15178 l_adr_value_segment_code := NULL;
15179
15180 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15181 l_bflow_class_code := ''; -- 4219869 Business Flow
15182 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15183 l_budgetary_control_flag := 'N';
15184
15185 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15186 l_bflow_applied_to_amt := NULL; -- 5132302
15187 l_entered_amt_idx := NULL; -- 4262811
15188 l_accted_amt_idx := NULL; -- 4262811
15189 l_acc_rev_flag := NULL; -- 4262811
15190 l_accrual_line_num := NULL; -- 4262811
15191 l_tmp_amt := NULL; -- 4262811
15192 --
15193
15194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15195 l_balance_type_code <> 'B' THEN
15196 IF NVL(p_source_63,'
15197 ') = 'FREIGHT'
15198 THEN
15199
15200 --
15201 XLA_AE_LINES_PKG.SetNewLine;
15202
15203 p_balance_type_code := l_balance_type_code;
15204 -- set the flag so later we will know whether the gain loss line needs to be created
15205
15206 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15207 p_actual_flag :='A';
15208 END IF;
15209
15210 --
15211 -- bulk performance
15212 --
15213 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15214 p_header_num => 0); -- 4262811
15215 --
15216 -- set accounting line options
15217 --
15218 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15219 p_natural_side_code => 'C'
15220 , p_gain_or_loss_flag => 'N'
15221 , p_gl_transfer_mode_code => 'S'
15222 , p_acct_entry_type_code => 'A'
15223 , p_switch_side_flag => 'Y'
15224 , p_merge_duplicate_code => 'A'
15225 );
15226 --
15227 l_acc_rev_natural_side_code := 'D'; -- 4262811
15228 --
15229 --
15230 -- set accounting line type info
15231 --
15232 xla_ae_lines_pkg.SetAcctLineType
15233 (p_component_type => l_component_type
15234 ,p_event_type_code => l_event_type_code
15235 ,p_line_definition_owner_code => l_line_definition_owner_code
15236 ,p_line_definition_code => l_line_definition_code
15237 ,p_accounting_line_code => l_component_code
15238 ,p_accounting_line_type_code => l_component_type_code
15239 ,p_accounting_line_appl_id => l_component_appl_id
15240 ,p_amb_context_code => l_amb_context_code
15241 ,p_entity_code => l_entity_code
15242 ,p_event_class_code => l_event_class_code);
15243 --
15244 -- set accounting class
15245 --
15246 xla_ae_lines_pkg.SetAcctClass(
15247 p_accounting_class_code => 'FREIGHT'
15248 , p_ae_header_id => l_ae_header_id
15249 );
15250
15251 --
15255 'RECEIVABLE';
15252 -- set rounding class
15253 --
15254 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15256
15257 --
15258 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15259 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15260 --
15261 -- bulk performance
15262 --
15263 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15264
15265 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15266 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15267
15268 -- 4955764
15269 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15270 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15271
15272 -- 4458381 Public Sector Enh
15273
15274 --
15275 -- set accounting attributes for the line type
15276 --
15277 l_entered_amt_idx := 3;
15278 l_accted_amt_idx := 9;
15279 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15280 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
15281 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
15282 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
15283 l_rec_acct_attrs.array_char_value(2) := p_source_53;
15284 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
15285 l_rec_acct_attrs.array_num_value(3) := p_source_64;
15286 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
15287 l_rec_acct_attrs.array_char_value(4) := p_source_54;
15288 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
15289 l_rec_acct_attrs.array_date_value(5) := p_source_55;
15290 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
15291 l_rec_acct_attrs.array_num_value(6) := p_source_56;
15292 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
15293 l_rec_acct_attrs.array_char_value(7) := p_source_57;
15294 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
15295 l_rec_acct_attrs.array_char_value(8) := p_source_58;
15296 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15297 l_rec_acct_attrs.array_num_value(9) := p_source_59;
15298 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
15299 l_rec_acct_attrs.array_num_value(10) := p_source_60;
15300 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
15301 l_rec_acct_attrs.array_num_value(11) := p_source_61;
15302 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
15303 l_rec_acct_attrs.array_char_value(12) := p_source_39;
15304 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
15305 l_rec_acct_attrs.array_num_value(13) := p_source_62;
15306
15307 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15308 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15309
15310 ---------------------------------------------------------------------------------------------------------------
15311 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15312 ---------------------------------------------------------------------------------------------------------------
15313 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15314
15315 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15316 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15317
15318 IF xla_accounting_cache_pkg.GetValueChar
15319 (p_source_code => 'LEDGER_CATEGORY_CODE'
15320 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15321 AND l_bflow_method_code = 'PRIOR_ENTRY'
15322 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15323 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15324 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15325 )
15326 THEN
15327 xla_ae_lines_pkg.BflowUpgEntry
15328 (p_business_method_code => l_bflow_method_code
15329 ,p_business_class_code => l_bflow_class_code
15330 ,p_balance_type => l_balance_type_code);
15331 ELSE
15332 NULL;
15333 -- No business flow processing for business flow method of NONE.
15334 END IF;
15335
15336 --
15337 -- call analytical criteria
15338 --
15339
15340 --
15341 -- call description
15342 --
15343 -- No description or it is inherited.
15344 --
15345 -- call ADRs
15346 -- Bug 4922099
15347 --
15348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15349 (NVL(l_actual_upg_option, 'N') = 'O') OR
15350 (NVL(l_enc_upg_option, 'N') = 'O')
15351 )
15352 THEN
15353 NULL;
15354 --
15355 --
15356
15357 l_ccid := AcctDerRule_20(
15358 p_application_id => p_application_id
15359 , p_ae_header_id => l_ae_header_id
15360 , p_source_22 => p_source_22
15361 , x_transaction_coa_id => l_adr_transaction_coa_id
15362 , x_accounting_coa_id => l_adr_accounting_coa_id
15363 , x_value_type_code => l_adr_value_type_code
15364 , p_side => 'NA'
15365 );
15366
15367 xla_ae_lines_pkg.set_ccid(
15368 p_code_combination_id => l_ccid
15369 , p_value_type_code => l_adr_value_type_code
15373 , p_adr_type_code => 'S'
15370 , p_transaction_coa_id => l_adr_transaction_coa_id
15371 , p_accounting_coa_id => l_adr_accounting_coa_id
15372 , p_adr_code => 'DIST_CCID'
15374 , p_component_type => l_component_type
15375 , p_component_code => l_component_code
15376 , p_component_type_code => l_component_type_code
15377 , p_component_appl_id => l_component_appl_id
15378 , p_amb_context_code => l_amb_context_code
15379 , p_side => 'NA'
15380 );
15381
15382
15383 --
15384 --
15385 END IF;
15386 --
15387 -- Bug 4922099
15388 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15389 (NVL(l_enc_upg_option, 'N') = 'O')
15390 ) AND
15391 (l_bflow_method_code = 'PRIOR_ENTRY')
15392 )
15393 THEN
15394 IF
15395 --
15396 1 = 2
15397 --
15398 THEN
15399 xla_accounting_err_pkg.build_message
15400 (p_appli_s_name => 'XLA'
15401 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15402 ,p_token_1 => 'LINE_NUMBER'
15403 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15407 ,l_component_code
15404 ,p_token_2 => 'LINE_TYPE_NAME'
15405 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15406 l_component_type
15408 ,l_component_type_code
15409 ,l_component_appl_id
15410 ,l_amb_context_code
15411 ,l_entity_code
15412 ,l_event_class_code
15413 )
15414 ,p_token_3 => 'OWNER'
15415 ,p_value_3 => xla_lookups_pkg.get_meaning(
15416 p_lookup_type => 'XLA_OWNER_TYPE'
15417 ,p_lookup_code => l_component_type_code
15418 )
15419 ,p_token_4 => 'PRODUCT_NAME'
15420 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15421 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15422 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15423 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15424 ,p_ae_header_id => NULL
15425 );
15426
15427 IF (C_LEVEL_ERROR>= g_log_level) THEN
15428 trace
15429 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15430 ,p_level => C_LEVEL_ERROR
15431 ,p_module => l_log_module);
15432 END IF;
15433 END IF;
15434 END IF;
15435 --
15436 --
15437 ------------------------------------------------------------------------------------------------
15438 -- 4219869 Business Flow
15439 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15440 -- Prior Entry. Currently, the following code is always generated.
15441 ------------------------------------------------------------------------------------------------
15442 XLA_AE_LINES_PKG.ValidateCurrentLine;
15443
15447 ------------------------------------------------------------------------------------
15444 ------------------------------------------------------------------------------------
15445 -- 4219869 Business Flow
15446 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15448 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15449
15450 ----------------------------------------------------------------------------------
15451 -- 4219869 Business Flow
15452 -- Update journal entry status -- Need to generate this within IF <condition>
15453 ----------------------------------------------------------------------------------
15454 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15455 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15456 ,p_balance_type_code => l_balance_type_code
15457 );
15458
15459 -------------------------------------------------------------------------------------------
15460 -- 4262811 - Generate the Accrual Reversal lines
15461 -------------------------------------------------------------------------------------------
15462 BEGIN
15463 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15464 (g_array_event(p_event_id).array_value_num('header_index'));
15465 IF l_acc_rev_flag IS NULL THEN
15466 l_acc_rev_flag := 'N';
15467 END IF;
15468 EXCEPTION
15469 WHEN OTHERS THEN
15470 l_acc_rev_flag := 'N';
15471 END;
15472 --
15473 IF (l_acc_rev_flag = 'Y') THEN
15474
15475 -- 4645092 ------------------------------------------------------------------------------
15476 -- To allow MPA report to determine if it should generate report process
15477 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15478 ------------------------------------------------------------------------------------------
15479
15480 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15481 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15482 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15483 -- call ADRs
15484 -- Bug 4922099
15485 --
15486 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15487 (NVL(l_actual_upg_option, 'N') = 'O') OR
15488 (NVL(l_enc_upg_option, 'N') = 'O')
15489 )
15490 THEN
15491 NULL;
15492 --
15493 --
15494
15495 l_ccid := AcctDerRule_20(
15496 p_application_id => p_application_id
15497 , p_ae_header_id => l_ae_header_id
15498 , p_source_22 => p_source_22
15499 , x_transaction_coa_id => l_adr_transaction_coa_id
15500 , x_accounting_coa_id => l_adr_accounting_coa_id
15501 , x_value_type_code => l_adr_value_type_code
15502 , p_side => 'NA'
15503 );
15504
15505 xla_ae_lines_pkg.set_ccid(
15506 p_code_combination_id => l_ccid
15507 , p_value_type_code => l_adr_value_type_code
15508 , p_transaction_coa_id => l_adr_transaction_coa_id
15509 , p_accounting_coa_id => l_adr_accounting_coa_id
15510 , p_adr_code => 'DIST_CCID'
15511 , p_adr_type_code => 'S'
15512 , p_component_type => l_component_type
15513 , p_component_code => l_component_code
15514 , p_component_type_code => l_component_type_code
15515 , p_component_appl_id => l_component_appl_id
15516 , p_amb_context_code => l_amb_context_code
15517 , p_side => 'NA'
15518 );
15519
15520
15521 --
15522 --
15523 END IF;
15524
15525 --
15526 -- Update the line information that should be overwritten
15527 --
15528 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15529 p_header_num => 1);
15530 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15531
15532 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15533
15534 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15535 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15536 END IF;
15537
15538 --
15539 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15540 --
15541 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15542 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15543 ELSE
15544 ---------------------------------------------------------------------------------------------------
15545 -- 4262811a Switch Sign
15546 ---------------------------------------------------------------------------------------------------
15547 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15548 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15550 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15552 -- 5132302
15556 END IF;
15553 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15555
15557
15558 -- 4955764
15559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15561
15562
15563 XLA_AE_LINES_PKG.ValidateCurrentLine;
15564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15565
15566 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15567 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15568 ,p_balance_type_code => l_balance_type_code);
15569
15570 END IF;
15571
15572 -----------------------------------------------------------------------------------------
15573 -- 4262811 Multiperiod Accounting
15574 -----------------------------------------------------------------------------------------
15575 -- No MPA option is assigned.
15576
15577
15578 END IF;
15579 END IF;
15580 --
15581
15582 --
15583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15584 trace
15585 (p_msg => 'END of AcctLineType_46'
15586 ,p_level => C_LEVEL_PROCEDURE
15587 ,p_module => l_log_module);
15588 END IF;
15589 --
15590 EXCEPTION
15591 WHEN xla_exceptions_pkg.application_exception THEN
15592 RAISE;
15593 WHEN OTHERS THEN
15594 xla_exceptions_pkg.raise_message
15595 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_46');
15596 END AcctLineType_46;
15597 --
15598
15599 ---------------------------------------
15600 --
15601 -- PRIVATE FUNCTION
15602 -- AcctLineType_47
15603 --
15604 ---------------------------------------
15605 PROCEDURE AcctLineType_47 (
15606 p_application_id IN NUMBER
15607 ,p_event_id IN NUMBER
15608 ,p_calculate_acctd_flag IN VARCHAR2
15609 ,p_calculate_g_l_flag IN VARCHAR2
15610 ,p_actual_flag IN OUT VARCHAR2
15611 ,p_balance_type_code OUT VARCHAR2
15612 ,p_gain_or_loss_ref OUT VARCHAR2
15613
15614 --Credit Memo Distribution GL Account
15615 , p_source_14 IN NUMBER
15616 --SLA Party Type
15617 , p_source_39 IN VARCHAR2
15618 --Credit Memo Distribution Identifier
15619 , p_source_52 IN NUMBER
15620 --Credit memo distributions type
15621 , p_source_53 IN VARCHAR2
15622 --Credit Memo Currency Code
15623 , p_source_54 IN VARCHAR2
15624 --Credit Memo Exchange Date
15625 , p_source_55 IN DATE
15626 --Credit Memo Exchange Rate
15627 , p_source_56 IN NUMBER
15628 --Credit Memo Exchange Rate Type
15629 , p_source_57 IN VARCHAR2
15630 --Gain Loss Reference
15631 , p_source_58 IN VARCHAR2
15632 --Credit Memo Accounting Amount
15633 , p_source_59 IN NUMBER
15634 --Credit Memo Bill To Customer Account Identifier
15635 , p_source_60 IN NUMBER
15636 --Credit Memo Bill To Customer Site Use Identifier
15637 , p_source_61 IN NUMBER
15638 --Credit Memo Tax Line Identifier
15639 , p_source_62 IN NUMBER
15640 --Credit Memo Distribution Account Class
15641 , p_source_63 IN VARCHAR2
15642 --Credit Memo Distribution Entered Amount
15643 , p_source_64 IN NUMBER
15644 )
15645 IS
15646
15647 l_component_type VARCHAR2(80);
15648 l_component_code VARCHAR2(30);
15649 l_component_type_code VARCHAR2(1);
15650 l_component_appl_id INTEGER;
15651 l_amb_context_code VARCHAR2(30);
15652 l_entity_code VARCHAR2(30);
15653 l_event_class_code VARCHAR2(30);
15654 l_ae_header_id NUMBER;
15655 l_event_type_code VARCHAR2(30);
15656 l_line_definition_code VARCHAR2(30);
15657 l_line_definition_owner_code VARCHAR2(1);
15658 --
15659 -- adr variables
15660 l_segment VARCHAR2(30);
15661 l_ccid NUMBER;
15662 l_adr_transaction_coa_id NUMBER;
15663 l_adr_accounting_coa_id NUMBER;
15664 l_adr_flexfield_segment_code VARCHAR2(30);
15665 l_adr_flex_value_set_id NUMBER;
15666 l_adr_value_type_code VARCHAR2(30);
15667 l_adr_value_combination_id NUMBER;
15668 l_adr_value_segment_code VARCHAR2(30);
15669
15670 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15671 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15672 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15673 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15674
15675 -- 4262811 Variables ------------------------------------------------------------------------------------------
15676 l_entered_amt_idx NUMBER;
15677 l_accted_amt_idx NUMBER;
15678 l_acc_rev_flag VARCHAR2(1);
15679 l_accrual_line_num NUMBER;
15680 l_tmp_amt NUMBER;
15681 l_acc_rev_natural_side_code VARCHAR2(1);
15682
15683 l_num_entries NUMBER;
15684 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15685 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15686 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15690
15687 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15688 l_recog_line_1 NUMBER;
15689 l_recog_line_2 NUMBER;
15691 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15692 l_bflow_applied_to_amt NUMBER; -- 5132302
15693 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15694
15695 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15696
15697 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15698 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15699
15700 ---------------------------------------------------------------------------------------------------------------
15701
15702
15703 --
15704 -- bulk performance
15705 --
15706 l_balance_type_code VARCHAR2(1);
15707 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15708 l_log_module VARCHAR2(240);
15709
15710 --
15711 -- Upgrade strategy
15712 --
15713 l_actual_upg_option VARCHAR2(1);
15714 l_enc_upg_option VARCHAR2(1);
15715
15716 --
15717 BEGIN
15718 --
15719 IF g_log_enabled THEN
15720 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
15721 END IF;
15722 --
15723 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15724
15725 trace
15726 (p_msg => 'BEGIN of AcctLineType_47'
15727 ,p_level => C_LEVEL_PROCEDURE
15728 ,p_module => l_log_module);
15729
15730 END IF;
15731 --
15732 l_component_type := 'AMB_JLT';
15733 l_component_code := 'CM_DEFAULT_REC';
15734 l_component_type_code := 'S';
15735 l_component_appl_id := 222;
15736 l_amb_context_code := 'DEFAULT';
15737 l_entity_code := 'TRANSACTIONS';
15738 l_event_class_code := 'CREDIT_MEMO';
15739 l_event_type_code := 'CREDIT_MEMO_ALL';
15740 l_line_definition_owner_code := 'S';
15741 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
15742 --
15743 l_balance_type_code := 'A';
15744 l_segment := NULL;
15745 l_ccid := NULL;
15746 l_adr_transaction_coa_id := NULL;
15747 l_adr_accounting_coa_id := NULL;
15748 l_adr_flexfield_segment_code := NULL;
15749 l_adr_flex_value_set_id := NULL;
15750 l_adr_value_type_code := NULL;
15751 l_adr_value_combination_id := NULL;
15752 l_adr_value_segment_code := NULL;
15753
15754 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15755 l_bflow_class_code := 'RECEIVABLE'; -- 4219869 Business Flow
15756 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15757 l_budgetary_control_flag := 'N';
15758
15759 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15760 l_bflow_applied_to_amt := NULL; -- 5132302
15761 l_entered_amt_idx := NULL; -- 4262811
15762 l_accted_amt_idx := NULL; -- 4262811
15763 l_acc_rev_flag := NULL; -- 4262811
15764 l_accrual_line_num := NULL; -- 4262811
15765 l_tmp_amt := NULL; -- 4262811
15766 --
15767
15768 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15769 l_balance_type_code <> 'B' THEN
15770 IF NVL(p_source_63,'
15771 ') = 'REC'
15772 THEN
15773
15774 --
15775 XLA_AE_LINES_PKG.SetNewLine;
15776
15777 p_balance_type_code := l_balance_type_code;
15778 -- set the flag so later we will know whether the gain loss line needs to be created
15779
15780 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15781 p_actual_flag :='A';
15782 END IF;
15783
15784 --
15785 -- bulk performance
15786 --
15787 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15788 p_header_num => 0); -- 4262811
15789 --
15790 -- set accounting line options
15791 --
15792 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15793 p_natural_side_code => 'D'
15794 , p_gain_or_loss_flag => 'N'
15795 , p_gl_transfer_mode_code => 'S'
15796 , p_acct_entry_type_code => 'A'
15797 , p_switch_side_flag => 'Y'
15798 , p_merge_duplicate_code => 'N'
15799 );
15800 --
15801 l_acc_rev_natural_side_code := 'C'; -- 4262811
15802 --
15803 --
15804 -- set accounting line type info
15805 --
15806 xla_ae_lines_pkg.SetAcctLineType
15807 (p_component_type => l_component_type
15808 ,p_event_type_code => l_event_type_code
15809 ,p_line_definition_owner_code => l_line_definition_owner_code
15810 ,p_line_definition_code => l_line_definition_code
15811 ,p_accounting_line_code => l_component_code
15812 ,p_accounting_line_type_code => l_component_type_code
15813 ,p_accounting_line_appl_id => l_component_appl_id
15814 ,p_amb_context_code => l_amb_context_code
15815 ,p_entity_code => l_entity_code
15816 ,p_event_class_code => l_event_class_code);
15817 --
15818 -- set accounting class
15819 --
15820 xla_ae_lines_pkg.SetAcctClass(
15824
15821 p_accounting_class_code => 'RECEIVABLE'
15822 , p_ae_header_id => l_ae_header_id
15823 );
15825 --
15826 -- set rounding class
15827 --
15828 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15829 'RECEIVABLE';
15830
15831 --
15832 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15833 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15834 --
15835 -- bulk performance
15836 --
15837 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15838
15839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15840 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15841
15842 -- 4955764
15843 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15844 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15845
15846 -- 4458381 Public Sector Enh
15847
15848 --
15849 -- set accounting attributes for the line type
15850 --
15851 l_entered_amt_idx := 3;
15852 l_accted_amt_idx := 9;
15853 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15854 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
15855 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
15856 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
15857 l_rec_acct_attrs.array_char_value(2) := p_source_53;
15858 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
15859 l_rec_acct_attrs.array_num_value(3) := p_source_64;
15860 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
15861 l_rec_acct_attrs.array_char_value(4) := p_source_54;
15862 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
15863 l_rec_acct_attrs.array_date_value(5) := p_source_55;
15864 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
15865 l_rec_acct_attrs.array_num_value(6) := p_source_56;
15866 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
15867 l_rec_acct_attrs.array_char_value(7) := p_source_57;
15868 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
15869 l_rec_acct_attrs.array_char_value(8) := p_source_58;
15870 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15871 l_rec_acct_attrs.array_num_value(9) := p_source_59;
15872 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
15873 l_rec_acct_attrs.array_num_value(10) := p_source_60;
15874 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
15875 l_rec_acct_attrs.array_num_value(11) := p_source_61;
15876 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
15877 l_rec_acct_attrs.array_char_value(12) := p_source_39;
15878 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
15879 l_rec_acct_attrs.array_num_value(13) := p_source_62;
15880
15881 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15882 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15883
15884 ---------------------------------------------------------------------------------------------------------------
15885 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15886 ---------------------------------------------------------------------------------------------------------------
15887 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15888
15889 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15890 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15891
15892 IF xla_accounting_cache_pkg.GetValueChar
15893 (p_source_code => 'LEDGER_CATEGORY_CODE'
15894 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15895 AND l_bflow_method_code = 'PRIOR_ENTRY'
15896 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15897 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15898 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15899 )
15900 THEN
15901 xla_ae_lines_pkg.BflowUpgEntry
15902 (p_business_method_code => l_bflow_method_code
15903 ,p_business_class_code => l_bflow_class_code
15904 ,p_balance_type => l_balance_type_code);
15905 ELSE
15906 NULL;
15907 -- No business flow processing for business flow method of NONE.
15908 END IF;
15909
15910 --
15911 -- call analytical criteria
15912 --
15913
15914 --
15915 -- call description
15916 --
15917 -- No description or it is inherited.
15918 --
15919 -- call ADRs
15920 -- Bug 4922099
15921 --
15922 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15923 (NVL(l_actual_upg_option, 'N') = 'O') OR
15924 (NVL(l_enc_upg_option, 'N') = 'O')
15925 )
15926 THEN
15927 NULL;
15928 --
15929 --
15930
15931 l_ccid := AcctDerRule_12(
15932 p_application_id => p_application_id
15933 , p_ae_header_id => l_ae_header_id
15934 , p_source_14 => p_source_14
15935 , x_transaction_coa_id => l_adr_transaction_coa_id
15936 , x_accounting_coa_id => l_adr_accounting_coa_id
15937 , x_value_type_code => l_adr_value_type_code
15941 xla_ae_lines_pkg.set_ccid(
15938 , p_side => 'NA'
15939 );
15940
15942 p_code_combination_id => l_ccid
15943 , p_value_type_code => l_adr_value_type_code
15944 , p_transaction_coa_id => l_adr_transaction_coa_id
15945 , p_accounting_coa_id => l_adr_accounting_coa_id
15946 , p_adr_code => 'CM_DIST_CCID'
15947 , p_adr_type_code => 'S'
15948 , p_component_type => l_component_type
15949 , p_component_code => l_component_code
15950 , p_component_type_code => l_component_type_code
15951 , p_component_appl_id => l_component_appl_id
15952 , p_amb_context_code => l_amb_context_code
15953 , p_side => 'NA'
15954 );
15955
15956
15957 --
15958 --
15959 END IF;
15960 --
15961 -- Bug 4922099
15962 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15963 (NVL(l_enc_upg_option, 'N') = 'O')
15964 ) AND
15965 (l_bflow_method_code = 'PRIOR_ENTRY')
15966 )
15967 THEN
15968 IF
15969 --
15970 1 = 2
15971 --
15972 THEN
15973 xla_accounting_err_pkg.build_message
15974 (p_appli_s_name => 'XLA'
15975 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15976 ,p_token_1 => 'LINE_NUMBER'
15977 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15978 ,p_token_2 => 'LINE_TYPE_NAME'
15979 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15980 l_component_type
15981 ,l_component_code
15982 ,l_component_type_code
15983 ,l_component_appl_id
15984 ,l_amb_context_code
15985 ,l_entity_code
15986 ,l_event_class_code
15987 )
15988 ,p_token_3 => 'OWNER'
15989 ,p_value_3 => xla_lookups_pkg.get_meaning(
15990 p_lookup_type => 'XLA_OWNER_TYPE'
15991 ,p_lookup_code => l_component_type_code
15992 )
15993 ,p_token_4 => 'PRODUCT_NAME'
15994 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15995 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15996 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15997 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15998 ,p_ae_header_id => NULL
15999 );
16000
16001 IF (C_LEVEL_ERROR>= g_log_level) THEN
16002 trace
16003 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16004 ,p_level => C_LEVEL_ERROR
16005 ,p_module => l_log_module);
16006 END IF;
16007 END IF;
16008 END IF;
16009 --
16010 --
16011 ------------------------------------------------------------------------------------------------
16012 -- 4219869 Business Flow
16013 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16014 -- Prior Entry. Currently, the following code is always generated.
16015 ------------------------------------------------------------------------------------------------
16016 XLA_AE_LINES_PKG.ValidateCurrentLine;
16017
16018 ------------------------------------------------------------------------------------
16019 -- 4219869 Business Flow
16020 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16021 ------------------------------------------------------------------------------------
16022 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16023
16024 ----------------------------------------------------------------------------------
16025 -- 4219869 Business Flow
16026 -- Update journal entry status -- Need to generate this within IF <condition>
16027 ----------------------------------------------------------------------------------
16028 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16029 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16030 ,p_balance_type_code => l_balance_type_code
16031 );
16032
16033 -------------------------------------------------------------------------------------------
16034 -- 4262811 - Generate the Accrual Reversal lines
16035 -------------------------------------------------------------------------------------------
16036 BEGIN
16037 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16038 (g_array_event(p_event_id).array_value_num('header_index'));
16039 IF l_acc_rev_flag IS NULL THEN
16040 l_acc_rev_flag := 'N';
16044 l_acc_rev_flag := 'N';
16041 END IF;
16042 EXCEPTION
16043 WHEN OTHERS THEN
16045 END;
16046 --
16047 IF (l_acc_rev_flag = 'Y') THEN
16048
16049 -- 4645092 ------------------------------------------------------------------------------
16050 -- To allow MPA report to determine if it should generate report process
16051 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16052 ------------------------------------------------------------------------------------------
16053
16054 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16055 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16056 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16057 -- call ADRs
16058 -- Bug 4922099
16059 --
16060 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16061 (NVL(l_actual_upg_option, 'N') = 'O') OR
16062 (NVL(l_enc_upg_option, 'N') = 'O')
16063 )
16064 THEN
16065 NULL;
16066 --
16067 --
16068
16069 l_ccid := AcctDerRule_12(
16070 p_application_id => p_application_id
16071 , p_ae_header_id => l_ae_header_id
16072 , p_source_14 => p_source_14
16073 , x_transaction_coa_id => l_adr_transaction_coa_id
16074 , x_accounting_coa_id => l_adr_accounting_coa_id
16075 , x_value_type_code => l_adr_value_type_code
16076 , p_side => 'NA'
16077 );
16078
16079 xla_ae_lines_pkg.set_ccid(
16080 p_code_combination_id => l_ccid
16081 , p_value_type_code => l_adr_value_type_code
16082 , p_transaction_coa_id => l_adr_transaction_coa_id
16083 , p_accounting_coa_id => l_adr_accounting_coa_id
16084 , p_adr_code => 'CM_DIST_CCID'
16085 , p_adr_type_code => 'S'
16086 , p_component_type => l_component_type
16087 , p_component_code => l_component_code
16088 , p_component_type_code => l_component_type_code
16089 , p_component_appl_id => l_component_appl_id
16090 , p_amb_context_code => l_amb_context_code
16091 , p_side => 'NA'
16092 );
16093
16094
16095 --
16096 --
16097 END IF;
16098
16099 --
16100 -- Update the line information that should be overwritten
16101 --
16102 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16103 p_header_num => 1);
16104 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16105
16106 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16107
16108 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16109 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16110 END IF;
16111
16112 --
16113 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16114 --
16115 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16116 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16117 ELSE
16118 ---------------------------------------------------------------------------------------------------
16119 -- 4262811a Switch Sign
16120 ---------------------------------------------------------------------------------------------------
16121 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16123 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16125 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16126 -- 5132302
16127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16128 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16129
16130 END IF;
16131
16132 -- 4955764
16133 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16134 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16135
16136
16137 XLA_AE_LINES_PKG.ValidateCurrentLine;
16138 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16139
16140 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16141 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16142 ,p_balance_type_code => l_balance_type_code);
16143
16144 END IF;
16145
16146 -----------------------------------------------------------------------------------------
16147 -- 4262811 Multiperiod Accounting
16148 -----------------------------------------------------------------------------------------
16149 -- No MPA option is assigned.
16150
16151
16152 END IF;
16153 END IF;
16154 --
16155
16156 --
16157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16158 trace
16159 (p_msg => 'END of AcctLineType_47'
16160 ,p_level => C_LEVEL_PROCEDURE
16161 ,p_module => l_log_module);
16162 END IF;
16163 --
16164 EXCEPTION
16168 xla_exceptions_pkg.raise_message
16165 WHEN xla_exceptions_pkg.application_exception THEN
16166 RAISE;
16167 WHEN OTHERS THEN
16169 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_47');
16170 END AcctLineType_47;
16171 --
16172
16173 ---------------------------------------
16174 --
16175 -- PRIVATE FUNCTION
16176 -- AcctLineType_48
16177 --
16178 ---------------------------------------
16179 PROCEDURE AcctLineType_48 (
16180 p_application_id IN NUMBER
16181 ,p_event_id IN NUMBER
16182 ,p_calculate_acctd_flag IN VARCHAR2
16183 ,p_calculate_g_l_flag IN VARCHAR2
16184 ,p_actual_flag IN OUT VARCHAR2
16185 ,p_balance_type_code OUT VARCHAR2
16186 ,p_gain_or_loss_ref OUT VARCHAR2
16187
16188 --Credit Memo Distribution GL Account
16189 , p_source_14 IN NUMBER
16190 --SLA Party Type
16191 , p_source_39 IN VARCHAR2
16192 --Credit Memo Distribution Identifier
16193 , p_source_52 IN NUMBER
16194 --Credit memo distributions type
16195 , p_source_53 IN VARCHAR2
16196 --Credit Memo Currency Code
16197 , p_source_54 IN VARCHAR2
16198 --Credit Memo Exchange Date
16199 , p_source_55 IN DATE
16200 --Credit Memo Exchange Rate
16201 , p_source_56 IN NUMBER
16202 --Credit Memo Exchange Rate Type
16203 , p_source_57 IN VARCHAR2
16204 --Gain Loss Reference
16205 , p_source_58 IN VARCHAR2
16206 --Credit Memo Accounting Amount
16207 , p_source_59 IN NUMBER
16208 --Credit Memo Bill To Customer Account Identifier
16209 , p_source_60 IN NUMBER
16210 --Credit Memo Bill To Customer Site Use Identifier
16211 , p_source_61 IN NUMBER
16212 --Credit Memo Tax Line Identifier
16213 , p_source_62 IN NUMBER
16214 --Credit Memo Distribution Account Class
16215 , p_source_63 IN VARCHAR2
16216 --Credit Memo Distribution Entered Amount
16217 , p_source_64 IN NUMBER
16218 --Transaction Line Flexfield Attribute 1
16219 , p_source_65 IN VARCHAR2
16220 )
16221 IS
16222
16223 l_component_type VARCHAR2(80);
16224 l_component_code VARCHAR2(30);
16225 l_component_type_code VARCHAR2(1);
16226 l_component_appl_id INTEGER;
16227 l_amb_context_code VARCHAR2(30);
16228 l_entity_code VARCHAR2(30);
16229 l_event_class_code VARCHAR2(30);
16230 l_ae_header_id NUMBER;
16231 l_event_type_code VARCHAR2(30);
16232 l_line_definition_code VARCHAR2(30);
16233 l_line_definition_owner_code VARCHAR2(1);
16234 --
16235 -- adr variables
16236 l_segment VARCHAR2(30);
16237 l_ccid NUMBER;
16238 l_adr_transaction_coa_id NUMBER;
16239 l_adr_accounting_coa_id NUMBER;
16240 l_adr_flexfield_segment_code VARCHAR2(30);
16241 l_adr_flex_value_set_id NUMBER;
16242 l_adr_value_type_code VARCHAR2(30);
16243 l_adr_value_combination_id NUMBER;
16244 l_adr_value_segment_code VARCHAR2(30);
16245
16246 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16247 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16248 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16249 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16250
16251 -- 4262811 Variables ------------------------------------------------------------------------------------------
16252 l_entered_amt_idx NUMBER;
16253 l_accted_amt_idx NUMBER;
16254 l_acc_rev_flag VARCHAR2(1);
16255 l_accrual_line_num NUMBER;
16256 l_tmp_amt NUMBER;
16257 l_acc_rev_natural_side_code VARCHAR2(1);
16258
16259 l_num_entries NUMBER;
16260 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16261 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16262 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16263 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16264 l_recog_line_1 NUMBER;
16265 l_recog_line_2 NUMBER;
16266
16267 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16268 l_bflow_applied_to_amt NUMBER; -- 5132302
16269 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16270
16271 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16272
16273 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16274 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16275
16276 ---------------------------------------------------------------------------------------------------------------
16277
16278
16279 --
16280 -- bulk performance
16281 --
16282 l_balance_type_code VARCHAR2(1);
16283 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16284 l_log_module VARCHAR2(240);
16285
16286 --
16287 -- Upgrade strategy
16288 --
16289 l_actual_upg_option VARCHAR2(1);
16290 l_enc_upg_option VARCHAR2(1);
16291
16292 --
16293 BEGIN
16294 --
16295 IF g_log_enabled THEN
16296 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
16297 END IF;
16298 --
16299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16300
16301 trace
16305
16302 (p_msg => 'BEGIN of AcctLineType_48'
16303 ,p_level => C_LEVEL_PROCEDURE
16304 ,p_module => l_log_module);
16306 END IF;
16307 --
16308 l_component_type := 'AMB_JLT';
16309 l_component_code := 'CM_DEFAULT_REV';
16310 l_component_type_code := 'S';
16311 l_component_appl_id := 222;
16312 l_amb_context_code := 'DEFAULT';
16313 l_entity_code := 'TRANSACTIONS';
16314 l_event_class_code := 'CREDIT_MEMO';
16315 l_event_type_code := 'CREDIT_MEMO_ALL';
16316 l_line_definition_owner_code := 'S';
16317 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
16318 --
16319 l_balance_type_code := 'A';
16320 l_segment := NULL;
16321 l_ccid := NULL;
16322 l_adr_transaction_coa_id := NULL;
16323 l_adr_accounting_coa_id := NULL;
16324 l_adr_flexfield_segment_code := NULL;
16325 l_adr_flex_value_set_id := NULL;
16326 l_adr_value_type_code := NULL;
16327 l_adr_value_combination_id := NULL;
16328 l_adr_value_segment_code := NULL;
16329
16330 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16331 l_bflow_class_code := ''; -- 4219869 Business Flow
16332 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16333 l_budgetary_control_flag := 'N';
16334
16335 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16336 l_bflow_applied_to_amt := NULL; -- 5132302
16337 l_entered_amt_idx := NULL; -- 4262811
16338 l_accted_amt_idx := NULL; -- 4262811
16339 l_acc_rev_flag := NULL; -- 4262811
16340 l_accrual_line_num := NULL; -- 4262811
16341 l_tmp_amt := NULL; -- 4262811
16342 --
16343
16344 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16345 l_balance_type_code <> 'B' THEN
16346 IF NVL(p_source_63,'
16347 ') = 'REV'
16348 THEN
16349
16350 --
16351 XLA_AE_LINES_PKG.SetNewLine;
16352
16353 p_balance_type_code := l_balance_type_code;
16354 -- set the flag so later we will know whether the gain loss line needs to be created
16355
16356 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16357 p_actual_flag :='A';
16358 END IF;
16359
16360 --
16361 -- bulk performance
16362 --
16363 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16364 p_header_num => 0); -- 4262811
16365 --
16366 -- set accounting line options
16367 --
16368 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16369 p_natural_side_code => 'C'
16370 , p_gain_or_loss_flag => 'N'
16371 , p_gl_transfer_mode_code => 'S'
16372 , p_acct_entry_type_code => 'A'
16373 , p_switch_side_flag => 'Y'
16374 , p_merge_duplicate_code => 'A'
16375 );
16376 --
16377 l_acc_rev_natural_side_code := 'D'; -- 4262811
16378 --
16379 --
16380 -- set accounting line type info
16381 --
16382 xla_ae_lines_pkg.SetAcctLineType
16383 (p_component_type => l_component_type
16384 ,p_event_type_code => l_event_type_code
16385 ,p_line_definition_owner_code => l_line_definition_owner_code
16386 ,p_line_definition_code => l_line_definition_code
16387 ,p_accounting_line_code => l_component_code
16388 ,p_accounting_line_type_code => l_component_type_code
16389 ,p_accounting_line_appl_id => l_component_appl_id
16390 ,p_amb_context_code => l_amb_context_code
16391 ,p_entity_code => l_entity_code
16392 ,p_event_class_code => l_event_class_code);
16393 --
16394 -- set accounting class
16395 --
16396 xla_ae_lines_pkg.SetAcctClass(
16397 p_accounting_class_code => 'REVENUE'
16398 , p_ae_header_id => l_ae_header_id
16399 );
16400
16401 --
16402 -- set rounding class
16403 --
16404 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16405 'RECEIVABLE';
16406
16407 --
16408 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16409 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16410 --
16411 -- bulk performance
16412 --
16413 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16414
16415 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16416 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16417
16418 -- 4955764
16419 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16420 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16421
16422 -- 4458381 Public Sector Enh
16423
16424 --
16425 -- set accounting attributes for the line type
16426 --
16427 l_entered_amt_idx := 3;
16428 l_accted_amt_idx := 9;
16429 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16430 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
16431 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
16435 l_rec_acct_attrs.array_num_value(3) := p_source_64;
16432 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
16433 l_rec_acct_attrs.array_char_value(2) := p_source_53;
16434 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
16436 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
16437 l_rec_acct_attrs.array_char_value(4) := p_source_54;
16438 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
16439 l_rec_acct_attrs.array_date_value(5) := p_source_55;
16440 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
16441 l_rec_acct_attrs.array_num_value(6) := p_source_56;
16442 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
16443 l_rec_acct_attrs.array_char_value(7) := p_source_57;
16444 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
16445 l_rec_acct_attrs.array_char_value(8) := p_source_58;
16446 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
16447 l_rec_acct_attrs.array_num_value(9) := p_source_59;
16448 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
16449 l_rec_acct_attrs.array_num_value(10) := p_source_60;
16450 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
16451 l_rec_acct_attrs.array_num_value(11) := p_source_61;
16452 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
16453 l_rec_acct_attrs.array_char_value(12) := p_source_39;
16454 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
16455 l_rec_acct_attrs.array_num_value(13) := p_source_62;
16456
16457 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16458 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16459
16460 ---------------------------------------------------------------------------------------------------------------
16461 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16462 ---------------------------------------------------------------------------------------------------------------
16463 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16464
16465 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16466 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16467
16468 IF xla_accounting_cache_pkg.GetValueChar
16469 (p_source_code => 'LEDGER_CATEGORY_CODE'
16470 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16471 AND l_bflow_method_code = 'PRIOR_ENTRY'
16472 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16473 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16474 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16475 )
16476 THEN
16477 xla_ae_lines_pkg.BflowUpgEntry
16478 (p_business_method_code => l_bflow_method_code
16479 ,p_business_class_code => l_bflow_class_code
16480 ,p_balance_type => l_balance_type_code);
16481 ELSE
16482 NULL;
16483 -- No business flow processing for business flow method of NONE.
16484 END IF;
16485
16486 --
16487 -- call analytical criteria
16488 --
16489
16490
16491 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
16492 xla_ae_lines_pkg.SetAnalyticalCriteria(
16493 p_analytical_criterion_name => 'Project Number'
16494 , p_analytical_criterion_owner => 'S'
16495 , p_analytical_criterion_code => 'PROJECT_NUMBER'
16496 , p_amb_context_code => 'DEFAULT'
16497 , p_balancing_flag => 'N'
16498
16499 , p_analytical_detail_char_1 => TO_CHAR(p_source_65)
16500 , p_analytical_detail_num_1 => NULL
16501 , p_analytical_detail_date_1 => NULL
16502
16503 , p_ae_header_id => l_ae_header_id
16504 )
16505 ;
16506 --
16507
16508 --
16509 -- call description
16510 --
16511 -- No description or it is inherited.
16512 --
16513 -- call ADRs
16514 -- Bug 4922099
16515 --
16516 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16517 (NVL(l_actual_upg_option, 'N') = 'O') OR
16518 (NVL(l_enc_upg_option, 'N') = 'O')
16519 )
16520 THEN
16521 NULL;
16522 --
16523 --
16524
16525 l_ccid := AcctDerRule_12(
16526 p_application_id => p_application_id
16527 , p_ae_header_id => l_ae_header_id
16528 , p_source_14 => p_source_14
16529 , x_transaction_coa_id => l_adr_transaction_coa_id
16530 , x_accounting_coa_id => l_adr_accounting_coa_id
16531 , x_value_type_code => l_adr_value_type_code
16532 , p_side => 'NA'
16533 );
16534
16535 xla_ae_lines_pkg.set_ccid(
16536 p_code_combination_id => l_ccid
16537 , p_value_type_code => l_adr_value_type_code
16538 , p_transaction_coa_id => l_adr_transaction_coa_id
16539 , p_accounting_coa_id => l_adr_accounting_coa_id
16540 , p_adr_code => 'CM_DIST_CCID'
16541 , p_adr_type_code => 'S'
16542 , p_component_type => l_component_type
16543 , p_component_code => l_component_code
16544 , p_component_type_code => l_component_type_code
16545 , p_component_appl_id => l_component_appl_id
16549
16546 , p_amb_context_code => l_amb_context_code
16547 , p_side => 'NA'
16548 );
16550
16551 --
16552 --
16553 END IF;
16554 --
16555 -- Bug 4922099
16556 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16557 (NVL(l_enc_upg_option, 'N') = 'O')
16558 ) AND
16559 (l_bflow_method_code = 'PRIOR_ENTRY')
16560 )
16561 THEN
16562 IF
16563 --
16564 1 = 2
16565 --
16566 THEN
16567 xla_accounting_err_pkg.build_message
16568 (p_appli_s_name => 'XLA'
16569 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16570 ,p_token_1 => 'LINE_NUMBER'
16571 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16572 ,p_token_2 => 'LINE_TYPE_NAME'
16573 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16574 l_component_type
16575 ,l_component_code
16576 ,l_component_type_code
16577 ,l_component_appl_id
16578 ,l_amb_context_code
16579 ,l_entity_code
16580 ,l_event_class_code
16581 )
16582 ,p_token_3 => 'OWNER'
16583 ,p_value_3 => xla_lookups_pkg.get_meaning(
16584 p_lookup_type => 'XLA_OWNER_TYPE'
16585 ,p_lookup_code => l_component_type_code
16586 )
16587 ,p_token_4 => 'PRODUCT_NAME'
16588 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16589 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16590 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16591 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16592 ,p_ae_header_id => NULL
16593 );
16594
16595 IF (C_LEVEL_ERROR>= g_log_level) THEN
16596 trace
16597 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16598 ,p_level => C_LEVEL_ERROR
16599 ,p_module => l_log_module);
16600 END IF;
16601 END IF;
16602 END IF;
16603 --
16604 --
16605 ------------------------------------------------------------------------------------------------
16606 -- 4219869 Business Flow
16607 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16608 -- Prior Entry. Currently, the following code is always generated.
16609 ------------------------------------------------------------------------------------------------
16610 XLA_AE_LINES_PKG.ValidateCurrentLine;
16611
16612 ------------------------------------------------------------------------------------
16613 -- 4219869 Business Flow
16614 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16615 ------------------------------------------------------------------------------------
16616 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16617
16618 ----------------------------------------------------------------------------------
16619 -- 4219869 Business Flow
16620 -- Update journal entry status -- Need to generate this within IF <condition>
16621 ----------------------------------------------------------------------------------
16622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16624 ,p_balance_type_code => l_balance_type_code
16625 );
16626
16627 -------------------------------------------------------------------------------------------
16628 -- 4262811 - Generate the Accrual Reversal lines
16629 -------------------------------------------------------------------------------------------
16630 BEGIN
16631 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16632 (g_array_event(p_event_id).array_value_num('header_index'));
16633 IF l_acc_rev_flag IS NULL THEN
16634 l_acc_rev_flag := 'N';
16635 END IF;
16636 EXCEPTION
16637 WHEN OTHERS THEN
16638 l_acc_rev_flag := 'N';
16639 END;
16640 --
16641 IF (l_acc_rev_flag = 'Y') THEN
16642
16643 -- 4645092 ------------------------------------------------------------------------------
16644 -- To allow MPA report to determine if it should generate report process
16645 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16646 ------------------------------------------------------------------------------------------
16647
16648 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16649 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16653 --
16650 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16651 -- call ADRs
16652 -- Bug 4922099
16654 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16655 (NVL(l_actual_upg_option, 'N') = 'O') OR
16656 (NVL(l_enc_upg_option, 'N') = 'O')
16657 )
16658 THEN
16659 NULL;
16660 --
16661 --
16662
16663 l_ccid := AcctDerRule_12(
16664 p_application_id => p_application_id
16665 , p_ae_header_id => l_ae_header_id
16666 , p_source_14 => p_source_14
16667 , x_transaction_coa_id => l_adr_transaction_coa_id
16668 , x_accounting_coa_id => l_adr_accounting_coa_id
16669 , x_value_type_code => l_adr_value_type_code
16670 , p_side => 'NA'
16671 );
16672
16673 xla_ae_lines_pkg.set_ccid(
16674 p_code_combination_id => l_ccid
16675 , p_value_type_code => l_adr_value_type_code
16676 , p_transaction_coa_id => l_adr_transaction_coa_id
16677 , p_accounting_coa_id => l_adr_accounting_coa_id
16678 , p_adr_code => 'CM_DIST_CCID'
16679 , p_adr_type_code => 'S'
16680 , p_component_type => l_component_type
16681 , p_component_code => l_component_code
16682 , p_component_type_code => l_component_type_code
16683 , p_component_appl_id => l_component_appl_id
16684 , p_amb_context_code => l_amb_context_code
16685 , p_side => 'NA'
16686 );
16687
16688
16689 --
16690 --
16691 END IF;
16692
16693 --
16694 -- Update the line information that should be overwritten
16695 --
16696 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16697 p_header_num => 1);
16698 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16699
16700 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16701
16702 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16703 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16704 END IF;
16705
16706 --
16707 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16708 --
16709 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16710 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16711 ELSE
16712 ---------------------------------------------------------------------------------------------------
16713 -- 4262811a Switch Sign
16714 ---------------------------------------------------------------------------------------------------
16715 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16716 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16717 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16718 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16719 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16720 -- 5132302
16721 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16722 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16723
16724 END IF;
16725
16726 -- 4955764
16727 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16728 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16729
16730
16731 XLA_AE_LINES_PKG.ValidateCurrentLine;
16732 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16733
16734 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16735 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16736 ,p_balance_type_code => l_balance_type_code);
16737
16738 END IF;
16739
16740 -----------------------------------------------------------------------------------------
16741 -- 4262811 Multiperiod Accounting
16742 -----------------------------------------------------------------------------------------
16743 -- No MPA option is assigned.
16744
16745
16746 END IF;
16747 END IF;
16748 --
16749
16750 --
16751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16752 trace
16753 (p_msg => 'END of AcctLineType_48'
16754 ,p_level => C_LEVEL_PROCEDURE
16755 ,p_module => l_log_module);
16756 END IF;
16757 --
16758 EXCEPTION
16759 WHEN xla_exceptions_pkg.application_exception THEN
16760 RAISE;
16761 WHEN OTHERS THEN
16762 xla_exceptions_pkg.raise_message
16763 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_48');
16764 END AcctLineType_48;
16765 --
16766
16767 ---------------------------------------
16768 --
16769 -- PRIVATE FUNCTION
16770 -- AcctLineType_49
16771 --
16772 ---------------------------------------
16773 PROCEDURE AcctLineType_49 (
16774 p_application_id IN NUMBER
16775 ,p_event_id IN NUMBER
16776 ,p_calculate_acctd_flag IN VARCHAR2
16777 ,p_calculate_g_l_flag IN VARCHAR2
16778 ,p_actual_flag IN OUT VARCHAR2
16782 --Credit Memo Distribution GL Account
16779 ,p_balance_type_code OUT VARCHAR2
16780 ,p_gain_or_loss_ref OUT VARCHAR2
16781
16783 , p_source_14 IN NUMBER
16784 --SLA Party Type
16785 , p_source_39 IN VARCHAR2
16786 --Credit Memo Distribution Identifier
16787 , p_source_52 IN NUMBER
16788 --Credit memo distributions type
16789 , p_source_53 IN VARCHAR2
16790 --Credit Memo Currency Code
16791 , p_source_54 IN VARCHAR2
16792 --Credit Memo Exchange Date
16793 , p_source_55 IN DATE
16794 --Credit Memo Exchange Rate
16795 , p_source_56 IN NUMBER
16796 --Credit Memo Exchange Rate Type
16797 , p_source_57 IN VARCHAR2
16798 --Gain Loss Reference
16799 , p_source_58 IN VARCHAR2
16800 --Credit Memo Accounting Amount
16801 , p_source_59 IN NUMBER
16802 --Credit Memo Bill To Customer Account Identifier
16803 , p_source_60 IN NUMBER
16804 --Credit Memo Bill To Customer Site Use Identifier
16805 , p_source_61 IN NUMBER
16806 --Credit Memo Tax Line Identifier
16807 , p_source_62 IN NUMBER
16808 --Credit Memo Distribution Account Class
16809 , p_source_63 IN VARCHAR2
16810 --Credit Memo Distribution Entered Amount
16811 , p_source_64 IN NUMBER
16812 )
16813 IS
16814
16815 l_component_type VARCHAR2(80);
16816 l_component_code VARCHAR2(30);
16817 l_component_type_code VARCHAR2(1);
16818 l_component_appl_id INTEGER;
16819 l_amb_context_code VARCHAR2(30);
16820 l_entity_code VARCHAR2(30);
16821 l_event_class_code VARCHAR2(30);
16822 l_ae_header_id NUMBER;
16823 l_event_type_code VARCHAR2(30);
16824 l_line_definition_code VARCHAR2(30);
16825 l_line_definition_owner_code VARCHAR2(1);
16826 --
16827 -- adr variables
16828 l_segment VARCHAR2(30);
16829 l_ccid NUMBER;
16830 l_adr_transaction_coa_id NUMBER;
16831 l_adr_accounting_coa_id NUMBER;
16832 l_adr_flexfield_segment_code VARCHAR2(30);
16833 l_adr_flex_value_set_id NUMBER;
16834 l_adr_value_type_code VARCHAR2(30);
16835 l_adr_value_combination_id NUMBER;
16836 l_adr_value_segment_code VARCHAR2(30);
16837
16838 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16839 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16840 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16841 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16842
16843 -- 4262811 Variables ------------------------------------------------------------------------------------------
16844 l_entered_amt_idx NUMBER;
16845 l_accted_amt_idx NUMBER;
16846 l_acc_rev_flag VARCHAR2(1);
16847 l_accrual_line_num NUMBER;
16848 l_tmp_amt NUMBER;
16849 l_acc_rev_natural_side_code VARCHAR2(1);
16850
16851 l_num_entries NUMBER;
16852 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16853 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16854 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16855 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16856 l_recog_line_1 NUMBER;
16857 l_recog_line_2 NUMBER;
16858
16859 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16860 l_bflow_applied_to_amt NUMBER; -- 5132302
16861 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16862
16863 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16864
16865 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16866 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16867
16868 ---------------------------------------------------------------------------------------------------------------
16869
16870
16871 --
16872 -- bulk performance
16873 --
16874 l_balance_type_code VARCHAR2(1);
16875 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16876 l_log_module VARCHAR2(240);
16877
16878 --
16879 -- Upgrade strategy
16880 --
16881 l_actual_upg_option VARCHAR2(1);
16882 l_enc_upg_option VARCHAR2(1);
16883
16884 --
16885 BEGIN
16886 --
16887 IF g_log_enabled THEN
16888 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
16889 END IF;
16890 --
16891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16892
16893 trace
16894 (p_msg => 'BEGIN of AcctLineType_49'
16895 ,p_level => C_LEVEL_PROCEDURE
16896 ,p_module => l_log_module);
16897
16898 END IF;
16899 --
16900 l_component_type := 'AMB_JLT';
16901 l_component_code := 'CM_DEFAULT_TAX';
16902 l_component_type_code := 'S';
16903 l_component_appl_id := 222;
16904 l_amb_context_code := 'DEFAULT';
16905 l_entity_code := 'TRANSACTIONS';
16906 l_event_class_code := 'CREDIT_MEMO';
16907 l_event_type_code := 'CREDIT_MEMO_ALL';
16908 l_line_definition_owner_code := 'S';
16909 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
16910 --
16911 l_balance_type_code := 'A';
16912 l_segment := NULL;
16913 l_ccid := NULL;
16914 l_adr_transaction_coa_id := NULL;
16915 l_adr_accounting_coa_id := NULL;
16919 l_adr_value_combination_id := NULL;
16916 l_adr_flexfield_segment_code := NULL;
16917 l_adr_flex_value_set_id := NULL;
16918 l_adr_value_type_code := NULL;
16920 l_adr_value_segment_code := NULL;
16921
16922 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16923 l_bflow_class_code := ''; -- 4219869 Business Flow
16924 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16925 l_budgetary_control_flag := 'N';
16926
16927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16928 l_bflow_applied_to_amt := NULL; -- 5132302
16929 l_entered_amt_idx := NULL; -- 4262811
16930 l_accted_amt_idx := NULL; -- 4262811
16931 l_acc_rev_flag := NULL; -- 4262811
16932 l_accrual_line_num := NULL; -- 4262811
16933 l_tmp_amt := NULL; -- 4262811
16934 --
16935
16936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16937 l_balance_type_code <> 'B' THEN
16938 IF NVL(p_source_63,'
16939 ') = 'TAX'
16940 THEN
16941
16942 --
16943 XLA_AE_LINES_PKG.SetNewLine;
16944
16945 p_balance_type_code := l_balance_type_code;
16946 -- set the flag so later we will know whether the gain loss line needs to be created
16947
16948 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16949 p_actual_flag :='A';
16950 END IF;
16951
16952 --
16953 -- bulk performance
16954 --
16955 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16956 p_header_num => 0); -- 4262811
16957 --
16958 -- set accounting line options
16959 --
16960 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16961 p_natural_side_code => 'C'
16962 , p_gain_or_loss_flag => 'N'
16963 , p_gl_transfer_mode_code => 'S'
16964 , p_acct_entry_type_code => 'A'
16965 , p_switch_side_flag => 'Y'
16966 , p_merge_duplicate_code => 'A'
16967 );
16968 --
16969 l_acc_rev_natural_side_code := 'D'; -- 4262811
16970 --
16971 --
16972 -- set accounting line type info
16973 --
16974 xla_ae_lines_pkg.SetAcctLineType
16975 (p_component_type => l_component_type
16976 ,p_event_type_code => l_event_type_code
16977 ,p_line_definition_owner_code => l_line_definition_owner_code
16978 ,p_line_definition_code => l_line_definition_code
16979 ,p_accounting_line_code => l_component_code
16980 ,p_accounting_line_type_code => l_component_type_code
16981 ,p_accounting_line_appl_id => l_component_appl_id
16982 ,p_amb_context_code => l_amb_context_code
16983 ,p_entity_code => l_entity_code
16984 ,p_event_class_code => l_event_class_code);
16985 --
16986 -- set accounting class
16987 --
16988 xla_ae_lines_pkg.SetAcctClass(
16989 p_accounting_class_code => 'TAX'
16990 , p_ae_header_id => l_ae_header_id
16991 );
16992
16993 --
16994 -- set rounding class
16995 --
16996 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16997 'RECEIVABLE';
16998
16999 --
17000 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17001 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17002 --
17003 -- bulk performance
17004 --
17005 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17006
17007 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17008 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17009
17010 -- 4955764
17011 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17012 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17013
17014 -- 4458381 Public Sector Enh
17015
17016 --
17017 -- set accounting attributes for the line type
17018 --
17019 l_entered_amt_idx := 3;
17020 l_accted_amt_idx := 9;
17021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17022 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
17023 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
17024 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
17025 l_rec_acct_attrs.array_char_value(2) := p_source_53;
17026 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
17027 l_rec_acct_attrs.array_num_value(3) := p_source_64;
17028 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
17029 l_rec_acct_attrs.array_char_value(4) := p_source_54;
17030 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
17031 l_rec_acct_attrs.array_date_value(5) := p_source_55;
17032 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
17033 l_rec_acct_attrs.array_num_value(6) := p_source_56;
17034 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
17035 l_rec_acct_attrs.array_char_value(7) := p_source_57;
17036 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
17037 l_rec_acct_attrs.array_char_value(8) := p_source_58;
17038 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
17039 l_rec_acct_attrs.array_num_value(9) := p_source_59;
17040 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
17044 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
17041 l_rec_acct_attrs.array_num_value(10) := p_source_60;
17042 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
17043 l_rec_acct_attrs.array_num_value(11) := p_source_61;
17045 l_rec_acct_attrs.array_char_value(12) := p_source_39;
17046 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
17047 l_rec_acct_attrs.array_num_value(13) := p_source_62;
17048
17049 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17050 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17051
17052 ---------------------------------------------------------------------------------------------------------------
17053 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17054 ---------------------------------------------------------------------------------------------------------------
17055 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17056
17057 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17058 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17059
17060 IF xla_accounting_cache_pkg.GetValueChar
17061 (p_source_code => 'LEDGER_CATEGORY_CODE'
17062 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17063 AND l_bflow_method_code = 'PRIOR_ENTRY'
17064 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17065 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17066 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17067 )
17068 THEN
17069 xla_ae_lines_pkg.BflowUpgEntry
17070 (p_business_method_code => l_bflow_method_code
17071 ,p_business_class_code => l_bflow_class_code
17072 ,p_balance_type => l_balance_type_code);
17073 ELSE
17074 NULL;
17075 -- No business flow processing for business flow method of NONE.
17076 END IF;
17077
17078 --
17079 -- call analytical criteria
17080 --
17081
17082 --
17083 -- call description
17084 --
17085 -- No description or it is inherited.
17086 --
17087 -- call ADRs
17088 -- Bug 4922099
17089 --
17090 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17091 (NVL(l_actual_upg_option, 'N') = 'O') OR
17092 (NVL(l_enc_upg_option, 'N') = 'O')
17093 )
17094 THEN
17095 NULL;
17096 --
17097 --
17098
17099 l_ccid := AcctDerRule_12(
17100 p_application_id => p_application_id
17101 , p_ae_header_id => l_ae_header_id
17102 , p_source_14 => p_source_14
17103 , x_transaction_coa_id => l_adr_transaction_coa_id
17104 , x_accounting_coa_id => l_adr_accounting_coa_id
17105 , x_value_type_code => l_adr_value_type_code
17106 , p_side => 'NA'
17107 );
17108
17109 xla_ae_lines_pkg.set_ccid(
17110 p_code_combination_id => l_ccid
17111 , p_value_type_code => l_adr_value_type_code
17112 , p_transaction_coa_id => l_adr_transaction_coa_id
17113 , p_accounting_coa_id => l_adr_accounting_coa_id
17114 , p_adr_code => 'CM_DIST_CCID'
17115 , p_adr_type_code => 'S'
17116 , p_component_type => l_component_type
17117 , p_component_code => l_component_code
17118 , p_component_type_code => l_component_type_code
17119 , p_component_appl_id => l_component_appl_id
17120 , p_amb_context_code => l_amb_context_code
17121 , p_side => 'NA'
17122 );
17123
17124
17125 --
17126 --
17127 END IF;
17128 --
17129 -- Bug 4922099
17130 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17131 (NVL(l_enc_upg_option, 'N') = 'O')
17132 ) AND
17133 (l_bflow_method_code = 'PRIOR_ENTRY')
17134 )
17135 THEN
17136 IF
17137 --
17138 1 = 2
17139 --
17140 THEN
17141 xla_accounting_err_pkg.build_message
17142 (p_appli_s_name => 'XLA'
17143 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17144 ,p_token_1 => 'LINE_NUMBER'
17145 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17146 ,p_token_2 => 'LINE_TYPE_NAME'
17147 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17148 l_component_type
17149 ,l_component_code
17150 ,l_component_type_code
17151 ,l_component_appl_id
17152 ,l_amb_context_code
17153 ,l_entity_code
17154 ,l_event_class_code
17155 )
17156 ,p_token_3 => 'OWNER'
17157 ,p_value_3 => xla_lookups_pkg.get_meaning(
17161 ,p_token_4 => 'PRODUCT_NAME'
17158 p_lookup_type => 'XLA_OWNER_TYPE'
17159 ,p_lookup_code => l_component_type_code
17160 )
17162 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17163 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17164 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17165 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17166 ,p_ae_header_id => NULL
17167 );
17168
17169 IF (C_LEVEL_ERROR>= g_log_level) THEN
17170 trace
17171 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17172 ,p_level => C_LEVEL_ERROR
17173 ,p_module => l_log_module);
17174 END IF;
17175 END IF;
17176 END IF;
17177 --
17178 --
17179 ------------------------------------------------------------------------------------------------
17180 -- 4219869 Business Flow
17181 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17182 -- Prior Entry. Currently, the following code is always generated.
17183 ------------------------------------------------------------------------------------------------
17184 XLA_AE_LINES_PKG.ValidateCurrentLine;
17185
17186 ------------------------------------------------------------------------------------
17187 -- 4219869 Business Flow
17188 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17189 ------------------------------------------------------------------------------------
17190 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17191
17192 ----------------------------------------------------------------------------------
17193 -- 4219869 Business Flow
17194 -- Update journal entry status -- Need to generate this within IF <condition>
17195 ----------------------------------------------------------------------------------
17196 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17197 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17198 ,p_balance_type_code => l_balance_type_code
17199 );
17200
17201 -------------------------------------------------------------------------------------------
17202 -- 4262811 - Generate the Accrual Reversal lines
17203 -------------------------------------------------------------------------------------------
17204 BEGIN
17205 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17206 (g_array_event(p_event_id).array_value_num('header_index'));
17207 IF l_acc_rev_flag IS NULL THEN
17208 l_acc_rev_flag := 'N';
17209 END IF;
17210 EXCEPTION
17211 WHEN OTHERS THEN
17212 l_acc_rev_flag := 'N';
17213 END;
17214 --
17215 IF (l_acc_rev_flag = 'Y') THEN
17216
17217 -- 4645092 ------------------------------------------------------------------------------
17218 -- To allow MPA report to determine if it should generate report process
17219 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17220 ------------------------------------------------------------------------------------------
17221
17222 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17223 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17224 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17225 -- call ADRs
17226 -- Bug 4922099
17227 --
17228 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17229 (NVL(l_actual_upg_option, 'N') = 'O') OR
17230 (NVL(l_enc_upg_option, 'N') = 'O')
17231 )
17232 THEN
17233 NULL;
17234 --
17235 --
17236
17237 l_ccid := AcctDerRule_12(
17238 p_application_id => p_application_id
17239 , p_ae_header_id => l_ae_header_id
17240 , p_source_14 => p_source_14
17241 , x_transaction_coa_id => l_adr_transaction_coa_id
17242 , x_accounting_coa_id => l_adr_accounting_coa_id
17243 , x_value_type_code => l_adr_value_type_code
17244 , p_side => 'NA'
17245 );
17246
17247 xla_ae_lines_pkg.set_ccid(
17248 p_code_combination_id => l_ccid
17249 , p_value_type_code => l_adr_value_type_code
17250 , p_transaction_coa_id => l_adr_transaction_coa_id
17251 , p_accounting_coa_id => l_adr_accounting_coa_id
17252 , p_adr_code => 'CM_DIST_CCID'
17253 , p_adr_type_code => 'S'
17254 , p_component_type => l_component_type
17255 , p_component_code => l_component_code
17256 , p_component_type_code => l_component_type_code
17257 , p_component_appl_id => l_component_appl_id
17258 , p_amb_context_code => l_amb_context_code
17259 , p_side => 'NA'
17260 );
17261
17262
17263 --
17264 --
17265 END IF;
17266
17267 --
17268 -- Update the line information that should be overwritten
17269 --
17270 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17271 p_header_num => 1);
17275
17272 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17273
17274 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17276 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17277 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17278 END IF;
17279
17280 --
17281 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17282 --
17283 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17284 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17285 ELSE
17286 ---------------------------------------------------------------------------------------------------
17287 -- 4262811a Switch Sign
17288 ---------------------------------------------------------------------------------------------------
17289 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17290 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17291 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17292 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17293 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17294 -- 5132302
17295 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17296 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17297
17298 END IF;
17299
17300 -- 4955764
17301 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17302 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17303
17304
17305 XLA_AE_LINES_PKG.ValidateCurrentLine;
17306 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17307
17308 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17309 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17310 ,p_balance_type_code => l_balance_type_code);
17311
17312 END IF;
17313
17314 -----------------------------------------------------------------------------------------
17315 -- 4262811 Multiperiod Accounting
17316 -----------------------------------------------------------------------------------------
17317 -- No MPA option is assigned.
17318
17319
17320 END IF;
17321 END IF;
17322 --
17323
17324 --
17325 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17326 trace
17327 (p_msg => 'END of AcctLineType_49'
17328 ,p_level => C_LEVEL_PROCEDURE
17329 ,p_module => l_log_module);
17330 END IF;
17331 --
17332 EXCEPTION
17333 WHEN xla_exceptions_pkg.application_exception THEN
17334 RAISE;
17335 WHEN OTHERS THEN
17336 xla_exceptions_pkg.raise_message
17337 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_49');
17338 END AcctLineType_49;
17339 --
17340
17341 ---------------------------------------
17342 --
17343 -- PRIVATE FUNCTION
17344 -- AcctLineType_50
17345 --
17346 ---------------------------------------
17347 PROCEDURE AcctLineType_50 (
17348 p_application_id IN NUMBER
17349 ,p_event_id IN NUMBER
17350 ,p_calculate_acctd_flag IN VARCHAR2
17351 ,p_calculate_g_l_flag IN VARCHAR2
17352 ,p_actual_flag IN OUT VARCHAR2
17353 ,p_balance_type_code OUT VARCHAR2
17354 ,p_gain_or_loss_ref OUT VARCHAR2
17355
17356 --System Gain Account
17357 , p_source_24 IN NUMBER
17358 --System Loss Account
17359 , p_source_25 IN NUMBER
17360 --SLA Party Type
17361 , p_source_39 IN VARCHAR2
17362 --Credit Memo Distribution Identifier
17363 , p_source_52 IN NUMBER
17364 --Credit memo distributions type
17365 , p_source_53 IN VARCHAR2
17366 --Gain Loss Reference
17367 , p_source_58 IN VARCHAR2
17368 --Credit Memo Accounting Amount
17369 , p_source_59 IN NUMBER
17370 --Credit Memo Bill To Customer Account Identifier
17371 , p_source_60 IN NUMBER
17372 --Credit Memo Bill To Customer Site Use Identifier
17373 , p_source_61 IN NUMBER
17374 --Credit Memo Tax Line Identifier
17375 , p_source_62 IN NUMBER
17376 )
17377 IS
17378
17379 l_component_type VARCHAR2(80);
17380 l_component_code VARCHAR2(30);
17381 l_component_type_code VARCHAR2(1);
17382 l_component_appl_id INTEGER;
17383 l_amb_context_code VARCHAR2(30);
17384 l_entity_code VARCHAR2(30);
17385 l_event_class_code VARCHAR2(30);
17386 l_ae_header_id NUMBER;
17387 l_event_type_code VARCHAR2(30);
17388 l_line_definition_code VARCHAR2(30);
17389 l_line_definition_owner_code VARCHAR2(1);
17390 --
17391 -- adr variables
17392 l_segment VARCHAR2(30);
17393 l_ccid NUMBER;
17394 l_adr_transaction_coa_id NUMBER;
17395 l_adr_accounting_coa_id NUMBER;
17396 l_adr_flexfield_segment_code VARCHAR2(30);
17397 l_adr_flex_value_set_id NUMBER;
17398 l_adr_value_type_code VARCHAR2(30);
17399 l_adr_value_combination_id NUMBER;
17400 l_adr_value_segment_code VARCHAR2(30);
17401
17405 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17402 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17403 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17404 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17406
17407 -- 4262811 Variables ------------------------------------------------------------------------------------------
17408 l_entered_amt_idx NUMBER;
17409 l_accted_amt_idx NUMBER;
17410 l_acc_rev_flag VARCHAR2(1);
17411 l_accrual_line_num NUMBER;
17412 l_tmp_amt NUMBER;
17413 l_acc_rev_natural_side_code VARCHAR2(1);
17414
17415 l_num_entries NUMBER;
17416 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17417 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17418 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17419 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17420 l_recog_line_1 NUMBER;
17421 l_recog_line_2 NUMBER;
17422
17423 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17424 l_bflow_applied_to_amt NUMBER; -- 5132302
17425 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17426
17427 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17428
17429 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17430 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17431
17432 ---------------------------------------------------------------------------------------------------------------
17433
17434
17435 --
17436 -- bulk performance
17437 --
17438 l_balance_type_code VARCHAR2(1);
17439 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17440 l_log_module VARCHAR2(240);
17441
17442 --
17443 -- Upgrade strategy
17444 --
17445 l_actual_upg_option VARCHAR2(1);
17446 l_enc_upg_option VARCHAR2(1);
17447
17448 --
17449 BEGIN
17450 --
17451 IF g_log_enabled THEN
17452 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
17453 END IF;
17454 --
17455 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17456
17457 trace
17458 (p_msg => 'BEGIN of AcctLineType_50'
17459 ,p_level => C_LEVEL_PROCEDURE
17460 ,p_module => l_log_module);
17461
17462 END IF;
17463 --
17464 l_component_type := 'AMB_JLT';
17465 l_component_code := 'CM_EXCH_GAIN_LOSS';
17466 l_component_type_code := 'S';
17467 l_component_appl_id := 222;
17468 l_amb_context_code := 'DEFAULT';
17469 l_entity_code := 'TRANSACTIONS';
17470 l_event_class_code := 'CREDIT_MEMO';
17471 l_event_type_code := 'CREDIT_MEMO_ALL';
17472 l_line_definition_owner_code := 'S';
17473 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
17474 --
17475 l_balance_type_code := 'A';
17476 l_segment := NULL;
17477 l_ccid := NULL;
17478 l_adr_transaction_coa_id := NULL;
17479 l_adr_accounting_coa_id := NULL;
17480 l_adr_flexfield_segment_code := NULL;
17481 l_adr_flex_value_set_id := NULL;
17482 l_adr_value_type_code := NULL;
17483 l_adr_value_combination_id := NULL;
17484 l_adr_value_segment_code := NULL;
17485
17486 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17487 l_bflow_class_code := ''; -- 4219869 Business Flow
17488 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17489 l_budgetary_control_flag := 'N';
17490
17491 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17492 l_bflow_applied_to_amt := NULL; -- 5132302
17493 l_entered_amt_idx := NULL; -- 4262811
17494 l_accted_amt_idx := NULL; -- 4262811
17495 l_acc_rev_flag := NULL; -- 4262811
17496 l_accrual_line_num := NULL; -- 4262811
17497 l_tmp_amt := NULL; -- 4262811
17498 --
17499 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
17500 (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
17501 return;
17502 END IF;
17503
17504 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17505 l_balance_type_code <> 'B' THEN
17506
17507 --
17508 XLA_AE_LINES_PKG.SetNewLine;
17509
17510 p_balance_type_code := l_balance_type_code;
17511 -- set the flag so later we will know whether the gain loss line needs to be created
17512
17513 IF(l_balance_type_code = 'A' ) THEN
17514 p_actual_flag :='G';
17515 END IF;
17516
17517 --
17518 -- bulk performance
17519 --
17520 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17521 p_header_num => 0); -- 4262811
17522 --
17523 -- set accounting line options
17524 --
17525 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17526 p_natural_side_code => 'G'
17527 , p_gain_or_loss_flag => 'N'
17528 , p_gl_transfer_mode_code => 'S'
17529 , p_acct_entry_type_code => 'A'
17530 , p_switch_side_flag => ''
17531 , p_merge_duplicate_code => 'A'
17532 );
17536 --
17533 --
17534 l_acc_rev_natural_side_code := 'C'; -- 4262811
17535 --
17537 -- set accounting line type info
17538 --
17539 xla_ae_lines_pkg.SetAcctLineType
17540 (p_component_type => l_component_type
17541 ,p_event_type_code => l_event_type_code
17542 ,p_line_definition_owner_code => l_line_definition_owner_code
17543 ,p_line_definition_code => l_line_definition_code
17544 ,p_accounting_line_code => l_component_code
17545 ,p_accounting_line_type_code => l_component_type_code
17546 ,p_accounting_line_appl_id => l_component_appl_id
17547 ,p_amb_context_code => l_amb_context_code
17548 ,p_entity_code => l_entity_code
17549 ,p_event_class_code => l_event_class_code);
17550 --
17551 -- set accounting class
17552 --
17553 xla_ae_lines_pkg.SetAcctClass(
17554 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
17555 , p_ae_header_id => l_ae_header_id
17556 );
17557
17558 --
17559 -- set rounding class
17560 --
17561 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17562 'EXCHANGE_GAIN_LOSS';
17563
17564 --
17565 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17566 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17567 --
17568 -- bulk performance
17569 --
17570 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17571
17572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17573 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17574
17575 -- 4955764
17576 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17577 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17578
17579 -- 4458381 Public Sector Enh
17580
17581 --
17582 -- set accounting attributes for the line type
17583 --
17584 l_entered_amt_idx := NULL;
17585 l_accted_amt_idx := 4;
17586 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17587 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
17588 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
17589 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
17590 l_rec_acct_attrs.array_char_value(2) := p_source_53;
17591 l_rec_acct_attrs.array_acct_attr_code(3) := 'GAIN_LOSS_REFERENCE';
17592 l_rec_acct_attrs.array_char_value(3) := p_source_58;
17593 l_rec_acct_attrs.array_acct_attr_code(4) := 'LEDGER_AMOUNT';
17594 l_rec_acct_attrs.array_num_value(4) := p_source_59;
17595 l_rec_acct_attrs.array_acct_attr_code(5) := 'PARTY_ID';
17596 l_rec_acct_attrs.array_num_value(5) := p_source_60;
17597 l_rec_acct_attrs.array_acct_attr_code(6) := 'PARTY_SITE_ID';
17598 l_rec_acct_attrs.array_num_value(6) := p_source_61;
17599 l_rec_acct_attrs.array_acct_attr_code(7) := 'PARTY_TYPE';
17600 l_rec_acct_attrs.array_char_value(7) := p_source_39;
17601 l_rec_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
17602 l_rec_acct_attrs.array_num_value(8) := p_source_62;
17603
17604 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17605 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17606
17607 ---------------------------------------------------------------------------------------------------------------
17608 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17609 ---------------------------------------------------------------------------------------------------------------
17610 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17611
17612 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17613 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17614
17615 IF xla_accounting_cache_pkg.GetValueChar
17616 (p_source_code => 'LEDGER_CATEGORY_CODE'
17617 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17618 AND l_bflow_method_code = 'PRIOR_ENTRY'
17619 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17620 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17621 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17622 )
17623 THEN
17624 xla_ae_lines_pkg.BflowUpgEntry
17625 (p_business_method_code => l_bflow_method_code
17626 ,p_business_class_code => l_bflow_class_code
17627 ,p_balance_type => l_balance_type_code);
17628 ELSE
17629 NULL;
17630 -- No business flow processing for business flow method of NONE.
17631 END IF;
17632
17633 --
17634 -- call analytical criteria
17635 --
17636
17637 --
17638 -- call description
17639 --
17640 -- No description or it is inherited.
17641 --
17642 -- call ADRs
17643 -- Bug 4922099
17644 --
17645 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17646 (NVL(l_actual_upg_option, 'N') = 'O') OR
17647 (NVL(l_enc_upg_option, 'N') = 'O')
17648 )
17649 THEN
17650 NULL;
17651 --
17652 --
17653
17654 l_ccid := AcctDerRule_22(
17655 p_application_id => p_application_id
17656 , p_ae_header_id => l_ae_header_id
17660 , x_value_type_code => l_adr_value_type_code
17657 , p_source_24 => p_source_24
17658 , x_transaction_coa_id => l_adr_transaction_coa_id
17659 , x_accounting_coa_id => l_adr_accounting_coa_id
17661 , p_side => 'CREDIT'
17662 );
17663
17664 xla_ae_lines_pkg.set_ccid(
17665 p_code_combination_id => l_ccid
17666 , p_value_type_code => l_adr_value_type_code
17667 , p_transaction_coa_id => l_adr_transaction_coa_id
17668 , p_accounting_coa_id => l_adr_accounting_coa_id
17669 , p_adr_code => 'SYS_GAIN_CCID'
17670 , p_adr_type_code => 'S'
17671 , p_component_type => l_component_type
17672 , p_component_code => l_component_code
17673 , p_component_type_code => l_component_type_code
17674 , p_component_appl_id => l_component_appl_id
17675 , p_amb_context_code => l_amb_context_code
17676 , p_side => 'CREDIT'
17677 );
17678
17679
17680 l_ccid := AcctDerRule_23(
17681 p_application_id => p_application_id
17682 , p_ae_header_id => l_ae_header_id
17683 , p_source_25 => p_source_25
17684 , x_transaction_coa_id => l_adr_transaction_coa_id
17685 , x_accounting_coa_id => l_adr_accounting_coa_id
17686 , x_value_type_code => l_adr_value_type_code
17687 , p_side => 'DEBIT'
17688 );
17689
17690 xla_ae_lines_pkg.set_ccid(
17691 p_code_combination_id => l_ccid
17692 , p_value_type_code => l_adr_value_type_code
17693 , p_transaction_coa_id => l_adr_transaction_coa_id
17694 , p_accounting_coa_id => l_adr_accounting_coa_id
17695 , p_adr_code => 'SYS_LOSS_CCID'
17696 , p_adr_type_code => 'S'
17697 , p_component_type => l_component_type
17698 , p_component_code => l_component_code
17699 , p_component_type_code => l_component_type_code
17700 , p_component_appl_id => l_component_appl_id
17701 , p_amb_context_code => l_amb_context_code
17702 , p_side => 'DEBIT'
17703 );
17704
17705
17706 --
17707 --
17708 END IF;
17709 --
17710 -- Bug 4922099
17711 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17712 (NVL(l_enc_upg_option, 'N') = 'O')
17713 ) AND
17714 (l_bflow_method_code = 'PRIOR_ENTRY')
17715 )
17716 THEN
17717 IF
17718 --
17719 1 = 2
17720 --
17721 THEN
17722 xla_accounting_err_pkg.build_message
17723 (p_appli_s_name => 'XLA'
17724 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17725 ,p_token_1 => 'LINE_NUMBER'
17726 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17727 ,p_token_2 => 'LINE_TYPE_NAME'
17728 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17729 l_component_type
17730 ,l_component_code
17731 ,l_component_type_code
17732 ,l_component_appl_id
17733 ,l_amb_context_code
17734 ,l_entity_code
17735 ,l_event_class_code
17736 )
17737 ,p_token_3 => 'OWNER'
17738 ,p_value_3 => xla_lookups_pkg.get_meaning(
17739 p_lookup_type => 'XLA_OWNER_TYPE'
17740 ,p_lookup_code => l_component_type_code
17741 )
17742 ,p_token_4 => 'PRODUCT_NAME'
17743 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17744 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17745 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17746 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17747 ,p_ae_header_id => NULL
17748 );
17749
17750 IF (C_LEVEL_ERROR>= g_log_level) THEN
17751 trace
17752 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17753 ,p_level => C_LEVEL_ERROR
17754 ,p_module => l_log_module);
17755 END IF;
17756 END IF;
17757 END IF;
17758 --
17759 --
17760 ------------------------------------------------------------------------------------------------
17761 -- 4219869 Business Flow
17762 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17763 -- Prior Entry. Currently, the following code is always generated.
17767 ------------------------------------------------------------------------------------
17764 ------------------------------------------------------------------------------------------------
17765 XLA_AE_LINES_PKG.ValidateCurrentLine;
17766
17768 -- 4219869 Business Flow
17769 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17770 ------------------------------------------------------------------------------------
17771 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17772
17773 ----------------------------------------------------------------------------------
17774 -- 4219869 Business Flow
17775 -- Update journal entry status -- Need to generate this within IF <condition>
17776 ----------------------------------------------------------------------------------
17777 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17778 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17779 ,p_balance_type_code => l_balance_type_code
17780 );
17781
17782 -------------------------------------------------------------------------------------------
17783 -- 4262811 - Generate the Accrual Reversal lines
17784 -------------------------------------------------------------------------------------------
17785 BEGIN
17786 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17787 (g_array_event(p_event_id).array_value_num('header_index'));
17788 IF l_acc_rev_flag IS NULL THEN
17789 l_acc_rev_flag := 'N';
17790 END IF;
17791 EXCEPTION
17792 WHEN OTHERS THEN
17793 l_acc_rev_flag := 'N';
17794 END;
17795 --
17796 IF (l_acc_rev_flag = 'Y') THEN
17797
17798 -- 4645092 ------------------------------------------------------------------------------
17799 -- To allow MPA report to determine if it should generate report process
17800 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17801 ------------------------------------------------------------------------------------------
17802
17803 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17804 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17805 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17806 -- call ADRs
17807 -- Bug 4922099
17808 --
17809 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17810 (NVL(l_actual_upg_option, 'N') = 'O') OR
17811 (NVL(l_enc_upg_option, 'N') = 'O')
17812 )
17813 THEN
17814 NULL;
17815 --
17816 --
17817
17818 l_ccid := AcctDerRule_22(
17819 p_application_id => p_application_id
17820 , p_ae_header_id => l_ae_header_id
17821 , p_source_24 => p_source_24
17822 , x_transaction_coa_id => l_adr_transaction_coa_id
17823 , x_accounting_coa_id => l_adr_accounting_coa_id
17824 , x_value_type_code => l_adr_value_type_code
17825 , p_side => 'CREDIT'
17826 );
17827
17828 xla_ae_lines_pkg.set_ccid(
17829 p_code_combination_id => l_ccid
17830 , p_value_type_code => l_adr_value_type_code
17831 , p_transaction_coa_id => l_adr_transaction_coa_id
17832 , p_accounting_coa_id => l_adr_accounting_coa_id
17833 , p_adr_code => 'SYS_GAIN_CCID'
17834 , p_adr_type_code => 'S'
17835 , p_component_type => l_component_type
17836 , p_component_code => l_component_code
17837 , p_component_type_code => l_component_type_code
17838 , p_component_appl_id => l_component_appl_id
17839 , p_amb_context_code => l_amb_context_code
17840 , p_side => 'CREDIT'
17841 );
17842
17843
17844 l_ccid := AcctDerRule_23(
17845 p_application_id => p_application_id
17846 , p_ae_header_id => l_ae_header_id
17847 , p_source_25 => p_source_25
17848 , x_transaction_coa_id => l_adr_transaction_coa_id
17849 , x_accounting_coa_id => l_adr_accounting_coa_id
17850 , x_value_type_code => l_adr_value_type_code
17851 , p_side => 'DEBIT'
17852 );
17853
17854 xla_ae_lines_pkg.set_ccid(
17855 p_code_combination_id => l_ccid
17856 , p_value_type_code => l_adr_value_type_code
17857 , p_transaction_coa_id => l_adr_transaction_coa_id
17858 , p_accounting_coa_id => l_adr_accounting_coa_id
17859 , p_adr_code => 'SYS_LOSS_CCID'
17860 , p_adr_type_code => 'S'
17861 , p_component_type => l_component_type
17862 , p_component_code => l_component_code
17863 , p_component_type_code => l_component_type_code
17864 , p_component_appl_id => l_component_appl_id
17865 , p_amb_context_code => l_amb_context_code
17866 , p_side => 'DEBIT'
17867 );
17868
17869
17870 --
17871 --
17872 END IF;
17873
17874 --
17875 -- Update the line information that should be overwritten
17876 --
17877 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17878 p_header_num => 1);
17879 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17880
17881 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17882
17883 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17884 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17888 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17885 END IF;
17886
17887 --
17889 --
17890 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17891 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17892 ELSE
17893 ---------------------------------------------------------------------------------------------------
17894 -- 4262811a Switch Sign
17895 ---------------------------------------------------------------------------------------------------
17896 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17897 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17898 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17899 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17900 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17901 -- 5132302
17902 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17903 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17904
17905 END IF;
17906
17907 -- 4955764
17908 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17909 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17910
17911
17912 XLA_AE_LINES_PKG.ValidateCurrentLine;
17913 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17914
17915 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17916 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17917 ,p_balance_type_code => l_balance_type_code);
17918
17919 END IF;
17920
17921 -----------------------------------------------------------------------------------------
17922 -- 4262811 Multiperiod Accounting
17923 -----------------------------------------------------------------------------------------
17924 -- No MPA option is assigned.
17925
17926
17927 END IF;
17928 --
17929
17930 --
17931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17932 trace
17933 (p_msg => 'END of AcctLineType_50'
17934 ,p_level => C_LEVEL_PROCEDURE
17935 ,p_module => l_log_module);
17936 END IF;
17937 --
17938 EXCEPTION
17939 WHEN xla_exceptions_pkg.application_exception THEN
17940 RAISE;
17941 WHEN OTHERS THEN
17942 xla_exceptions_pkg.raise_message
17943 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_50');
17944 END AcctLineType_50;
17945 --
17946
17947 ---------------------------------------
17948 --
17949 -- PRIVATE FUNCTION
17950 -- AcctLineType_51
17951 --
17952 ---------------------------------------
17953 PROCEDURE AcctLineType_51 (
17954 p_application_id IN NUMBER
17955 ,p_event_id IN NUMBER
17956 ,p_calculate_acctd_flag IN VARCHAR2
17957 ,p_calculate_g_l_flag IN VARCHAR2
17958 ,p_actual_flag IN OUT VARCHAR2
17959 ,p_balance_type_code OUT VARCHAR2
17960 ,p_gain_or_loss_ref OUT VARCHAR2
17961
17962 --Credit Memo Distribution GL Account
17963 , p_source_14 IN NUMBER
17964 --SLA Party Type
17965 , p_source_39 IN VARCHAR2
17966 --Credit Memo Distribution Identifier
17967 , p_source_52 IN NUMBER
17968 --Credit memo distributions type
17969 , p_source_53 IN VARCHAR2
17970 --Credit Memo Currency Code
17971 , p_source_54 IN VARCHAR2
17972 --Credit Memo Exchange Date
17973 , p_source_55 IN DATE
17974 --Credit Memo Exchange Rate
17975 , p_source_56 IN NUMBER
17976 --Credit Memo Exchange Rate Type
17977 , p_source_57 IN VARCHAR2
17978 --Gain Loss Reference
17979 , p_source_58 IN VARCHAR2
17980 --Credit Memo Accounting Amount
17981 , p_source_59 IN NUMBER
17982 --Credit Memo Bill To Customer Account Identifier
17983 , p_source_60 IN NUMBER
17984 --Credit Memo Bill To Customer Site Use Identifier
17985 , p_source_61 IN NUMBER
17986 --Credit Memo Tax Line Identifier
17987 , p_source_62 IN NUMBER
17988 --Credit Memo Distribution Account Class
17989 , p_source_63 IN VARCHAR2
17990 --Credit Memo Distribution Entered Amount
17991 , p_source_64 IN NUMBER
17992 )
17993 IS
17994
17995 l_component_type VARCHAR2(80);
17996 l_component_code VARCHAR2(30);
17997 l_component_type_code VARCHAR2(1);
17998 l_component_appl_id INTEGER;
17999 l_amb_context_code VARCHAR2(30);
18000 l_entity_code VARCHAR2(30);
18001 l_event_class_code VARCHAR2(30);
18002 l_ae_header_id NUMBER;
18003 l_event_type_code VARCHAR2(30);
18004 l_line_definition_code VARCHAR2(30);
18005 l_line_definition_owner_code VARCHAR2(1);
18006 --
18007 -- adr variables
18008 l_segment VARCHAR2(30);
18009 l_ccid NUMBER;
18010 l_adr_transaction_coa_id NUMBER;
18011 l_adr_accounting_coa_id NUMBER;
18012 l_adr_flexfield_segment_code VARCHAR2(30);
18013 l_adr_flex_value_set_id NUMBER;
18014 l_adr_value_type_code VARCHAR2(30);
18015 l_adr_value_combination_id NUMBER;
18016 l_adr_value_segment_code VARCHAR2(30);
18017
18021 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18018 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18019 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18020 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18022
18023 -- 4262811 Variables ------------------------------------------------------------------------------------------
18024 l_entered_amt_idx NUMBER;
18025 l_accted_amt_idx NUMBER;
18026 l_acc_rev_flag VARCHAR2(1);
18027 l_accrual_line_num NUMBER;
18028 l_tmp_amt NUMBER;
18029 l_acc_rev_natural_side_code VARCHAR2(1);
18030
18031 l_num_entries NUMBER;
18032 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18033 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18034 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18035 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18036 l_recog_line_1 NUMBER;
18037 l_recog_line_2 NUMBER;
18038
18039 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18040 l_bflow_applied_to_amt NUMBER; -- 5132302
18041 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18042
18043 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18044
18045 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18046 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18047
18048 ---------------------------------------------------------------------------------------------------------------
18049
18050
18051 --
18052 -- bulk performance
18053 --
18054 l_balance_type_code VARCHAR2(1);
18055 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18056 l_log_module VARCHAR2(240);
18057
18058 --
18059 -- Upgrade strategy
18060 --
18061 l_actual_upg_option VARCHAR2(1);
18062 l_enc_upg_option VARCHAR2(1);
18063
18064 --
18065 BEGIN
18066 --
18067 IF g_log_enabled THEN
18068 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
18069 END IF;
18070 --
18071 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18072
18073 trace
18074 (p_msg => 'BEGIN of AcctLineType_51'
18075 ,p_level => C_LEVEL_PROCEDURE
18076 ,p_module => l_log_module);
18077
18078 END IF;
18079 --
18080 l_component_type := 'AMB_JLT';
18081 l_component_code := 'CM_ROUND';
18082 l_component_type_code := 'S';
18083 l_component_appl_id := 222;
18084 l_amb_context_code := 'DEFAULT';
18085 l_entity_code := 'TRANSACTIONS';
18086 l_event_class_code := 'CREDIT_MEMO';
18087 l_event_type_code := 'CREDIT_MEMO_ALL';
18088 l_line_definition_owner_code := 'S';
18089 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
18090 --
18091 l_balance_type_code := 'A';
18092 l_segment := NULL;
18093 l_ccid := NULL;
18094 l_adr_transaction_coa_id := NULL;
18095 l_adr_accounting_coa_id := NULL;
18096 l_adr_flexfield_segment_code := NULL;
18097 l_adr_flex_value_set_id := NULL;
18098 l_adr_value_type_code := NULL;
18099 l_adr_value_combination_id := NULL;
18100 l_adr_value_segment_code := NULL;
18101
18102 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18103 l_bflow_class_code := ''; -- 4219869 Business Flow
18104 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18105 l_budgetary_control_flag := 'N';
18106
18107 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18108 l_bflow_applied_to_amt := NULL; -- 5132302
18109 l_entered_amt_idx := NULL; -- 4262811
18110 l_accted_amt_idx := NULL; -- 4262811
18111 l_acc_rev_flag := NULL; -- 4262811
18112 l_accrual_line_num := NULL; -- 4262811
18113 l_tmp_amt := NULL; -- 4262811
18114 --
18115
18116 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18117 l_balance_type_code <> 'B' THEN
18118 IF NVL(p_source_63,'
18119 ') = 'ROUND'
18120 THEN
18121
18122 --
18123 XLA_AE_LINES_PKG.SetNewLine;
18124
18125 p_balance_type_code := l_balance_type_code;
18126 -- set the flag so later we will know whether the gain loss line needs to be created
18127
18128 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18129 p_actual_flag :='A';
18130 END IF;
18131
18132 --
18133 -- bulk performance
18134 --
18135 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18136 p_header_num => 0); -- 4262811
18137 --
18138 -- set accounting line options
18139 --
18140 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18141 p_natural_side_code => 'C'
18142 , p_gain_or_loss_flag => 'N'
18143 , p_gl_transfer_mode_code => 'S'
18144 , p_acct_entry_type_code => 'A'
18145 , p_switch_side_flag => 'Y'
18146 , p_merge_duplicate_code => 'A'
18147 );
18148 --
18149 l_acc_rev_natural_side_code := 'D'; -- 4262811
18150 --
18151 --
18152 -- set accounting line type info
18153 --
18154 xla_ae_lines_pkg.SetAcctLineType
18158 ,p_line_definition_code => l_line_definition_code
18155 (p_component_type => l_component_type
18156 ,p_event_type_code => l_event_type_code
18157 ,p_line_definition_owner_code => l_line_definition_owner_code
18159 ,p_accounting_line_code => l_component_code
18160 ,p_accounting_line_type_code => l_component_type_code
18161 ,p_accounting_line_appl_id => l_component_appl_id
18162 ,p_amb_context_code => l_amb_context_code
18163 ,p_entity_code => l_entity_code
18164 ,p_event_class_code => l_event_class_code);
18165 --
18166 -- set accounting class
18167 --
18168 xla_ae_lines_pkg.SetAcctClass(
18169 p_accounting_class_code => 'ROUNDING'
18170 , p_ae_header_id => l_ae_header_id
18171 );
18172
18173 --
18174 -- set rounding class
18175 --
18176 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18177 'RECEIVABLE';
18178
18179 --
18180 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18181 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18182 --
18183 -- bulk performance
18184 --
18185 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18186
18187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18188 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18189
18190 -- 4955764
18191 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18192 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18193
18194 -- 4458381 Public Sector Enh
18195
18196 --
18197 -- set accounting attributes for the line type
18198 --
18199 l_entered_amt_idx := 3;
18200 l_accted_amt_idx := 9;
18201 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18202 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
18203 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
18204 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
18205 l_rec_acct_attrs.array_char_value(2) := p_source_53;
18206 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
18207 l_rec_acct_attrs.array_num_value(3) := p_source_64;
18208 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
18209 l_rec_acct_attrs.array_char_value(4) := p_source_54;
18210 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
18211 l_rec_acct_attrs.array_date_value(5) := p_source_55;
18212 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
18213 l_rec_acct_attrs.array_num_value(6) := p_source_56;
18214 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
18215 l_rec_acct_attrs.array_char_value(7) := p_source_57;
18216 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
18217 l_rec_acct_attrs.array_char_value(8) := p_source_58;
18218 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
18219 l_rec_acct_attrs.array_num_value(9) := p_source_59;
18220 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
18221 l_rec_acct_attrs.array_num_value(10) := p_source_60;
18222 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
18223 l_rec_acct_attrs.array_num_value(11) := p_source_61;
18224 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
18225 l_rec_acct_attrs.array_char_value(12) := p_source_39;
18226 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
18227 l_rec_acct_attrs.array_num_value(13) := p_source_62;
18228
18229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18231
18232 ---------------------------------------------------------------------------------------------------------------
18233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18234 ---------------------------------------------------------------------------------------------------------------
18235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18236
18237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18239
18240 IF xla_accounting_cache_pkg.GetValueChar
18241 (p_source_code => 'LEDGER_CATEGORY_CODE'
18242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18243 AND l_bflow_method_code = 'PRIOR_ENTRY'
18244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18247 )
18248 THEN
18249 xla_ae_lines_pkg.BflowUpgEntry
18250 (p_business_method_code => l_bflow_method_code
18251 ,p_business_class_code => l_bflow_class_code
18252 ,p_balance_type => l_balance_type_code);
18253 ELSE
18254 NULL;
18255 -- No business flow processing for business flow method of NONE.
18256 END IF;
18257
18258 --
18259 -- call analytical criteria
18260 --
18261
18262 --
18263 -- call description
18264 --
18265 -- No description or it is inherited.
18266 --
18267 -- call ADRs
18268 -- Bug 4922099
18269 --
18273 )
18270 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18271 (NVL(l_actual_upg_option, 'N') = 'O') OR
18272 (NVL(l_enc_upg_option, 'N') = 'O')
18274 THEN
18275 NULL;
18276 --
18277 --
18278
18279 l_ccid := AcctDerRule_12(
18280 p_application_id => p_application_id
18281 , p_ae_header_id => l_ae_header_id
18282 , p_source_14 => p_source_14
18283 , x_transaction_coa_id => l_adr_transaction_coa_id
18284 , x_accounting_coa_id => l_adr_accounting_coa_id
18285 , x_value_type_code => l_adr_value_type_code
18286 , p_side => 'NA'
18287 );
18288
18289 xla_ae_lines_pkg.set_ccid(
18290 p_code_combination_id => l_ccid
18291 , p_value_type_code => l_adr_value_type_code
18292 , p_transaction_coa_id => l_adr_transaction_coa_id
18293 , p_accounting_coa_id => l_adr_accounting_coa_id
18294 , p_adr_code => 'CM_DIST_CCID'
18295 , p_adr_type_code => 'S'
18296 , p_component_type => l_component_type
18297 , p_component_code => l_component_code
18298 , p_component_type_code => l_component_type_code
18299 , p_component_appl_id => l_component_appl_id
18300 , p_amb_context_code => l_amb_context_code
18301 , p_side => 'NA'
18302 );
18303
18304
18305 --
18306 --
18307 END IF;
18308 --
18309 -- Bug 4922099
18310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18311 (NVL(l_enc_upg_option, 'N') = 'O')
18312 ) AND
18313 (l_bflow_method_code = 'PRIOR_ENTRY')
18314 )
18315 THEN
18316 IF
18317 --
18318 1 = 2
18319 --
18320 THEN
18321 xla_accounting_err_pkg.build_message
18322 (p_appli_s_name => 'XLA'
18323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18324 ,p_token_1 => 'LINE_NUMBER'
18325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18326 ,p_token_2 => 'LINE_TYPE_NAME'
18327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18328 l_component_type
18329 ,l_component_code
18330 ,l_component_type_code
18331 ,l_component_appl_id
18332 ,l_amb_context_code
18333 ,l_entity_code
18334 ,l_event_class_code
18335 )
18336 ,p_token_3 => 'OWNER'
18337 ,p_value_3 => xla_lookups_pkg.get_meaning(
18338 p_lookup_type => 'XLA_OWNER_TYPE'
18339 ,p_lookup_code => l_component_type_code
18340 )
18341 ,p_token_4 => 'PRODUCT_NAME'
18342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18346 ,p_ae_header_id => NULL
18347 );
18348
18349 IF (C_LEVEL_ERROR>= g_log_level) THEN
18350 trace
18351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18352 ,p_level => C_LEVEL_ERROR
18353 ,p_module => l_log_module);
18354 END IF;
18355 END IF;
18356 END IF;
18357 --
18358 --
18359 ------------------------------------------------------------------------------------------------
18360 -- 4219869 Business Flow
18361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18362 -- Prior Entry. Currently, the following code is always generated.
18363 ------------------------------------------------------------------------------------------------
18364 XLA_AE_LINES_PKG.ValidateCurrentLine;
18365
18366 ------------------------------------------------------------------------------------
18367 -- 4219869 Business Flow
18368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18369 ------------------------------------------------------------------------------------
18370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18371
18372 ----------------------------------------------------------------------------------
18373 -- 4219869 Business Flow
18374 -- Update journal entry status -- Need to generate this within IF <condition>
18375 ----------------------------------------------------------------------------------
18376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18380
18377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18378 ,p_balance_type_code => l_balance_type_code
18379 );
18381 -------------------------------------------------------------------------------------------
18382 -- 4262811 - Generate the Accrual Reversal lines
18383 -------------------------------------------------------------------------------------------
18384 BEGIN
18385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18386 (g_array_event(p_event_id).array_value_num('header_index'));
18387 IF l_acc_rev_flag IS NULL THEN
18388 l_acc_rev_flag := 'N';
18389 END IF;
18390 EXCEPTION
18391 WHEN OTHERS THEN
18392 l_acc_rev_flag := 'N';
18393 END;
18394 --
18395 IF (l_acc_rev_flag = 'Y') THEN
18396
18397 -- 4645092 ------------------------------------------------------------------------------
18398 -- To allow MPA report to determine if it should generate report process
18399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18400 ------------------------------------------------------------------------------------------
18401
18402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18404 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18405 -- call ADRs
18406 -- Bug 4922099
18407 --
18408 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18409 (NVL(l_actual_upg_option, 'N') = 'O') OR
18410 (NVL(l_enc_upg_option, 'N') = 'O')
18411 )
18412 THEN
18413 NULL;
18414 --
18415 --
18416
18417 l_ccid := AcctDerRule_12(
18418 p_application_id => p_application_id
18419 , p_ae_header_id => l_ae_header_id
18420 , p_source_14 => p_source_14
18421 , x_transaction_coa_id => l_adr_transaction_coa_id
18422 , x_accounting_coa_id => l_adr_accounting_coa_id
18423 , x_value_type_code => l_adr_value_type_code
18424 , p_side => 'NA'
18425 );
18426
18427 xla_ae_lines_pkg.set_ccid(
18428 p_code_combination_id => l_ccid
18429 , p_value_type_code => l_adr_value_type_code
18430 , p_transaction_coa_id => l_adr_transaction_coa_id
18431 , p_accounting_coa_id => l_adr_accounting_coa_id
18432 , p_adr_code => 'CM_DIST_CCID'
18433 , p_adr_type_code => 'S'
18434 , p_component_type => l_component_type
18435 , p_component_code => l_component_code
18436 , p_component_type_code => l_component_type_code
18437 , p_component_appl_id => l_component_appl_id
18438 , p_amb_context_code => l_amb_context_code
18439 , p_side => 'NA'
18440 );
18441
18442
18443 --
18444 --
18445 END IF;
18446
18447 --
18448 -- Update the line information that should be overwritten
18449 --
18450 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18451 p_header_num => 1);
18452 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18453
18454 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18455
18456 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18457 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18458 END IF;
18459
18460 --
18461 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18462 --
18463 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18464 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18465 ELSE
18466 ---------------------------------------------------------------------------------------------------
18467 -- 4262811a Switch Sign
18468 ---------------------------------------------------------------------------------------------------
18469 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18470 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18471 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18472 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18473 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18474 -- 5132302
18475 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18476 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18477
18478 END IF;
18479
18480 -- 4955764
18481 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18482 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18483
18484
18485 XLA_AE_LINES_PKG.ValidateCurrentLine;
18486 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18487
18488 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18489 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18490 ,p_balance_type_code => l_balance_type_code);
18491
18492 END IF;
18493
18497 -- No MPA option is assigned.
18494 -----------------------------------------------------------------------------------------
18495 -- 4262811 Multiperiod Accounting
18496 -----------------------------------------------------------------------------------------
18498
18499
18500 END IF;
18501 END IF;
18502 --
18503
18504 --
18505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18506 trace
18507 (p_msg => 'END of AcctLineType_51'
18508 ,p_level => C_LEVEL_PROCEDURE
18509 ,p_module => l_log_module);
18510 END IF;
18511 --
18512 EXCEPTION
18513 WHEN xla_exceptions_pkg.application_exception THEN
18514 RAISE;
18515 WHEN OTHERS THEN
18516 xla_exceptions_pkg.raise_message
18517 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_51');
18518 END AcctLineType_51;
18519 --
18520
18521 ---------------------------------------
18522 --
18523 -- PRIVATE FUNCTION
18524 -- AcctLineType_52
18525 --
18526 ---------------------------------------
18527 PROCEDURE AcctLineType_52 (
18528 p_application_id IN NUMBER
18529 ,p_event_id IN NUMBER
18530 ,p_calculate_acctd_flag IN VARCHAR2
18531 ,p_calculate_g_l_flag IN VARCHAR2
18532 ,p_actual_flag IN OUT VARCHAR2
18533 ,p_balance_type_code OUT VARCHAR2
18534 ,p_gain_or_loss_ref OUT VARCHAR2
18535
18536 --Credit Memo Distribution GL Account
18537 , p_source_14 IN NUMBER
18538 --SLA Party Type
18539 , p_source_39 IN VARCHAR2
18540 --Credit Memo Distribution Identifier
18541 , p_source_52 IN NUMBER
18542 --Credit memo distributions type
18543 , p_source_53 IN VARCHAR2
18544 --Credit Memo Currency Code
18545 , p_source_54 IN VARCHAR2
18546 --Credit Memo Exchange Date
18547 , p_source_55 IN DATE
18548 --Credit Memo Exchange Rate
18549 , p_source_56 IN NUMBER
18550 --Credit Memo Exchange Rate Type
18551 , p_source_57 IN VARCHAR2
18552 --Gain Loss Reference
18553 , p_source_58 IN VARCHAR2
18554 --Credit Memo Accounting Amount
18555 , p_source_59 IN NUMBER
18556 --Credit Memo Bill To Customer Account Identifier
18557 , p_source_60 IN NUMBER
18558 --Credit Memo Bill To Customer Site Use Identifier
18559 , p_source_61 IN NUMBER
18560 --Credit Memo Tax Line Identifier
18561 , p_source_62 IN NUMBER
18562 --Credit Memo Distribution Account Class
18563 , p_source_63 IN VARCHAR2
18564 --Credit Memo Distribution Entered Amount
18565 , p_source_64 IN NUMBER
18566 )
18567 IS
18568
18569 l_component_type VARCHAR2(80);
18570 l_component_code VARCHAR2(30);
18571 l_component_type_code VARCHAR2(1);
18572 l_component_appl_id INTEGER;
18573 l_amb_context_code VARCHAR2(30);
18574 l_entity_code VARCHAR2(30);
18575 l_event_class_code VARCHAR2(30);
18576 l_ae_header_id NUMBER;
18577 l_event_type_code VARCHAR2(30);
18578 l_line_definition_code VARCHAR2(30);
18579 l_line_definition_owner_code VARCHAR2(1);
18580 --
18581 -- adr variables
18582 l_segment VARCHAR2(30);
18583 l_ccid NUMBER;
18584 l_adr_transaction_coa_id NUMBER;
18585 l_adr_accounting_coa_id NUMBER;
18586 l_adr_flexfield_segment_code VARCHAR2(30);
18587 l_adr_flex_value_set_id NUMBER;
18588 l_adr_value_type_code VARCHAR2(30);
18589 l_adr_value_combination_id NUMBER;
18590 l_adr_value_segment_code VARCHAR2(30);
18591
18592 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18593 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18594 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18595 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18596
18597 -- 4262811 Variables ------------------------------------------------------------------------------------------
18598 l_entered_amt_idx NUMBER;
18599 l_accted_amt_idx NUMBER;
18600 l_acc_rev_flag VARCHAR2(1);
18601 l_accrual_line_num NUMBER;
18602 l_tmp_amt NUMBER;
18603 l_acc_rev_natural_side_code VARCHAR2(1);
18604
18605 l_num_entries NUMBER;
18606 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18607 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18608 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18609 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18610 l_recog_line_1 NUMBER;
18611 l_recog_line_2 NUMBER;
18612
18613 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18614 l_bflow_applied_to_amt NUMBER; -- 5132302
18615 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18616
18617 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18618
18619 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18620 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18621
18622 ---------------------------------------------------------------------------------------------------------------
18623
18624
18625 --
18626 -- bulk performance
18627 --
18628 l_balance_type_code VARCHAR2(1);
18629 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18630 l_log_module VARCHAR2(240);
18631
18632 --
18636 l_enc_upg_option VARCHAR2(1);
18633 -- Upgrade strategy
18634 --
18635 l_actual_upg_option VARCHAR2(1);
18637
18638 --
18639 BEGIN
18640 --
18641 IF g_log_enabled THEN
18642 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
18643 END IF;
18644 --
18645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18646
18647 trace
18648 (p_msg => 'BEGIN of AcctLineType_52'
18649 ,p_level => C_LEVEL_PROCEDURE
18650 ,p_module => l_log_module);
18651
18652 END IF;
18653 --
18654 l_component_type := 'AMB_JLT';
18655 l_component_code := 'CM_UNBILL';
18656 l_component_type_code := 'S';
18657 l_component_appl_id := 222;
18658 l_amb_context_code := 'DEFAULT';
18659 l_entity_code := 'TRANSACTIONS';
18660 l_event_class_code := 'CREDIT_MEMO';
18661 l_event_type_code := 'CREDIT_MEMO_ALL';
18662 l_line_definition_owner_code := 'S';
18663 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
18664 --
18665 l_balance_type_code := 'A';
18666 l_segment := NULL;
18667 l_ccid := NULL;
18668 l_adr_transaction_coa_id := NULL;
18669 l_adr_accounting_coa_id := NULL;
18670 l_adr_flexfield_segment_code := NULL;
18671 l_adr_flex_value_set_id := NULL;
18672 l_adr_value_type_code := NULL;
18673 l_adr_value_combination_id := NULL;
18674 l_adr_value_segment_code := NULL;
18675
18676 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18677 l_bflow_class_code := ''; -- 4219869 Business Flow
18678 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18679 l_budgetary_control_flag := 'N';
18680
18681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18682 l_bflow_applied_to_amt := NULL; -- 5132302
18683 l_entered_amt_idx := NULL; -- 4262811
18684 l_accted_amt_idx := NULL; -- 4262811
18685 l_acc_rev_flag := NULL; -- 4262811
18686 l_accrual_line_num := NULL; -- 4262811
18687 l_tmp_amt := NULL; -- 4262811
18688 --
18689
18690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18691 l_balance_type_code <> 'B' THEN
18692 IF NVL(p_source_63,'
18693 ') = 'UNBILL'
18694 THEN
18695
18696 --
18697 XLA_AE_LINES_PKG.SetNewLine;
18698
18699 p_balance_type_code := l_balance_type_code;
18700 -- set the flag so later we will know whether the gain loss line needs to be created
18701
18702 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18703 p_actual_flag :='A';
18704 END IF;
18705
18706 --
18707 -- bulk performance
18708 --
18709 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18710 p_header_num => 0); -- 4262811
18711 --
18712 -- set accounting line options
18713 --
18714 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18715 p_natural_side_code => 'C'
18716 , p_gain_or_loss_flag => 'N'
18717 , p_gl_transfer_mode_code => 'S'
18718 , p_acct_entry_type_code => 'A'
18719 , p_switch_side_flag => 'Y'
18720 , p_merge_duplicate_code => 'A'
18721 );
18722 --
18723 l_acc_rev_natural_side_code := 'D'; -- 4262811
18724 --
18725 --
18726 -- set accounting line type info
18727 --
18728 xla_ae_lines_pkg.SetAcctLineType
18729 (p_component_type => l_component_type
18730 ,p_event_type_code => l_event_type_code
18731 ,p_line_definition_owner_code => l_line_definition_owner_code
18732 ,p_line_definition_code => l_line_definition_code
18733 ,p_accounting_line_code => l_component_code
18734 ,p_accounting_line_type_code => l_component_type_code
18735 ,p_accounting_line_appl_id => l_component_appl_id
18736 ,p_amb_context_code => l_amb_context_code
18737 ,p_entity_code => l_entity_code
18738 ,p_event_class_code => l_event_class_code);
18739 --
18740 -- set accounting class
18741 --
18742 xla_ae_lines_pkg.SetAcctClass(
18743 p_accounting_class_code => 'UNBILL'
18744 , p_ae_header_id => l_ae_header_id
18745 );
18746
18747 --
18748 -- set rounding class
18749 --
18750 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18751 'RECEIVABLE';
18752
18753 --
18754 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18755 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18756 --
18757 -- bulk performance
18758 --
18759 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18760
18761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18762 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18763
18764 -- 4955764
18765 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18766 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18767
18768 -- 4458381 Public Sector Enh
18769
18770 --
18771 -- set accounting attributes for the line type
18772 --
18773 l_entered_amt_idx := 3;
18777 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
18774 l_accted_amt_idx := 9;
18775 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18776 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
18778 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
18779 l_rec_acct_attrs.array_char_value(2) := p_source_53;
18780 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
18781 l_rec_acct_attrs.array_num_value(3) := p_source_64;
18782 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
18783 l_rec_acct_attrs.array_char_value(4) := p_source_54;
18784 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
18785 l_rec_acct_attrs.array_date_value(5) := p_source_55;
18786 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
18787 l_rec_acct_attrs.array_num_value(6) := p_source_56;
18788 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
18789 l_rec_acct_attrs.array_char_value(7) := p_source_57;
18790 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
18791 l_rec_acct_attrs.array_char_value(8) := p_source_58;
18792 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
18793 l_rec_acct_attrs.array_num_value(9) := p_source_59;
18794 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
18795 l_rec_acct_attrs.array_num_value(10) := p_source_60;
18796 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
18797 l_rec_acct_attrs.array_num_value(11) := p_source_61;
18798 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
18799 l_rec_acct_attrs.array_char_value(12) := p_source_39;
18800 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
18801 l_rec_acct_attrs.array_num_value(13) := p_source_62;
18802
18803 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18804 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18805
18806 ---------------------------------------------------------------------------------------------------------------
18807 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18808 ---------------------------------------------------------------------------------------------------------------
18809 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18810
18811 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18812 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18813
18814 IF xla_accounting_cache_pkg.GetValueChar
18815 (p_source_code => 'LEDGER_CATEGORY_CODE'
18816 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18817 AND l_bflow_method_code = 'PRIOR_ENTRY'
18818 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18819 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18820 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18821 )
18822 THEN
18823 xla_ae_lines_pkg.BflowUpgEntry
18824 (p_business_method_code => l_bflow_method_code
18825 ,p_business_class_code => l_bflow_class_code
18826 ,p_balance_type => l_balance_type_code);
18827 ELSE
18828 NULL;
18829 -- No business flow processing for business flow method of NONE.
18830 END IF;
18831
18832 --
18833 -- call analytical criteria
18834 --
18835
18836 --
18837 -- call description
18838 --
18839 -- No description or it is inherited.
18840 --
18841 -- call ADRs
18842 -- Bug 4922099
18843 --
18844 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18845 (NVL(l_actual_upg_option, 'N') = 'O') OR
18846 (NVL(l_enc_upg_option, 'N') = 'O')
18847 )
18848 THEN
18849 NULL;
18850 --
18851 --
18852
18853 l_ccid := AcctDerRule_12(
18854 p_application_id => p_application_id
18855 , p_ae_header_id => l_ae_header_id
18856 , p_source_14 => p_source_14
18857 , x_transaction_coa_id => l_adr_transaction_coa_id
18858 , x_accounting_coa_id => l_adr_accounting_coa_id
18859 , x_value_type_code => l_adr_value_type_code
18860 , p_side => 'NA'
18861 );
18862
18863 xla_ae_lines_pkg.set_ccid(
18864 p_code_combination_id => l_ccid
18865 , p_value_type_code => l_adr_value_type_code
18866 , p_transaction_coa_id => l_adr_transaction_coa_id
18867 , p_accounting_coa_id => l_adr_accounting_coa_id
18868 , p_adr_code => 'CM_DIST_CCID'
18869 , p_adr_type_code => 'S'
18870 , p_component_type => l_component_type
18871 , p_component_code => l_component_code
18872 , p_component_type_code => l_component_type_code
18873 , p_component_appl_id => l_component_appl_id
18874 , p_amb_context_code => l_amb_context_code
18875 , p_side => 'NA'
18876 );
18877
18878
18879 --
18880 --
18881 END IF;
18882 --
18883 -- Bug 4922099
18884 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18885 (NVL(l_enc_upg_option, 'N') = 'O')
18886 ) AND
18887 (l_bflow_method_code = 'PRIOR_ENTRY')
18888 )
18889 THEN
18890 IF
18891 --
18892 1 = 2
18893 --
18894 THEN
18895 xla_accounting_err_pkg.build_message
18896 (p_appli_s_name => 'XLA'
18900 ,p_token_2 => 'LINE_TYPE_NAME'
18897 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18898 ,p_token_1 => 'LINE_NUMBER'
18899 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18901 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18902 l_component_type
18903 ,l_component_code
18904 ,l_component_type_code
18905 ,l_component_appl_id
18906 ,l_amb_context_code
18907 ,l_entity_code
18908 ,l_event_class_code
18909 )
18910 ,p_token_3 => 'OWNER'
18911 ,p_value_3 => xla_lookups_pkg.get_meaning(
18912 p_lookup_type => 'XLA_OWNER_TYPE'
18913 ,p_lookup_code => l_component_type_code
18914 )
18915 ,p_token_4 => 'PRODUCT_NAME'
18916 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18917 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18918 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18919 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18920 ,p_ae_header_id => NULL
18921 );
18922
18923 IF (C_LEVEL_ERROR>= g_log_level) THEN
18924 trace
18925 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18926 ,p_level => C_LEVEL_ERROR
18927 ,p_module => l_log_module);
18928 END IF;
18929 END IF;
18930 END IF;
18931 --
18932 --
18933 ------------------------------------------------------------------------------------------------
18934 -- 4219869 Business Flow
18935 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18936 -- Prior Entry. Currently, the following code is always generated.
18937 ------------------------------------------------------------------------------------------------
18938 XLA_AE_LINES_PKG.ValidateCurrentLine;
18939
18940 ------------------------------------------------------------------------------------
18941 -- 4219869 Business Flow
18942 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18943 ------------------------------------------------------------------------------------
18944 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18945
18946 ----------------------------------------------------------------------------------
18947 -- 4219869 Business Flow
18948 -- Update journal entry status -- Need to generate this within IF <condition>
18949 ----------------------------------------------------------------------------------
18950 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18951 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18952 ,p_balance_type_code => l_balance_type_code
18953 );
18954
18955 -------------------------------------------------------------------------------------------
18956 -- 4262811 - Generate the Accrual Reversal lines
18957 -------------------------------------------------------------------------------------------
18958 BEGIN
18959 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18960 (g_array_event(p_event_id).array_value_num('header_index'));
18961 IF l_acc_rev_flag IS NULL THEN
18962 l_acc_rev_flag := 'N';
18963 END IF;
18964 EXCEPTION
18965 WHEN OTHERS THEN
18966 l_acc_rev_flag := 'N';
18967 END;
18968 --
18969 IF (l_acc_rev_flag = 'Y') THEN
18970
18971 -- 4645092 ------------------------------------------------------------------------------
18972 -- To allow MPA report to determine if it should generate report process
18973 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18974 ------------------------------------------------------------------------------------------
18975
18976 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18977 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18978 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18979 -- call ADRs
18980 -- Bug 4922099
18981 --
18982 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18983 (NVL(l_actual_upg_option, 'N') = 'O') OR
18984 (NVL(l_enc_upg_option, 'N') = 'O')
18985 )
18986 THEN
18987 NULL;
18988 --
18989 --
18990
18991 l_ccid := AcctDerRule_12(
18992 p_application_id => p_application_id
18993 , p_ae_header_id => l_ae_header_id
18994 , p_source_14 => p_source_14
18995 , x_transaction_coa_id => l_adr_transaction_coa_id
18999 );
18996 , x_accounting_coa_id => l_adr_accounting_coa_id
18997 , x_value_type_code => l_adr_value_type_code
18998 , p_side => 'NA'
19000
19001 xla_ae_lines_pkg.set_ccid(
19002 p_code_combination_id => l_ccid
19003 , p_value_type_code => l_adr_value_type_code
19004 , p_transaction_coa_id => l_adr_transaction_coa_id
19005 , p_accounting_coa_id => l_adr_accounting_coa_id
19006 , p_adr_code => 'CM_DIST_CCID'
19007 , p_adr_type_code => 'S'
19008 , p_component_type => l_component_type
19009 , p_component_code => l_component_code
19010 , p_component_type_code => l_component_type_code
19011 , p_component_appl_id => l_component_appl_id
19012 , p_amb_context_code => l_amb_context_code
19013 , p_side => 'NA'
19014 );
19015
19016
19017 --
19018 --
19019 END IF;
19020
19021 --
19022 -- Update the line information that should be overwritten
19023 --
19024 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19025 p_header_num => 1);
19026 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19027
19028 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19029
19030 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19031 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19032 END IF;
19033
19034 --
19035 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19036 --
19037 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19038 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19039 ELSE
19040 ---------------------------------------------------------------------------------------------------
19041 -- 4262811a Switch Sign
19042 ---------------------------------------------------------------------------------------------------
19043 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19044 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19045 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19046 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19047 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19048 -- 5132302
19049 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19050 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19051
19052 END IF;
19053
19054 -- 4955764
19055 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19056 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19057
19058
19059 XLA_AE_LINES_PKG.ValidateCurrentLine;
19060 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19061
19062 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19063 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19064 ,p_balance_type_code => l_balance_type_code);
19065
19066 END IF;
19067
19068 -----------------------------------------------------------------------------------------
19069 -- 4262811 Multiperiod Accounting
19070 -----------------------------------------------------------------------------------------
19071 -- No MPA option is assigned.
19072
19073
19074 END IF;
19075 END IF;
19076 --
19077
19078 --
19079 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19080 trace
19081 (p_msg => 'END of AcctLineType_52'
19082 ,p_level => C_LEVEL_PROCEDURE
19083 ,p_module => l_log_module);
19084 END IF;
19085 --
19086 EXCEPTION
19087 WHEN xla_exceptions_pkg.application_exception THEN
19088 RAISE;
19089 WHEN OTHERS THEN
19090 xla_exceptions_pkg.raise_message
19091 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_52');
19092 END AcctLineType_52;
19093 --
19094
19095 ---------------------------------------
19096 --
19097 -- PRIVATE FUNCTION
19098 -- AcctLineType_53
19099 --
19100 ---------------------------------------
19101 PROCEDURE AcctLineType_53 (
19102 p_application_id IN NUMBER
19103 ,p_event_id IN NUMBER
19104 ,p_calculate_acctd_flag IN VARCHAR2
19105 ,p_calculate_g_l_flag IN VARCHAR2
19106 ,p_actual_flag IN OUT VARCHAR2
19107 ,p_balance_type_code OUT VARCHAR2
19108 ,p_gain_or_loss_ref OUT VARCHAR2
19109
19110 --Credit Memo Distribution GL Account
19111 , p_source_14 IN NUMBER
19112 --SLA Party Type
19113 , p_source_39 IN VARCHAR2
19114 --Credit Memo Distribution Identifier
19115 , p_source_52 IN NUMBER
19116 --Credit memo distributions type
19117 , p_source_53 IN VARCHAR2
19118 --Credit Memo Currency Code
19119 , p_source_54 IN VARCHAR2
19120 --Credit Memo Exchange Date
19121 , p_source_55 IN DATE
19122 --Credit Memo Exchange Rate
19123 , p_source_56 IN NUMBER
19124 --Credit Memo Exchange Rate Type
19128 --Credit Memo Accounting Amount
19125 , p_source_57 IN VARCHAR2
19126 --Gain Loss Reference
19127 , p_source_58 IN VARCHAR2
19129 , p_source_59 IN NUMBER
19130 --Credit Memo Bill To Customer Account Identifier
19131 , p_source_60 IN NUMBER
19132 --Credit Memo Bill To Customer Site Use Identifier
19133 , p_source_61 IN NUMBER
19134 --Credit Memo Tax Line Identifier
19135 , p_source_62 IN NUMBER
19136 --Credit Memo Distribution Account Class
19137 , p_source_63 IN VARCHAR2
19138 --Credit Memo Distribution Entered Amount
19139 , p_source_64 IN NUMBER
19140 --Transaction Line Flexfield Attribute 1
19141 , p_source_65 IN VARCHAR2
19142 )
19143 IS
19144
19145 l_component_type VARCHAR2(80);
19146 l_component_code VARCHAR2(30);
19147 l_component_type_code VARCHAR2(1);
19148 l_component_appl_id INTEGER;
19149 l_amb_context_code VARCHAR2(30);
19150 l_entity_code VARCHAR2(30);
19151 l_event_class_code VARCHAR2(30);
19152 l_ae_header_id NUMBER;
19153 l_event_type_code VARCHAR2(30);
19154 l_line_definition_code VARCHAR2(30);
19155 l_line_definition_owner_code VARCHAR2(1);
19156 --
19157 -- adr variables
19158 l_segment VARCHAR2(30);
19159 l_ccid NUMBER;
19160 l_adr_transaction_coa_id NUMBER;
19161 l_adr_accounting_coa_id NUMBER;
19162 l_adr_flexfield_segment_code VARCHAR2(30);
19163 l_adr_flex_value_set_id NUMBER;
19164 l_adr_value_type_code VARCHAR2(30);
19165 l_adr_value_combination_id NUMBER;
19166 l_adr_value_segment_code VARCHAR2(30);
19167
19168 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19169 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19170 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19171 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19172
19173 -- 4262811 Variables ------------------------------------------------------------------------------------------
19174 l_entered_amt_idx NUMBER;
19175 l_accted_amt_idx NUMBER;
19176 l_acc_rev_flag VARCHAR2(1);
19177 l_accrual_line_num NUMBER;
19178 l_tmp_amt NUMBER;
19179 l_acc_rev_natural_side_code VARCHAR2(1);
19180
19181 l_num_entries NUMBER;
19182 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19183 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19184 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19185 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19186 l_recog_line_1 NUMBER;
19187 l_recog_line_2 NUMBER;
19188
19189 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19190 l_bflow_applied_to_amt NUMBER; -- 5132302
19191 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19192
19193 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19194
19195 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19196 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19197
19198 ---------------------------------------------------------------------------------------------------------------
19199
19200
19201 --
19202 -- bulk performance
19203 --
19204 l_balance_type_code VARCHAR2(1);
19205 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19206 l_log_module VARCHAR2(240);
19207
19208 --
19209 -- Upgrade strategy
19210 --
19211 l_actual_upg_option VARCHAR2(1);
19212 l_enc_upg_option VARCHAR2(1);
19213
19214 --
19215 BEGIN
19216 --
19217 IF g_log_enabled THEN
19218 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
19219 END IF;
19220 --
19221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19222
19223 trace
19224 (p_msg => 'BEGIN of AcctLineType_53'
19225 ,p_level => C_LEVEL_PROCEDURE
19226 ,p_module => l_log_module);
19227
19228 END IF;
19229 --
19230 l_component_type := 'AMB_JLT';
19231 l_component_code := 'CM_UNEARN';
19232 l_component_type_code := 'S';
19233 l_component_appl_id := 222;
19234 l_amb_context_code := 'DEFAULT';
19235 l_entity_code := 'TRANSACTIONS';
19236 l_event_class_code := 'CREDIT_MEMO';
19237 l_event_type_code := 'CREDIT_MEMO_ALL';
19238 l_line_definition_owner_code := 'S';
19239 l_line_definition_code := 'JA_CN_AR_CM_DEFAULT_ACCRUAL';
19240 --
19241 l_balance_type_code := 'A';
19242 l_segment := NULL;
19243 l_ccid := NULL;
19244 l_adr_transaction_coa_id := NULL;
19245 l_adr_accounting_coa_id := NULL;
19246 l_adr_flexfield_segment_code := NULL;
19247 l_adr_flex_value_set_id := NULL;
19248 l_adr_value_type_code := NULL;
19249 l_adr_value_combination_id := NULL;
19250 l_adr_value_segment_code := NULL;
19251
19252 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19253 l_bflow_class_code := ''; -- 4219869 Business Flow
19254 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19255 l_budgetary_control_flag := 'N';
19256
19257 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19258 l_bflow_applied_to_amt := NULL; -- 5132302
19259 l_entered_amt_idx := NULL; -- 4262811
19263 l_tmp_amt := NULL; -- 4262811
19260 l_accted_amt_idx := NULL; -- 4262811
19261 l_acc_rev_flag := NULL; -- 4262811
19262 l_accrual_line_num := NULL; -- 4262811
19264 --
19265
19266 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19267 l_balance_type_code <> 'B' THEN
19268 IF NVL(p_source_63,'
19269 ') = 'UNEARN'
19270 THEN
19271
19272 --
19273 XLA_AE_LINES_PKG.SetNewLine;
19274
19275 p_balance_type_code := l_balance_type_code;
19276 -- set the flag so later we will know whether the gain loss line needs to be created
19277
19278 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19279 p_actual_flag :='A';
19280 END IF;
19281
19282 --
19283 -- bulk performance
19284 --
19285 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19286 p_header_num => 0); -- 4262811
19287 --
19288 -- set accounting line options
19289 --
19290 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19291 p_natural_side_code => 'C'
19292 , p_gain_or_loss_flag => 'N'
19293 , p_gl_transfer_mode_code => 'S'
19294 , p_acct_entry_type_code => 'A'
19295 , p_switch_side_flag => 'Y'
19296 , p_merge_duplicate_code => 'A'
19297 );
19298 --
19299 l_acc_rev_natural_side_code := 'D'; -- 4262811
19300 --
19301 --
19302 -- set accounting line type info
19303 --
19304 xla_ae_lines_pkg.SetAcctLineType
19305 (p_component_type => l_component_type
19306 ,p_event_type_code => l_event_type_code
19307 ,p_line_definition_owner_code => l_line_definition_owner_code
19308 ,p_line_definition_code => l_line_definition_code
19309 ,p_accounting_line_code => l_component_code
19310 ,p_accounting_line_type_code => l_component_type_code
19311 ,p_accounting_line_appl_id => l_component_appl_id
19312 ,p_amb_context_code => l_amb_context_code
19313 ,p_entity_code => l_entity_code
19314 ,p_event_class_code => l_event_class_code);
19315 --
19316 -- set accounting class
19317 --
19318 xla_ae_lines_pkg.SetAcctClass(
19319 p_accounting_class_code => 'UNEARNED_REVENUE'
19320 , p_ae_header_id => l_ae_header_id
19321 );
19322
19323 --
19324 -- set rounding class
19325 --
19326 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19327 'RECEIVABLE';
19328
19329 --
19330 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19331 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19332 --
19333 -- bulk performance
19334 --
19335 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19336
19337 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19338 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19339
19340 -- 4955764
19341 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19342 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19343
19344 -- 4458381 Public Sector Enh
19345
19346 --
19347 -- set accounting attributes for the line type
19348 --
19349 l_entered_amt_idx := 3;
19350 l_accted_amt_idx := 9;
19351 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19352 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
19353 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_52);
19354 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
19355 l_rec_acct_attrs.array_char_value(2) := p_source_53;
19356 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
19357 l_rec_acct_attrs.array_num_value(3) := p_source_64;
19358 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
19359 l_rec_acct_attrs.array_char_value(4) := p_source_54;
19360 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
19361 l_rec_acct_attrs.array_date_value(5) := p_source_55;
19362 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
19363 l_rec_acct_attrs.array_num_value(6) := p_source_56;
19364 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
19365 l_rec_acct_attrs.array_char_value(7) := p_source_57;
19366 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
19367 l_rec_acct_attrs.array_char_value(8) := p_source_58;
19368 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
19369 l_rec_acct_attrs.array_num_value(9) := p_source_59;
19370 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
19371 l_rec_acct_attrs.array_num_value(10) := p_source_60;
19372 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
19373 l_rec_acct_attrs.array_num_value(11) := p_source_61;
19374 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
19375 l_rec_acct_attrs.array_char_value(12) := p_source_39;
19376 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
19377 l_rec_acct_attrs.array_num_value(13) := p_source_62;
19378
19379 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19380 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19381
19385 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19382 ---------------------------------------------------------------------------------------------------------------
19383 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19384 ---------------------------------------------------------------------------------------------------------------
19386
19387 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19388 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19389
19390 IF xla_accounting_cache_pkg.GetValueChar
19391 (p_source_code => 'LEDGER_CATEGORY_CODE'
19392 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19393 AND l_bflow_method_code = 'PRIOR_ENTRY'
19394 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19395 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19396 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19397 )
19398 THEN
19399 xla_ae_lines_pkg.BflowUpgEntry
19400 (p_business_method_code => l_bflow_method_code
19401 ,p_business_class_code => l_bflow_class_code
19402 ,p_balance_type => l_balance_type_code);
19403 ELSE
19404 NULL;
19405 -- No business flow processing for business flow method of NONE.
19406 END IF;
19407
19408 --
19409 -- call analytical criteria
19410 --
19411
19412
19413 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
19414 xla_ae_lines_pkg.SetAnalyticalCriteria(
19415 p_analytical_criterion_name => 'Project Number'
19416 , p_analytical_criterion_owner => 'S'
19417 , p_analytical_criterion_code => 'PROJECT_NUMBER'
19418 , p_amb_context_code => 'DEFAULT'
19419 , p_balancing_flag => 'N'
19420
19421 , p_analytical_detail_char_1 => TO_CHAR(p_source_65)
19422 , p_analytical_detail_num_1 => NULL
19423 , p_analytical_detail_date_1 => NULL
19424
19425 , p_ae_header_id => l_ae_header_id
19426 )
19427 ;
19428 --
19429
19430 --
19431 -- call description
19432 --
19433 -- No description or it is inherited.
19434 --
19435 -- call ADRs
19436 -- Bug 4922099
19437 --
19438 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19439 (NVL(l_actual_upg_option, 'N') = 'O') OR
19440 (NVL(l_enc_upg_option, 'N') = 'O')
19441 )
19442 THEN
19443 NULL;
19444 --
19445 --
19446
19447 l_ccid := AcctDerRule_12(
19448 p_application_id => p_application_id
19449 , p_ae_header_id => l_ae_header_id
19450 , p_source_14 => p_source_14
19451 , x_transaction_coa_id => l_adr_transaction_coa_id
19452 , x_accounting_coa_id => l_adr_accounting_coa_id
19453 , x_value_type_code => l_adr_value_type_code
19454 , p_side => 'NA'
19455 );
19456
19457 xla_ae_lines_pkg.set_ccid(
19458 p_code_combination_id => l_ccid
19459 , p_value_type_code => l_adr_value_type_code
19460 , p_transaction_coa_id => l_adr_transaction_coa_id
19461 , p_accounting_coa_id => l_adr_accounting_coa_id
19462 , p_adr_code => 'CM_DIST_CCID'
19463 , p_adr_type_code => 'S'
19464 , p_component_type => l_component_type
19465 , p_component_code => l_component_code
19466 , p_component_type_code => l_component_type_code
19467 , p_component_appl_id => l_component_appl_id
19468 , p_amb_context_code => l_amb_context_code
19469 , p_side => 'NA'
19470 );
19471
19472
19473 --
19474 --
19475 END IF;
19476 --
19477 -- Bug 4922099
19478 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19479 (NVL(l_enc_upg_option, 'N') = 'O')
19480 ) AND
19481 (l_bflow_method_code = 'PRIOR_ENTRY')
19482 )
19483 THEN
19484 IF
19485 --
19486 1 = 2
19487 --
19488 THEN
19489 xla_accounting_err_pkg.build_message
19490 (p_appli_s_name => 'XLA'
19491 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19492 ,p_token_1 => 'LINE_NUMBER'
19493 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19494 ,p_token_2 => 'LINE_TYPE_NAME'
19495 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19496 l_component_type
19497 ,l_component_code
19498 ,l_component_type_code
19499 ,l_component_appl_id
19500 ,l_amb_context_code
19501 ,l_entity_code
19502 ,l_event_class_code
19503 )
19504 ,p_token_3 => 'OWNER'
19508 )
19505 ,p_value_3 => xla_lookups_pkg.get_meaning(
19506 p_lookup_type => 'XLA_OWNER_TYPE'
19507 ,p_lookup_code => l_component_type_code
19509 ,p_token_4 => 'PRODUCT_NAME'
19510 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19511 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19512 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19513 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19514 ,p_ae_header_id => NULL
19515 );
19516
19517 IF (C_LEVEL_ERROR>= g_log_level) THEN
19518 trace
19519 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19520 ,p_level => C_LEVEL_ERROR
19521 ,p_module => l_log_module);
19522 END IF;
19523 END IF;
19524 END IF;
19525 --
19526 --
19527 ------------------------------------------------------------------------------------------------
19528 -- 4219869 Business Flow
19529 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19530 -- Prior Entry. Currently, the following code is always generated.
19531 ------------------------------------------------------------------------------------------------
19532 XLA_AE_LINES_PKG.ValidateCurrentLine;
19533
19534 ------------------------------------------------------------------------------------
19535 -- 4219869 Business Flow
19536 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19537 ------------------------------------------------------------------------------------
19538 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19539
19540 ----------------------------------------------------------------------------------
19541 -- 4219869 Business Flow
19542 -- Update journal entry status -- Need to generate this within IF <condition>
19543 ----------------------------------------------------------------------------------
19544 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19545 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19546 ,p_balance_type_code => l_balance_type_code
19547 );
19548
19549 -------------------------------------------------------------------------------------------
19550 -- 4262811 - Generate the Accrual Reversal lines
19551 -------------------------------------------------------------------------------------------
19552 BEGIN
19553 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19554 (g_array_event(p_event_id).array_value_num('header_index'));
19555 IF l_acc_rev_flag IS NULL THEN
19556 l_acc_rev_flag := 'N';
19557 END IF;
19558 EXCEPTION
19559 WHEN OTHERS THEN
19560 l_acc_rev_flag := 'N';
19561 END;
19562 --
19563 IF (l_acc_rev_flag = 'Y') THEN
19564
19565 -- 4645092 ------------------------------------------------------------------------------
19566 -- To allow MPA report to determine if it should generate report process
19567 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19568 ------------------------------------------------------------------------------------------
19569
19570 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19571 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19572 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19573 -- call ADRs
19574 -- Bug 4922099
19575 --
19576 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19577 (NVL(l_actual_upg_option, 'N') = 'O') OR
19578 (NVL(l_enc_upg_option, 'N') = 'O')
19579 )
19580 THEN
19581 NULL;
19582 --
19583 --
19584
19585 l_ccid := AcctDerRule_12(
19586 p_application_id => p_application_id
19587 , p_ae_header_id => l_ae_header_id
19588 , p_source_14 => p_source_14
19589 , x_transaction_coa_id => l_adr_transaction_coa_id
19590 , x_accounting_coa_id => l_adr_accounting_coa_id
19591 , x_value_type_code => l_adr_value_type_code
19592 , p_side => 'NA'
19593 );
19594
19595 xla_ae_lines_pkg.set_ccid(
19596 p_code_combination_id => l_ccid
19597 , p_value_type_code => l_adr_value_type_code
19598 , p_transaction_coa_id => l_adr_transaction_coa_id
19599 , p_accounting_coa_id => l_adr_accounting_coa_id
19600 , p_adr_code => 'CM_DIST_CCID'
19601 , p_adr_type_code => 'S'
19602 , p_component_type => l_component_type
19603 , p_component_code => l_component_code
19604 , p_component_type_code => l_component_type_code
19605 , p_component_appl_id => l_component_appl_id
19606 , p_amb_context_code => l_amb_context_code
19607 , p_side => 'NA'
19608 );
19609
19610
19611 --
19612 --
19613 END IF;
19614
19615 --
19616 -- Update the line information that should be overwritten
19617 --
19618 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19622 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19619 p_header_num => 1);
19620 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19621
19623
19624 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19625 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19626 END IF;
19627
19628 --
19629 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19630 --
19631 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19632 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19633 ELSE
19634 ---------------------------------------------------------------------------------------------------
19635 -- 4262811a Switch Sign
19636 ---------------------------------------------------------------------------------------------------
19637 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19638 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19639 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19640 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19641 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19642 -- 5132302
19643 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19644 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19645
19646 END IF;
19647
19648 -- 4955764
19649 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19650 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19651
19652
19653 XLA_AE_LINES_PKG.ValidateCurrentLine;
19654 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19655
19656 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19657 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19658 ,p_balance_type_code => l_balance_type_code);
19659
19660 END IF;
19661
19662 -----------------------------------------------------------------------------------------
19663 -- 4262811 Multiperiod Accounting
19664 -----------------------------------------------------------------------------------------
19665 -- No MPA option is assigned.
19666
19667
19668 END IF;
19669 END IF;
19670 --
19671
19672 --
19673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19674 trace
19675 (p_msg => 'END of AcctLineType_53'
19676 ,p_level => C_LEVEL_PROCEDURE
19677 ,p_module => l_log_module);
19678 END IF;
19679 --
19680 EXCEPTION
19681 WHEN xla_exceptions_pkg.application_exception THEN
19682 RAISE;
19683 WHEN OTHERS THEN
19684 xla_exceptions_pkg.raise_message
19685 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_53');
19686 END AcctLineType_53;
19687 --
19688
19689 ---------------------------------------
19690 --
19691 -- PRIVATE FUNCTION
19692 -- AcctLineType_54
19693 --
19694 ---------------------------------------
19695 PROCEDURE AcctLineType_54 (
19696 p_application_id IN NUMBER
19697 ,p_event_id IN NUMBER
19698 ,p_calculate_acctd_flag IN VARCHAR2
19699 ,p_calculate_g_l_flag IN VARCHAR2
19700 ,p_actual_flag IN OUT VARCHAR2
19701 ,p_balance_type_code OUT VARCHAR2
19702 ,p_gain_or_loss_ref OUT VARCHAR2
19703
19704 --Collection Document Bank Occurrence
19705 , p_source_4 IN VARCHAR2
19706 --Collection Document Number
19707 , p_source_5 IN NUMBER
19708 --Collection Document Trade Note Number
19709 , p_source_6 IN VARCHAR2
19710 --Bordero Type
19711 , p_source_7 IN VARCHAR2
19712 , p_source_7_meaning IN VARCHAR2
19713 --Collection Document Bank Charges Account
19714 , p_source_15 IN NUMBER
19715 --Bill To Customer Account Identifier
19716 , p_source_37 IN NUMBER
19717 --Bill To Customer Site Use Identifier
19718 , p_source_38 IN NUMBER
19719 --SLA Party Type
19720 , p_source_39 IN VARCHAR2
19721 --Collection Document Distribution Line Type
19722 , p_source_66 IN VARCHAR2
19723 , p_source_66_meaning IN VARCHAR2
19724 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
19725 , p_source_67 IN VARCHAR2
19726 , p_source_67_meaning IN VARCHAR2
19727 --Applied To Distribution Link Type
19728 , p_source_69 IN VARCHAR2
19729 --Applied To Distribution Identifier
19730 , p_source_71 IN NUMBER
19731 --Applied To Distribution Document Identifier
19732 , p_source_72 IN NUMBER
19733 --Applied To Distribution Occurrence Identifier
19734 , p_source_73 IN NUMBER
19735 --Collection Document Distribution Identifier
19736 , p_source_74 IN NUMBER
19737 --Collection Document Distribution Link Type
19738 , p_source_75 IN VARCHAR2
19739 --Collection Document Distribution Entered Amount
19743 --Collection Document Distribution Conversion Date
19740 , p_source_76 IN NUMBER
19741 --Collection Document Distribution Entered Currency Code
19742 , p_source_77 IN VARCHAR2
19744 , p_source_78 IN DATE
19745 --Collection Document Distribution Conversion Rate
19746 , p_source_79 IN NUMBER
19747 --Collection Document Distribution Conversion Rate Type
19748 , p_source_80 IN VARCHAR2
19749 --Collection Document Distribution Accounted Amount
19750 , p_source_81 IN NUMBER
19751 --Collection Document Occurrence Identifier
19752 , p_source_82 IN NUMBER
19753 --Reversed Collection Document Distribution Identifier
19754 , p_source_83 IN NUMBER
19755 --Reversed Collection Document Distribution Link Type
19756 , p_source_84 IN VARCHAR2
19757 )
19758 IS
19759
19760 l_component_type VARCHAR2(80);
19761 l_component_code VARCHAR2(30);
19762 l_component_type_code VARCHAR2(1);
19763 l_component_appl_id INTEGER;
19764 l_amb_context_code VARCHAR2(30);
19765 l_entity_code VARCHAR2(30);
19766 l_event_class_code VARCHAR2(30);
19767 l_ae_header_id NUMBER;
19768 l_event_type_code VARCHAR2(30);
19769 l_line_definition_code VARCHAR2(30);
19770 l_line_definition_owner_code VARCHAR2(1);
19771 --
19772 -- adr variables
19773 l_segment VARCHAR2(30);
19774 l_ccid NUMBER;
19775 l_adr_transaction_coa_id NUMBER;
19776 l_adr_accounting_coa_id NUMBER;
19777 l_adr_flexfield_segment_code VARCHAR2(30);
19778 l_adr_flex_value_set_id NUMBER;
19779 l_adr_value_type_code VARCHAR2(30);
19780 l_adr_value_combination_id NUMBER;
19781 l_adr_value_segment_code VARCHAR2(30);
19782
19783 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19784 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19785 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19786 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19787
19788 -- 4262811 Variables ------------------------------------------------------------------------------------------
19789 l_entered_amt_idx NUMBER;
19790 l_accted_amt_idx NUMBER;
19791 l_acc_rev_flag VARCHAR2(1);
19792 l_accrual_line_num NUMBER;
19793 l_tmp_amt NUMBER;
19794 l_acc_rev_natural_side_code VARCHAR2(1);
19795
19796 l_num_entries NUMBER;
19797 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19798 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19799 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19800 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19801 l_recog_line_1 NUMBER;
19802 l_recog_line_2 NUMBER;
19803
19804 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19805 l_bflow_applied_to_amt NUMBER; -- 5132302
19806 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19807
19808 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19809
19810 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19811 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19812
19813 ---------------------------------------------------------------------------------------------------------------
19814
19815
19816 --
19817 -- bulk performance
19818 --
19819 l_balance_type_code VARCHAR2(1);
19820 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19821 l_log_module VARCHAR2(240);
19822
19823 --
19824 -- Upgrade strategy
19825 --
19826 l_actual_upg_option VARCHAR2(1);
19827 l_enc_upg_option VARCHAR2(1);
19828
19829 --
19830 BEGIN
19831 --
19832 IF g_log_enabled THEN
19833 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
19834 END IF;
19835 --
19836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19837
19838 trace
19839 (p_msg => 'BEGIN of AcctLineType_54'
19840 ,p_level => C_LEVEL_PROCEDURE
19841 ,p_module => l_log_module);
19842
19843 END IF;
19844 --
19845 l_component_type := 'AMB_JLT';
19846 l_component_code := 'COLL_DOC_BANK_CHARGES';
19847 l_component_type_code := 'S';
19851 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
19848 l_component_appl_id := 222;
19849 l_amb_context_code := 'DEFAULT';
19850 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
19852 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
19853 l_line_definition_owner_code := 'S';
19854 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
19855 --
19856 l_balance_type_code := 'A';
19857 l_segment := NULL;
19858 l_ccid := NULL;
19859 l_adr_transaction_coa_id := NULL;
19860 l_adr_accounting_coa_id := NULL;
19861 l_adr_flexfield_segment_code := NULL;
19862 l_adr_flex_value_set_id := NULL;
19863 l_adr_value_type_code := NULL;
19864 l_adr_value_combination_id := NULL;
19865 l_adr_value_segment_code := NULL;
19866
19867 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19868 l_bflow_class_code := ''; -- 4219869 Business Flow
19869 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19870 l_budgetary_control_flag := 'N';
19871
19872 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19873 l_bflow_applied_to_amt := NULL; -- 5132302
19874 l_entered_amt_idx := NULL; -- 4262811
19875 l_accted_amt_idx := NULL; -- 4262811
19876 l_acc_rev_flag := NULL; -- 4262811
19877 l_accrual_line_num := NULL; -- 4262811
19878 l_tmp_amt := NULL; -- 4262811
19879 --
19880
19881 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19882 l_balance_type_code <> 'B' THEN
19883 IF NVL(p_source_66,'
19884 ') = 'JLBR_AR_BANK_CHARGES' AND
19885 NVL(p_source_7,'
19886 ') = 'COLLECTION'
19887 THEN
19888
19889 --
19890 XLA_AE_LINES_PKG.SetNewLine;
19891
19892 p_balance_type_code := l_balance_type_code;
19893 -- set the flag so later we will know whether the gain loss line needs to be created
19894
19895 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19896 p_actual_flag :='A';
19897 END IF;
19898
19899 --
19900 -- bulk performance
19901 --
19902 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19903 p_header_num => 0); -- 4262811
19904 --
19905 -- set accounting line options
19906 --
19907 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19908 p_natural_side_code => 'D'
19909 , p_gain_or_loss_flag => 'N'
19910 , p_gl_transfer_mode_code => 'S'
19911 , p_acct_entry_type_code => 'A'
19912 , p_switch_side_flag => 'Y'
19913 , p_merge_duplicate_code => 'W'
19914 );
19915 --
19916 l_acc_rev_natural_side_code := 'C'; -- 4262811
19917 --
19918 --
19919 -- set accounting line type info
19920 --
19921 xla_ae_lines_pkg.SetAcctLineType
19922 (p_component_type => l_component_type
19923 ,p_event_type_code => l_event_type_code
19924 ,p_line_definition_owner_code => l_line_definition_owner_code
19925 ,p_line_definition_code => l_line_definition_code
19926 ,p_accounting_line_code => l_component_code
19927 ,p_accounting_line_type_code => l_component_type_code
19928 ,p_accounting_line_appl_id => l_component_appl_id
19929 ,p_amb_context_code => l_amb_context_code
19930 ,p_entity_code => l_entity_code
19931 ,p_event_class_code => l_event_class_code);
19932 --
19933 -- set accounting class
19934 --
19935 xla_ae_lines_pkg.SetAcctClass(
19936 p_accounting_class_code => 'BANK_CHG'
19937 , p_ae_header_id => l_ae_header_id
19938 );
19939
19940 --
19941 -- set rounding class
19942 --
19943 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19944 'BANK_CHG';
19948 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19945
19946 --
19947 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19949 --
19950 -- bulk performance
19951 --
19952 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19953
19954 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19955 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19956
19957 -- 4955764
19958 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19959 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19960
19961 -- 4458381 Public Sector Enh
19962
19963 --
19964 -- set accounting attributes for the line type
19965 --
19966 l_entered_amt_idx := 10;
19967 l_accted_amt_idx := 15;
19968 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19969 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19970 l_rec_acct_attrs.array_char_value(1) := p_source_67;
19971 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
19972 l_rec_acct_attrs.array_num_value(2) :=
19973 xla_ae_sources_pkg.GetSystemSourceNum(
19974 p_source_code => 'XLA_EVENT_APPL_ID'
19975 , p_source_type_code => 'Y'
19976 , p_source_application_id => 602
19977 );
19978 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19979 l_rec_acct_attrs.array_char_value(3) := p_source_69;
19980 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
19981 l_rec_acct_attrs.array_char_value(4) :=
19982 xla_ae_sources_pkg.GetSystemSourceChar(
19983 p_source_code => 'XLA_ENTITY_CODE'
19984 , p_source_type_code => 'Y'
19985 , p_source_application_id => 602
19986 );
19987 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
19988 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
19989 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19990 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
19991 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
19992 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
19993 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19994 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
19995 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19999 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19996 l_rec_acct_attrs.array_char_value(9) := p_source_75;
19997 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19998 l_rec_acct_attrs.array_num_value(10) := p_source_76;
20000 l_rec_acct_attrs.array_char_value(11) := p_source_77;
20001 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20002 l_rec_acct_attrs.array_date_value(12) := p_source_78;
20003 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20004 l_rec_acct_attrs.array_num_value(13) := p_source_79;
20005 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20006 l_rec_acct_attrs.array_char_value(14) := p_source_80;
20007 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20008 l_rec_acct_attrs.array_num_value(15) := p_source_81;
20009 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
20010 l_rec_acct_attrs.array_num_value(16) := p_source_37;
20011 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
20012 l_rec_acct_attrs.array_num_value(17) := p_source_38;
20013 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
20014 l_rec_acct_attrs.array_char_value(18) := p_source_39;
20015 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
20016 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
20020 l_rec_acct_attrs.array_char_value(21) := p_source_84;
20017 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20018 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
20019 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20021 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
20022 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
20023
20024 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20025 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20026
20027 ---------------------------------------------------------------------------------------------------------------
20028 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20029 ---------------------------------------------------------------------------------------------------------------
20030 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20031
20032 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20033 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20034
20035 IF xla_accounting_cache_pkg.GetValueChar
20036 (p_source_code => 'LEDGER_CATEGORY_CODE'
20037 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20038 AND l_bflow_method_code = 'PRIOR_ENTRY'
20039 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20040 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20041 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20042 )
20043 THEN
20044 xla_ae_lines_pkg.BflowUpgEntry
20045 (p_business_method_code => l_bflow_method_code
20046 ,p_business_class_code => l_bflow_class_code
20047 ,p_balance_type => l_balance_type_code);
20048 ELSE
20049 NULL;
20050 -- No business flow processing for business flow method of NONE.
20051 END IF;
20052
20053 --
20054 -- call analytical criteria
20055 --
20056
20057 --
20058 -- call description
20059 --
20060
20061 xla_ae_lines_pkg.SetLineDescription(
20062 p_ae_header_id => l_ae_header_id
20063 ,p_description => Description_2 (
20064 p_application_id => p_application_id
20065 , p_ae_header_id => l_ae_header_id
20066 , p_source_4 => p_source_4
20067 , p_source_5 => p_source_5
20068 , p_source_6 => p_source_6
20069 , p_source_7 => p_source_7
20070 , p_source_7_meaning => p_source_7_meaning
20071 )
20072 );
20073
20074
20075 --
20076 -- call ADRs
20077 -- Bug 4922099
20078 --
20079 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20080 (NVL(l_actual_upg_option, 'N') = 'O') OR
20081 (NVL(l_enc_upg_option, 'N') = 'O')
20082 )
20083 THEN
20084 NULL;
20085 --
20086 --
20087
20088 l_ccid := AcctDerRule_13(
20089 p_application_id => p_application_id
20090 , p_ae_header_id => l_ae_header_id
20091 , p_source_15 => p_source_15
20092 , x_transaction_coa_id => l_adr_transaction_coa_id
20093 , x_accounting_coa_id => l_adr_accounting_coa_id
20094 , x_value_type_code => l_adr_value_type_code
20095 , p_side => 'NA'
20096 );
20097
20098 xla_ae_lines_pkg.set_ccid(
20099 p_code_combination_id => l_ccid
20100 , p_value_type_code => l_adr_value_type_code
20101 , p_transaction_coa_id => l_adr_transaction_coa_id
20102 , p_accounting_coa_id => l_adr_accounting_coa_id
20103 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
20104 , p_adr_type_code => 'S'
20105 , p_component_type => l_component_type
20106 , p_component_code => l_component_code
20107 , p_component_type_code => l_component_type_code
20108 , p_component_appl_id => l_component_appl_id
20109 , p_amb_context_code => l_amb_context_code
20110 , p_side => 'NA'
20111 );
20112
20113
20114 --
20115 --
20116 END IF;
20117 --
20118 -- Bug 4922099
20119 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20120 (NVL(l_enc_upg_option, 'N') = 'O')
20121 ) AND
20122 (l_bflow_method_code = 'PRIOR_ENTRY')
20123 )
20124 THEN
20125 IF
20126 --
20127 1 = 2
20128 --
20129 THEN
20130 xla_accounting_err_pkg.build_message
20131 (p_appli_s_name => 'XLA'
20132 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20133 ,p_token_1 => 'LINE_NUMBER'
20134 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20135 ,p_token_2 => 'LINE_TYPE_NAME'
20136 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20137 l_component_type
20138 ,l_component_code
20139 ,l_component_type_code
20140 ,l_component_appl_id
20141 ,l_amb_context_code
20145 ,p_token_3 => 'OWNER'
20142 ,l_entity_code
20143 ,l_event_class_code
20144 )
20146 ,p_value_3 => xla_lookups_pkg.get_meaning(
20147 p_lookup_type => 'XLA_OWNER_TYPE'
20148 ,p_lookup_code => l_component_type_code
20149 )
20150 ,p_token_4 => 'PRODUCT_NAME'
20151 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20152 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20153 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20154 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20155 ,p_ae_header_id => NULL
20156 );
20157
20158 IF (C_LEVEL_ERROR>= g_log_level) THEN
20159 trace
20160 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20161 ,p_level => C_LEVEL_ERROR
20162 ,p_module => l_log_module);
20163 END IF;
20164 END IF;
20165 END IF;
20166 --
20167 --
20168 ------------------------------------------------------------------------------------------------
20169 -- 4219869 Business Flow
20170 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20171 -- Prior Entry. Currently, the following code is always generated.
20172 ------------------------------------------------------------------------------------------------
20173 XLA_AE_LINES_PKG.ValidateCurrentLine;
20174
20175 ------------------------------------------------------------------------------------
20176 -- 4219869 Business Flow
20177 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20178 ------------------------------------------------------------------------------------
20179 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20180
20181 ----------------------------------------------------------------------------------
20182 -- 4219869 Business Flow
20183 -- Update journal entry status -- Need to generate this within IF <condition>
20184 ----------------------------------------------------------------------------------
20185 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20186 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20187 ,p_balance_type_code => l_balance_type_code
20188 );
20189
20190 -------------------------------------------------------------------------------------------
20191 -- 4262811 - Generate the Accrual Reversal lines
20192 -------------------------------------------------------------------------------------------
20193 BEGIN
20194 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20195 (g_array_event(p_event_id).array_value_num('header_index'));
20196 IF l_acc_rev_flag IS NULL THEN
20197 l_acc_rev_flag := 'N';
20198 END IF;
20199 EXCEPTION
20200 WHEN OTHERS THEN
20201 l_acc_rev_flag := 'N';
20202 END;
20203 --
20204 IF (l_acc_rev_flag = 'Y') THEN
20205
20206 -- 4645092 ------------------------------------------------------------------------------
20207 -- To allow MPA report to determine if it should generate report process
20208 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20209 ------------------------------------------------------------------------------------------
20210
20211 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20212 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20213 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20214 -- call ADRs
20215 -- Bug 4922099
20216 --
20217 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20218 (NVL(l_actual_upg_option, 'N') = 'O') OR
20219 (NVL(l_enc_upg_option, 'N') = 'O')
20220 )
20221 THEN
20222 NULL;
20223 --
20224 --
20225
20226 l_ccid := AcctDerRule_13(
20227 p_application_id => p_application_id
20228 , p_ae_header_id => l_ae_header_id
20229 , p_source_15 => p_source_15
20230 , x_transaction_coa_id => l_adr_transaction_coa_id
20231 , x_accounting_coa_id => l_adr_accounting_coa_id
20232 , x_value_type_code => l_adr_value_type_code
20233 , p_side => 'NA'
20234 );
20235
20236 xla_ae_lines_pkg.set_ccid(
20237 p_code_combination_id => l_ccid
20238 , p_value_type_code => l_adr_value_type_code
20239 , p_transaction_coa_id => l_adr_transaction_coa_id
20240 , p_accounting_coa_id => l_adr_accounting_coa_id
20241 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
20242 , p_adr_type_code => 'S'
20243 , p_component_type => l_component_type
20244 , p_component_code => l_component_code
20245 , p_component_type_code => l_component_type_code
20246 , p_component_appl_id => l_component_appl_id
20247 , p_amb_context_code => l_amb_context_code
20251
20248 , p_side => 'NA'
20249 );
20250
20252 --
20253 --
20254 END IF;
20255
20256 --
20257 -- Update the line information that should be overwritten
20258 --
20259 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20263 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20260 p_header_num => 1);
20261 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20262
20264
20265 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20266 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20267 END IF;
20268
20269 --
20270 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20271 --
20272 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20273 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20274 ELSE
20275 ---------------------------------------------------------------------------------------------------
20276 -- 4262811a Switch Sign
20277 ---------------------------------------------------------------------------------------------------
20278 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20279 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20280 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20281 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20282 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20283 -- 5132302
20284 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20285 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20286
20287 END IF;
20288
20289 -- 4955764
20290 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20291 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20292
20293
20294 XLA_AE_LINES_PKG.ValidateCurrentLine;
20295 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20296
20297 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20298 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20299 ,p_balance_type_code => l_balance_type_code);
20300
20301 END IF;
20302
20303 -----------------------------------------------------------------------------------------
20304 -- 4262811 Multiperiod Accounting
20305 -----------------------------------------------------------------------------------------
20306 -- No MPA option is assigned.
20307
20308
20309 END IF;
20310 END IF;
20311 --
20312
20313 --
20314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20315 trace
20316 (p_msg => 'END of AcctLineType_54'
20317 ,p_level => C_LEVEL_PROCEDURE
20318 ,p_module => l_log_module);
20319 END IF;
20320 --
20321 EXCEPTION
20322 WHEN xla_exceptions_pkg.application_exception THEN
20323 RAISE;
20324 WHEN OTHERS THEN
20325 xla_exceptions_pkg.raise_message
20326 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_54');
20327 END AcctLineType_54;
20328 --
20329
20330 ---------------------------------------
20331 --
20332 -- PRIVATE FUNCTION
20333 -- AcctLineType_55
20334 --
20335 ---------------------------------------
20336 PROCEDURE AcctLineType_55 (
20337 p_application_id IN NUMBER
20338 ,p_event_id IN NUMBER
20339 ,p_calculate_acctd_flag IN VARCHAR2
20340 ,p_calculate_g_l_flag IN VARCHAR2
20341 ,p_actual_flag IN OUT VARCHAR2
20342 ,p_balance_type_code OUT VARCHAR2
20343 ,p_gain_or_loss_ref OUT VARCHAR2
20344
20345 --Bordero Type
20346 , p_source_7 IN VARCHAR2
20347 , p_source_7_meaning IN VARCHAR2
20348 --SLA Party Type
20349 , p_source_39 IN VARCHAR2
20350 --Collection Document Distribution Line Type
20351 , p_source_66 IN VARCHAR2
20352 , p_source_66_meaning IN VARCHAR2
20353 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
20354 , p_source_67 IN VARCHAR2
20355 , p_source_67_meaning IN VARCHAR2
20359 , p_source_71 IN NUMBER
20356 --Applied To Distribution Link Type
20357 , p_source_69 IN VARCHAR2
20358 --Applied To Distribution Identifier
20360 --Applied To Distribution Document Identifier
20361 , p_source_72 IN NUMBER
20362 --Applied To Distribution Occurrence Identifier
20363 , p_source_73 IN NUMBER
20364 --Collection Document Distribution Identifier
20365 , p_source_74 IN NUMBER
20366 --Collection Document Distribution Link Type
20367 , p_source_75 IN VARCHAR2
20368 --Collection Document Distribution Entered Amount
20369 , p_source_76 IN NUMBER
20370 --Collection Document Distribution Entered Currency Code
20371 , p_source_77 IN VARCHAR2
20372 --Collection Document Distribution Accounted Amount
20373 , p_source_81 IN NUMBER
20374 --Collection Document Occurrence Identifier
20375 , p_source_82 IN NUMBER
20376 --Reversed Collection Document Distribution Identifier
20377 , p_source_83 IN NUMBER
20378 --Reversed Collection Document Distribution Link Type
20379 , p_source_84 IN VARCHAR2
20380 --Collection Document Occurrence Type
20381 , p_source_85 IN VARCHAR2
20382 , p_source_85_meaning IN VARCHAR2
20383 )
20384 IS
20385
20386 l_component_type VARCHAR2(80);
20387 l_component_code VARCHAR2(30);
20388 l_component_type_code VARCHAR2(1);
20389 l_component_appl_id INTEGER;
20390 l_amb_context_code VARCHAR2(30);
20391 l_entity_code VARCHAR2(30);
20392 l_event_class_code VARCHAR2(30);
20393 l_ae_header_id NUMBER;
20394 l_event_type_code VARCHAR2(30);
20395 l_line_definition_code VARCHAR2(30);
20396 l_line_definition_owner_code VARCHAR2(1);
20397 --
20398 -- adr variables
20399 l_segment VARCHAR2(30);
20400 l_ccid NUMBER;
20401 l_adr_transaction_coa_id NUMBER;
20402 l_adr_accounting_coa_id NUMBER;
20403 l_adr_flexfield_segment_code VARCHAR2(30);
20404 l_adr_flex_value_set_id NUMBER;
20405 l_adr_value_type_code VARCHAR2(30);
20406 l_adr_value_combination_id NUMBER;
20407 l_adr_value_segment_code VARCHAR2(30);
20408
20409 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20410 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20411 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20412 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20413
20414 -- 4262811 Variables ------------------------------------------------------------------------------------------
20415 l_entered_amt_idx NUMBER;
20416 l_accted_amt_idx NUMBER;
20417 l_acc_rev_flag VARCHAR2(1);
20418 l_accrual_line_num NUMBER;
20419 l_tmp_amt NUMBER;
20420 l_acc_rev_natural_side_code VARCHAR2(1);
20421
20422 l_num_entries NUMBER;
20423 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20424 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20425 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20426 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20427 l_recog_line_1 NUMBER;
20428 l_recog_line_2 NUMBER;
20429
20430 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20431 l_bflow_applied_to_amt NUMBER; -- 5132302
20432 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20433
20434 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20435
20436 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20437 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20438
20439 ---------------------------------------------------------------------------------------------------------------
20440
20441
20442 --
20443 -- bulk performance
20444 --
20445 l_balance_type_code VARCHAR2(1);
20446 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20447 l_log_module VARCHAR2(240);
20448
20449 --
20450 -- Upgrade strategy
20451 --
20452 l_actual_upg_option VARCHAR2(1);
20453 l_enc_upg_option VARCHAR2(1);
20454
20455 --
20456 BEGIN
20457 --
20458 IF g_log_enabled THEN
20459 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
20460 END IF;
20461 --
20462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20463
20464 trace
20465 (p_msg => 'BEGIN of AcctLineType_55'
20466 ,p_level => C_LEVEL_PROCEDURE
20467 ,p_module => l_log_module);
20468
20469 END IF;
20470 --
20471 l_component_type := 'AMB_JLT';
20472 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL_CR';
20473 l_component_type_code := 'S';
20474 l_component_appl_id := 222;
20475 l_amb_context_code := 'DEFAULT';
20476 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
20477 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
20478 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
20479 l_line_definition_owner_code := 'S';
20480 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
20481 --
20482 l_balance_type_code := 'A';
20483 l_segment := NULL;
20484 l_ccid := NULL;
20485 l_adr_transaction_coa_id := NULL;
20486 l_adr_accounting_coa_id := NULL;
20487 l_adr_flexfield_segment_code := NULL;
20488 l_adr_flex_value_set_id := NULL;
20492
20489 l_adr_value_type_code := NULL;
20490 l_adr_value_combination_id := NULL;
20491 l_adr_value_segment_code := NULL;
20493 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20494 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_COLLECTION'; -- 4219869 Business Flow
20495 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
20496 l_budgetary_control_flag := 'N';
20497
20498 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20499 l_bflow_applied_to_amt := NULL; -- 5132302
20500 l_entered_amt_idx := NULL; -- 4262811
20501 l_accted_amt_idx := NULL; -- 4262811
20502 l_acc_rev_flag := NULL; -- 4262811
20503 l_accrual_line_num := NULL; -- 4262811
20504 l_tmp_amt := NULL; -- 4262811
20505 --
20506
20507 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20508 l_balance_type_code <> 'B' THEN
20509 IF NVL(p_source_66,'
20510 ') = 'JLBR_AR_ENDORSEMENT' AND
20511 NVL(p_source_7,'
20512 ') = 'COLLECTION' AND
20513 NVL(p_source_85,'
20514 ') = 'RETURN_OCCURRENCE'
20515 THEN
20516
20517 --
20518 XLA_AE_LINES_PKG.SetNewLine;
20519
20520 p_balance_type_code := l_balance_type_code;
20521 -- set the flag so later we will know whether the gain loss line needs to be created
20522
20523 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20524 p_actual_flag :='A';
20525 END IF;
20526
20527 --
20528 -- bulk performance
20529 --
20530 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20531 p_header_num => 0); -- 4262811
20532 --
20533 -- set accounting line options
20534 --
20535 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20536 p_natural_side_code => 'C'
20537 , p_gain_or_loss_flag => 'N'
20538 , p_gl_transfer_mode_code => 'S'
20539 , p_acct_entry_type_code => 'A'
20540 , p_switch_side_flag => 'Y'
20541 , p_merge_duplicate_code => 'A'
20542 );
20543 --
20544 l_acc_rev_natural_side_code := 'D'; -- 4262811
20545 --
20546 --
20547 -- set accounting line type info
20548 --
20549 xla_ae_lines_pkg.SetAcctLineType
20550 (p_component_type => l_component_type
20551 ,p_event_type_code => l_event_type_code
20552 ,p_line_definition_owner_code => l_line_definition_owner_code
20553 ,p_line_definition_code => l_line_definition_code
20554 ,p_accounting_line_code => l_component_code
20555 ,p_accounting_line_type_code => l_component_type_code
20556 ,p_accounting_line_appl_id => l_component_appl_id
20557 ,p_amb_context_code => l_amb_context_code
20558 ,p_entity_code => l_entity_code
20559 ,p_event_class_code => l_event_class_code);
20560 --
20561 -- set accounting class
20562 --
20563 xla_ae_lines_pkg.SetAcctClass(
20567
20564 p_accounting_class_code => 'REMITTANCE'
20565 , p_ae_header_id => l_ae_header_id
20566 );
20568 --
20569 -- set rounding class
20570 --
20571 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20572 'REMITTANCE';
20573
20574 --
20575 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20576 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20577 --
20578 -- bulk performance
20579 --
20580 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20581
20582 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20583 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20584
20585 -- 4955764
20586 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20587 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20588
20589 -- 4458381 Public Sector Enh
20590
20591 --
20592 -- set accounting attributes for the line type
20593 --
20594 l_entered_amt_idx := 10;
20595 l_accted_amt_idx := 12;
20596 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20597 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20598 l_rec_acct_attrs.array_char_value(1) := p_source_67;
20602 p_source_code => 'XLA_EVENT_APPL_ID'
20599 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
20600 l_rec_acct_attrs.array_num_value(2) :=
20601 xla_ae_sources_pkg.GetSystemSourceNum(
20603 , p_source_type_code => 'Y'
20604 , p_source_application_id => 602
20605 );
20606 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20607 l_rec_acct_attrs.array_char_value(3) := p_source_69;
20608 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
20609 l_rec_acct_attrs.array_char_value(4) :=
20610 xla_ae_sources_pkg.GetSystemSourceChar(
20611 p_source_code => 'XLA_ENTITY_CODE'
20612 , p_source_type_code => 'Y'
20613 , p_source_application_id => 602
20614 );
20615 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
20616 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
20617 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20618 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
20619 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
20620 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
20621 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20622 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
20623 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20624 l_rec_acct_attrs.array_char_value(9) := p_source_75;
20625 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20626 l_rec_acct_attrs.array_num_value(10) := p_source_76;
20627 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20628 l_rec_acct_attrs.array_char_value(11) := p_source_77;
20629 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20630 l_rec_acct_attrs.array_num_value(12) := p_source_81;
20631 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
20632 l_rec_acct_attrs.array_char_value(13) := p_source_39;
20633 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
20634 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_82);
20635 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20636 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_83);
20637 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20638 l_rec_acct_attrs.array_char_value(16) := p_source_84;
20639 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
20640 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_82);
20641
20642 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20643 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20644
20645 ---------------------------------------------------------------------------------------------------------------
20646 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20647 ---------------------------------------------------------------------------------------------------------------
20648 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20649
20650 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20651 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20652
20653 IF xla_accounting_cache_pkg.GetValueChar
20654 (p_source_code => 'LEDGER_CATEGORY_CODE'
20655 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20656 AND l_bflow_method_code = 'PRIOR_ENTRY'
20657 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20658 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20659 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20660 )
20661 THEN
20662 xla_ae_lines_pkg.BflowUpgEntry
20663 (p_business_method_code => l_bflow_method_code
20664 ,p_business_class_code => l_bflow_class_code
20665 ,p_balance_type => l_balance_type_code);
20666 ELSE
20667 NULL;
20668 XLA_AE_LINES_PKG.business_flow_validation(
20669 p_business_method_code => l_bflow_method_code
20670 ,p_business_class_code => l_bflow_class_code
20671 ,p_inherit_description_flag => l_inherit_desc_flag);
20672 END IF;
20673
20674 --
20675 -- call analytical criteria
20676 --
20677 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20678 --
20679 -- call description
20680 --
20681 -- No description or it is inherited.
20682 --
20683 -- call ADRs
20684 -- Bug 4922099
20685 --
20686 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20687 (NVL(l_actual_upg_option, 'N') = 'O') OR
20688 (NVL(l_enc_upg_option, 'N') = 'O')
20689 )
20690 THEN
20691 NULL;
20692 --
20693 --
20694
20695 --
20696 --
20697 END IF;
20698 --
20699 -- Bug 4922099
20700 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20701 (NVL(l_enc_upg_option, 'N') = 'O')
20702 ) AND
20703 (l_bflow_method_code = 'PRIOR_ENTRY')
20704 )
20705 THEN
20706 IF
20707 --
20708 1 = 1
20709 --
20710 THEN
20711 xla_accounting_err_pkg.build_message
20712 (p_appli_s_name => 'XLA'
20713 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20714 ,p_token_1 => 'LINE_NUMBER'
20715 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20716 ,p_token_2 => 'LINE_TYPE_NAME'
20717 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20718 l_component_type
20719 ,l_component_code
20720 ,l_component_type_code
20721 ,l_component_appl_id
20722 ,l_amb_context_code
20723 ,l_entity_code
20724 ,l_event_class_code
20725 )
20726 ,p_token_3 => 'OWNER'
20727 ,p_value_3 => xla_lookups_pkg.get_meaning(
20728 p_lookup_type => 'XLA_OWNER_TYPE'
20729 ,p_lookup_code => l_component_type_code
20730 )
20731 ,p_token_4 => 'PRODUCT_NAME'
20732 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20733 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20734 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20735 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20736 ,p_ae_header_id => NULL
20737 );
20738
20739 IF (C_LEVEL_ERROR>= g_log_level) THEN
20740 trace
20741 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20742 ,p_level => C_LEVEL_ERROR
20743 ,p_module => l_log_module);
20744 END IF;
20745 END IF;
20746 END IF;
20750 -- 4219869 Business Flow
20747 --
20748 --
20749 ------------------------------------------------------------------------------------------------
20751 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20752 -- Prior Entry. Currently, the following code is always generated.
20753 ------------------------------------------------------------------------------------------------
20754 -- No ValidateCurrentLine for business flow method of Prior Entry
20755
20756 ------------------------------------------------------------------------------------
20757 -- 4219869 Business Flow
20758 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20759 ------------------------------------------------------------------------------------
20760 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20761
20762 ----------------------------------------------------------------------------------
20763 -- 4219869 Business Flow
20764 -- Update journal entry status -- Need to generate this within IF <condition>
20765 ----------------------------------------------------------------------------------
20766 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20767 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20768 ,p_balance_type_code => l_balance_type_code
20769 );
20770
20771 -------------------------------------------------------------------------------------------
20772 -- 4262811 - Generate the Accrual Reversal lines
20773 -------------------------------------------------------------------------------------------
20774 BEGIN
20775 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20776 (g_array_event(p_event_id).array_value_num('header_index'));
20777 IF l_acc_rev_flag IS NULL THEN
20778 l_acc_rev_flag := 'N';
20779 END IF;
20780 EXCEPTION
20781 WHEN OTHERS THEN
20782 l_acc_rev_flag := 'N';
20783 END;
20784 --
20785 IF (l_acc_rev_flag = 'Y') THEN
20786
20787 -- 4645092 ------------------------------------------------------------------------------
20788 -- To allow MPA report to determine if it should generate report process
20789 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20790 ------------------------------------------------------------------------------------------
20791
20792 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20793 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20794 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20795 -- call ADRs
20796 -- Bug 4922099
20797 --
20798 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20799 (NVL(l_actual_upg_option, 'N') = 'O') OR
20800 (NVL(l_enc_upg_option, 'N') = 'O')
20801 )
20802 THEN
20803 NULL;
20804 --
20805 --
20806
20807 --
20808 --
20809 END IF;
20810
20811 --
20812 -- Update the line information that should be overwritten
20813 --
20814 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20815 p_header_num => 1);
20816 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20817
20818 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20819
20820 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20821 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20822 END IF;
20823
20824 --
20825 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20826 --
20827 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20828 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20829 ELSE
20830 ---------------------------------------------------------------------------------------------------
20831 -- 4262811a Switch Sign
20832 ---------------------------------------------------------------------------------------------------
20833 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20834 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20836 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20837 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20838 -- 5132302
20839 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20840 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20841
20842 END IF;
20843
20844 -- 4955764
20845 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20846 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20847
20848
20849 XLA_AE_LINES_PKG.ValidateCurrentLine;
20850 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20851
20852 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20856 END IF;
20853 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20854 ,p_balance_type_code => l_balance_type_code);
20855
20857
20858 -----------------------------------------------------------------------------------------
20859 -- 4262811 Multiperiod Accounting
20860 -----------------------------------------------------------------------------------------
20861 -- No MPA option is assigned.
20862
20863
20864 END IF;
20865 END IF;
20866 --
20867
20868 --
20869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20870 trace
20871 (p_msg => 'END of AcctLineType_55'
20872 ,p_level => C_LEVEL_PROCEDURE
20873 ,p_module => l_log_module);
20874 END IF;
20875 --
20876 EXCEPTION
20877 WHEN xla_exceptions_pkg.application_exception THEN
20878 RAISE;
20879 WHEN OTHERS THEN
20880 xla_exceptions_pkg.raise_message
20881 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_55');
20882 END AcctLineType_55;
20883 --
20884
20885 ---------------------------------------
20886 --
20887 -- PRIVATE FUNCTION
20888 -- AcctLineType_56
20889 --
20890 ---------------------------------------
20891 PROCEDURE AcctLineType_56 (
20892 p_application_id IN NUMBER
20893 ,p_event_id IN NUMBER
20894 ,p_calculate_acctd_flag IN VARCHAR2
20895 ,p_calculate_g_l_flag IN VARCHAR2
20896 ,p_actual_flag IN OUT VARCHAR2
20897 ,p_balance_type_code OUT VARCHAR2
20898 ,p_gain_or_loss_ref OUT VARCHAR2
20899
20900 --Collection Document Bank Occurrence
20901 , p_source_4 IN VARCHAR2
20902 --Collection Document Number
20903 , p_source_5 IN NUMBER
20904 --Collection Document Trade Note Number
20905 , p_source_6 IN VARCHAR2
20906 --Bordero Type
20907 , p_source_7 IN VARCHAR2
20908 , p_source_7_meaning IN VARCHAR2
20909 --Collection Document Bills Under Collection Account
20910 , p_source_16 IN NUMBER
20911 --Bill To Customer Account Identifier
20912 , p_source_37 IN NUMBER
20913 --Bill To Customer Site Use Identifier
20914 , p_source_38 IN NUMBER
20915 --SLA Party Type
20916 , p_source_39 IN VARCHAR2
20917 --Collection Document Distribution Line Type
20918 , p_source_66 IN VARCHAR2
20919 , p_source_66_meaning IN VARCHAR2
20920 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
20921 , p_source_67 IN VARCHAR2
20922 , p_source_67_meaning IN VARCHAR2
20923 --Applied To Distribution Link Type
20924 , p_source_69 IN VARCHAR2
20925 --Applied To Distribution Identifier
20926 , p_source_71 IN NUMBER
20927 --Applied To Distribution Document Identifier
20928 , p_source_72 IN NUMBER
20929 --Applied To Distribution Occurrence Identifier
20930 , p_source_73 IN NUMBER
20931 --Collection Document Distribution Identifier
20932 , p_source_74 IN NUMBER
20933 --Collection Document Distribution Link Type
20934 , p_source_75 IN VARCHAR2
20935 --Collection Document Distribution Entered Amount
20936 , p_source_76 IN NUMBER
20937 --Collection Document Distribution Entered Currency Code
20938 , p_source_77 IN VARCHAR2
20939 --Collection Document Distribution Conversion Date
20940 , p_source_78 IN DATE
20941 --Collection Document Distribution Conversion Rate
20942 , p_source_79 IN NUMBER
20943 --Collection Document Distribution Conversion Rate Type
20944 , p_source_80 IN VARCHAR2
20945 --Collection Document Distribution Accounted Amount
20946 , p_source_81 IN NUMBER
20947 --Collection Document Occurrence Identifier
20948 , p_source_82 IN NUMBER
20949 --Reversed Collection Document Distribution Identifier
20950 , p_source_83 IN NUMBER
20951 --Reversed Collection Document Distribution Link Type
20952 , p_source_84 IN VARCHAR2
20953 --Collection Document Occurrence Type
20954 , p_source_85 IN VARCHAR2
20955 , p_source_85_meaning IN VARCHAR2
20956 )
20957 IS
20958
20959 l_component_type VARCHAR2(80);
20960 l_component_code VARCHAR2(30);
20961 l_component_type_code VARCHAR2(1);
20962 l_component_appl_id INTEGER;
20963 l_amb_context_code VARCHAR2(30);
20964 l_entity_code VARCHAR2(30);
20965 l_event_class_code VARCHAR2(30);
20966 l_ae_header_id NUMBER;
20967 l_event_type_code VARCHAR2(30);
20968 l_line_definition_code VARCHAR2(30);
20969 l_line_definition_owner_code VARCHAR2(1);
20970 --
20971 -- adr variables
20972 l_segment VARCHAR2(30);
20976 l_adr_flexfield_segment_code VARCHAR2(30);
20973 l_ccid NUMBER;
20974 l_adr_transaction_coa_id NUMBER;
20975 l_adr_accounting_coa_id NUMBER;
20977 l_adr_flex_value_set_id NUMBER;
20978 l_adr_value_type_code VARCHAR2(30);
20979 l_adr_value_combination_id NUMBER;
20980 l_adr_value_segment_code VARCHAR2(30);
20981
20982 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20983 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20984 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20985 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20986
20987 -- 4262811 Variables ------------------------------------------------------------------------------------------
20988 l_entered_amt_idx NUMBER;
20989 l_accted_amt_idx NUMBER;
20990 l_acc_rev_flag VARCHAR2(1);
20991 l_accrual_line_num NUMBER;
20992 l_tmp_amt NUMBER;
20993 l_acc_rev_natural_side_code VARCHAR2(1);
20994
20995 l_num_entries NUMBER;
20996 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20997 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20998 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20999 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21000 l_recog_line_1 NUMBER;
21001 l_recog_line_2 NUMBER;
21002
21003 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21004 l_bflow_applied_to_amt NUMBER; -- 5132302
21005 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21006
21007 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21008
21009 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21010 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21011
21012 ---------------------------------------------------------------------------------------------------------------
21013
21014
21015 --
21016 -- bulk performance
21017 --
21018 l_balance_type_code VARCHAR2(1);
21019 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21020 l_log_module VARCHAR2(240);
21021
21022 --
21023 -- Upgrade strategy
21024 --
21025 l_actual_upg_option VARCHAR2(1);
21026 l_enc_upg_option VARCHAR2(1);
21027
21028 --
21029 BEGIN
21030 --
21031 IF g_log_enabled THEN
21032 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
21033 END IF;
21034 --
21035 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21036
21037 trace
21038 (p_msg => 'BEGIN of AcctLineType_56'
21039 ,p_level => C_LEVEL_PROCEDURE
21040 ,p_module => l_log_module);
21041
21042 END IF;
21043 --
21044 l_component_type := 'AMB_JLT';
21045 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL_DR';
21046 l_component_type_code := 'S';
21047 l_component_appl_id := 222;
21048 l_amb_context_code := 'DEFAULT';
21049 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
21050 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
21051 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
21052 l_line_definition_owner_code := 'S';
21053 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
21054 --
21055 l_balance_type_code := 'A';
21056 l_segment := NULL;
21057 l_ccid := NULL;
21058 l_adr_transaction_coa_id := NULL;
21059 l_adr_accounting_coa_id := NULL;
21060 l_adr_flexfield_segment_code := NULL;
21061 l_adr_flex_value_set_id := NULL;
21062 l_adr_value_type_code := NULL;
21063 l_adr_value_combination_id := NULL;
21064 l_adr_value_segment_code := NULL;
21065
21066 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21067 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_COLLECTION'; -- 4219869 Business Flow
21068 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21069 l_budgetary_control_flag := 'N';
21070
21071 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21072 l_bflow_applied_to_amt := NULL; -- 5132302
21073 l_entered_amt_idx := NULL; -- 4262811
21074 l_accted_amt_idx := NULL; -- 4262811
21075 l_acc_rev_flag := NULL; -- 4262811
21076 l_accrual_line_num := NULL; -- 4262811
21077 l_tmp_amt := NULL; -- 4262811
21078 --
21079
21080 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21081 l_balance_type_code <> 'B' THEN
21082 IF NVL(p_source_66,'
21083 ') = 'JLBR_AR_ENDORSEMENT' AND
21084 NVL(p_source_7,'
21085 ') = 'COLLECTION' AND
21086 NVL(p_source_85,'
21087 ') = 'REMITTANCE_OCCURRENCE'
21088 THEN
21089
21090 --
21091 XLA_AE_LINES_PKG.SetNewLine;
21095
21092
21093 p_balance_type_code := l_balance_type_code;
21094 -- set the flag so later we will know whether the gain loss line needs to be created
21096 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21097 p_actual_flag :='A';
21098 END IF;
21099
21100 --
21101 -- bulk performance
21102 --
21103 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21104 p_header_num => 0); -- 4262811
21105 --
21106 -- set accounting line options
21107 --
21108 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21109 p_natural_side_code => 'D'
21110 , p_gain_or_loss_flag => 'N'
21111 , p_gl_transfer_mode_code => 'S'
21112 , p_acct_entry_type_code => 'A'
21113 , p_switch_side_flag => 'Y'
21114 , p_merge_duplicate_code => 'A'
21115 );
21116 --
21117 l_acc_rev_natural_side_code := 'C'; -- 4262811
21118 --
21119 --
21120 -- set accounting line type info
21121 --
21122 xla_ae_lines_pkg.SetAcctLineType
21123 (p_component_type => l_component_type
21124 ,p_event_type_code => l_event_type_code
21125 ,p_line_definition_owner_code => l_line_definition_owner_code
21126 ,p_line_definition_code => l_line_definition_code
21127 ,p_accounting_line_code => l_component_code
21128 ,p_accounting_line_type_code => l_component_type_code
21132 ,p_event_class_code => l_event_class_code);
21129 ,p_accounting_line_appl_id => l_component_appl_id
21130 ,p_amb_context_code => l_amb_context_code
21131 ,p_entity_code => l_entity_code
21133 --
21134 -- set accounting class
21135 --
21136 xla_ae_lines_pkg.SetAcctClass(
21137 p_accounting_class_code => 'REMITTANCE'
21138 , p_ae_header_id => l_ae_header_id
21139 );
21140
21141 --
21142 -- set rounding class
21143 --
21144 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21145 'REMITTANCE';
21146
21147 --
21148 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21149 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21150 --
21151 -- bulk performance
21152 --
21153 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21154
21155 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21156 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21157
21158 -- 4955764
21159 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21160 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21161
21162 -- 4458381 Public Sector Enh
21163
21164 --
21165 -- set accounting attributes for the line type
21166 --
21167 l_entered_amt_idx := 10;
21168 l_accted_amt_idx := 15;
21169 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21170 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21171 l_rec_acct_attrs.array_char_value(1) := p_source_67;
21172 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
21173 l_rec_acct_attrs.array_num_value(2) :=
21174 xla_ae_sources_pkg.GetSystemSourceNum(
21175 p_source_code => 'XLA_EVENT_APPL_ID'
21176 , p_source_type_code => 'Y'
21177 , p_source_application_id => 602
21178 );
21179 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21180 l_rec_acct_attrs.array_char_value(3) := p_source_69;
21181 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
21182 l_rec_acct_attrs.array_char_value(4) :=
21183 xla_ae_sources_pkg.GetSystemSourceChar(
21184 p_source_code => 'XLA_ENTITY_CODE'
21185 , p_source_type_code => 'Y'
21186 , p_source_application_id => 602
21187 );
21188 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
21189 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
21190 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21191 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
21192 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
21193 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
21197 l_rec_acct_attrs.array_char_value(9) := p_source_75;
21194 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21195 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
21196 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21198 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21199 l_rec_acct_attrs.array_num_value(10) := p_source_76;
21200 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21201 l_rec_acct_attrs.array_char_value(11) := p_source_77;
21202 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21203 l_rec_acct_attrs.array_date_value(12) := p_source_78;
21204 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21205 l_rec_acct_attrs.array_num_value(13) := p_source_79;
21206 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21207 l_rec_acct_attrs.array_char_value(14) := p_source_80;
21208 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21209 l_rec_acct_attrs.array_num_value(15) := p_source_81;
21210 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
21211 l_rec_acct_attrs.array_num_value(16) := p_source_37;
21212 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
21213 l_rec_acct_attrs.array_num_value(17) := p_source_38;
21214 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
21215 l_rec_acct_attrs.array_char_value(18) := p_source_39;
21216 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
21217 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
21218 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21219 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
21220 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21221 l_rec_acct_attrs.array_char_value(21) := p_source_84;
21222 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
21223 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
21224
21225 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21226 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21227
21228 ---------------------------------------------------------------------------------------------------------------
21229 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21230 ---------------------------------------------------------------------------------------------------------------
21231 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21232
21233 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21234 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21235
21236 IF xla_accounting_cache_pkg.GetValueChar
21237 (p_source_code => 'LEDGER_CATEGORY_CODE'
21238 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21239 AND l_bflow_method_code = 'PRIOR_ENTRY'
21240 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21241 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21242 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21243 )
21244 THEN
21245 xla_ae_lines_pkg.BflowUpgEntry
21246 (p_business_method_code => l_bflow_method_code
21247 ,p_business_class_code => l_bflow_class_code
21248 ,p_balance_type => l_balance_type_code);
21249 ELSE
21250 NULL;
21251 -- No business flow processing for business flow method of NONE.
21255 -- call analytical criteria
21252 END IF;
21253
21254 --
21256 --
21257
21258 --
21259 -- call description
21260 --
21261
21262 xla_ae_lines_pkg.SetLineDescription(
21263 p_ae_header_id => l_ae_header_id
21264 ,p_description => Description_3 (
21265 p_application_id => p_application_id
21266 , p_ae_header_id => l_ae_header_id
21267 , p_source_4 => p_source_4
21268 , p_source_5 => p_source_5
21269 , p_source_6 => p_source_6
21270 )
21271 );
21272
21273
21274 --
21275 -- call ADRs
21276 -- Bug 4922099
21277 --
21278 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21279 (NVL(l_actual_upg_option, 'N') = 'O') OR
21283 NULL;
21280 (NVL(l_enc_upg_option, 'N') = 'O')
21281 )
21282 THEN
21284 --
21285 --
21286
21287 l_ccid := AcctDerRule_14(
21288 p_application_id => p_application_id
21289 , p_ae_header_id => l_ae_header_id
21290 , p_source_16 => p_source_16
21291 , x_transaction_coa_id => l_adr_transaction_coa_id
21292 , x_accounting_coa_id => l_adr_accounting_coa_id
21293 , x_value_type_code => l_adr_value_type_code
21294 , p_side => 'NA'
21295 );
21296
21297 xla_ae_lines_pkg.set_ccid(
21298 p_code_combination_id => l_ccid
21299 , p_value_type_code => l_adr_value_type_code
21300 , p_transaction_coa_id => l_adr_transaction_coa_id
21301 , p_accounting_coa_id => l_adr_accounting_coa_id
21302 , p_adr_code => 'COLL_DOC_BILLS_UNDER_COLL'
21303 , p_adr_type_code => 'S'
21304 , p_component_type => l_component_type
21305 , p_component_code => l_component_code
21306 , p_component_type_code => l_component_type_code
21307 , p_component_appl_id => l_component_appl_id
21308 , p_amb_context_code => l_amb_context_code
21309 , p_side => 'NA'
21310 );
21311
21312
21313 --
21314 --
21315 END IF;
21316 --
21317 -- Bug 4922099
21318 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21319 (NVL(l_enc_upg_option, 'N') = 'O')
21320 ) AND
21321 (l_bflow_method_code = 'PRIOR_ENTRY')
21322 )
21323 THEN
21324 IF
21325 --
21326 1 = 2
21327 --
21328 THEN
21329 xla_accounting_err_pkg.build_message
21330 (p_appli_s_name => 'XLA'
21331 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21332 ,p_token_1 => 'LINE_NUMBER'
21333 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21334 ,p_token_2 => 'LINE_TYPE_NAME'
21335 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21336 l_component_type
21337 ,l_component_code
21338 ,l_component_type_code
21339 ,l_component_appl_id
21340 ,l_amb_context_code
21341 ,l_entity_code
21342 ,l_event_class_code
21343 )
21344 ,p_token_3 => 'OWNER'
21345 ,p_value_3 => xla_lookups_pkg.get_meaning(
21346 p_lookup_type => 'XLA_OWNER_TYPE'
21347 ,p_lookup_code => l_component_type_code
21348 )
21349 ,p_token_4 => 'PRODUCT_NAME'
21350 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21351 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21352 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21353 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21354 ,p_ae_header_id => NULL
21355 );
21356
21357 IF (C_LEVEL_ERROR>= g_log_level) THEN
21358 trace
21359 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21360 ,p_level => C_LEVEL_ERROR
21361 ,p_module => l_log_module);
21362 END IF;
21363 END IF;
21364 END IF;
21365 --
21366 --
21367 ------------------------------------------------------------------------------------------------
21368 -- 4219869 Business Flow
21369 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21370 -- Prior Entry. Currently, the following code is always generated.
21371 ------------------------------------------------------------------------------------------------
21372 XLA_AE_LINES_PKG.ValidateCurrentLine;
21373
21374 ------------------------------------------------------------------------------------
21375 -- 4219869 Business Flow
21376 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21377 ------------------------------------------------------------------------------------
21378 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21379
21380 ----------------------------------------------------------------------------------
21381 -- 4219869 Business Flow
21382 -- Update journal entry status -- Need to generate this within IF <condition>
21386 ,p_balance_type_code => l_balance_type_code
21383 ----------------------------------------------------------------------------------
21384 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21385 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21387 );
21388
21392 BEGIN
21389 -------------------------------------------------------------------------------------------
21390 -- 4262811 - Generate the Accrual Reversal lines
21391 -------------------------------------------------------------------------------------------
21393 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21394 (g_array_event(p_event_id).array_value_num('header_index'));
21395 IF l_acc_rev_flag IS NULL THEN
21396 l_acc_rev_flag := 'N';
21397 END IF;
21398 EXCEPTION
21399 WHEN OTHERS THEN
21400 l_acc_rev_flag := 'N';
21401 END;
21402 --
21403 IF (l_acc_rev_flag = 'Y') THEN
21404
21405 -- 4645092 ------------------------------------------------------------------------------
21406 -- To allow MPA report to determine if it should generate report process
21407 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21408 ------------------------------------------------------------------------------------------
21409
21410 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21411 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21412 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21413 -- call ADRs
21414 -- Bug 4922099
21415 --
21416 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21417 (NVL(l_actual_upg_option, 'N') = 'O') OR
21418 (NVL(l_enc_upg_option, 'N') = 'O')
21419 )
21420 THEN
21421 NULL;
21422 --
21423 --
21424
21425 l_ccid := AcctDerRule_14(
21426 p_application_id => p_application_id
21427 , p_ae_header_id => l_ae_header_id
21428 , p_source_16 => p_source_16
21429 , x_transaction_coa_id => l_adr_transaction_coa_id
21430 , x_accounting_coa_id => l_adr_accounting_coa_id
21431 , x_value_type_code => l_adr_value_type_code
21432 , p_side => 'NA'
21433 );
21434
21435 xla_ae_lines_pkg.set_ccid(
21436 p_code_combination_id => l_ccid
21437 , p_value_type_code => l_adr_value_type_code
21438 , p_transaction_coa_id => l_adr_transaction_coa_id
21439 , p_accounting_coa_id => l_adr_accounting_coa_id
21440 , p_adr_code => 'COLL_DOC_BILLS_UNDER_COLL'
21441 , p_adr_type_code => 'S'
21442 , p_component_type => l_component_type
21443 , p_component_code => l_component_code
21444 , p_component_type_code => l_component_type_code
21445 , p_component_appl_id => l_component_appl_id
21446 , p_amb_context_code => l_amb_context_code
21447 , p_side => 'NA'
21448 );
21449
21450
21451 --
21452 --
21453 END IF;
21454
21455 --
21456 -- Update the line information that should be overwritten
21457 --
21458 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21459 p_header_num => 1);
21460 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21461
21462 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21463
21464 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21465 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21466 END IF;
21467
21468 --
21469 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21470 --
21471 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21472 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21473 ELSE
21474 ---------------------------------------------------------------------------------------------------
21475 -- 4262811a Switch Sign
21476 ---------------------------------------------------------------------------------------------------
21477 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21481 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21478 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21479 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21480 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21482 -- 5132302
21483 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21484 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21485
21486 END IF;
21487
21488 -- 4955764
21489 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21490 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21491
21492
21493 XLA_AE_LINES_PKG.ValidateCurrentLine;
21494 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21495
21496 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21497 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21498 ,p_balance_type_code => l_balance_type_code);
21499
21500 END IF;
21501
21502 -----------------------------------------------------------------------------------------
21503 -- 4262811 Multiperiod Accounting
21504 -----------------------------------------------------------------------------------------
21505 -- No MPA option is assigned.
21506
21507
21508 END IF;
21509 END IF;
21510 --
21511
21512 --
21513 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21514 trace
21515 (p_msg => 'END of AcctLineType_56'
21516 ,p_level => C_LEVEL_PROCEDURE
21517 ,p_module => l_log_module);
21518 END IF;
21519 --
21520 EXCEPTION
21521 WHEN xla_exceptions_pkg.application_exception THEN
21522 RAISE;
21523 WHEN OTHERS THEN
21524 xla_exceptions_pkg.raise_message
21525 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_56');
21526 END AcctLineType_56;
21527 --
21528
21529 ---------------------------------------
21530 --
21531 -- PRIVATE FUNCTION
21532 -- AcctLineType_57
21533 --
21534 ---------------------------------------
21535 PROCEDURE AcctLineType_57 (
21539 ,p_calculate_g_l_flag IN VARCHAR2
21536 p_application_id IN NUMBER
21537 ,p_event_id IN NUMBER
21538 ,p_calculate_acctd_flag IN VARCHAR2
21540 ,p_actual_flag IN OUT VARCHAR2
21541 ,p_balance_type_code OUT VARCHAR2
21542 ,p_gain_or_loss_ref OUT VARCHAR2
21543
21544 --Collection Document Bank Occurrence
21545 , p_source_4 IN VARCHAR2
21546 --Collection Document Number
21547 , p_source_5 IN NUMBER
21548 --Collection Document Trade Note Number
21549 , p_source_6 IN VARCHAR2
21550 --Bordero Type
21551 , p_source_7 IN VARCHAR2
21552 , p_source_7_meaning IN VARCHAR2
21553 --Collection Document Cash Account
21554 , p_source_18 IN NUMBER
21555 --Bill To Customer Account Identifier
21556 , p_source_37 IN NUMBER
21557 --Bill To Customer Site Use Identifier
21558 , p_source_38 IN NUMBER
21559 --SLA Party Type
21560 , p_source_39 IN VARCHAR2
21561 --Collection Document Distribution Line Type
21562 , p_source_66 IN VARCHAR2
21563 , p_source_66_meaning IN VARCHAR2
21564 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
21565 , p_source_67 IN VARCHAR2
21566 , p_source_67_meaning IN VARCHAR2
21567 --Applied To Distribution Link Type
21568 , p_source_69 IN VARCHAR2
21569 --Applied To Distribution Identifier
21570 , p_source_71 IN NUMBER
21571 --Applied To Distribution Document Identifier
21572 , p_source_72 IN NUMBER
21573 --Applied To Distribution Occurrence Identifier
21574 , p_source_73 IN NUMBER
21575 --Collection Document Distribution Identifier
21576 , p_source_74 IN NUMBER
21577 --Collection Document Distribution Link Type
21578 , p_source_75 IN VARCHAR2
21579 --Collection Document Distribution Entered Amount
21580 , p_source_76 IN NUMBER
21581 --Collection Document Distribution Entered Currency Code
21582 , p_source_77 IN VARCHAR2
21583 --Collection Document Distribution Conversion Date
21584 , p_source_78 IN DATE
21585 --Collection Document Distribution Conversion Rate
21586 , p_source_79 IN NUMBER
21587 --Collection Document Distribution Conversion Rate Type
21588 , p_source_80 IN VARCHAR2
21592 , p_source_82 IN NUMBER
21589 --Collection Document Distribution Accounted Amount
21590 , p_source_81 IN NUMBER
21591 --Collection Document Occurrence Identifier
21593 --Reversed Collection Document Distribution Identifier
21594 , p_source_83 IN NUMBER
21595 --Reversed Collection Document Distribution Link Type
21596 , p_source_84 IN VARCHAR2
21597 )
21598 IS
21599
21600 l_component_type VARCHAR2(80);
21601 l_component_code VARCHAR2(30);
21602 l_component_type_code VARCHAR2(1);
21603 l_component_appl_id INTEGER;
21604 l_amb_context_code VARCHAR2(30);
21605 l_entity_code VARCHAR2(30);
21606 l_event_class_code VARCHAR2(30);
21607 l_ae_header_id NUMBER;
21608 l_event_type_code VARCHAR2(30);
21609 l_line_definition_code VARCHAR2(30);
21610 l_line_definition_owner_code VARCHAR2(1);
21611 --
21612 -- adr variables
21613 l_segment VARCHAR2(30);
21614 l_ccid NUMBER;
21615 l_adr_transaction_coa_id NUMBER;
21616 l_adr_accounting_coa_id NUMBER;
21617 l_adr_flexfield_segment_code VARCHAR2(30);
21618 l_adr_flex_value_set_id NUMBER;
21619 l_adr_value_type_code VARCHAR2(30);
21620 l_adr_value_combination_id NUMBER;
21621 l_adr_value_segment_code VARCHAR2(30);
21622
21623 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21624 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21625 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21626 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21627
21628 -- 4262811 Variables ------------------------------------------------------------------------------------------
21629 l_entered_amt_idx NUMBER;
21630 l_accted_amt_idx NUMBER;
21631 l_acc_rev_flag VARCHAR2(1);
21632 l_accrual_line_num NUMBER;
21633 l_tmp_amt NUMBER;
21634 l_acc_rev_natural_side_code VARCHAR2(1);
21635
21636 l_num_entries NUMBER;
21637 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21638 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21639 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21640 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21641 l_recog_line_1 NUMBER;
21642 l_recog_line_2 NUMBER;
21643
21644 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21645 l_bflow_applied_to_amt NUMBER; -- 5132302
21646 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21647
21648 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21649
21650 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21651 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21652
21653 ---------------------------------------------------------------------------------------------------------------
21654
21655
21656 --
21657 -- bulk performance
21658 --
21659 l_balance_type_code VARCHAR2(1);
21660 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21661 l_log_module VARCHAR2(240);
21662
21663 --
21664 -- Upgrade strategy
21665 --
21666 l_actual_upg_option VARCHAR2(1);
21667 l_enc_upg_option VARCHAR2(1);
21668
21669 --
21670 BEGIN
21671 --
21672 IF g_log_enabled THEN
21673 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
21674 END IF;
21675 --
21676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21677
21678 trace
21679 (p_msg => 'BEGIN of AcctLineType_57'
21680 ,p_level => C_LEVEL_PROCEDURE
21681 ,p_module => l_log_module);
21682
21683 END IF;
21684 --
21685 l_component_type := 'AMB_JLT';
21686 l_component_code := 'COLL_DOC_CASH';
21687 l_component_type_code := 'S';
21688 l_component_appl_id := 222;
21689 l_amb_context_code := 'DEFAULT';
21690 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
21694 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
21691 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
21692 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
21693 l_line_definition_owner_code := 'S';
21695 --
21696 l_balance_type_code := 'A';
21697 l_segment := NULL;
21698 l_ccid := NULL;
21699 l_adr_transaction_coa_id := NULL;
21700 l_adr_accounting_coa_id := NULL;
21701 l_adr_flexfield_segment_code := NULL;
21702 l_adr_flex_value_set_id := NULL;
21703 l_adr_value_type_code := NULL;
21704 l_adr_value_combination_id := NULL;
21705 l_adr_value_segment_code := NULL;
21706
21707 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21708 l_bflow_class_code := ''; -- 4219869 Business Flow
21709 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21710 l_budgetary_control_flag := 'N';
21711
21712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21713 l_bflow_applied_to_amt := NULL; -- 5132302
21714 l_entered_amt_idx := NULL; -- 4262811
21715 l_accted_amt_idx := NULL; -- 4262811
21716 l_acc_rev_flag := NULL; -- 4262811
21717 l_accrual_line_num := NULL; -- 4262811
21718 l_tmp_amt := NULL; -- 4262811
21719 --
21720
21721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21722 l_balance_type_code <> 'B' THEN
21723 IF NVL(p_source_66,'
21724 ') = 'JLBR_AR_BANK_CHARGES' AND
21725 NVL(p_source_7,'
21726 ') = 'COLLECTION'
21727 THEN
21728
21729 --
21730 XLA_AE_LINES_PKG.SetNewLine;
21731
21732 p_balance_type_code := l_balance_type_code;
21733 -- set the flag so later we will know whether the gain loss line needs to be created
21734
21735 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21736 p_actual_flag :='A';
21737 END IF;
21738
21739 --
21740 -- bulk performance
21741 --
21742 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21743 p_header_num => 0); -- 4262811
21744 --
21745 -- set accounting line options
21746 --
21747 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21748 p_natural_side_code => 'C'
21749 , p_gain_or_loss_flag => 'N'
21750 , p_gl_transfer_mode_code => 'S'
21751 , p_acct_entry_type_code => 'A'
21752 , p_switch_side_flag => 'Y'
21753 , p_merge_duplicate_code => 'W'
21754 );
21755 --
21756 l_acc_rev_natural_side_code := 'D'; -- 4262811
21757 --
21758 --
21759 -- set accounting line type info
21760 --
21761 xla_ae_lines_pkg.SetAcctLineType
21762 (p_component_type => l_component_type
21763 ,p_event_type_code => l_event_type_code
21764 ,p_line_definition_owner_code => l_line_definition_owner_code
21765 ,p_line_definition_code => l_line_definition_code
21766 ,p_accounting_line_code => l_component_code
21767 ,p_accounting_line_type_code => l_component_type_code
21768 ,p_accounting_line_appl_id => l_component_appl_id
21769 ,p_amb_context_code => l_amb_context_code
21770 ,p_entity_code => l_entity_code
21771 ,p_event_class_code => l_event_class_code);
21772 --
21773 -- set accounting class
21774 --
21775 xla_ae_lines_pkg.SetAcctClass(
21776 p_accounting_class_code => 'CASH'
21777 , p_ae_header_id => l_ae_header_id
21778 );
21779
21780 --
21781 -- set rounding class
21782 --
21783 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21784 'CASH';
21785
21786 --
21787 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21788 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21789 --
21790 -- bulk performance
21791 --
21792 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21793
21794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21795 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21796
21797 -- 4955764
21798 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21799 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21800
21801 -- 4458381 Public Sector Enh
21805 --
21802
21803 --
21804 -- set accounting attributes for the line type
21806 l_entered_amt_idx := 10;
21807 l_accted_amt_idx := 15;
21808 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21809 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21810 l_rec_acct_attrs.array_char_value(1) := p_source_67;
21811 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
21812 l_rec_acct_attrs.array_num_value(2) :=
21813 xla_ae_sources_pkg.GetSystemSourceNum(
21814 p_source_code => 'XLA_EVENT_APPL_ID'
21815 , p_source_type_code => 'Y'
21816 , p_source_application_id => 602
21817 );
21818 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21819 l_rec_acct_attrs.array_char_value(3) := p_source_69;
21820 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
21821 l_rec_acct_attrs.array_char_value(4) :=
21822 xla_ae_sources_pkg.GetSystemSourceChar(
21823 p_source_code => 'XLA_ENTITY_CODE'
21824 , p_source_type_code => 'Y'
21825 , p_source_application_id => 602
21826 );
21827 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
21828 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
21829 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21830 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
21831 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
21832 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
21833 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21834 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
21835 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21836 l_rec_acct_attrs.array_char_value(9) := p_source_75;
21840 l_rec_acct_attrs.array_char_value(11) := p_source_77;
21837 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21838 l_rec_acct_attrs.array_num_value(10) := p_source_76;
21839 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21841 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21842 l_rec_acct_attrs.array_date_value(12) := p_source_78;
21843 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21844 l_rec_acct_attrs.array_num_value(13) := p_source_79;
21845 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21846 l_rec_acct_attrs.array_char_value(14) := p_source_80;
21847 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21848 l_rec_acct_attrs.array_num_value(15) := p_source_81;
21849 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
21850 l_rec_acct_attrs.array_num_value(16) := p_source_37;
21851 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
21852 l_rec_acct_attrs.array_num_value(17) := p_source_38;
21853 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
21854 l_rec_acct_attrs.array_char_value(18) := p_source_39;
21855 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
21856 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
21857 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21858 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
21859 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21860 l_rec_acct_attrs.array_char_value(21) := p_source_84;
21861 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
21862 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
21863
21864 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21865 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21866
21867 ---------------------------------------------------------------------------------------------------------------
21868 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21869 ---------------------------------------------------------------------------------------------------------------
21870 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21871
21872 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21873 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21874
21875 IF xla_accounting_cache_pkg.GetValueChar
21876 (p_source_code => 'LEDGER_CATEGORY_CODE'
21877 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21878 AND l_bflow_method_code = 'PRIOR_ENTRY'
21879 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21880 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21881 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21885 (p_business_method_code => l_bflow_method_code
21882 )
21883 THEN
21884 xla_ae_lines_pkg.BflowUpgEntry
21886 ,p_business_class_code => l_bflow_class_code
21887 ,p_balance_type => l_balance_type_code);
21888 ELSE
21889 NULL;
21890 -- No business flow processing for business flow method of NONE.
21891 END IF;
21892
21893 --
21894 -- call analytical criteria
21895 --
21896
21897 --
21898 -- call description
21899 --
21900
21901 xla_ae_lines_pkg.SetLineDescription(
21902 p_ae_header_id => l_ae_header_id
21903 ,p_description => Description_5 (
21904 p_application_id => p_application_id
21905 , p_ae_header_id => l_ae_header_id
21906 , p_source_4 => p_source_4
21907 , p_source_5 => p_source_5
21908 , p_source_6 => p_source_6
21909 , p_source_7 => p_source_7
21910 , p_source_7_meaning => p_source_7_meaning
21911 )
21912 );
21913
21914
21915 --
21916 -- call ADRs
21917 -- Bug 4922099
21918 --
21919 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21920 (NVL(l_actual_upg_option, 'N') = 'O') OR
21921 (NVL(l_enc_upg_option, 'N') = 'O')
21922 )
21923 THEN
21924 NULL;
21925 --
21926 --
21927
21928 l_ccid := AcctDerRule_16(
21929 p_application_id => p_application_id
21930 , p_ae_header_id => l_ae_header_id
21931 , p_source_18 => p_source_18
21932 , x_transaction_coa_id => l_adr_transaction_coa_id
21933 , x_accounting_coa_id => l_adr_accounting_coa_id
21934 , x_value_type_code => l_adr_value_type_code
21935 , p_side => 'NA'
21936 );
21937
21938 xla_ae_lines_pkg.set_ccid(
21939 p_code_combination_id => l_ccid
21940 , p_value_type_code => l_adr_value_type_code
21941 , p_transaction_coa_id => l_adr_transaction_coa_id
21942 , p_accounting_coa_id => l_adr_accounting_coa_id
21943 , p_adr_code => 'COLL_DOC_CASH'
21944 , p_adr_type_code => 'S'
21945 , p_component_type => l_component_type
21946 , p_component_code => l_component_code
21947 , p_component_type_code => l_component_type_code
21948 , p_component_appl_id => l_component_appl_id
21949 , p_amb_context_code => l_amb_context_code
21950 , p_side => 'NA'
21951 );
21952
21953
21954 --
21955 --
21956 END IF;
21957 --
21958 -- Bug 4922099
21959 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21960 (NVL(l_enc_upg_option, 'N') = 'O')
21961 ) AND
21962 (l_bflow_method_code = 'PRIOR_ENTRY')
21963 )
21964 THEN
21965 IF
21966 --
21967 1 = 2
21968 --
21969 THEN
21970 xla_accounting_err_pkg.build_message
21971 (p_appli_s_name => 'XLA'
21972 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21973 ,p_token_1 => 'LINE_NUMBER'
21974 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21975 ,p_token_2 => 'LINE_TYPE_NAME'
21976 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21977 l_component_type
21981 ,l_amb_context_code
21978 ,l_component_code
21979 ,l_component_type_code
21980 ,l_component_appl_id
21982 ,l_entity_code
21983 ,l_event_class_code
21984 )
21985 ,p_token_3 => 'OWNER'
21986 ,p_value_3 => xla_lookups_pkg.get_meaning(
21987 p_lookup_type => 'XLA_OWNER_TYPE'
21991 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21988 ,p_lookup_code => l_component_type_code
21989 )
21990 ,p_token_4 => 'PRODUCT_NAME'
21992 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21993 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21994 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21995 ,p_ae_header_id => NULL
21996 );
21997
21998 IF (C_LEVEL_ERROR>= g_log_level) THEN
21999 trace
22000 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22001 ,p_level => C_LEVEL_ERROR
22002 ,p_module => l_log_module);
22003 END IF;
22004 END IF;
22005 END IF;
22006 --
22007 --
22008 ------------------------------------------------------------------------------------------------
22009 -- 4219869 Business Flow
22010 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22011 -- Prior Entry. Currently, the following code is always generated.
22012 ------------------------------------------------------------------------------------------------
22013 XLA_AE_LINES_PKG.ValidateCurrentLine;
22014
22015 ------------------------------------------------------------------------------------
22016 -- 4219869 Business Flow
22017 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22018 ------------------------------------------------------------------------------------
22019 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22020
22021 ----------------------------------------------------------------------------------
22022 -- 4219869 Business Flow
22023 -- Update journal entry status -- Need to generate this within IF <condition>
22024 ----------------------------------------------------------------------------------
22025 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22026 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22027 ,p_balance_type_code => l_balance_type_code
22028 );
22029
22030 -------------------------------------------------------------------------------------------
22031 -- 4262811 - Generate the Accrual Reversal lines
22032 -------------------------------------------------------------------------------------------
22033 BEGIN
22034 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22035 (g_array_event(p_event_id).array_value_num('header_index'));
22036 IF l_acc_rev_flag IS NULL THEN
22037 l_acc_rev_flag := 'N';
22038 END IF;
22039 EXCEPTION
22040 WHEN OTHERS THEN
22041 l_acc_rev_flag := 'N';
22042 END;
22043 --
22044 IF (l_acc_rev_flag = 'Y') THEN
22045
22046 -- 4645092 ------------------------------------------------------------------------------
22047 -- To allow MPA report to determine if it should generate report process
22048 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22049 ------------------------------------------------------------------------------------------
22050
22051 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22052 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22053 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22054 -- call ADRs
22055 -- Bug 4922099
22056 --
22057 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22058 (NVL(l_actual_upg_option, 'N') = 'O') OR
22059 (NVL(l_enc_upg_option, 'N') = 'O')
22060 )
22061 THEN
22062 NULL;
22063 --
22064 --
22065
22066 l_ccid := AcctDerRule_16(
22067 p_application_id => p_application_id
22068 , p_ae_header_id => l_ae_header_id
22069 , p_source_18 => p_source_18
22070 , x_transaction_coa_id => l_adr_transaction_coa_id
22071 , x_accounting_coa_id => l_adr_accounting_coa_id
22072 , x_value_type_code => l_adr_value_type_code
22073 , p_side => 'NA'
22074 );
22075
22076 xla_ae_lines_pkg.set_ccid(
22077 p_code_combination_id => l_ccid
22078 , p_value_type_code => l_adr_value_type_code
22079 , p_transaction_coa_id => l_adr_transaction_coa_id
22080 , p_accounting_coa_id => l_adr_accounting_coa_id
22081 , p_adr_code => 'COLL_DOC_CASH'
22082 , p_adr_type_code => 'S'
22083 , p_component_type => l_component_type
22084 , p_component_code => l_component_code
22085 , p_component_type_code => l_component_type_code
22086 , p_component_appl_id => l_component_appl_id
22087 , p_amb_context_code => l_amb_context_code
22088 , p_side => 'NA'
22089 );
22090
22091
22092 --
22093 --
22094 END IF;
22095
22096 --
22097 -- Update the line information that should be overwritten
22098 --
22099 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22100 p_header_num => 1);
22101 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22102
22103 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22104
22105 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22106 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22107 END IF;
22108
22109 --
22110 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22111 --
22112 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22113 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22114 ELSE
22115 ---------------------------------------------------------------------------------------------------
22116 -- 4262811a Switch Sign
22117 ---------------------------------------------------------------------------------------------------
22118 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22119 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22120 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22121 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22122 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22123 -- 5132302
22124 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22125 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22126
22127 END IF;
22128
22129 -- 4955764
22130 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22131 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22132
22133
22134 XLA_AE_LINES_PKG.ValidateCurrentLine;
22135 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22136
22137 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22138 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22139 ,p_balance_type_code => l_balance_type_code);
22140
22141 END IF;
22142
22143 -----------------------------------------------------------------------------------------
22144 -- 4262811 Multiperiod Accounting
22145 -----------------------------------------------------------------------------------------
22146 -- No MPA option is assigned.
22147
22148
22149 END IF;
22150 END IF;
22151 --
22152
22153 --
22154 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22155 trace
22156 (p_msg => 'END of AcctLineType_57'
22157 ,p_level => C_LEVEL_PROCEDURE
22158 ,p_module => l_log_module);
22159 END IF;
22160 --
22161 EXCEPTION
22162 WHEN xla_exceptions_pkg.application_exception THEN
22163 RAISE;
22164 WHEN OTHERS THEN
22165 xla_exceptions_pkg.raise_message
22166 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_57');
22167 END AcctLineType_57;
22168 --
22169
22170 ---------------------------------------
22171 --
22172 -- PRIVATE FUNCTION
22173 -- AcctLineType_58
22174 --
22175 ---------------------------------------
22176 PROCEDURE AcctLineType_58 (
22177 p_application_id IN NUMBER
22178 ,p_event_id IN NUMBER
22179 ,p_calculate_acctd_flag IN VARCHAR2
22180 ,p_calculate_g_l_flag IN VARCHAR2
22181 ,p_actual_flag IN OUT VARCHAR2
22182 ,p_balance_type_code OUT VARCHAR2
22183 ,p_gain_or_loss_ref OUT VARCHAR2
22184
22185 --Collection Document Bank Occurrence
22186 , p_source_4 IN VARCHAR2
22187 --Collection Document Number
22188 , p_source_5 IN NUMBER
22189 --Collection Document Trade Note Number
22193 , p_source_7_meaning IN VARCHAR2
22190 , p_source_6 IN VARCHAR2
22191 --Bordero Type
22192 , p_source_7 IN VARCHAR2
22194 --Collection Document Collection Endorsement Account
22195 , p_source_19 IN NUMBER
22196 --Bill To Customer Account Identifier
22197 , p_source_37 IN NUMBER
22198 --Bill To Customer Site Use Identifier
22199 , p_source_38 IN NUMBER
22200 --SLA Party Type
22201 , p_source_39 IN VARCHAR2
22202 --Collection Document Distribution Line Type
22203 , p_source_66 IN VARCHAR2
22204 , p_source_66_meaning IN VARCHAR2
22205 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
22206 , p_source_67 IN VARCHAR2
22207 , p_source_67_meaning IN VARCHAR2
22208 --Applied To Distribution Link Type
22209 , p_source_69 IN VARCHAR2
22210 --Applied To Distribution Identifier
22211 , p_source_71 IN NUMBER
22212 --Applied To Distribution Document Identifier
22213 , p_source_72 IN NUMBER
22214 --Applied To Distribution Occurrence Identifier
22215 , p_source_73 IN NUMBER
22216 --Collection Document Distribution Identifier
22217 , p_source_74 IN NUMBER
22218 --Collection Document Distribution Link Type
22219 , p_source_75 IN VARCHAR2
22220 --Collection Document Distribution Entered Amount
22221 , p_source_76 IN NUMBER
22222 --Collection Document Distribution Entered Currency Code
22223 , p_source_77 IN VARCHAR2
22224 --Collection Document Distribution Conversion Date
22225 , p_source_78 IN DATE
22226 --Collection Document Distribution Conversion Rate
22227 , p_source_79 IN NUMBER
22228 --Collection Document Distribution Conversion Rate Type
22229 , p_source_80 IN VARCHAR2
22230 --Collection Document Distribution Accounted Amount
22231 , p_source_81 IN NUMBER
22232 --Collection Document Occurrence Identifier
22233 , p_source_82 IN NUMBER
22234 --Reversed Collection Document Distribution Identifier
22235 , p_source_83 IN NUMBER
22236 --Reversed Collection Document Distribution Link Type
22237 , p_source_84 IN VARCHAR2
22238 --Collection Document Occurrence Type
22239 , p_source_85 IN VARCHAR2
22240 , p_source_85_meaning IN VARCHAR2
22241 )
22242 IS
22243
22244 l_component_type VARCHAR2(80);
22245 l_component_code VARCHAR2(30);
22246 l_component_type_code VARCHAR2(1);
22247 l_component_appl_id INTEGER;
22248 l_amb_context_code VARCHAR2(30);
22249 l_entity_code VARCHAR2(30);
22250 l_event_class_code VARCHAR2(30);
22251 l_ae_header_id NUMBER;
22252 l_event_type_code VARCHAR2(30);
22253 l_line_definition_code VARCHAR2(30);
22254 l_line_definition_owner_code VARCHAR2(1);
22255 --
22256 -- adr variables
22257 l_segment VARCHAR2(30);
22258 l_ccid NUMBER;
22259 l_adr_transaction_coa_id NUMBER;
22260 l_adr_accounting_coa_id NUMBER;
22261 l_adr_flexfield_segment_code VARCHAR2(30);
22262 l_adr_flex_value_set_id NUMBER;
22263 l_adr_value_type_code VARCHAR2(30);
22264 l_adr_value_combination_id NUMBER;
22265 l_adr_value_segment_code VARCHAR2(30);
22266
22267 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22268 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22269 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22270 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22271
22272 -- 4262811 Variables ------------------------------------------------------------------------------------------
22273 l_entered_amt_idx NUMBER;
22274 l_accted_amt_idx NUMBER;
22275 l_acc_rev_flag VARCHAR2(1);
22276 l_accrual_line_num NUMBER;
22277 l_tmp_amt NUMBER;
22278 l_acc_rev_natural_side_code VARCHAR2(1);
22279
22280 l_num_entries NUMBER;
22281 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22282 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22283 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22284 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22285 l_recog_line_1 NUMBER;
22286 l_recog_line_2 NUMBER;
22287
22288 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22292 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22289 l_bflow_applied_to_amt NUMBER; -- 5132302
22290 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22291
22293
22294 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22295 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22296
22297 ---------------------------------------------------------------------------------------------------------------
22298
22299
22300 --
22301 -- bulk performance
22302 --
22303 l_balance_type_code VARCHAR2(1);
22304 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22305 l_log_module VARCHAR2(240);
22306
22307 --
22308 -- Upgrade strategy
22309 --
22310 l_actual_upg_option VARCHAR2(1);
22311 l_enc_upg_option VARCHAR2(1);
22312
22313 --
22314 BEGIN
22315 --
22316 IF g_log_enabled THEN
22317 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
22318 END IF;
22319 --
22320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22321
22322 trace
22323 (p_msg => 'BEGIN of AcctLineType_58'
22324 ,p_level => C_LEVEL_PROCEDURE
22325 ,p_module => l_log_module);
22326
22327 END IF;
22328 --
22329 l_component_type := 'AMB_JLT';
22330 l_component_code := 'COLL_DOC_COLL_ENDRSMNT_CR';
22331 l_component_type_code := 'S';
22332 l_component_appl_id := 222;
22333 l_amb_context_code := 'DEFAULT';
22334 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
22335 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
22336 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
22337 l_line_definition_owner_code := 'S';
22338 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
22339 --
22340 l_balance_type_code := 'A';
22341 l_segment := NULL;
22342 l_ccid := NULL;
22343 l_adr_transaction_coa_id := NULL;
22344 l_adr_accounting_coa_id := NULL;
22345 l_adr_flexfield_segment_code := NULL;
22346 l_adr_flex_value_set_id := NULL;
22347 l_adr_value_type_code := NULL;
22348 l_adr_value_combination_id := NULL;
22349 l_adr_value_segment_code := NULL;
22350
22351 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22352 l_bflow_class_code := 'JLBR_AR_COLLECTION_ENDORSEMENT'; -- 4219869 Business Flow
22353 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22354 l_budgetary_control_flag := 'N';
22355
22356 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22357 l_bflow_applied_to_amt := NULL; -- 5132302
22358 l_entered_amt_idx := NULL; -- 4262811
22359 l_accted_amt_idx := NULL; -- 4262811
22360 l_acc_rev_flag := NULL; -- 4262811
22361 l_accrual_line_num := NULL; -- 4262811
22362 l_tmp_amt := NULL; -- 4262811
22363 --
22364
22365 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22366 l_balance_type_code <> 'B' THEN
22367 IF NVL(p_source_66,'
22368 ') = 'JLBR_AR_ENDORSEMENT' AND
22369 NVL(p_source_7,'
22370 ') = 'COLLECTION' AND
22371 NVL(p_source_85,'
22372 ') = 'REMITTANCE_OCCURRENCE'
22373 THEN
22374
22375 --
22376 XLA_AE_LINES_PKG.SetNewLine;
22377
22378 p_balance_type_code := l_balance_type_code;
22379 -- set the flag so later we will know whether the gain loss line needs to be created
22380
22381 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22382 p_actual_flag :='A';
22383 END IF;
22384
22385 --
22386 -- bulk performance
22387 --
22388 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22389 p_header_num => 0); -- 4262811
22390 --
22391 -- set accounting line options
22392 --
22393 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22394 p_natural_side_code => 'C'
22395 , p_gain_or_loss_flag => 'N'
22396 , p_gl_transfer_mode_code => 'S'
22397 , p_acct_entry_type_code => 'A'
22398 , p_switch_side_flag => 'Y'
22399 , p_merge_duplicate_code => 'A'
22400 );
22401 --
22402 l_acc_rev_natural_side_code := 'D'; -- 4262811
22403 --
22404 --
22405 -- set accounting line type info
22406 --
22407 xla_ae_lines_pkg.SetAcctLineType
22408 (p_component_type => l_component_type
22409 ,p_event_type_code => l_event_type_code
22410 ,p_line_definition_owner_code => l_line_definition_owner_code
22411 ,p_line_definition_code => l_line_definition_code
22412 ,p_accounting_line_code => l_component_code
22413 ,p_accounting_line_type_code => l_component_type_code
22414 ,p_accounting_line_appl_id => l_component_appl_id
22415 ,p_amb_context_code => l_amb_context_code
22416 ,p_entity_code => l_entity_code
22417 ,p_event_class_code => l_event_class_code);
22418 --
22419 -- set accounting class
22420 --
22421 xla_ae_lines_pkg.SetAcctClass(
22422 p_accounting_class_code => 'REMITTANCE'
22426 --
22423 , p_ae_header_id => l_ae_header_id
22424 );
22425
22427 -- set rounding class
22428 --
22429 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22430 'REMITTANCE';
22431
22432 --
22433 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22434 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22435 --
22436 -- bulk performance
22437 --
22438 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22439
22440 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22441 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22442
22443 -- 4955764
22444 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22445 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22446
22447 -- 4458381 Public Sector Enh
22448
22449 --
22450 -- set accounting attributes for the line type
22451 --
22452 l_entered_amt_idx := 10;
22453 l_accted_amt_idx := 15;
22454 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22455 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22456 l_rec_acct_attrs.array_char_value(1) := p_source_67;
22457 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
22458 l_rec_acct_attrs.array_num_value(2) :=
22459 xla_ae_sources_pkg.GetSystemSourceNum(
22460 p_source_code => 'XLA_EVENT_APPL_ID'
22461 , p_source_type_code => 'Y'
22462 , p_source_application_id => 602
22463 );
22464 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22465 l_rec_acct_attrs.array_char_value(3) := p_source_69;
22466 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
22467 l_rec_acct_attrs.array_char_value(4) :=
22468 xla_ae_sources_pkg.GetSystemSourceChar(
22469 p_source_code => 'XLA_ENTITY_CODE'
22470 , p_source_type_code => 'Y'
22471 , p_source_application_id => 602
22472 );
22473 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
22474 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
22475 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22476 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
22477 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
22478 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
22479 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22480 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
22481 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22482 l_rec_acct_attrs.array_char_value(9) := p_source_75;
22483 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22484 l_rec_acct_attrs.array_num_value(10) := p_source_76;
22485 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22486 l_rec_acct_attrs.array_char_value(11) := p_source_77;
22487 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22488 l_rec_acct_attrs.array_date_value(12) := p_source_78;
22489 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22490 l_rec_acct_attrs.array_num_value(13) := p_source_79;
22491 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22492 l_rec_acct_attrs.array_char_value(14) := p_source_80;
22493 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22494 l_rec_acct_attrs.array_num_value(15) := p_source_81;
22495 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
22496 l_rec_acct_attrs.array_num_value(16) := p_source_37;
22497 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
22498 l_rec_acct_attrs.array_num_value(17) := p_source_38;
22499 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
22500 l_rec_acct_attrs.array_char_value(18) := p_source_39;
22501 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
22502 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
22503 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22504 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
22505 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22506 l_rec_acct_attrs.array_char_value(21) := p_source_84;
22507 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
22508 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
22509
22510 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22511 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22512
22513 ---------------------------------------------------------------------------------------------------------------
22514 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22515 ---------------------------------------------------------------------------------------------------------------
22516 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22517
22518 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22519 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22520
22521 IF xla_accounting_cache_pkg.GetValueChar
22522 (p_source_code => 'LEDGER_CATEGORY_CODE'
22523 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22524 AND l_bflow_method_code = 'PRIOR_ENTRY'
22525 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22529 THEN
22526 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22527 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22528 )
22530 xla_ae_lines_pkg.BflowUpgEntry
22531 (p_business_method_code => l_bflow_method_code
22532 ,p_business_class_code => l_bflow_class_code
22533 ,p_balance_type => l_balance_type_code);
22534 ELSE
22535 NULL;
22536 -- No business flow processing for business flow method of NONE.
22537 END IF;
22538
22539 --
22540 -- call analytical criteria
22541 --
22542
22543 --
22544 -- call description
22545 --
22546
22547 xla_ae_lines_pkg.SetLineDescription(
22548 p_ae_header_id => l_ae_header_id
22549 ,p_description => Description_6 (
22550 p_application_id => p_application_id
22551 , p_ae_header_id => l_ae_header_id
22552 , p_source_4 => p_source_4
22553 , p_source_5 => p_source_5
22554 , p_source_6 => p_source_6
22555 )
22556 );
22557
22558
22559 --
22560 -- call ADRs
22561 -- Bug 4922099
22562 --
22563 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22564 (NVL(l_actual_upg_option, 'N') = 'O') OR
22565 (NVL(l_enc_upg_option, 'N') = 'O')
22566 )
22567 THEN
22568 NULL;
22569 --
22570 --
22571
22572 l_ccid := AcctDerRule_17(
22573 p_application_id => p_application_id
22574 , p_ae_header_id => l_ae_header_id
22575 , p_source_19 => p_source_19
22576 , x_transaction_coa_id => l_adr_transaction_coa_id
22577 , x_accounting_coa_id => l_adr_accounting_coa_id
22578 , x_value_type_code => l_adr_value_type_code
22579 , p_side => 'NA'
22580 );
22581
22582 xla_ae_lines_pkg.set_ccid(
22583 p_code_combination_id => l_ccid
22584 , p_value_type_code => l_adr_value_type_code
22585 , p_transaction_coa_id => l_adr_transaction_coa_id
22586 , p_accounting_coa_id => l_adr_accounting_coa_id
22587 , p_adr_code => 'COLL_DOC_COLL_ENDRSMNT'
22588 , p_adr_type_code => 'S'
22589 , p_component_type => l_component_type
22590 , p_component_code => l_component_code
22591 , p_component_type_code => l_component_type_code
22592 , p_component_appl_id => l_component_appl_id
22593 , p_amb_context_code => l_amb_context_code
22594 , p_side => 'NA'
22595 );
22596
22597
22598 --
22599 --
22600 END IF;
22601 --
22602 -- Bug 4922099
22603 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22604 (NVL(l_enc_upg_option, 'N') = 'O')
22605 ) AND
22606 (l_bflow_method_code = 'PRIOR_ENTRY')
22607 )
22608 THEN
22609 IF
22610 --
22611 1 = 2
22612 --
22613 THEN
22614 xla_accounting_err_pkg.build_message
22615 (p_appli_s_name => 'XLA'
22616 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22617 ,p_token_1 => 'LINE_NUMBER'
22618 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22619 ,p_token_2 => 'LINE_TYPE_NAME'
22620 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22621 l_component_type
22622 ,l_component_code
22623 ,l_component_type_code
22624 ,l_component_appl_id
22625 ,l_amb_context_code
22626 ,l_entity_code
22627 ,l_event_class_code
22628 )
22629 ,p_token_3 => 'OWNER'
22630 ,p_value_3 => xla_lookups_pkg.get_meaning(
22631 p_lookup_type => 'XLA_OWNER_TYPE'
22632 ,p_lookup_code => l_component_type_code
22633 )
22634 ,p_token_4 => 'PRODUCT_NAME'
22635 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22636 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22637 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22638 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22639 ,p_ae_header_id => NULL
22640 );
22641
22642 IF (C_LEVEL_ERROR>= g_log_level) THEN
22643 trace
22647 END IF;
22644 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22645 ,p_level => C_LEVEL_ERROR
22646 ,p_module => l_log_module);
22648 END IF;
22649 END IF;
22650 --
22651 --
22652 ------------------------------------------------------------------------------------------------
22653 -- 4219869 Business Flow
22654 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22655 -- Prior Entry. Currently, the following code is always generated.
22656 ------------------------------------------------------------------------------------------------
22657 XLA_AE_LINES_PKG.ValidateCurrentLine;
22658
22659 ------------------------------------------------------------------------------------
22660 -- 4219869 Business Flow
22661 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22662 ------------------------------------------------------------------------------------
22663 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22664
22665 ----------------------------------------------------------------------------------
22666 -- 4219869 Business Flow
22667 -- Update journal entry status -- Need to generate this within IF <condition>
22668 ----------------------------------------------------------------------------------
22669 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22670 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22671 ,p_balance_type_code => l_balance_type_code
22672 );
22673
22674 -------------------------------------------------------------------------------------------
22675 -- 4262811 - Generate the Accrual Reversal lines
22676 -------------------------------------------------------------------------------------------
22677 BEGIN
22678 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22679 (g_array_event(p_event_id).array_value_num('header_index'));
22680 IF l_acc_rev_flag IS NULL THEN
22681 l_acc_rev_flag := 'N';
22682 END IF;
22683 EXCEPTION
22684 WHEN OTHERS THEN
22685 l_acc_rev_flag := 'N';
22686 END;
22687 --
22688 IF (l_acc_rev_flag = 'Y') THEN
22689
22690 -- 4645092 ------------------------------------------------------------------------------
22691 -- To allow MPA report to determine if it should generate report process
22692 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22693 ------------------------------------------------------------------------------------------
22694
22695 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22696 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22697 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22698 -- call ADRs
22699 -- Bug 4922099
22700 --
22701 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22702 (NVL(l_actual_upg_option, 'N') = 'O') OR
22703 (NVL(l_enc_upg_option, 'N') = 'O')
22704 )
22705 THEN
22706 NULL;
22707 --
22708 --
22709
22710 l_ccid := AcctDerRule_17(
22711 p_application_id => p_application_id
22712 , p_ae_header_id => l_ae_header_id
22713 , p_source_19 => p_source_19
22714 , x_transaction_coa_id => l_adr_transaction_coa_id
22715 , x_accounting_coa_id => l_adr_accounting_coa_id
22716 , x_value_type_code => l_adr_value_type_code
22717 , p_side => 'NA'
22718 );
22719
22720 xla_ae_lines_pkg.set_ccid(
22721 p_code_combination_id => l_ccid
22722 , p_value_type_code => l_adr_value_type_code
22723 , p_transaction_coa_id => l_adr_transaction_coa_id
22724 , p_accounting_coa_id => l_adr_accounting_coa_id
22725 , p_adr_code => 'COLL_DOC_COLL_ENDRSMNT'
22726 , p_adr_type_code => 'S'
22727 , p_component_type => l_component_type
22728 , p_component_code => l_component_code
22729 , p_component_type_code => l_component_type_code
22730 , p_component_appl_id => l_component_appl_id
22731 , p_amb_context_code => l_amb_context_code
22732 , p_side => 'NA'
22733 );
22734
22735
22736 --
22737 --
22738 END IF;
22739
22740 --
22741 -- Update the line information that should be overwritten
22742 --
22743 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22744 p_header_num => 1);
22745 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22746
22747 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22748
22749 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22750 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22751 END IF;
22752
22753 --
22754 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22755 --
22756 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22757 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22758 ELSE
22759 ---------------------------------------------------------------------------------------------------
22760 -- 4262811a Switch Sign
22764 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22761 ---------------------------------------------------------------------------------------------------
22762 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22763 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22765 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22766 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22767 -- 5132302
22768 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22769 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22770
22771 END IF;
22772
22773 -- 4955764
22774 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22775 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22776
22777
22778 XLA_AE_LINES_PKG.ValidateCurrentLine;
22779 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22780
22781 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22782 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22783 ,p_balance_type_code => l_balance_type_code);
22784
22785 END IF;
22786
22787 -----------------------------------------------------------------------------------------
22788 -- 4262811 Multiperiod Accounting
22789 -----------------------------------------------------------------------------------------
22790 -- No MPA option is assigned.
22791
22792
22793 END IF;
22794 END IF;
22795 --
22796
22797 --
22798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22799 trace
22800 (p_msg => 'END of AcctLineType_58'
22801 ,p_level => C_LEVEL_PROCEDURE
22802 ,p_module => l_log_module);
22803 END IF;
22804 --
22805 EXCEPTION
22806 WHEN xla_exceptions_pkg.application_exception THEN
22807 RAISE;
22808 WHEN OTHERS THEN
22809 xla_exceptions_pkg.raise_message
22810 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_58');
22811 END AcctLineType_58;
22812 --
22813
22814 ---------------------------------------
22815 --
22816 -- PRIVATE FUNCTION
22817 -- AcctLineType_59
22818 --
22819 ---------------------------------------
22820 PROCEDURE AcctLineType_59 (
22821 p_application_id IN NUMBER
22822 ,p_event_id IN NUMBER
22823 ,p_calculate_acctd_flag IN VARCHAR2
22824 ,p_calculate_g_l_flag IN VARCHAR2
22825 ,p_actual_flag IN OUT VARCHAR2
22826 ,p_balance_type_code OUT VARCHAR2
22827 ,p_gain_or_loss_ref OUT VARCHAR2
22828
22829 --Bordero Type
22830 , p_source_7 IN VARCHAR2
22831 , p_source_7_meaning IN VARCHAR2
22832 --SLA Party Type
22833 , p_source_39 IN VARCHAR2
22834 --Collection Document Distribution Line Type
22835 , p_source_66 IN VARCHAR2
22836 , p_source_66_meaning IN VARCHAR2
22837 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
22838 , p_source_67 IN VARCHAR2
22839 , p_source_67_meaning IN VARCHAR2
22840 --Applied To Distribution Link Type
22841 , p_source_69 IN VARCHAR2
22842 --Applied To Distribution Identifier
22843 , p_source_71 IN NUMBER
22844 --Applied To Distribution Document Identifier
22845 , p_source_72 IN NUMBER
22846 --Applied To Distribution Occurrence Identifier
22847 , p_source_73 IN NUMBER
22848 --Collection Document Distribution Identifier
22849 , p_source_74 IN NUMBER
22850 --Collection Document Distribution Link Type
22851 , p_source_75 IN VARCHAR2
22852 --Collection Document Distribution Entered Amount
22853 , p_source_76 IN NUMBER
22854 --Collection Document Distribution Entered Currency Code
22855 , p_source_77 IN VARCHAR2
22856 --Collection Document Distribution Accounted Amount
22857 , p_source_81 IN NUMBER
22858 --Collection Document Occurrence Identifier
22859 , p_source_82 IN NUMBER
22860 --Reversed Collection Document Distribution Identifier
22861 , p_source_83 IN NUMBER
22862 --Reversed Collection Document Distribution Link Type
22863 , p_source_84 IN VARCHAR2
22864 --Collection Document Occurrence Type
22865 , p_source_85 IN VARCHAR2
22866 , p_source_85_meaning IN VARCHAR2
22867 )
22868 IS
22869
22870 l_component_type VARCHAR2(80);
22871 l_component_code VARCHAR2(30);
22872 l_component_type_code VARCHAR2(1);
22873 l_component_appl_id INTEGER;
22874 l_amb_context_code VARCHAR2(30);
22875 l_entity_code VARCHAR2(30);
22876 l_event_class_code VARCHAR2(30);
22877 l_ae_header_id NUMBER;
22878 l_event_type_code VARCHAR2(30);
22879 l_line_definition_code VARCHAR2(30);
22880 l_line_definition_owner_code VARCHAR2(1);
22881 --
22882 -- adr variables
22883 l_segment VARCHAR2(30);
22884 l_ccid NUMBER;
22885 l_adr_transaction_coa_id NUMBER;
22886 l_adr_accounting_coa_id NUMBER;
22887 l_adr_flexfield_segment_code VARCHAR2(30);
22888 l_adr_flex_value_set_id NUMBER;
22889 l_adr_value_type_code VARCHAR2(30);
22890 l_adr_value_combination_id NUMBER;
22891 l_adr_value_segment_code VARCHAR2(30);
22895 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22892
22893 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22894 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22896 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22897
22898 -- 4262811 Variables ------------------------------------------------------------------------------------------
22899 l_entered_amt_idx NUMBER;
22900 l_accted_amt_idx NUMBER;
22901 l_acc_rev_flag VARCHAR2(1);
22902 l_accrual_line_num NUMBER;
22903 l_tmp_amt NUMBER;
22904 l_acc_rev_natural_side_code VARCHAR2(1);
22905
22906 l_num_entries NUMBER;
22907 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22908 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22909 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22910 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22911 l_recog_line_1 NUMBER;
22912 l_recog_line_2 NUMBER;
22913
22914 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22915 l_bflow_applied_to_amt NUMBER; -- 5132302
22916 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22917
22918 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22919
22920 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22921 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22922
22923 ---------------------------------------------------------------------------------------------------------------
22924
22925
22926 --
22927 -- bulk performance
22928 --
22929 l_balance_type_code VARCHAR2(1);
22930 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22931 l_log_module VARCHAR2(240);
22932
22933 --
22934 -- Upgrade strategy
22935 --
22936 l_actual_upg_option VARCHAR2(1);
22937 l_enc_upg_option VARCHAR2(1);
22938
22939 --
22940 BEGIN
22941 --
22942 IF g_log_enabled THEN
22943 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
22944 END IF;
22945 --
22946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22947
22948 trace
22949 (p_msg => 'BEGIN of AcctLineType_59'
22950 ,p_level => C_LEVEL_PROCEDURE
22951 ,p_module => l_log_module);
22952
22953 END IF;
22954 --
22955 l_component_type := 'AMB_JLT';
22956 l_component_code := 'COLL_DOC_COLL_ENDRSMNT_DR';
22957 l_component_type_code := 'S';
22958 l_component_appl_id := 222;
22959 l_amb_context_code := 'DEFAULT';
22960 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
22961 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
22962 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
22963 l_line_definition_owner_code := 'S';
22964 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
22965 --
22966 l_balance_type_code := 'A';
22967 l_segment := NULL;
22968 l_ccid := NULL;
22969 l_adr_transaction_coa_id := NULL;
22970 l_adr_accounting_coa_id := NULL;
22971 l_adr_flexfield_segment_code := NULL;
22972 l_adr_flex_value_set_id := NULL;
22973 l_adr_value_type_code := NULL;
22974 l_adr_value_combination_id := NULL;
22975 l_adr_value_segment_code := NULL;
22976
22977 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
22978 l_bflow_class_code := 'JLBR_AR_COLLECTION_ENDORSEMENT'; -- 4219869 Business Flow
22979 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
22980 l_budgetary_control_flag := 'N';
22981
22982 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22983 l_bflow_applied_to_amt := NULL; -- 5132302
22984 l_entered_amt_idx := NULL; -- 4262811
22985 l_accted_amt_idx := NULL; -- 4262811
22986 l_acc_rev_flag := NULL; -- 4262811
22987 l_accrual_line_num := NULL; -- 4262811
22988 l_tmp_amt := NULL; -- 4262811
22989 --
22990
22991 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22992 l_balance_type_code <> 'B' THEN
22993 IF NVL(p_source_66,'
22994 ') = 'JLBR_AR_ENDORSEMENT' AND
22995 NVL(p_source_7,'
22996 ') = 'COLLECTION' AND
22997 NVL(p_source_85,'
22998 ') = 'RETURN_OCCURRENCE'
22999 THEN
23000
23001 --
23002 XLA_AE_LINES_PKG.SetNewLine;
23003
23004 p_balance_type_code := l_balance_type_code;
23005 -- set the flag so later we will know whether the gain loss line needs to be created
23006
23007 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23008 p_actual_flag :='A';
23009 END IF;
23010
23011 --
23012 -- bulk performance
23013 --
23014 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23015 p_header_num => 0); -- 4262811
23016 --
23017 -- set accounting line options
23018 --
23019 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23020 p_natural_side_code => 'D'
23021 , p_gain_or_loss_flag => 'N'
23022 , p_gl_transfer_mode_code => 'S'
23023 , p_acct_entry_type_code => 'A'
23024 , p_switch_side_flag => 'Y'
23025 , p_merge_duplicate_code => 'A'
23026 );
23027 --
23028 l_acc_rev_natural_side_code := 'C'; -- 4262811
23029 --
23030 --
23031 -- set accounting line type info
23032 --
23033 xla_ae_lines_pkg.SetAcctLineType
23034 (p_component_type => l_component_type
23035 ,p_event_type_code => l_event_type_code
23036 ,p_line_definition_owner_code => l_line_definition_owner_code
23037 ,p_line_definition_code => l_line_definition_code
23038 ,p_accounting_line_code => l_component_code
23039 ,p_accounting_line_type_code => l_component_type_code
23040 ,p_accounting_line_appl_id => l_component_appl_id
23041 ,p_amb_context_code => l_amb_context_code
23042 ,p_entity_code => l_entity_code
23043 ,p_event_class_code => l_event_class_code);
23044 --
23045 -- set accounting class
23046 --
23047 xla_ae_lines_pkg.SetAcctClass(
23048 p_accounting_class_code => 'REMITTANCE'
23049 , p_ae_header_id => l_ae_header_id
23050 );
23051
23052 --
23053 -- set rounding class
23054 --
23055 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23056 'REMITTANCE';
23057
23058 --
23059 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23060 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23061 --
23062 -- bulk performance
23063 --
23064 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23065
23066 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23067 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23068
23069 -- 4955764
23070 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23071 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23072
23073 -- 4458381 Public Sector Enh
23074
23075 --
23076 -- set accounting attributes for the line type
23077 --
23078 l_entered_amt_idx := 10;
23079 l_accted_amt_idx := 12;
23080 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23081 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23082 l_rec_acct_attrs.array_char_value(1) := p_source_67;
23083 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23084 l_rec_acct_attrs.array_num_value(2) :=
23085 xla_ae_sources_pkg.GetSystemSourceNum(
23086 p_source_code => 'XLA_EVENT_APPL_ID'
23087 , p_source_type_code => 'Y'
23088 , p_source_application_id => 602
23089 );
23090 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23091 l_rec_acct_attrs.array_char_value(3) := p_source_69;
23092 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23093 l_rec_acct_attrs.array_char_value(4) :=
23094 xla_ae_sources_pkg.GetSystemSourceChar(
23095 p_source_code => 'XLA_ENTITY_CODE'
23096 , p_source_type_code => 'Y'
23097 , p_source_application_id => 602
23098 );
23099 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23100 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
23101 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23102 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
23103 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
23104 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
23105 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23106 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
23107 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23108 l_rec_acct_attrs.array_char_value(9) := p_source_75;
23109 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23110 l_rec_acct_attrs.array_num_value(10) := p_source_76;
23111 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23112 l_rec_acct_attrs.array_char_value(11) := p_source_77;
23113 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
23114 l_rec_acct_attrs.array_num_value(12) := p_source_81;
23115 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
23116 l_rec_acct_attrs.array_char_value(13) := p_source_39;
23117 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
23118 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_82);
23119 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
23123 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
23120 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_83);
23121 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
23122 l_rec_acct_attrs.array_char_value(16) := p_source_84;
23124 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_82);
23125
23126 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23127 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23128
23129 ---------------------------------------------------------------------------------------------------------------
23130 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23131 ---------------------------------------------------------------------------------------------------------------
23132 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23133
23134 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23135 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23136
23137 IF xla_accounting_cache_pkg.GetValueChar
23138 (p_source_code => 'LEDGER_CATEGORY_CODE'
23139 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23140 AND l_bflow_method_code = 'PRIOR_ENTRY'
23141 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23142 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23143 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23144 )
23145 THEN
23146 xla_ae_lines_pkg.BflowUpgEntry
23147 (p_business_method_code => l_bflow_method_code
23148 ,p_business_class_code => l_bflow_class_code
23149 ,p_balance_type => l_balance_type_code);
23150 ELSE
23151 NULL;
23152 XLA_AE_LINES_PKG.business_flow_validation(
23153 p_business_method_code => l_bflow_method_code
23154 ,p_business_class_code => l_bflow_class_code
23155 ,p_inherit_description_flag => l_inherit_desc_flag);
23156 END IF;
23157
23158 --
23159 -- call analytical criteria
23160 --
23161 -- Inherited Analytical Criteria for business flow method of Prior Entry.
23162 --
23163 -- call description
23164 --
23165 -- No description or it is inherited.
23166 --
23167 -- call ADRs
23168 -- Bug 4922099
23169 --
23170 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23171 (NVL(l_actual_upg_option, 'N') = 'O') OR
23172 (NVL(l_enc_upg_option, 'N') = 'O')
23173 )
23174 THEN
23175 NULL;
23176 --
23177 --
23178
23179 --
23180 --
23181 END IF;
23182 --
23183 -- Bug 4922099
23184 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23185 (NVL(l_enc_upg_option, 'N') = 'O')
23186 ) AND
23187 (l_bflow_method_code = 'PRIOR_ENTRY')
23188 )
23189 THEN
23190 IF
23191 --
23192 1 = 1
23193 --
23194 THEN
23195 xla_accounting_err_pkg.build_message
23196 (p_appli_s_name => 'XLA'
23197 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23198 ,p_token_1 => 'LINE_NUMBER'
23199 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23200 ,p_token_2 => 'LINE_TYPE_NAME'
23201 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23202 l_component_type
23203 ,l_component_code
23204 ,l_component_type_code
23205 ,l_component_appl_id
23206 ,l_amb_context_code
23207 ,l_entity_code
23208 ,l_event_class_code
23209 )
23210 ,p_token_3 => 'OWNER'
23211 ,p_value_3 => xla_lookups_pkg.get_meaning(
23212 p_lookup_type => 'XLA_OWNER_TYPE'
23213 ,p_lookup_code => l_component_type_code
23214 )
23215 ,p_token_4 => 'PRODUCT_NAME'
23216 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23217 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23218 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23219 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23220 ,p_ae_header_id => NULL
23221 );
23222
23223 IF (C_LEVEL_ERROR>= g_log_level) THEN
23224 trace
23228 END IF;
23225 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23226 ,p_level => C_LEVEL_ERROR
23227 ,p_module => l_log_module);
23229 END IF;
23230 END IF;
23231 --
23232 --
23233 ------------------------------------------------------------------------------------------------
23234 -- 4219869 Business Flow
23235 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23236 -- Prior Entry. Currently, the following code is always generated.
23237 ------------------------------------------------------------------------------------------------
23238 -- No ValidateCurrentLine for business flow method of Prior Entry
23239
23240 ------------------------------------------------------------------------------------
23241 -- 4219869 Business Flow
23242 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23243 ------------------------------------------------------------------------------------
23244 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23245
23246 ----------------------------------------------------------------------------------
23247 -- 4219869 Business Flow
23248 -- Update journal entry status -- Need to generate this within IF <condition>
23249 ----------------------------------------------------------------------------------
23250 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23251 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23252 ,p_balance_type_code => l_balance_type_code
23253 );
23254
23255 -------------------------------------------------------------------------------------------
23256 -- 4262811 - Generate the Accrual Reversal lines
23257 -------------------------------------------------------------------------------------------
23258 BEGIN
23259 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23260 (g_array_event(p_event_id).array_value_num('header_index'));
23261 IF l_acc_rev_flag IS NULL THEN
23262 l_acc_rev_flag := 'N';
23263 END IF;
23264 EXCEPTION
23265 WHEN OTHERS THEN
23266 l_acc_rev_flag := 'N';
23267 END;
23268 --
23269 IF (l_acc_rev_flag = 'Y') THEN
23270
23271 -- 4645092 ------------------------------------------------------------------------------
23272 -- To allow MPA report to determine if it should generate report process
23273 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23274 ------------------------------------------------------------------------------------------
23275
23276 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23277 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23278 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23279 -- call ADRs
23280 -- Bug 4922099
23281 --
23282 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23283 (NVL(l_actual_upg_option, 'N') = 'O') OR
23284 (NVL(l_enc_upg_option, 'N') = 'O')
23285 )
23286 THEN
23287 NULL;
23288 --
23289 --
23290
23291 --
23292 --
23293 END IF;
23294
23295 --
23296 -- Update the line information that should be overwritten
23297 --
23298 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23299 p_header_num => 1);
23300 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23301
23302 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23303
23304 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23305 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23306 END IF;
23307
23308 --
23309 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23310 --
23311 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23312 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23313 ELSE
23314 ---------------------------------------------------------------------------------------------------
23315 -- 4262811a Switch Sign
23316 ---------------------------------------------------------------------------------------------------
23317 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23318 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23319 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23320 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23321 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23322 -- 5132302
23323 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23324 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23325
23326 END IF;
23327
23328 -- 4955764
23329 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23330 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23331
23332
23333 XLA_AE_LINES_PKG.ValidateCurrentLine;
23334 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23335
23336 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23340 END IF;
23337 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23338 ,p_balance_type_code => l_balance_type_code);
23339
23341
23342 -----------------------------------------------------------------------------------------
23343 -- 4262811 Multiperiod Accounting
23344 -----------------------------------------------------------------------------------------
23345 -- No MPA option is assigned.
23346
23347
23348 END IF;
23349 END IF;
23350 --
23351
23352 --
23353 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23354 trace
23355 (p_msg => 'END of AcctLineType_59'
23356 ,p_level => C_LEVEL_PROCEDURE
23357 ,p_module => l_log_module);
23358 END IF;
23359 --
23360 EXCEPTION
23361 WHEN xla_exceptions_pkg.application_exception THEN
23362 RAISE;
23363 WHEN OTHERS THEN
23364 xla_exceptions_pkg.raise_message
23365 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_59');
23366 END AcctLineType_59;
23367 --
23368
23369 ---------------------------------------
23370 --
23371 -- PRIVATE FUNCTION
23372 -- AcctLineType_60
23373 --
23374 ---------------------------------------
23375 PROCEDURE AcctLineType_60 (
23376 p_application_id IN NUMBER
23377 ,p_event_id IN NUMBER
23378 ,p_calculate_acctd_flag IN VARCHAR2
23379 ,p_calculate_g_l_flag IN VARCHAR2
23380 ,p_actual_flag IN OUT VARCHAR2
23381 ,p_balance_type_code OUT VARCHAR2
23382 ,p_gain_or_loss_ref OUT VARCHAR2
23383
23384 --Transaction Distribution GL Account
23385 , p_source_26 IN NUMBER
23386 --Bill To Customer Account Identifier
23387 , p_source_37 IN NUMBER
23388 --Bill To Customer Site Use Identifier
23389 , p_source_38 IN NUMBER
23390 --SLA Party Type
23391 , p_source_39 IN VARCHAR2
23392 --Transaction Distribution Account Class
23393 , p_source_43 IN VARCHAR2
23394 --Transaction Distribution Identifier
23395 , p_source_44 IN NUMBER
23396 --Transaction Distribution Type
23397 , p_source_45 IN VARCHAR2
23398 --Transaction Distribution Entered Amount
23399 , p_source_46 IN NUMBER
23400 --Transaction Currency Code
23401 , p_source_47 IN VARCHAR2
23402 --Transaction Exchange Date
23403 , p_source_48 IN DATE
23404 --Transaction Exchange Rate
23405 , p_source_49 IN NUMBER
23406 --Transaction Exchange Rate Type
23407 , p_source_50 IN VARCHAR2
23408 --Transaction Accounting Amount
23409 , p_source_51 IN NUMBER
23410 )
23411 IS
23412
23413 l_component_type VARCHAR2(80);
23414 l_component_code VARCHAR2(30);
23415 l_component_type_code VARCHAR2(1);
23416 l_component_appl_id INTEGER;
23417 l_amb_context_code VARCHAR2(30);
23418 l_entity_code VARCHAR2(30);
23419 l_event_class_code VARCHAR2(30);
23420 l_ae_header_id NUMBER;
23421 l_event_type_code VARCHAR2(30);
23422 l_line_definition_code VARCHAR2(30);
23423 l_line_definition_owner_code VARCHAR2(1);
23424 --
23425 -- adr variables
23426 l_segment VARCHAR2(30);
23427 l_ccid NUMBER;
23428 l_adr_transaction_coa_id NUMBER;
23429 l_adr_accounting_coa_id NUMBER;
23430 l_adr_flexfield_segment_code VARCHAR2(30);
23431 l_adr_flex_value_set_id NUMBER;
23432 l_adr_value_type_code VARCHAR2(30);
23433 l_adr_value_combination_id NUMBER;
23434 l_adr_value_segment_code VARCHAR2(30);
23435
23436 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23437 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23438 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23439 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23440
23441 -- 4262811 Variables ------------------------------------------------------------------------------------------
23442 l_entered_amt_idx NUMBER;
23443 l_accted_amt_idx NUMBER;
23444 l_acc_rev_flag VARCHAR2(1);
23445 l_accrual_line_num NUMBER;
23446 l_tmp_amt NUMBER;
23447 l_acc_rev_natural_side_code VARCHAR2(1);
23448
23449 l_num_entries NUMBER;
23450 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23451 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23452 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23453 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23454 l_recog_line_1 NUMBER;
23455 l_recog_line_2 NUMBER;
23456
23457 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23458 l_bflow_applied_to_amt NUMBER; -- 5132302
23459 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23460
23461 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23462
23463 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23464 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23465
23466 ---------------------------------------------------------------------------------------------------------------
23467
23468
23469 --
23470 -- bulk performance
23471 --
23472 l_balance_type_code VARCHAR2(1);
23473 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23474 l_log_module VARCHAR2(240);
23475
23479 l_actual_upg_option VARCHAR2(1);
23476 --
23477 -- Upgrade strategy
23478 --
23480 l_enc_upg_option VARCHAR2(1);
23481
23482 --
23483 BEGIN
23484 --
23485 IF g_log_enabled THEN
23486 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
23487 END IF;
23488 --
23489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23490
23491 trace
23492 (p_msg => 'BEGIN of AcctLineType_60'
23493 ,p_level => C_LEVEL_PROCEDURE
23494 ,p_module => l_log_module);
23495
23496 END IF;
23497 --
23498 l_component_type := 'AMB_JLT';
23499 l_component_code := 'DEP_DEFAULT_REC';
23500 l_component_type_code := 'S';
23501 l_component_appl_id := 222;
23502 l_amb_context_code := 'DEFAULT';
23503 l_entity_code := 'TRANSACTIONS';
23504 l_event_class_code := 'DEPOSIT';
23505 l_event_type_code := 'DEPOSIT_ALL';
23506 l_line_definition_owner_code := 'S';
23507 l_line_definition_code := 'AR_DEP_DEFAULT_ACCRUAL';
23508 --
23509 l_balance_type_code := 'A';
23510 l_segment := NULL;
23511 l_ccid := NULL;
23512 l_adr_transaction_coa_id := NULL;
23513 l_adr_accounting_coa_id := NULL;
23514 l_adr_flexfield_segment_code := NULL;
23515 l_adr_flex_value_set_id := NULL;
23516 l_adr_value_type_code := NULL;
23517 l_adr_value_combination_id := NULL;
23518 l_adr_value_segment_code := NULL;
23519
23520 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23521 l_bflow_class_code := ''; -- 4219869 Business Flow
23522 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23523 l_budgetary_control_flag := 'N';
23524
23525 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23526 l_bflow_applied_to_amt := NULL; -- 5132302
23527 l_entered_amt_idx := NULL; -- 4262811
23528 l_accted_amt_idx := NULL; -- 4262811
23529 l_acc_rev_flag := NULL; -- 4262811
23530 l_accrual_line_num := NULL; -- 4262811
23531 l_tmp_amt := NULL; -- 4262811
23532 --
23533
23534 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23535 l_balance_type_code <> 'B' THEN
23536 IF NVL(p_source_43,'
23537 ') = 'REC'
23538 THEN
23539
23540 --
23541 XLA_AE_LINES_PKG.SetNewLine;
23542
23543 p_balance_type_code := l_balance_type_code;
23544 -- set the flag so later we will know whether the gain loss line needs to be created
23545
23546 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23547 p_actual_flag :='A';
23548 END IF;
23549
23550 --
23551 -- bulk performance
23552 --
23553 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23554 p_header_num => 0); -- 4262811
23555 --
23556 -- set accounting line options
23557 --
23558 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23559 p_natural_side_code => 'D'
23560 , p_gain_or_loss_flag => 'N'
23561 , p_gl_transfer_mode_code => 'S'
23562 , p_acct_entry_type_code => 'A'
23563 , p_switch_side_flag => 'Y'
23564 , p_merge_duplicate_code => 'A'
23565 );
23566 --
23567 l_acc_rev_natural_side_code := 'C'; -- 4262811
23568 --
23569 --
23570 -- set accounting line type info
23571 --
23572 xla_ae_lines_pkg.SetAcctLineType
23573 (p_component_type => l_component_type
23574 ,p_event_type_code => l_event_type_code
23575 ,p_line_definition_owner_code => l_line_definition_owner_code
23576 ,p_line_definition_code => l_line_definition_code
23577 ,p_accounting_line_code => l_component_code
23578 ,p_accounting_line_type_code => l_component_type_code
23579 ,p_accounting_line_appl_id => l_component_appl_id
23580 ,p_amb_context_code => l_amb_context_code
23581 ,p_entity_code => l_entity_code
23582 ,p_event_class_code => l_event_class_code);
23583 --
23584 -- set accounting class
23585 --
23586 xla_ae_lines_pkg.SetAcctClass(
23587 p_accounting_class_code => 'RECEIVABLE'
23588 , p_ae_header_id => l_ae_header_id
23589 );
23590
23591 --
23592 -- set rounding class
23593 --
23594 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23595 'RECEIVABLE';
23596
23597 --
23598 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23599 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23600 --
23601 -- bulk performance
23602 --
23603 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23604
23605 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23606 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23607
23608 -- 4955764
23609 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23610 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23611
23612 -- 4458381 Public Sector Enh
23613
23614 --
23615 -- set accounting attributes for the line type
23616 --
23620 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
23617 l_entered_amt_idx := 3;
23618 l_accted_amt_idx := 8;
23619 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23621 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
23622 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
23623 l_rec_acct_attrs.array_char_value(2) := p_source_45;
23624 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
23625 l_rec_acct_attrs.array_num_value(3) := p_source_46;
23626 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
23627 l_rec_acct_attrs.array_char_value(4) := p_source_47;
23628 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
23629 l_rec_acct_attrs.array_date_value(5) := p_source_48;
23630 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
23631 l_rec_acct_attrs.array_num_value(6) := p_source_49;
23632 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
23633 l_rec_acct_attrs.array_char_value(7) := p_source_50;
23634 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
23635 l_rec_acct_attrs.array_num_value(8) := p_source_51;
23636 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
23637 l_rec_acct_attrs.array_num_value(9) := p_source_37;
23638 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
23639 l_rec_acct_attrs.array_num_value(10) := p_source_38;
23640 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
23641 l_rec_acct_attrs.array_char_value(11) := p_source_39;
23642
23643 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23644 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23645
23646 ---------------------------------------------------------------------------------------------------------------
23647 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23648 ---------------------------------------------------------------------------------------------------------------
23649 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23650
23651 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23652 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23653
23654 IF xla_accounting_cache_pkg.GetValueChar
23655 (p_source_code => 'LEDGER_CATEGORY_CODE'
23656 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23657 AND l_bflow_method_code = 'PRIOR_ENTRY'
23658 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23659 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23660 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23661 )
23662 THEN
23663 xla_ae_lines_pkg.BflowUpgEntry
23664 (p_business_method_code => l_bflow_method_code
23665 ,p_business_class_code => l_bflow_class_code
23666 ,p_balance_type => l_balance_type_code);
23667 ELSE
23668 NULL;
23669 -- No business flow processing for business flow method of NONE.
23670 END IF;
23671
23672 --
23673 -- call analytical criteria
23674 --
23675
23676 --
23677 -- call description
23678 --
23679 -- No description or it is inherited.
23680 --
23681 -- call ADRs
23682 -- Bug 4922099
23683 --
23684 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23685 (NVL(l_actual_upg_option, 'N') = 'O') OR
23686 (NVL(l_enc_upg_option, 'N') = 'O')
23687 )
23688 THEN
23689 NULL;
23690 --
23691 --
23692
23693 l_ccid := AcctDerRule_24(
23694 p_application_id => p_application_id
23695 , p_ae_header_id => l_ae_header_id
23696 , p_source_26 => p_source_26
23697 , x_transaction_coa_id => l_adr_transaction_coa_id
23698 , x_accounting_coa_id => l_adr_accounting_coa_id
23699 , x_value_type_code => l_adr_value_type_code
23700 , p_side => 'NA'
23701 );
23702
23703 xla_ae_lines_pkg.set_ccid(
23704 p_code_combination_id => l_ccid
23705 , p_value_type_code => l_adr_value_type_code
23706 , p_transaction_coa_id => l_adr_transaction_coa_id
23707 , p_accounting_coa_id => l_adr_accounting_coa_id
23708 , p_adr_code => 'TRX_DIST_CCID'
23709 , p_adr_type_code => 'S'
23710 , p_component_type => l_component_type
23711 , p_component_code => l_component_code
23712 , p_component_type_code => l_component_type_code
23713 , p_component_appl_id => l_component_appl_id
23714 , p_amb_context_code => l_amb_context_code
23715 , p_side => 'NA'
23716 );
23717
23718
23719 --
23720 --
23721 END IF;
23722 --
23723 -- Bug 4922099
23724 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23725 (NVL(l_enc_upg_option, 'N') = 'O')
23726 ) AND
23727 (l_bflow_method_code = 'PRIOR_ENTRY')
23728 )
23729 THEN
23730 IF
23731 --
23732 1 = 2
23733 --
23734 THEN
23735 xla_accounting_err_pkg.build_message
23736 (p_appli_s_name => 'XLA'
23737 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23738 ,p_token_1 => 'LINE_NUMBER'
23742 l_component_type
23739 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23740 ,p_token_2 => 'LINE_TYPE_NAME'
23741 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23743 ,l_component_code
23744 ,l_component_type_code
23745 ,l_component_appl_id
23746 ,l_amb_context_code
23747 ,l_entity_code
23748 ,l_event_class_code
23749 )
23750 ,p_token_3 => 'OWNER'
23751 ,p_value_3 => xla_lookups_pkg.get_meaning(
23752 p_lookup_type => 'XLA_OWNER_TYPE'
23753 ,p_lookup_code => l_component_type_code
23754 )
23755 ,p_token_4 => 'PRODUCT_NAME'
23756 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23757 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23758 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23759 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23760 ,p_ae_header_id => NULL
23761 );
23762
23763 IF (C_LEVEL_ERROR>= g_log_level) THEN
23764 trace
23765 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23766 ,p_level => C_LEVEL_ERROR
23767 ,p_module => l_log_module);
23768 END IF;
23769 END IF;
23770 END IF;
23771 --
23772 --
23773 ------------------------------------------------------------------------------------------------
23774 -- 4219869 Business Flow
23775 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23776 -- Prior Entry. Currently, the following code is always generated.
23777 ------------------------------------------------------------------------------------------------
23778 XLA_AE_LINES_PKG.ValidateCurrentLine;
23779
23780 ------------------------------------------------------------------------------------
23781 -- 4219869 Business Flow
23782 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23783 ------------------------------------------------------------------------------------
23784 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23785
23786 ----------------------------------------------------------------------------------
23787 -- 4219869 Business Flow
23788 -- Update journal entry status -- Need to generate this within IF <condition>
23789 ----------------------------------------------------------------------------------
23790 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23791 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23792 ,p_balance_type_code => l_balance_type_code
23793 );
23794
23795 -------------------------------------------------------------------------------------------
23796 -- 4262811 - Generate the Accrual Reversal lines
23797 -------------------------------------------------------------------------------------------
23798 BEGIN
23799 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23800 (g_array_event(p_event_id).array_value_num('header_index'));
23801 IF l_acc_rev_flag IS NULL THEN
23802 l_acc_rev_flag := 'N';
23803 END IF;
23804 EXCEPTION
23805 WHEN OTHERS THEN
23806 l_acc_rev_flag := 'N';
23807 END;
23808 --
23809 IF (l_acc_rev_flag = 'Y') THEN
23810
23811 -- 4645092 ------------------------------------------------------------------------------
23812 -- To allow MPA report to determine if it should generate report process
23813 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23814 ------------------------------------------------------------------------------------------
23815
23816 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23817 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23818 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23819 -- call ADRs
23820 -- Bug 4922099
23821 --
23822 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23823 (NVL(l_actual_upg_option, 'N') = 'O') OR
23824 (NVL(l_enc_upg_option, 'N') = 'O')
23825 )
23826 THEN
23827 NULL;
23828 --
23829 --
23830
23831 l_ccid := AcctDerRule_24(
23832 p_application_id => p_application_id
23833 , p_ae_header_id => l_ae_header_id
23834 , p_source_26 => p_source_26
23835 , x_transaction_coa_id => l_adr_transaction_coa_id
23836 , x_accounting_coa_id => l_adr_accounting_coa_id
23837 , x_value_type_code => l_adr_value_type_code
23838 , p_side => 'NA'
23839 );
23840
23844 , p_transaction_coa_id => l_adr_transaction_coa_id
23841 xla_ae_lines_pkg.set_ccid(
23842 p_code_combination_id => l_ccid
23843 , p_value_type_code => l_adr_value_type_code
23845 , p_accounting_coa_id => l_adr_accounting_coa_id
23846 , p_adr_code => 'TRX_DIST_CCID'
23847 , p_adr_type_code => 'S'
23848 , p_component_type => l_component_type
23849 , p_component_code => l_component_code
23850 , p_component_type_code => l_component_type_code
23851 , p_component_appl_id => l_component_appl_id
23852 , p_amb_context_code => l_amb_context_code
23853 , p_side => 'NA'
23854 );
23855
23856
23857 --
23858 --
23859 END IF;
23860
23861 --
23862 -- Update the line information that should be overwritten
23863 --
23864 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23865 p_header_num => 1);
23866 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23867
23868 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23869
23870 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23871 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23872 END IF;
23873
23874 --
23875 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23876 --
23877 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23878 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23879 ELSE
23880 ---------------------------------------------------------------------------------------------------
23881 -- 4262811a Switch Sign
23882 ---------------------------------------------------------------------------------------------------
23883 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23884 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23885 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23886 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23887 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23888 -- 5132302
23889 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23890 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23891
23892 END IF;
23893
23894 -- 4955764
23895 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23896 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23897
23898
23899 XLA_AE_LINES_PKG.ValidateCurrentLine;
23900 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23901
23902 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23903 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23904 ,p_balance_type_code => l_balance_type_code);
23905
23906 END IF;
23907
23908 -----------------------------------------------------------------------------------------
23909 -- 4262811 Multiperiod Accounting
23910 -----------------------------------------------------------------------------------------
23911 -- No MPA option is assigned.
23912
23913
23914 END IF;
23915 END IF;
23916 --
23917
23918 --
23919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23920 trace
23921 (p_msg => 'END of AcctLineType_60'
23922 ,p_level => C_LEVEL_PROCEDURE
23923 ,p_module => l_log_module);
23924 END IF;
23925 --
23926 EXCEPTION
23927 WHEN xla_exceptions_pkg.application_exception THEN
23928 RAISE;
23929 WHEN OTHERS THEN
23930 xla_exceptions_pkg.raise_message
23931 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_60');
23932 END AcctLineType_60;
23933 --
23934
23935 ---------------------------------------
23936 --
23937 -- PRIVATE FUNCTION
23938 -- AcctLineType_61
23939 --
23940 ---------------------------------------
23941 PROCEDURE AcctLineType_61 (
23942 p_application_id IN NUMBER
23943 ,p_event_id IN NUMBER
23944 ,p_calculate_acctd_flag IN VARCHAR2
23945 ,p_calculate_g_l_flag IN VARCHAR2
23946 ,p_actual_flag IN OUT VARCHAR2
23947 ,p_balance_type_code OUT VARCHAR2
23948 ,p_gain_or_loss_ref OUT VARCHAR2
23949
23950 --Transaction Distribution GL Account
23951 , p_source_26 IN NUMBER
23952 --Bill To Customer Account Identifier
23953 , p_source_37 IN NUMBER
23954 --Bill To Customer Site Use Identifier
23955 , p_source_38 IN NUMBER
23956 --SLA Party Type
23957 , p_source_39 IN VARCHAR2
23958 --Transaction Distribution Account Class
23959 , p_source_43 IN VARCHAR2
23960 --Transaction Distribution Identifier
23961 , p_source_44 IN NUMBER
23962 --Transaction Distribution Type
23963 , p_source_45 IN VARCHAR2
23967 , p_source_47 IN VARCHAR2
23964 --Transaction Distribution Entered Amount
23965 , p_source_46 IN NUMBER
23966 --Transaction Currency Code
23968 --Transaction Exchange Date
23969 , p_source_48 IN DATE
23970 --Transaction Exchange Rate
23971 , p_source_49 IN NUMBER
23972 --Transaction Exchange Rate Type
23973 , p_source_50 IN VARCHAR2
23974 --Transaction Accounting Amount
23975 , p_source_51 IN NUMBER
23976 )
23977 IS
23978
23979 l_component_type VARCHAR2(80);
23980 l_component_code VARCHAR2(30);
23981 l_component_type_code VARCHAR2(1);
23982 l_component_appl_id INTEGER;
23983 l_amb_context_code VARCHAR2(30);
23984 l_entity_code VARCHAR2(30);
23985 l_event_class_code VARCHAR2(30);
23986 l_ae_header_id NUMBER;
23987 l_event_type_code VARCHAR2(30);
23988 l_line_definition_code VARCHAR2(30);
23989 l_line_definition_owner_code VARCHAR2(1);
23990 --
23991 -- adr variables
23992 l_segment VARCHAR2(30);
23993 l_ccid NUMBER;
23994 l_adr_transaction_coa_id NUMBER;
23995 l_adr_accounting_coa_id NUMBER;
23996 l_adr_flexfield_segment_code VARCHAR2(30);
23997 l_adr_flex_value_set_id NUMBER;
23998 l_adr_value_type_code VARCHAR2(30);
23999 l_adr_value_combination_id NUMBER;
24000 l_adr_value_segment_code VARCHAR2(30);
24001
24002 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24003 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24004 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24005 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24006
24007 -- 4262811 Variables ------------------------------------------------------------------------------------------
24008 l_entered_amt_idx NUMBER;
24009 l_accted_amt_idx NUMBER;
24010 l_acc_rev_flag VARCHAR2(1);
24011 l_accrual_line_num NUMBER;
24012 l_tmp_amt NUMBER;
24013 l_acc_rev_natural_side_code VARCHAR2(1);
24014
24015 l_num_entries NUMBER;
24016 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24017 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24018 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24019 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24020 l_recog_line_1 NUMBER;
24021 l_recog_line_2 NUMBER;
24022
24023 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24024 l_bflow_applied_to_amt NUMBER; -- 5132302
24025 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24026
24027 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24028
24029 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24030 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24031
24032 ---------------------------------------------------------------------------------------------------------------
24033
24034
24035 --
24036 -- bulk performance
24037 --
24038 l_balance_type_code VARCHAR2(1);
24039 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24040 l_log_module VARCHAR2(240);
24041
24042 --
24043 -- Upgrade strategy
24044 --
24045 l_actual_upg_option VARCHAR2(1);
24046 l_enc_upg_option VARCHAR2(1);
24047
24048 --
24049 BEGIN
24050 --
24051 IF g_log_enabled THEN
24052 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
24053 END IF;
24054 --
24055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24056
24057 trace
24058 (p_msg => 'BEGIN of AcctLineType_61'
24059 ,p_level => C_LEVEL_PROCEDURE
24060 ,p_module => l_log_module);
24061
24062 END IF;
24063 --
24064 l_component_type := 'AMB_JLT';
24065 l_component_code := 'DEP_OFFSET';
24066 l_component_type_code := 'S';
24067 l_component_appl_id := 222;
24068 l_amb_context_code := 'DEFAULT';
24069 l_entity_code := 'TRANSACTIONS';
24070 l_event_class_code := 'DEPOSIT';
24071 l_event_type_code := 'DEPOSIT_ALL';
24072 l_line_definition_owner_code := 'S';
24073 l_line_definition_code := 'AR_DEP_DEFAULT_ACCRUAL';
24074 --
24075 l_balance_type_code := 'A';
24076 l_segment := NULL;
24077 l_ccid := NULL;
24078 l_adr_transaction_coa_id := NULL;
24079 l_adr_accounting_coa_id := NULL;
24080 l_adr_flexfield_segment_code := NULL;
24081 l_adr_flex_value_set_id := NULL;
24082 l_adr_value_type_code := NULL;
24083 l_adr_value_combination_id := NULL;
24084 l_adr_value_segment_code := NULL;
24085
24086 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24087 l_bflow_class_code := ''; -- 4219869 Business Flow
24088 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24089 l_budgetary_control_flag := 'N';
24090
24091 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24092 l_bflow_applied_to_amt := NULL; -- 5132302
24093 l_entered_amt_idx := NULL; -- 4262811
24097 l_tmp_amt := NULL; -- 4262811
24094 l_accted_amt_idx := NULL; -- 4262811
24095 l_acc_rev_flag := NULL; -- 4262811
24096 l_accrual_line_num := NULL; -- 4262811
24098 --
24099
24100 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24101 l_balance_type_code <> 'B' THEN
24102 IF NVL(p_source_43,'
24103 ') = 'REV'
24104 THEN
24105
24106 --
24107 XLA_AE_LINES_PKG.SetNewLine;
24108
24109 p_balance_type_code := l_balance_type_code;
24110 -- set the flag so later we will know whether the gain loss line needs to be created
24111
24112 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24113 p_actual_flag :='A';
24114 END IF;
24115
24116 --
24117 -- bulk performance
24118 --
24119 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24120 p_header_num => 0); -- 4262811
24121 --
24122 -- set accounting line options
24123 --
24124 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24125 p_natural_side_code => 'C'
24126 , p_gain_or_loss_flag => 'N'
24127 , p_gl_transfer_mode_code => 'S'
24128 , p_acct_entry_type_code => 'A'
24129 , p_switch_side_flag => 'Y'
24130 , p_merge_duplicate_code => 'A'
24131 );
24132 --
24133 l_acc_rev_natural_side_code := 'D'; -- 4262811
24134 --
24135 --
24136 -- set accounting line type info
24137 --
24138 xla_ae_lines_pkg.SetAcctLineType
24139 (p_component_type => l_component_type
24140 ,p_event_type_code => l_event_type_code
24141 ,p_line_definition_owner_code => l_line_definition_owner_code
24142 ,p_line_definition_code => l_line_definition_code
24143 ,p_accounting_line_code => l_component_code
24144 ,p_accounting_line_type_code => l_component_type_code
24145 ,p_accounting_line_appl_id => l_component_appl_id
24146 ,p_amb_context_code => l_amb_context_code
24147 ,p_entity_code => l_entity_code
24148 ,p_event_class_code => l_event_class_code);
24149 --
24150 -- set accounting class
24151 --
24152 xla_ae_lines_pkg.SetAcctClass(
24153 p_accounting_class_code => 'ACCRUAL'
24154 , p_ae_header_id => l_ae_header_id
24155 );
24156
24157 --
24158 -- set rounding class
24159 --
24160 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24161 'RECEIVABLE';
24162
24163 --
24164 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24165 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24166 --
24167 -- bulk performance
24168 --
24169 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24170
24171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24172 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
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('header_index'));
24177
24178 -- 4458381 Public Sector Enh
24179
24180 --
24181 -- set accounting attributes for the line type
24182 --
24183 l_entered_amt_idx := 3;
24184 l_accted_amt_idx := 8;
24185 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24186 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
24187 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
24188 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
24189 l_rec_acct_attrs.array_char_value(2) := p_source_45;
24190 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
24191 l_rec_acct_attrs.array_num_value(3) := p_source_46;
24192 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
24193 l_rec_acct_attrs.array_char_value(4) := p_source_47;
24194 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
24195 l_rec_acct_attrs.array_date_value(5) := p_source_48;
24196 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
24197 l_rec_acct_attrs.array_num_value(6) := p_source_49;
24198 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
24199 l_rec_acct_attrs.array_char_value(7) := p_source_50;
24200 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
24201 l_rec_acct_attrs.array_num_value(8) := p_source_51;
24202 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
24203 l_rec_acct_attrs.array_num_value(9) := p_source_37;
24204 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
24205 l_rec_acct_attrs.array_num_value(10) := p_source_38;
24206 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
24207 l_rec_acct_attrs.array_char_value(11) := p_source_39;
24208
24209 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24210 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24211
24212 ---------------------------------------------------------------------------------------------------------------
24213 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24214 ---------------------------------------------------------------------------------------------------------------
24218 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24215 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24216
24217 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24219
24220 IF xla_accounting_cache_pkg.GetValueChar
24221 (p_source_code => 'LEDGER_CATEGORY_CODE'
24222 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24223 AND l_bflow_method_code = 'PRIOR_ENTRY'
24224 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24225 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24226 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24227 )
24228 THEN
24229 xla_ae_lines_pkg.BflowUpgEntry
24230 (p_business_method_code => l_bflow_method_code
24231 ,p_business_class_code => l_bflow_class_code
24232 ,p_balance_type => l_balance_type_code);
24233 ELSE
24234 NULL;
24235 -- No business flow processing for business flow method of NONE.
24236 END IF;
24237
24238 --
24239 -- call analytical criteria
24240 --
24241
24242 --
24243 -- call description
24244 --
24245 -- No description or it is inherited.
24246 --
24247 -- call ADRs
24248 -- Bug 4922099
24249 --
24250 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24251 (NVL(l_actual_upg_option, 'N') = 'O') OR
24252 (NVL(l_enc_upg_option, 'N') = 'O')
24253 )
24254 THEN
24255 NULL;
24256 --
24257 --
24258
24259 l_ccid := AcctDerRule_24(
24260 p_application_id => p_application_id
24261 , p_ae_header_id => l_ae_header_id
24262 , p_source_26 => p_source_26
24263 , x_transaction_coa_id => l_adr_transaction_coa_id
24264 , x_accounting_coa_id => l_adr_accounting_coa_id
24265 , x_value_type_code => l_adr_value_type_code
24266 , p_side => 'NA'
24267 );
24268
24269 xla_ae_lines_pkg.set_ccid(
24270 p_code_combination_id => l_ccid
24271 , p_value_type_code => l_adr_value_type_code
24272 , p_transaction_coa_id => l_adr_transaction_coa_id
24273 , p_accounting_coa_id => l_adr_accounting_coa_id
24274 , p_adr_code => 'TRX_DIST_CCID'
24275 , p_adr_type_code => 'S'
24276 , p_component_type => l_component_type
24277 , p_component_code => l_component_code
24278 , p_component_type_code => l_component_type_code
24279 , p_component_appl_id => l_component_appl_id
24280 , p_amb_context_code => l_amb_context_code
24281 , p_side => 'NA'
24282 );
24283
24284
24285 --
24286 --
24287 END IF;
24288 --
24289 -- Bug 4922099
24290 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24291 (NVL(l_enc_upg_option, 'N') = 'O')
24292 ) AND
24293 (l_bflow_method_code = 'PRIOR_ENTRY')
24294 )
24295 THEN
24296 IF
24297 --
24298 1 = 2
24299 --
24300 THEN
24301 xla_accounting_err_pkg.build_message
24302 (p_appli_s_name => 'XLA'
24303 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24304 ,p_token_1 => 'LINE_NUMBER'
24305 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24306 ,p_token_2 => 'LINE_TYPE_NAME'
24307 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24308 l_component_type
24309 ,l_component_code
24310 ,l_component_type_code
24311 ,l_component_appl_id
24312 ,l_amb_context_code
24313 ,l_entity_code
24314 ,l_event_class_code
24315 )
24316 ,p_token_3 => 'OWNER'
24317 ,p_value_3 => xla_lookups_pkg.get_meaning(
24318 p_lookup_type => 'XLA_OWNER_TYPE'
24319 ,p_lookup_code => l_component_type_code
24320 )
24321 ,p_token_4 => 'PRODUCT_NAME'
24322 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24323 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24324 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24325 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24326 ,p_ae_header_id => NULL
24327 );
24328
24332 ,p_level => C_LEVEL_ERROR
24329 IF (C_LEVEL_ERROR>= g_log_level) THEN
24330 trace
24331 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24333 ,p_module => l_log_module);
24334 END IF;
24335 END IF;
24336 END IF;
24337 --
24338 --
24339 ------------------------------------------------------------------------------------------------
24340 -- 4219869 Business Flow
24341 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24342 -- Prior Entry. Currently, the following code is always generated.
24343 ------------------------------------------------------------------------------------------------
24344 XLA_AE_LINES_PKG.ValidateCurrentLine;
24345
24346 ------------------------------------------------------------------------------------
24347 -- 4219869 Business Flow
24348 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24349 ------------------------------------------------------------------------------------
24350 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24351
24352 ----------------------------------------------------------------------------------
24353 -- 4219869 Business Flow
24354 -- Update journal entry status -- Need to generate this within IF <condition>
24355 ----------------------------------------------------------------------------------
24356 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24357 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24358 ,p_balance_type_code => l_balance_type_code
24359 );
24360
24361 -------------------------------------------------------------------------------------------
24362 -- 4262811 - Generate the Accrual Reversal lines
24363 -------------------------------------------------------------------------------------------
24364 BEGIN
24365 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24366 (g_array_event(p_event_id).array_value_num('header_index'));
24367 IF l_acc_rev_flag IS NULL THEN
24368 l_acc_rev_flag := 'N';
24369 END IF;
24370 EXCEPTION
24371 WHEN OTHERS THEN
24372 l_acc_rev_flag := 'N';
24373 END;
24374 --
24375 IF (l_acc_rev_flag = 'Y') THEN
24376
24377 -- 4645092 ------------------------------------------------------------------------------
24378 -- To allow MPA report to determine if it should generate report process
24379 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24380 ------------------------------------------------------------------------------------------
24381
24382 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24383 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24384 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24385 -- call ADRs
24386 -- Bug 4922099
24387 --
24388 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24389 (NVL(l_actual_upg_option, 'N') = 'O') OR
24390 (NVL(l_enc_upg_option, 'N') = 'O')
24391 )
24392 THEN
24393 NULL;
24394 --
24395 --
24396
24397 l_ccid := AcctDerRule_24(
24398 p_application_id => p_application_id
24399 , p_ae_header_id => l_ae_header_id
24400 , p_source_26 => p_source_26
24401 , x_transaction_coa_id => l_adr_transaction_coa_id
24402 , x_accounting_coa_id => l_adr_accounting_coa_id
24403 , x_value_type_code => l_adr_value_type_code
24404 , p_side => 'NA'
24405 );
24406
24407 xla_ae_lines_pkg.set_ccid(
24408 p_code_combination_id => l_ccid
24409 , p_value_type_code => l_adr_value_type_code
24410 , p_transaction_coa_id => l_adr_transaction_coa_id
24411 , p_accounting_coa_id => l_adr_accounting_coa_id
24412 , p_adr_code => 'TRX_DIST_CCID'
24413 , p_adr_type_code => 'S'
24414 , p_component_type => l_component_type
24415 , p_component_code => l_component_code
24416 , p_component_type_code => l_component_type_code
24417 , p_component_appl_id => l_component_appl_id
24418 , p_amb_context_code => l_amb_context_code
24419 , p_side => 'NA'
24420 );
24421
24422
24423 --
24424 --
24425 END IF;
24426
24427 --
24428 -- Update the line information that should be overwritten
24429 --
24430 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24431 p_header_num => 1);
24432 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24433
24434 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24435
24436 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24437 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24438 END IF;
24439
24440 --
24441 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24442 --
24443 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24444 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24445 ELSE
24446 ---------------------------------------------------------------------------------------------------
24447 -- 4262811a Switch Sign
24448 ---------------------------------------------------------------------------------------------------
24449 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24450 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24451 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24452 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24453 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24454 -- 5132302
24455 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24456 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24457
24458 END IF;
24459
24460 -- 4955764
24461 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24462 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24463
24464
24465 XLA_AE_LINES_PKG.ValidateCurrentLine;
24466 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24467
24468 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24469 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24470 ,p_balance_type_code => l_balance_type_code);
24471
24472 END IF;
24473
24474 -----------------------------------------------------------------------------------------
24475 -- 4262811 Multiperiod Accounting
24476 -----------------------------------------------------------------------------------------
24477 -- No MPA option is assigned.
24478
24479
24480 END IF;
24481 END IF;
24482 --
24483
24484 --
24485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24486 trace
24487 (p_msg => 'END of AcctLineType_61'
24488 ,p_level => C_LEVEL_PROCEDURE
24489 ,p_module => l_log_module);
24490 END IF;
24491 --
24492 EXCEPTION
24493 WHEN xla_exceptions_pkg.application_exception THEN
24494 RAISE;
24495 WHEN OTHERS THEN
24496 xla_exceptions_pkg.raise_message
24497 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_61');
24498 END AcctLineType_61;
24499 --
24500
24501 ---------------------------------------
24502 --
24503 -- PRIVATE FUNCTION
24504 -- AcctLineType_62
24505 --
24506 ---------------------------------------
24507 PROCEDURE AcctLineType_62 (
24508 p_application_id IN NUMBER
24509 ,p_event_id IN NUMBER
24510 ,p_calculate_acctd_flag IN VARCHAR2
24511 ,p_calculate_g_l_flag IN VARCHAR2
24512 ,p_actual_flag IN OUT VARCHAR2
24513 ,p_balance_type_code OUT VARCHAR2
24514 ,p_gain_or_loss_ref OUT VARCHAR2
24515
24519 , p_source_37 IN NUMBER
24516 --Transaction Distribution GL Account
24517 , p_source_26 IN NUMBER
24518 --Bill To Customer Account Identifier
24520 --Bill To Customer Site Use Identifier
24521 , p_source_38 IN NUMBER
24522 --SLA Party Type
24523 , p_source_39 IN VARCHAR2
24524 --Transaction Distribution Account Class
24525 , p_source_43 IN VARCHAR2
24526 --Transaction Distribution Identifier
24527 , p_source_44 IN NUMBER
24528 --Transaction Distribution Type
24529 , p_source_45 IN VARCHAR2
24530 --Transaction Distribution Entered Amount
24531 , p_source_46 IN NUMBER
24532 --Transaction Currency Code
24533 , p_source_47 IN VARCHAR2
24534 --Transaction Exchange Date
24535 , p_source_48 IN DATE
24536 --Transaction Exchange Rate
24537 , p_source_49 IN NUMBER
24538 --Transaction Exchange Rate Type
24539 , p_source_50 IN VARCHAR2
24540 --Transaction Accounting Amount
24541 , p_source_51 IN NUMBER
24542 --Transaction Tax Line Identifier
24543 , p_source_86 IN NUMBER
24544 )
24545 IS
24546
24547 l_component_type VARCHAR2(80);
24548 l_component_code VARCHAR2(30);
24549 l_component_type_code VARCHAR2(1);
24550 l_component_appl_id INTEGER;
24551 l_amb_context_code VARCHAR2(30);
24552 l_entity_code VARCHAR2(30);
24553 l_event_class_code VARCHAR2(30);
24554 l_ae_header_id NUMBER;
24555 l_event_type_code VARCHAR2(30);
24556 l_line_definition_code VARCHAR2(30);
24557 l_line_definition_owner_code VARCHAR2(1);
24558 --
24559 -- adr variables
24560 l_segment VARCHAR2(30);
24561 l_ccid NUMBER;
24562 l_adr_transaction_coa_id NUMBER;
24563 l_adr_accounting_coa_id NUMBER;
24564 l_adr_flexfield_segment_code VARCHAR2(30);
24565 l_adr_flex_value_set_id NUMBER;
24566 l_adr_value_type_code VARCHAR2(30);
24567 l_adr_value_combination_id NUMBER;
24568 l_adr_value_segment_code VARCHAR2(30);
24569
24570 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24571 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24572 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24573 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24574
24575 -- 4262811 Variables ------------------------------------------------------------------------------------------
24576 l_entered_amt_idx NUMBER;
24577 l_accted_amt_idx NUMBER;
24578 l_acc_rev_flag VARCHAR2(1);
24579 l_accrual_line_num NUMBER;
24580 l_tmp_amt NUMBER;
24581 l_acc_rev_natural_side_code VARCHAR2(1);
24582
24583 l_num_entries NUMBER;
24584 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24585 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24586 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24587 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24588 l_recog_line_1 NUMBER;
24589 l_recog_line_2 NUMBER;
24590
24591 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24592 l_bflow_applied_to_amt NUMBER; -- 5132302
24593 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24594
24595 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24596
24597 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24598 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24599
24600 ---------------------------------------------------------------------------------------------------------------
24601
24602
24603 --
24604 -- bulk performance
24605 --
24606 l_balance_type_code VARCHAR2(1);
24607 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24608 l_log_module VARCHAR2(240);
24609
24610 --
24611 -- Upgrade strategy
24612 --
24613 l_actual_upg_option VARCHAR2(1);
24614 l_enc_upg_option VARCHAR2(1);
24615
24616 --
24617 BEGIN
24618 --
24619 IF g_log_enabled THEN
24620 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
24621 END IF;
24622 --
24623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24624
24625 trace
24626 (p_msg => 'BEGIN of AcctLineType_62'
24627 ,p_level => C_LEVEL_PROCEDURE
24628 ,p_module => l_log_module);
24629
24630 END IF;
24631 --
24632 l_component_type := 'AMB_JLT';
24633 l_component_code := 'DM_CHARGES';
24634 l_component_type_code := 'S';
24635 l_component_appl_id := 222;
24636 l_amb_context_code := 'DEFAULT';
24637 l_entity_code := 'TRANSACTIONS';
24638 l_event_class_code := 'DEBIT_MEMO';
24639 l_event_type_code := 'DEBIT_MEMO_ALL';
24640 l_line_definition_owner_code := 'S';
24641 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
24642 --
24643 l_balance_type_code := 'A';
24644 l_segment := NULL;
24645 l_ccid := NULL;
24646 l_adr_transaction_coa_id := NULL;
24647 l_adr_accounting_coa_id := NULL;
24648 l_adr_flexfield_segment_code := NULL;
24649 l_adr_flex_value_set_id := NULL;
24650 l_adr_value_type_code := NULL;
24651 l_adr_value_combination_id := NULL;
24652 l_adr_value_segment_code := NULL;
24653
24654 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24655 l_bflow_class_code := ''; -- 4219869 Business Flow
24656 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24657 l_budgetary_control_flag := 'N';
24658
24659 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24660 l_bflow_applied_to_amt := NULL; -- 5132302
24661 l_entered_amt_idx := NULL; -- 4262811
24662 l_accted_amt_idx := NULL; -- 4262811
24663 l_acc_rev_flag := NULL; -- 4262811
24664 l_accrual_line_num := NULL; -- 4262811
24665 l_tmp_amt := NULL; -- 4262811
24666 --
24667
24668 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24669 l_balance_type_code <> 'B' THEN
24670 IF NVL(p_source_43,'
24671 ') = 'CHARGES'
24672 THEN
24673
24674 --
24675 XLA_AE_LINES_PKG.SetNewLine;
24676
24677 p_balance_type_code := l_balance_type_code;
24678 -- set the flag so later we will know whether the gain loss line needs to be created
24679
24680 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24681 p_actual_flag :='A';
24682 END IF;
24683
24684 --
24685 -- bulk performance
24686 --
24687 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24688 p_header_num => 0); -- 4262811
24689 --
24690 -- set accounting line options
24691 --
24692 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24693 p_natural_side_code => 'C'
24694 , p_gain_or_loss_flag => 'N'
24695 , p_gl_transfer_mode_code => 'S'
24696 , p_acct_entry_type_code => 'A'
24697 , p_switch_side_flag => 'Y'
24698 , p_merge_duplicate_code => 'A'
24699 );
24700 --
24701 l_acc_rev_natural_side_code := 'D'; -- 4262811
24702 --
24703 --
24704 -- set accounting line type info
24705 --
24706 xla_ae_lines_pkg.SetAcctLineType
24707 (p_component_type => l_component_type
24708 ,p_event_type_code => l_event_type_code
24709 ,p_line_definition_owner_code => l_line_definition_owner_code
24710 ,p_line_definition_code => l_line_definition_code
24711 ,p_accounting_line_code => l_component_code
24712 ,p_accounting_line_type_code => l_component_type_code
24713 ,p_accounting_line_appl_id => l_component_appl_id
24714 ,p_amb_context_code => l_amb_context_code
24715 ,p_entity_code => l_entity_code
24716 ,p_event_class_code => l_event_class_code);
24717 --
24718 -- set accounting class
24719 --
24720 xla_ae_lines_pkg.SetAcctClass(
24721 p_accounting_class_code => 'CHARGES'
24722 , p_ae_header_id => l_ae_header_id
24723 );
24724
24725 --
24726 -- set rounding class
24727 --
24728 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24729 'RECEIVABLE';
24730
24731 --
24732 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24733 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24734 --
24735 -- bulk performance
24736 --
24737 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24738
24739 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24740 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24741
24742 -- 4955764
24743 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24744 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24745
24746 -- 4458381 Public Sector Enh
24747
24748 --
24749 -- set accounting attributes for the line type
24750 --
24751 l_entered_amt_idx := 3;
24752 l_accted_amt_idx := 8;
24753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24754 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
24755 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
24756 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
24757 l_rec_acct_attrs.array_char_value(2) := p_source_45;
24758 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
24759 l_rec_acct_attrs.array_num_value(3) := p_source_46;
24760 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
24761 l_rec_acct_attrs.array_char_value(4) := p_source_47;
24762 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
24763 l_rec_acct_attrs.array_date_value(5) := p_source_48;
24764 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
24765 l_rec_acct_attrs.array_num_value(6) := p_source_49;
24766 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
24767 l_rec_acct_attrs.array_char_value(7) := p_source_50;
24768 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
24769 l_rec_acct_attrs.array_num_value(8) := p_source_51;
24770 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
24771 l_rec_acct_attrs.array_num_value(9) := p_source_37;
24772 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
24773 l_rec_acct_attrs.array_num_value(10) := p_source_38;
24774 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
24775 l_rec_acct_attrs.array_char_value(11) := p_source_39;
24776 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
24777 l_rec_acct_attrs.array_num_value(12) := p_source_86;
24778
24779 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24780 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24781
24782 ---------------------------------------------------------------------------------------------------------------
24783 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24784 ---------------------------------------------------------------------------------------------------------------
24785 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24786
24787 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24788 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24789
24790 IF xla_accounting_cache_pkg.GetValueChar
24791 (p_source_code => 'LEDGER_CATEGORY_CODE'
24792 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24793 AND l_bflow_method_code = 'PRIOR_ENTRY'
24794 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24795 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24796 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24797 )
24798 THEN
24799 xla_ae_lines_pkg.BflowUpgEntry
24800 (p_business_method_code => l_bflow_method_code
24801 ,p_business_class_code => l_bflow_class_code
24802 ,p_balance_type => l_balance_type_code);
24803 ELSE
24804 NULL;
24805 -- No business flow processing for business flow method of NONE.
24806 END IF;
24807
24808 --
24809 -- call analytical criteria
24810 --
24811
24812 --
24813 -- call description
24814 --
24815 -- No description or it is inherited.
24816 --
24817 -- call ADRs
24818 -- Bug 4922099
24819 --
24820 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24821 (NVL(l_actual_upg_option, 'N') = 'O') OR
24822 (NVL(l_enc_upg_option, 'N') = 'O')
24823 )
24824 THEN
24825 NULL;
24826 --
24827 --
24828
24829 l_ccid := AcctDerRule_24(
24830 p_application_id => p_application_id
24831 , p_ae_header_id => l_ae_header_id
24832 , p_source_26 => p_source_26
24833 , x_transaction_coa_id => l_adr_transaction_coa_id
24834 , x_accounting_coa_id => l_adr_accounting_coa_id
24835 , x_value_type_code => l_adr_value_type_code
24836 , p_side => 'NA'
24837 );
24838
24839 xla_ae_lines_pkg.set_ccid(
24840 p_code_combination_id => l_ccid
24841 , p_value_type_code => l_adr_value_type_code
24842 , p_transaction_coa_id => l_adr_transaction_coa_id
24843 , p_accounting_coa_id => l_adr_accounting_coa_id
24844 , p_adr_code => 'TRX_DIST_CCID'
24845 , p_adr_type_code => 'S'
24846 , p_component_type => l_component_type
24847 , p_component_code => l_component_code
24848 , p_component_type_code => l_component_type_code
24849 , p_component_appl_id => l_component_appl_id
24850 , p_amb_context_code => l_amb_context_code
24851 , p_side => 'NA'
24852 );
24853
24854
24855 --
24856 --
24857 END IF;
24858 --
24859 -- Bug 4922099
24860 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24861 (NVL(l_enc_upg_option, 'N') = 'O')
24862 ) AND
24863 (l_bflow_method_code = 'PRIOR_ENTRY')
24864 )
24865 THEN
24866 IF
24867 --
24868 1 = 2
24869 --
24870 THEN
24871 xla_accounting_err_pkg.build_message
24872 (p_appli_s_name => 'XLA'
24873 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24874 ,p_token_1 => 'LINE_NUMBER'
24875 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24876 ,p_token_2 => 'LINE_TYPE_NAME'
24877 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24878 l_component_type
24879 ,l_component_code
24883 ,l_entity_code
24880 ,l_component_type_code
24881 ,l_component_appl_id
24882 ,l_amb_context_code
24884 ,l_event_class_code
24885 )
24886 ,p_token_3 => 'OWNER'
24887 ,p_value_3 => xla_lookups_pkg.get_meaning(
24888 p_lookup_type => 'XLA_OWNER_TYPE'
24889 ,p_lookup_code => l_component_type_code
24890 )
24891 ,p_token_4 => 'PRODUCT_NAME'
24892 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24893 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24894 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24895 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24896 ,p_ae_header_id => NULL
24897 );
24898
24899 IF (C_LEVEL_ERROR>= g_log_level) THEN
24900 trace
24901 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24902 ,p_level => C_LEVEL_ERROR
24903 ,p_module => l_log_module);
24904 END IF;
24905 END IF;
24906 END IF;
24907 --
24908 --
24909 ------------------------------------------------------------------------------------------------
24910 -- 4219869 Business Flow
24911 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24912 -- Prior Entry. Currently, the following code is always generated.
24913 ------------------------------------------------------------------------------------------------
24914 XLA_AE_LINES_PKG.ValidateCurrentLine;
24915
24916 ------------------------------------------------------------------------------------
24917 -- 4219869 Business Flow
24918 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24919 ------------------------------------------------------------------------------------
24920 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24921
24922 ----------------------------------------------------------------------------------
24923 -- 4219869 Business Flow
24924 -- Update journal entry status -- Need to generate this within IF <condition>
24925 ----------------------------------------------------------------------------------
24926 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24927 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24928 ,p_balance_type_code => l_balance_type_code
24929 );
24930
24931 -------------------------------------------------------------------------------------------
24932 -- 4262811 - Generate the Accrual Reversal lines
24933 -------------------------------------------------------------------------------------------
24934 BEGIN
24935 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24936 (g_array_event(p_event_id).array_value_num('header_index'));
24937 IF l_acc_rev_flag IS NULL THEN
24938 l_acc_rev_flag := 'N';
24939 END IF;
24940 EXCEPTION
24941 WHEN OTHERS THEN
24942 l_acc_rev_flag := 'N';
24943 END;
24944 --
24945 IF (l_acc_rev_flag = 'Y') THEN
24946
24947 -- 4645092 ------------------------------------------------------------------------------
24948 -- To allow MPA report to determine if it should generate report process
24949 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24950 ------------------------------------------------------------------------------------------
24951
24952 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24953 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24954 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24955 -- call ADRs
24956 -- Bug 4922099
24957 --
24958 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24959 (NVL(l_actual_upg_option, 'N') = 'O') OR
24960 (NVL(l_enc_upg_option, 'N') = 'O')
24961 )
24962 THEN
24963 NULL;
24964 --
24965 --
24966
24967 l_ccid := AcctDerRule_24(
24968 p_application_id => p_application_id
24969 , p_ae_header_id => l_ae_header_id
24970 , p_source_26 => p_source_26
24971 , x_transaction_coa_id => l_adr_transaction_coa_id
24972 , x_accounting_coa_id => l_adr_accounting_coa_id
24973 , x_value_type_code => l_adr_value_type_code
24974 , p_side => 'NA'
24975 );
24976
24977 xla_ae_lines_pkg.set_ccid(
24978 p_code_combination_id => l_ccid
24979 , p_value_type_code => l_adr_value_type_code
24980 , p_transaction_coa_id => l_adr_transaction_coa_id
24981 , p_accounting_coa_id => l_adr_accounting_coa_id
24982 , p_adr_code => 'TRX_DIST_CCID'
24983 , p_adr_type_code => 'S'
24987 , p_component_appl_id => l_component_appl_id
24984 , p_component_type => l_component_type
24985 , p_component_code => l_component_code
24986 , p_component_type_code => l_component_type_code
24988 , p_amb_context_code => l_amb_context_code
24989 , p_side => 'NA'
24990 );
24991
24992
24993 --
24994 --
24995 END IF;
24996
24997 --
24998 -- Update the line information that should be overwritten
24999 --
25000 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25001 p_header_num => 1);
25002 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25003
25004 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25005
25006 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25007 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25008 END IF;
25009
25010 --
25011 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25012 --
25013 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25014 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25015 ELSE
25016 ---------------------------------------------------------------------------------------------------
25017 -- 4262811a Switch Sign
25018 ---------------------------------------------------------------------------------------------------
25019 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25021 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25022 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25023 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25024 -- 5132302
25025 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25026 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25027
25028 END IF;
25029
25030 -- 4955764
25031 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25032 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25033
25034
25035 XLA_AE_LINES_PKG.ValidateCurrentLine;
25036 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25037
25038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25039 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25040 ,p_balance_type_code => l_balance_type_code);
25041
25042 END IF;
25043
25044 -----------------------------------------------------------------------------------------
25045 -- 4262811 Multiperiod Accounting
25046 -----------------------------------------------------------------------------------------
25047 -- No MPA option is assigned.
25048
25049
25050 END IF;
25051 END IF;
25052 --
25053
25054 --
25055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25056 trace
25057 (p_msg => 'END of AcctLineType_62'
25058 ,p_level => C_LEVEL_PROCEDURE
25059 ,p_module => l_log_module);
25060 END IF;
25061 --
25062 EXCEPTION
25063 WHEN xla_exceptions_pkg.application_exception THEN
25064 RAISE;
25065 WHEN OTHERS THEN
25066 xla_exceptions_pkg.raise_message
25067 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_62');
25068 END AcctLineType_62;
25069 --
25070
25071 ---------------------------------------
25072 --
25073 -- PRIVATE FUNCTION
25074 -- AcctLineType_63
25075 --
25076 ---------------------------------------
25077 PROCEDURE AcctLineType_63 (
25078 p_application_id IN NUMBER
25079 ,p_event_id IN NUMBER
25080 ,p_calculate_acctd_flag IN VARCHAR2
25081 ,p_calculate_g_l_flag IN VARCHAR2
25082 ,p_actual_flag IN OUT VARCHAR2
25083 ,p_balance_type_code OUT VARCHAR2
25084 ,p_gain_or_loss_ref OUT VARCHAR2
25085
25086 --Transaction Distribution GL Account
25087 , p_source_26 IN NUMBER
25088 --Bill To Customer Account Identifier
25089 , p_source_37 IN NUMBER
25090 --Bill To Customer Site Use Identifier
25091 , p_source_38 IN NUMBER
25092 --SLA Party Type
25093 , p_source_39 IN VARCHAR2
25094 --Transaction Distribution Account Class
25095 , p_source_43 IN VARCHAR2
25096 --Transaction Distribution Identifier
25097 , p_source_44 IN NUMBER
25098 --Transaction Distribution Type
25099 , p_source_45 IN VARCHAR2
25100 --Transaction Distribution Entered Amount
25101 , p_source_46 IN NUMBER
25102 --Transaction Currency Code
25103 , p_source_47 IN VARCHAR2
25104 --Transaction Exchange Date
25105 , p_source_48 IN DATE
25106 --Transaction Exchange Rate
25107 , p_source_49 IN NUMBER
25108 --Transaction Exchange Rate Type
25112 --Transaction Tax Line Identifier
25109 , p_source_50 IN VARCHAR2
25110 --Transaction Accounting Amount
25111 , p_source_51 IN NUMBER
25113 , p_source_86 IN NUMBER
25114 )
25115 IS
25116
25117 l_component_type VARCHAR2(80);
25118 l_component_code VARCHAR2(30);
25119 l_component_type_code VARCHAR2(1);
25120 l_component_appl_id INTEGER;
25121 l_amb_context_code VARCHAR2(30);
25122 l_entity_code VARCHAR2(30);
25123 l_event_class_code VARCHAR2(30);
25124 l_ae_header_id NUMBER;
25125 l_event_type_code VARCHAR2(30);
25126 l_line_definition_code VARCHAR2(30);
25127 l_line_definition_owner_code VARCHAR2(1);
25128 --
25129 -- adr variables
25130 l_segment VARCHAR2(30);
25131 l_ccid NUMBER;
25132 l_adr_transaction_coa_id NUMBER;
25133 l_adr_accounting_coa_id NUMBER;
25134 l_adr_flexfield_segment_code VARCHAR2(30);
25135 l_adr_flex_value_set_id NUMBER;
25136 l_adr_value_type_code VARCHAR2(30);
25137 l_adr_value_combination_id NUMBER;
25138 l_adr_value_segment_code VARCHAR2(30);
25139
25140 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25141 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25142 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25143 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25144
25145 -- 4262811 Variables ------------------------------------------------------------------------------------------
25146 l_entered_amt_idx NUMBER;
25147 l_accted_amt_idx NUMBER;
25148 l_acc_rev_flag VARCHAR2(1);
25149 l_accrual_line_num NUMBER;
25150 l_tmp_amt NUMBER;
25151 l_acc_rev_natural_side_code VARCHAR2(1);
25152
25153 l_num_entries NUMBER;
25154 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25155 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25156 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25157 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25158 l_recog_line_1 NUMBER;
25159 l_recog_line_2 NUMBER;
25160
25161 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25162 l_bflow_applied_to_amt NUMBER; -- 5132302
25163 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25164
25165 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25166
25167 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25168 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25169
25170 ---------------------------------------------------------------------------------------------------------------
25171
25172
25173 --
25174 -- bulk performance
25175 --
25176 l_balance_type_code VARCHAR2(1);
25177 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25178 l_log_module VARCHAR2(240);
25179
25180 --
25181 -- Upgrade strategy
25182 --
25183 l_actual_upg_option VARCHAR2(1);
25184 l_enc_upg_option VARCHAR2(1);
25185
25186 --
25187 BEGIN
25188 --
25189 IF g_log_enabled THEN
25190 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
25191 END IF;
25192 --
25193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25194
25195 trace
25196 (p_msg => 'BEGIN of AcctLineType_63'
25197 ,p_level => C_LEVEL_PROCEDURE
25198 ,p_module => l_log_module);
25199
25200 END IF;
25201 --
25202 l_component_type := 'AMB_JLT';
25203 l_component_code := 'DM_DEFAULT_REC';
25204 l_component_type_code := 'S';
25205 l_component_appl_id := 222;
25206 l_amb_context_code := 'DEFAULT';
25207 l_entity_code := 'TRANSACTIONS';
25208 l_event_class_code := 'DEBIT_MEMO';
25209 l_event_type_code := 'DEBIT_MEMO_ALL';
25210 l_line_definition_owner_code := 'S';
25211 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
25212 --
25213 l_balance_type_code := 'A';
25214 l_segment := NULL;
25215 l_ccid := NULL;
25216 l_adr_transaction_coa_id := NULL;
25217 l_adr_accounting_coa_id := NULL;
25218 l_adr_flexfield_segment_code := NULL;
25219 l_adr_flex_value_set_id := NULL;
25220 l_adr_value_type_code := NULL;
25221 l_adr_value_combination_id := NULL;
25222 l_adr_value_segment_code := NULL;
25223
25224 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25225 l_bflow_class_code := ''; -- 4219869 Business Flow
25226 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25227 l_budgetary_control_flag := 'N';
25228
25229 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25230 l_bflow_applied_to_amt := NULL; -- 5132302
25231 l_entered_amt_idx := NULL; -- 4262811
25232 l_accted_amt_idx := NULL; -- 4262811
25233 l_acc_rev_flag := NULL; -- 4262811
25234 l_accrual_line_num := NULL; -- 4262811
25235 l_tmp_amt := NULL; -- 4262811
25236 --
25237
25241 ') = 'REC'
25238 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25239 l_balance_type_code <> 'B' THEN
25240 IF NVL(p_source_43,'
25242 THEN
25243
25244 --
25245 XLA_AE_LINES_PKG.SetNewLine;
25246
25247 p_balance_type_code := l_balance_type_code;
25248 -- set the flag so later we will know whether the gain loss line needs to be created
25249
25250 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25251 p_actual_flag :='A';
25252 END IF;
25253
25254 --
25255 -- bulk performance
25256 --
25257 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25258 p_header_num => 0); -- 4262811
25259 --
25260 -- set accounting line options
25261 --
25262 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25263 p_natural_side_code => 'D'
25264 , p_gain_or_loss_flag => 'N'
25265 , p_gl_transfer_mode_code => 'S'
25266 , p_acct_entry_type_code => 'A'
25267 , p_switch_side_flag => 'Y'
25268 , p_merge_duplicate_code => 'A'
25269 );
25270 --
25271 l_acc_rev_natural_side_code := 'C'; -- 4262811
25272 --
25273 --
25274 -- set accounting line type info
25275 --
25276 xla_ae_lines_pkg.SetAcctLineType
25277 (p_component_type => l_component_type
25278 ,p_event_type_code => l_event_type_code
25279 ,p_line_definition_owner_code => l_line_definition_owner_code
25280 ,p_line_definition_code => l_line_definition_code
25281 ,p_accounting_line_code => l_component_code
25282 ,p_accounting_line_type_code => l_component_type_code
25283 ,p_accounting_line_appl_id => l_component_appl_id
25284 ,p_amb_context_code => l_amb_context_code
25285 ,p_entity_code => l_entity_code
25286 ,p_event_class_code => l_event_class_code);
25287 --
25288 -- set accounting class
25289 --
25290 xla_ae_lines_pkg.SetAcctClass(
25291 p_accounting_class_code => 'RECEIVABLE'
25292 , p_ae_header_id => l_ae_header_id
25293 );
25294
25295 --
25296 -- set rounding class
25297 --
25298 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25299 'RECEIVABLE';
25300
25301 --
25302 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25303 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25304 --
25305 -- bulk performance
25306 --
25307 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25308
25309 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25310 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25311
25312 -- 4955764
25313 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25314 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25315
25316 -- 4458381 Public Sector Enh
25317
25318 --
25319 -- set accounting attributes for the line type
25320 --
25321 l_entered_amt_idx := 3;
25322 l_accted_amt_idx := 8;
25323 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25324 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
25325 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
25326 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
25327 l_rec_acct_attrs.array_char_value(2) := p_source_45;
25328 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
25329 l_rec_acct_attrs.array_num_value(3) := p_source_46;
25330 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
25331 l_rec_acct_attrs.array_char_value(4) := p_source_47;
25332 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
25333 l_rec_acct_attrs.array_date_value(5) := p_source_48;
25334 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
25335 l_rec_acct_attrs.array_num_value(6) := p_source_49;
25336 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
25337 l_rec_acct_attrs.array_char_value(7) := p_source_50;
25338 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
25339 l_rec_acct_attrs.array_num_value(8) := p_source_51;
25340 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
25341 l_rec_acct_attrs.array_num_value(9) := p_source_37;
25342 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
25343 l_rec_acct_attrs.array_num_value(10) := p_source_38;
25344 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
25345 l_rec_acct_attrs.array_char_value(11) := p_source_39;
25346 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
25347 l_rec_acct_attrs.array_num_value(12) := p_source_86;
25348
25349 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25350 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25351
25352 ---------------------------------------------------------------------------------------------------------------
25353 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25354 ---------------------------------------------------------------------------------------------------------------
25355 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25356
25360 IF xla_accounting_cache_pkg.GetValueChar
25357 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25358 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25359
25361 (p_source_code => 'LEDGER_CATEGORY_CODE'
25362 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25363 AND l_bflow_method_code = 'PRIOR_ENTRY'
25364 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25365 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25366 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25367 )
25368 THEN
25369 xla_ae_lines_pkg.BflowUpgEntry
25370 (p_business_method_code => l_bflow_method_code
25371 ,p_business_class_code => l_bflow_class_code
25372 ,p_balance_type => l_balance_type_code);
25373 ELSE
25374 NULL;
25375 -- No business flow processing for business flow method of NONE.
25376 END IF;
25377
25378 --
25379 -- call analytical criteria
25380 --
25381
25382 --
25383 -- call description
25384 --
25385 -- No description or it is inherited.
25386 --
25387 -- call ADRs
25388 -- Bug 4922099
25389 --
25390 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25391 (NVL(l_actual_upg_option, 'N') = 'O') OR
25392 (NVL(l_enc_upg_option, 'N') = 'O')
25393 )
25394 THEN
25395 NULL;
25396 --
25397 --
25398
25399 l_ccid := AcctDerRule_24(
25400 p_application_id => p_application_id
25401 , p_ae_header_id => l_ae_header_id
25402 , p_source_26 => p_source_26
25403 , x_transaction_coa_id => l_adr_transaction_coa_id
25404 , x_accounting_coa_id => l_adr_accounting_coa_id
25405 , x_value_type_code => l_adr_value_type_code
25406 , p_side => 'NA'
25407 );
25408
25409 xla_ae_lines_pkg.set_ccid(
25410 p_code_combination_id => l_ccid
25411 , p_value_type_code => l_adr_value_type_code
25412 , p_transaction_coa_id => l_adr_transaction_coa_id
25413 , p_accounting_coa_id => l_adr_accounting_coa_id
25414 , p_adr_code => 'TRX_DIST_CCID'
25415 , p_adr_type_code => 'S'
25416 , p_component_type => l_component_type
25417 , p_component_code => l_component_code
25418 , p_component_type_code => l_component_type_code
25419 , p_component_appl_id => l_component_appl_id
25420 , p_amb_context_code => l_amb_context_code
25421 , p_side => 'NA'
25422 );
25423
25424
25425 --
25426 --
25427 END IF;
25428 --
25429 -- Bug 4922099
25430 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25431 (NVL(l_enc_upg_option, 'N') = 'O')
25432 ) AND
25433 (l_bflow_method_code = 'PRIOR_ENTRY')
25434 )
25435 THEN
25436 IF
25437 --
25438 1 = 2
25439 --
25440 THEN
25441 xla_accounting_err_pkg.build_message
25442 (p_appli_s_name => 'XLA'
25443 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25444 ,p_token_1 => 'LINE_NUMBER'
25445 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25446 ,p_token_2 => 'LINE_TYPE_NAME'
25447 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25448 l_component_type
25449 ,l_component_code
25450 ,l_component_type_code
25451 ,l_component_appl_id
25452 ,l_amb_context_code
25453 ,l_entity_code
25454 ,l_event_class_code
25455 )
25456 ,p_token_3 => 'OWNER'
25457 ,p_value_3 => xla_lookups_pkg.get_meaning(
25458 p_lookup_type => 'XLA_OWNER_TYPE'
25459 ,p_lookup_code => l_component_type_code
25460 )
25461 ,p_token_4 => 'PRODUCT_NAME'
25462 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25463 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25464 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25465 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25466 ,p_ae_header_id => NULL
25467 );
25468
25469 IF (C_LEVEL_ERROR>= g_log_level) THEN
25470 trace
25474 END IF;
25471 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25472 ,p_level => C_LEVEL_ERROR
25473 ,p_module => l_log_module);
25475 END IF;
25476 END IF;
25477 --
25478 --
25479 ------------------------------------------------------------------------------------------------
25480 -- 4219869 Business Flow
25481 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25482 -- Prior Entry. Currently, the following code is always generated.
25483 ------------------------------------------------------------------------------------------------
25484 XLA_AE_LINES_PKG.ValidateCurrentLine;
25485
25486 ------------------------------------------------------------------------------------
25487 -- 4219869 Business Flow
25488 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25489 ------------------------------------------------------------------------------------
25490 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25491
25492 ----------------------------------------------------------------------------------
25493 -- 4219869 Business Flow
25494 -- Update journal entry status -- Need to generate this within IF <condition>
25495 ----------------------------------------------------------------------------------
25496 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25497 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25498 ,p_balance_type_code => l_balance_type_code
25499 );
25500
25501 -------------------------------------------------------------------------------------------
25502 -- 4262811 - Generate the Accrual Reversal lines
25503 -------------------------------------------------------------------------------------------
25504 BEGIN
25505 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25506 (g_array_event(p_event_id).array_value_num('header_index'));
25507 IF l_acc_rev_flag IS NULL THEN
25508 l_acc_rev_flag := 'N';
25509 END IF;
25510 EXCEPTION
25511 WHEN OTHERS THEN
25512 l_acc_rev_flag := 'N';
25513 END;
25514 --
25515 IF (l_acc_rev_flag = 'Y') THEN
25516
25517 -- 4645092 ------------------------------------------------------------------------------
25518 -- To allow MPA report to determine if it should generate report process
25519 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25520 ------------------------------------------------------------------------------------------
25521
25522 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25523 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25524 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25525 -- call ADRs
25526 -- Bug 4922099
25527 --
25528 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25529 (NVL(l_actual_upg_option, 'N') = 'O') OR
25530 (NVL(l_enc_upg_option, 'N') = 'O')
25531 )
25532 THEN
25533 NULL;
25534 --
25535 --
25536
25537 l_ccid := AcctDerRule_24(
25538 p_application_id => p_application_id
25539 , p_ae_header_id => l_ae_header_id
25540 , p_source_26 => p_source_26
25541 , x_transaction_coa_id => l_adr_transaction_coa_id
25542 , x_accounting_coa_id => l_adr_accounting_coa_id
25543 , x_value_type_code => l_adr_value_type_code
25544 , p_side => 'NA'
25545 );
25546
25547 xla_ae_lines_pkg.set_ccid(
25548 p_code_combination_id => l_ccid
25549 , p_value_type_code => l_adr_value_type_code
25550 , p_transaction_coa_id => l_adr_transaction_coa_id
25551 , p_accounting_coa_id => l_adr_accounting_coa_id
25552 , p_adr_code => 'TRX_DIST_CCID'
25553 , p_adr_type_code => 'S'
25554 , p_component_type => l_component_type
25555 , p_component_code => l_component_code
25556 , p_component_type_code => l_component_type_code
25557 , p_component_appl_id => l_component_appl_id
25558 , p_amb_context_code => l_amb_context_code
25559 , p_side => 'NA'
25560 );
25561
25562
25563 --
25564 --
25565 END IF;
25566
25567 --
25568 -- Update the line information that should be overwritten
25569 --
25570 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25571 p_header_num => 1);
25572 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25573
25574 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25575
25576 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25577 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25578 END IF;
25579
25580 --
25581 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25582 --
25583 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25584 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25585 ELSE
25586 ---------------------------------------------------------------------------------------------------
25587 -- 4262811a Switch Sign
25588 ---------------------------------------------------------------------------------------------------
25592 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25589 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25593 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25594 -- 5132302
25595 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25596 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25597
25598 END IF;
25599
25600 -- 4955764
25601 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25602 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25603
25604
25605 XLA_AE_LINES_PKG.ValidateCurrentLine;
25606 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25607
25608 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25609 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25610 ,p_balance_type_code => l_balance_type_code);
25611
25612 END IF;
25613
25614 -----------------------------------------------------------------------------------------
25615 -- 4262811 Multiperiod Accounting
25616 -----------------------------------------------------------------------------------------
25617 -- No MPA option is assigned.
25618
25619
25620 END IF;
25621 END IF;
25622 --
25623
25624 --
25625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25626 trace
25627 (p_msg => 'END of AcctLineType_63'
25628 ,p_level => C_LEVEL_PROCEDURE
25629 ,p_module => l_log_module);
25630 END IF;
25631 --
25632 EXCEPTION
25633 WHEN xla_exceptions_pkg.application_exception THEN
25634 RAISE;
25635 WHEN OTHERS THEN
25636 xla_exceptions_pkg.raise_message
25637 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_63');
25638 END AcctLineType_63;
25639 --
25640
25641 ---------------------------------------
25642 --
25643 -- PRIVATE FUNCTION
25644 -- AcctLineType_64
25645 --
25646 ---------------------------------------
25647 PROCEDURE AcctLineType_64 (
25648 p_application_id IN NUMBER
25649 ,p_event_id IN NUMBER
25650 ,p_calculate_acctd_flag IN VARCHAR2
25651 ,p_calculate_g_l_flag IN VARCHAR2
25652 ,p_actual_flag IN OUT VARCHAR2
25653 ,p_balance_type_code OUT VARCHAR2
25654 ,p_gain_or_loss_ref OUT VARCHAR2
25655
25656 --Transaction Distribution GL Account
25657 , p_source_26 IN NUMBER
25658 --Bill To Customer Account Identifier
25659 , p_source_37 IN NUMBER
25660 --Bill To Customer Site Use Identifier
25661 , p_source_38 IN NUMBER
25662 --SLA Party Type
25663 , p_source_39 IN VARCHAR2
25664 --Transaction Distribution Account Class
25665 , p_source_43 IN VARCHAR2
25666 --Transaction Distribution Identifier
25667 , p_source_44 IN NUMBER
25668 --Transaction Distribution Type
25669 , p_source_45 IN VARCHAR2
25670 --Transaction Distribution Entered Amount
25671 , p_source_46 IN NUMBER
25672 --Transaction Currency Code
25673 , p_source_47 IN VARCHAR2
25674 --Transaction Exchange Date
25675 , p_source_48 IN DATE
25676 --Transaction Exchange Rate
25677 , p_source_49 IN NUMBER
25678 --Transaction Exchange Rate Type
25679 , p_source_50 IN VARCHAR2
25680 --Transaction Accounting Amount
25681 , p_source_51 IN NUMBER
25682 --Transaction Tax Line Identifier
25683 , p_source_86 IN NUMBER
25684 )
25685 IS
25686
25687 l_component_type VARCHAR2(80);
25688 l_component_code VARCHAR2(30);
25689 l_component_type_code VARCHAR2(1);
25690 l_component_appl_id INTEGER;
25691 l_amb_context_code VARCHAR2(30);
25692 l_entity_code VARCHAR2(30);
25693 l_event_class_code VARCHAR2(30);
25694 l_ae_header_id NUMBER;
25695 l_event_type_code VARCHAR2(30);
25696 l_line_definition_code VARCHAR2(30);
25697 l_line_definition_owner_code VARCHAR2(1);
25698 --
25699 -- adr variables
25700 l_segment VARCHAR2(30);
25701 l_ccid NUMBER;
25702 l_adr_transaction_coa_id NUMBER;
25703 l_adr_accounting_coa_id NUMBER;
25704 l_adr_flexfield_segment_code VARCHAR2(30);
25705 l_adr_flex_value_set_id NUMBER;
25706 l_adr_value_type_code VARCHAR2(30);
25707 l_adr_value_combination_id NUMBER;
25708 l_adr_value_segment_code VARCHAR2(30);
25709
25710 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25711 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25712 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25713 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25714
25715 -- 4262811 Variables ------------------------------------------------------------------------------------------
25716 l_entered_amt_idx NUMBER;
25717 l_accted_amt_idx NUMBER;
25718 l_acc_rev_flag VARCHAR2(1);
25719 l_accrual_line_num NUMBER;
25720 l_tmp_amt NUMBER;
25721 l_acc_rev_natural_side_code VARCHAR2(1);
25722
25723 l_num_entries NUMBER;
25727 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25724 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25725 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25726 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25728 l_recog_line_1 NUMBER;
25729 l_recog_line_2 NUMBER;
25730
25731 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25732 l_bflow_applied_to_amt NUMBER; -- 5132302
25733 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25734
25735 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25736
25737 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25738 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25739
25740 ---------------------------------------------------------------------------------------------------------------
25741
25742
25743 --
25744 -- bulk performance
25745 --
25746 l_balance_type_code VARCHAR2(1);
25747 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25748 l_log_module VARCHAR2(240);
25749
25750 --
25751 -- Upgrade strategy
25752 --
25753 l_actual_upg_option VARCHAR2(1);
25754 l_enc_upg_option VARCHAR2(1);
25755
25756 --
25757 BEGIN
25758 --
25759 IF g_log_enabled THEN
25760 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
25761 END IF;
25762 --
25763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25764
25765 trace
25766 (p_msg => 'BEGIN of AcctLineType_64'
25767 ,p_level => C_LEVEL_PROCEDURE
25768 ,p_module => l_log_module);
25769
25770 END IF;
25771 --
25772 l_component_type := 'AMB_JLT';
25773 l_component_code := 'DM_FREIGHT';
25774 l_component_type_code := 'S';
25775 l_component_appl_id := 222;
25776 l_amb_context_code := 'DEFAULT';
25777 l_entity_code := 'TRANSACTIONS';
25778 l_event_class_code := 'DEBIT_MEMO';
25779 l_event_type_code := 'DEBIT_MEMO_ALL';
25780 l_line_definition_owner_code := 'S';
25781 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
25782 --
25783 l_balance_type_code := 'A';
25784 l_segment := NULL;
25785 l_ccid := NULL;
25786 l_adr_transaction_coa_id := NULL;
25787 l_adr_accounting_coa_id := NULL;
25788 l_adr_flexfield_segment_code := NULL;
25789 l_adr_flex_value_set_id := NULL;
25790 l_adr_value_type_code := NULL;
25791 l_adr_value_combination_id := NULL;
25792 l_adr_value_segment_code := NULL;
25793
25794 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25795 l_bflow_class_code := ''; -- 4219869 Business Flow
25796 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25797 l_budgetary_control_flag := 'N';
25798
25799 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25800 l_bflow_applied_to_amt := NULL; -- 5132302
25801 l_entered_amt_idx := NULL; -- 4262811
25802 l_accted_amt_idx := NULL; -- 4262811
25803 l_acc_rev_flag := NULL; -- 4262811
25804 l_accrual_line_num := NULL; -- 4262811
25805 l_tmp_amt := NULL; -- 4262811
25806 --
25807
25808 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25809 l_balance_type_code <> 'B' THEN
25810 IF NVL(p_source_43,'
25811 ') = 'FREIGHT'
25812 THEN
25813
25814 --
25815 XLA_AE_LINES_PKG.SetNewLine;
25816
25817 p_balance_type_code := l_balance_type_code;
25818 -- set the flag so later we will know whether the gain loss line needs to be created
25819
25820 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25821 p_actual_flag :='A';
25822 END IF;
25823
25824 --
25825 -- bulk performance
25826 --
25827 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25828 p_header_num => 0); -- 4262811
25829 --
25830 -- set accounting line options
25831 --
25832 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25833 p_natural_side_code => 'C'
25834 , p_gain_or_loss_flag => 'N'
25835 , p_gl_transfer_mode_code => 'S'
25836 , p_acct_entry_type_code => 'A'
25837 , p_switch_side_flag => 'Y'
25838 , p_merge_duplicate_code => 'A'
25839 );
25840 --
25841 l_acc_rev_natural_side_code := 'D'; -- 4262811
25842 --
25843 --
25844 -- set accounting line type info
25845 --
25846 xla_ae_lines_pkg.SetAcctLineType
25847 (p_component_type => l_component_type
25848 ,p_event_type_code => l_event_type_code
25849 ,p_line_definition_owner_code => l_line_definition_owner_code
25850 ,p_line_definition_code => l_line_definition_code
25851 ,p_accounting_line_code => l_component_code
25852 ,p_accounting_line_type_code => l_component_type_code
25853 ,p_accounting_line_appl_id => l_component_appl_id
25854 ,p_amb_context_code => l_amb_context_code
25855 ,p_entity_code => l_entity_code
25859 --
25856 ,p_event_class_code => l_event_class_code);
25857 --
25858 -- set accounting class
25860 xla_ae_lines_pkg.SetAcctClass(
25861 p_accounting_class_code => 'FREIGHT'
25862 , p_ae_header_id => l_ae_header_id
25863 );
25864
25865 --
25866 -- set rounding class
25867 --
25868 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25869 'RECEIVABLE';
25870
25871 --
25872 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25873 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25874 --
25875 -- bulk performance
25876 --
25877 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25878
25879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25880 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25881
25882 -- 4955764
25883 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25884 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25885
25886 -- 4458381 Public Sector Enh
25887
25888 --
25889 -- set accounting attributes for the line type
25890 --
25891 l_entered_amt_idx := 3;
25892 l_accted_amt_idx := 8;
25893 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25894 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
25895 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
25896 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
25897 l_rec_acct_attrs.array_char_value(2) := p_source_45;
25898 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
25899 l_rec_acct_attrs.array_num_value(3) := p_source_46;
25900 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
25901 l_rec_acct_attrs.array_char_value(4) := p_source_47;
25902 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
25903 l_rec_acct_attrs.array_date_value(5) := p_source_48;
25904 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
25905 l_rec_acct_attrs.array_num_value(6) := p_source_49;
25906 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
25907 l_rec_acct_attrs.array_char_value(7) := p_source_50;
25908 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
25909 l_rec_acct_attrs.array_num_value(8) := p_source_51;
25910 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
25911 l_rec_acct_attrs.array_num_value(9) := p_source_37;
25912 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
25913 l_rec_acct_attrs.array_num_value(10) := p_source_38;
25914 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
25915 l_rec_acct_attrs.array_char_value(11) := p_source_39;
25916 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
25917 l_rec_acct_attrs.array_num_value(12) := p_source_86;
25918
25919 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25920 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25921
25922 ---------------------------------------------------------------------------------------------------------------
25923 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25924 ---------------------------------------------------------------------------------------------------------------
25925 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25926
25927 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25928 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25929
25930 IF xla_accounting_cache_pkg.GetValueChar
25931 (p_source_code => 'LEDGER_CATEGORY_CODE'
25932 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25933 AND l_bflow_method_code = 'PRIOR_ENTRY'
25934 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25935 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25936 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25937 )
25938 THEN
25939 xla_ae_lines_pkg.BflowUpgEntry
25940 (p_business_method_code => l_bflow_method_code
25941 ,p_business_class_code => l_bflow_class_code
25942 ,p_balance_type => l_balance_type_code);
25943 ELSE
25944 NULL;
25945 -- No business flow processing for business flow method of NONE.
25946 END IF;
25947
25948 --
25949 -- call analytical criteria
25950 --
25951
25952 --
25953 -- call description
25954 --
25955 -- No description or it is inherited.
25956 --
25957 -- call ADRs
25958 -- Bug 4922099
25959 --
25960 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25961 (NVL(l_actual_upg_option, 'N') = 'O') OR
25962 (NVL(l_enc_upg_option, 'N') = 'O')
25963 )
25964 THEN
25965 NULL;
25966 --
25967 --
25968
25969 l_ccid := AcctDerRule_24(
25970 p_application_id => p_application_id
25971 , p_ae_header_id => l_ae_header_id
25972 , p_source_26 => p_source_26
25973 , x_transaction_coa_id => l_adr_transaction_coa_id
25974 , x_accounting_coa_id => l_adr_accounting_coa_id
25975 , x_value_type_code => l_adr_value_type_code
25976 , p_side => 'NA'
25980 p_code_combination_id => l_ccid
25977 );
25978
25979 xla_ae_lines_pkg.set_ccid(
25981 , p_value_type_code => l_adr_value_type_code
25982 , p_transaction_coa_id => l_adr_transaction_coa_id
25983 , p_accounting_coa_id => l_adr_accounting_coa_id
25984 , p_adr_code => 'TRX_DIST_CCID'
25985 , p_adr_type_code => 'S'
25986 , p_component_type => l_component_type
25987 , p_component_code => l_component_code
25988 , p_component_type_code => l_component_type_code
25989 , p_component_appl_id => l_component_appl_id
25990 , p_amb_context_code => l_amb_context_code
25991 , p_side => 'NA'
25992 );
25993
25994
25995 --
25996 --
25997 END IF;
25998 --
25999 -- Bug 4922099
26000 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26001 (NVL(l_enc_upg_option, 'N') = 'O')
26002 ) AND
26003 (l_bflow_method_code = 'PRIOR_ENTRY')
26004 )
26005 THEN
26006 IF
26007 --
26008 1 = 2
26009 --
26010 THEN
26011 xla_accounting_err_pkg.build_message
26012 (p_appli_s_name => 'XLA'
26013 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26014 ,p_token_1 => 'LINE_NUMBER'
26015 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26016 ,p_token_2 => 'LINE_TYPE_NAME'
26017 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26018 l_component_type
26019 ,l_component_code
26020 ,l_component_type_code
26021 ,l_component_appl_id
26022 ,l_amb_context_code
26023 ,l_entity_code
26024 ,l_event_class_code
26025 )
26026 ,p_token_3 => 'OWNER'
26027 ,p_value_3 => xla_lookups_pkg.get_meaning(
26028 p_lookup_type => 'XLA_OWNER_TYPE'
26029 ,p_lookup_code => l_component_type_code
26030 )
26031 ,p_token_4 => 'PRODUCT_NAME'
26032 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26033 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26034 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26035 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26036 ,p_ae_header_id => NULL
26037 );
26038
26039 IF (C_LEVEL_ERROR>= g_log_level) THEN
26040 trace
26041 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26042 ,p_level => C_LEVEL_ERROR
26043 ,p_module => l_log_module);
26044 END IF;
26045 END IF;
26046 END IF;
26047 --
26048 --
26049 ------------------------------------------------------------------------------------------------
26050 -- 4219869 Business Flow
26051 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26052 -- Prior Entry. Currently, the following code is always generated.
26053 ------------------------------------------------------------------------------------------------
26054 XLA_AE_LINES_PKG.ValidateCurrentLine;
26055
26056 ------------------------------------------------------------------------------------
26057 -- 4219869 Business Flow
26058 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26059 ------------------------------------------------------------------------------------
26060 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26061
26062 ----------------------------------------------------------------------------------
26063 -- 4219869 Business Flow
26064 -- Update journal entry status -- Need to generate this within IF <condition>
26065 ----------------------------------------------------------------------------------
26066 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26067 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26068 ,p_balance_type_code => l_balance_type_code
26069 );
26070
26071 -------------------------------------------------------------------------------------------
26072 -- 4262811 - Generate the Accrual Reversal lines
26073 -------------------------------------------------------------------------------------------
26074 BEGIN
26075 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26076 (g_array_event(p_event_id).array_value_num('header_index'));
26077 IF l_acc_rev_flag IS NULL THEN
26078 l_acc_rev_flag := 'N';
26079 END IF;
26080 EXCEPTION
26084 --
26081 WHEN OTHERS THEN
26082 l_acc_rev_flag := 'N';
26083 END;
26085 IF (l_acc_rev_flag = 'Y') THEN
26086
26087 -- 4645092 ------------------------------------------------------------------------------
26088 -- To allow MPA report to determine if it should generate report process
26089 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26090 ------------------------------------------------------------------------------------------
26091
26092 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26093 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26094 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26095 -- call ADRs
26096 -- Bug 4922099
26097 --
26098 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26099 (NVL(l_actual_upg_option, 'N') = 'O') OR
26100 (NVL(l_enc_upg_option, 'N') = 'O')
26101 )
26102 THEN
26103 NULL;
26104 --
26105 --
26106
26107 l_ccid := AcctDerRule_24(
26108 p_application_id => p_application_id
26109 , p_ae_header_id => l_ae_header_id
26110 , p_source_26 => p_source_26
26111 , x_transaction_coa_id => l_adr_transaction_coa_id
26112 , x_accounting_coa_id => l_adr_accounting_coa_id
26113 , x_value_type_code => l_adr_value_type_code
26114 , p_side => 'NA'
26115 );
26116
26117 xla_ae_lines_pkg.set_ccid(
26118 p_code_combination_id => l_ccid
26119 , p_value_type_code => l_adr_value_type_code
26120 , p_transaction_coa_id => l_adr_transaction_coa_id
26121 , p_accounting_coa_id => l_adr_accounting_coa_id
26122 , p_adr_code => 'TRX_DIST_CCID'
26123 , p_adr_type_code => 'S'
26124 , p_component_type => l_component_type
26125 , p_component_code => l_component_code
26126 , p_component_type_code => l_component_type_code
26127 , p_component_appl_id => l_component_appl_id
26128 , p_amb_context_code => l_amb_context_code
26129 , p_side => 'NA'
26130 );
26131
26132
26133 --
26134 --
26135 END IF;
26136
26137 --
26138 -- Update the line information that should be overwritten
26139 --
26140 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26141 p_header_num => 1);
26142 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26143
26144 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26145
26146 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26147 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26148 END IF;
26149
26150 --
26151 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26152 --
26153 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26154 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26155 ELSE
26156 ---------------------------------------------------------------------------------------------------
26157 -- 4262811a Switch Sign
26158 ---------------------------------------------------------------------------------------------------
26159 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26160 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26161 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26162 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26163 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26164 -- 5132302
26165 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26166 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26167
26168 END IF;
26169
26170 -- 4955764
26171 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26172 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26173
26174
26175 XLA_AE_LINES_PKG.ValidateCurrentLine;
26176 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26177
26178 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26179 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26180 ,p_balance_type_code => l_balance_type_code);
26181
26182 END IF;
26183
26184 -----------------------------------------------------------------------------------------
26185 -- 4262811 Multiperiod Accounting
26186 -----------------------------------------------------------------------------------------
26187 -- No MPA option is assigned.
26188
26189
26190 END IF;
26191 END IF;
26192 --
26193
26194 --
26195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26196 trace
26197 (p_msg => 'END of AcctLineType_64'
26198 ,p_level => C_LEVEL_PROCEDURE
26199 ,p_module => l_log_module);
26200 END IF;
26201 --
26202 EXCEPTION
26203 WHEN xla_exceptions_pkg.application_exception THEN
26204 RAISE;
26205 WHEN OTHERS THEN
26209 --
26206 xla_exceptions_pkg.raise_message
26207 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_64');
26208 END AcctLineType_64;
26210
26211 ---------------------------------------
26212 --
26213 -- PRIVATE FUNCTION
26214 -- AcctLineType_65
26215 --
26216 ---------------------------------------
26217 PROCEDURE AcctLineType_65 (
26218 p_application_id IN NUMBER
26219 ,p_event_id IN NUMBER
26220 ,p_calculate_acctd_flag IN VARCHAR2
26221 ,p_calculate_g_l_flag IN VARCHAR2
26222 ,p_actual_flag IN OUT VARCHAR2
26223 ,p_balance_type_code OUT VARCHAR2
26224 ,p_gain_or_loss_ref OUT VARCHAR2
26225
26226 --Transaction Distribution GL Account
26227 , p_source_26 IN NUMBER
26228 --Bill To Customer Account Identifier
26229 , p_source_37 IN NUMBER
26230 --Bill To Customer Site Use Identifier
26231 , p_source_38 IN NUMBER
26232 --SLA Party Type
26233 , p_source_39 IN VARCHAR2
26234 --Transaction Distribution Account Class
26235 , p_source_43 IN VARCHAR2
26236 --Transaction Distribution Identifier
26237 , p_source_44 IN NUMBER
26238 --Transaction Distribution Type
26239 , p_source_45 IN VARCHAR2
26240 --Transaction Distribution Entered Amount
26241 , p_source_46 IN NUMBER
26242 --Transaction Currency Code
26243 , p_source_47 IN VARCHAR2
26244 --Transaction Exchange Date
26245 , p_source_48 IN DATE
26246 --Transaction Exchange Rate
26247 , p_source_49 IN NUMBER
26248 --Transaction Exchange Rate Type
26249 , p_source_50 IN VARCHAR2
26250 --Transaction Accounting Amount
26251 , p_source_51 IN NUMBER
26252 --Transaction Line Flexfield Attribute 1
26253 , p_source_65 IN VARCHAR2
26254 --Transaction Tax Line Identifier
26255 , p_source_86 IN NUMBER
26256 )
26257 IS
26258
26259 l_component_type VARCHAR2(80);
26260 l_component_code VARCHAR2(30);
26261 l_component_type_code VARCHAR2(1);
26262 l_component_appl_id INTEGER;
26263 l_amb_context_code VARCHAR2(30);
26264 l_entity_code VARCHAR2(30);
26265 l_event_class_code VARCHAR2(30);
26266 l_ae_header_id NUMBER;
26267 l_event_type_code VARCHAR2(30);
26268 l_line_definition_code VARCHAR2(30);
26269 l_line_definition_owner_code VARCHAR2(1);
26270 --
26271 -- adr variables
26272 l_segment VARCHAR2(30);
26273 l_ccid NUMBER;
26274 l_adr_transaction_coa_id NUMBER;
26275 l_adr_accounting_coa_id NUMBER;
26276 l_adr_flexfield_segment_code VARCHAR2(30);
26277 l_adr_flex_value_set_id NUMBER;
26278 l_adr_value_type_code VARCHAR2(30);
26279 l_adr_value_combination_id NUMBER;
26280 l_adr_value_segment_code VARCHAR2(30);
26281
26282 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26283 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26284 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26285 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26286
26287 -- 4262811 Variables ------------------------------------------------------------------------------------------
26288 l_entered_amt_idx NUMBER;
26289 l_accted_amt_idx NUMBER;
26290 l_acc_rev_flag VARCHAR2(1);
26291 l_accrual_line_num NUMBER;
26292 l_tmp_amt NUMBER;
26293 l_acc_rev_natural_side_code VARCHAR2(1);
26294
26295 l_num_entries NUMBER;
26296 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26297 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26298 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26299 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26300 l_recog_line_1 NUMBER;
26301 l_recog_line_2 NUMBER;
26302
26303 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26304 l_bflow_applied_to_amt NUMBER; -- 5132302
26305 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26306
26307 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26308
26309 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26310 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26311
26312 ---------------------------------------------------------------------------------------------------------------
26313
26314
26315 --
26316 -- bulk performance
26317 --
26318 l_balance_type_code VARCHAR2(1);
26319 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26320 l_log_module VARCHAR2(240);
26321
26322 --
26323 -- Upgrade strategy
26324 --
26325 l_actual_upg_option VARCHAR2(1);
26326 l_enc_upg_option VARCHAR2(1);
26327
26328 --
26329 BEGIN
26330 --
26331 IF g_log_enabled THEN
26332 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
26333 END IF;
26334 --
26335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26336
26337 trace
26338 (p_msg => 'BEGIN of AcctLineType_65'
26339 ,p_level => C_LEVEL_PROCEDURE
26340 ,p_module => l_log_module);
26341
26342 END IF;
26343 --
26344 l_component_type := 'AMB_JLT';
26345 l_component_code := 'DM_REV';
26346 l_component_type_code := 'S';
26350 l_event_class_code := 'DEBIT_MEMO';
26347 l_component_appl_id := 222;
26348 l_amb_context_code := 'DEFAULT';
26349 l_entity_code := 'TRANSACTIONS';
26351 l_event_type_code := 'DEBIT_MEMO_ALL';
26352 l_line_definition_owner_code := 'S';
26353 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
26354 --
26355 l_balance_type_code := 'A';
26356 l_segment := NULL;
26357 l_ccid := NULL;
26358 l_adr_transaction_coa_id := NULL;
26359 l_adr_accounting_coa_id := NULL;
26360 l_adr_flexfield_segment_code := NULL;
26361 l_adr_flex_value_set_id := NULL;
26362 l_adr_value_type_code := NULL;
26363 l_adr_value_combination_id := NULL;
26364 l_adr_value_segment_code := NULL;
26365
26366 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26367 l_bflow_class_code := ''; -- 4219869 Business Flow
26368 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26369 l_budgetary_control_flag := 'N';
26370
26371 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26372 l_bflow_applied_to_amt := NULL; -- 5132302
26373 l_entered_amt_idx := NULL; -- 4262811
26374 l_accted_amt_idx := NULL; -- 4262811
26375 l_acc_rev_flag := NULL; -- 4262811
26376 l_accrual_line_num := NULL; -- 4262811
26377 l_tmp_amt := NULL; -- 4262811
26378 --
26379
26380 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26381 l_balance_type_code <> 'B' THEN
26382 IF NVL(p_source_43,'
26383 ') = 'REV'
26384 THEN
26385
26386 --
26387 XLA_AE_LINES_PKG.SetNewLine;
26388
26389 p_balance_type_code := l_balance_type_code;
26390 -- set the flag so later we will know whether the gain loss line needs to be created
26391
26392 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26393 p_actual_flag :='A';
26394 END IF;
26395
26396 --
26397 -- bulk performance
26398 --
26399 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26400 p_header_num => 0); -- 4262811
26401 --
26402 -- set accounting line options
26403 --
26404 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26405 p_natural_side_code => 'C'
26406 , p_gain_or_loss_flag => 'N'
26407 , p_gl_transfer_mode_code => 'S'
26408 , p_acct_entry_type_code => 'A'
26409 , p_switch_side_flag => 'Y'
26410 , p_merge_duplicate_code => 'A'
26411 );
26412 --
26413 l_acc_rev_natural_side_code := 'D'; -- 4262811
26414 --
26415 --
26416 -- set accounting line type info
26417 --
26418 xla_ae_lines_pkg.SetAcctLineType
26419 (p_component_type => l_component_type
26420 ,p_event_type_code => l_event_type_code
26421 ,p_line_definition_owner_code => l_line_definition_owner_code
26422 ,p_line_definition_code => l_line_definition_code
26423 ,p_accounting_line_code => l_component_code
26424 ,p_accounting_line_type_code => l_component_type_code
26425 ,p_accounting_line_appl_id => l_component_appl_id
26426 ,p_amb_context_code => l_amb_context_code
26427 ,p_entity_code => l_entity_code
26428 ,p_event_class_code => l_event_class_code);
26429 --
26430 -- set accounting class
26431 --
26432 xla_ae_lines_pkg.SetAcctClass(
26433 p_accounting_class_code => 'REVENUE'
26434 , p_ae_header_id => l_ae_header_id
26435 );
26436
26437 --
26438 -- set rounding class
26439 --
26440 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26441 'RECEIVABLE';
26442
26443 --
26444 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26445 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26446 --
26447 -- bulk performance
26448 --
26449 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26450
26451 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26452 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26453
26454 -- 4955764
26455 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26456 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26457
26458 -- 4458381 Public Sector Enh
26459
26460 --
26461 -- set accounting attributes for the line type
26462 --
26463 l_entered_amt_idx := 3;
26464 l_accted_amt_idx := 8;
26465 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26466 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
26467 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
26468 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
26469 l_rec_acct_attrs.array_char_value(2) := p_source_45;
26470 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
26471 l_rec_acct_attrs.array_num_value(3) := p_source_46;
26472 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
26473 l_rec_acct_attrs.array_char_value(4) := p_source_47;
26474 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
26475 l_rec_acct_attrs.array_date_value(5) := p_source_48;
26479 l_rec_acct_attrs.array_char_value(7) := p_source_50;
26476 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
26477 l_rec_acct_attrs.array_num_value(6) := p_source_49;
26478 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
26480 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
26481 l_rec_acct_attrs.array_num_value(8) := p_source_51;
26482 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
26483 l_rec_acct_attrs.array_num_value(9) := p_source_37;
26484 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
26485 l_rec_acct_attrs.array_num_value(10) := p_source_38;
26486 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
26487 l_rec_acct_attrs.array_char_value(11) := p_source_39;
26488 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
26489 l_rec_acct_attrs.array_num_value(12) := p_source_86;
26490
26491 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26492 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26493
26494 ---------------------------------------------------------------------------------------------------------------
26495 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26496 ---------------------------------------------------------------------------------------------------------------
26497 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26498
26499 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26500 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26501
26502 IF xla_accounting_cache_pkg.GetValueChar
26503 (p_source_code => 'LEDGER_CATEGORY_CODE'
26504 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26505 AND l_bflow_method_code = 'PRIOR_ENTRY'
26506 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26507 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26508 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26509 )
26510 THEN
26511 xla_ae_lines_pkg.BflowUpgEntry
26512 (p_business_method_code => l_bflow_method_code
26513 ,p_business_class_code => l_bflow_class_code
26514 ,p_balance_type => l_balance_type_code);
26515 ELSE
26516 NULL;
26517 -- No business flow processing for business flow method of NONE.
26518 END IF;
26519
26520 --
26521 -- call analytical criteria
26522 --
26523
26524
26525 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
26526 xla_ae_lines_pkg.SetAnalyticalCriteria(
26527 p_analytical_criterion_name => 'Project Number'
26528 , p_analytical_criterion_owner => 'S'
26529 , p_analytical_criterion_code => 'PROJECT_NUMBER'
26530 , p_amb_context_code => 'DEFAULT'
26531 , p_balancing_flag => 'N'
26532
26533 , p_analytical_detail_char_1 => TO_CHAR(p_source_65)
26534 , p_analytical_detail_num_1 => NULL
26535 , p_analytical_detail_date_1 => NULL
26536
26537 , p_ae_header_id => l_ae_header_id
26538 )
26539 ;
26540 --
26541
26542 --
26543 -- call description
26544 --
26545 -- No description or it is inherited.
26546 --
26547 -- call ADRs
26548 -- Bug 4922099
26549 --
26550 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26551 (NVL(l_actual_upg_option, 'N') = 'O') OR
26552 (NVL(l_enc_upg_option, 'N') = 'O')
26553 )
26554 THEN
26555 NULL;
26556 --
26557 --
26558
26559 l_ccid := AcctDerRule_24(
26560 p_application_id => p_application_id
26561 , p_ae_header_id => l_ae_header_id
26562 , p_source_26 => p_source_26
26563 , x_transaction_coa_id => l_adr_transaction_coa_id
26564 , x_accounting_coa_id => l_adr_accounting_coa_id
26565 , x_value_type_code => l_adr_value_type_code
26566 , p_side => 'NA'
26567 );
26568
26569 xla_ae_lines_pkg.set_ccid(
26570 p_code_combination_id => l_ccid
26571 , p_value_type_code => l_adr_value_type_code
26572 , p_transaction_coa_id => l_adr_transaction_coa_id
26573 , p_accounting_coa_id => l_adr_accounting_coa_id
26574 , p_adr_code => 'TRX_DIST_CCID'
26575 , p_adr_type_code => 'S'
26576 , p_component_type => l_component_type
26577 , p_component_code => l_component_code
26578 , p_component_type_code => l_component_type_code
26579 , p_component_appl_id => l_component_appl_id
26580 , p_amb_context_code => l_amb_context_code
26581 , p_side => 'NA'
26582 );
26583
26584
26585 --
26586 --
26587 END IF;
26588 --
26589 -- Bug 4922099
26590 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26591 (NVL(l_enc_upg_option, 'N') = 'O')
26592 ) AND
26593 (l_bflow_method_code = 'PRIOR_ENTRY')
26594 )
26595 THEN
26596 IF
26597 --
26598 1 = 2
26599 --
26600 THEN
26601 xla_accounting_err_pkg.build_message
26602 (p_appli_s_name => 'XLA'
26603 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26604 ,p_token_1 => 'LINE_NUMBER'
26608 l_component_type
26605 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26606 ,p_token_2 => 'LINE_TYPE_NAME'
26607 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26609 ,l_component_code
26610 ,l_component_type_code
26611 ,l_component_appl_id
26612 ,l_amb_context_code
26613 ,l_entity_code
26614 ,l_event_class_code
26615 )
26616 ,p_token_3 => 'OWNER'
26617 ,p_value_3 => xla_lookups_pkg.get_meaning(
26618 p_lookup_type => 'XLA_OWNER_TYPE'
26619 ,p_lookup_code => l_component_type_code
26620 )
26621 ,p_token_4 => 'PRODUCT_NAME'
26622 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26623 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26624 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26625 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26626 ,p_ae_header_id => NULL
26627 );
26628
26629 IF (C_LEVEL_ERROR>= g_log_level) THEN
26630 trace
26631 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26632 ,p_level => C_LEVEL_ERROR
26633 ,p_module => l_log_module);
26634 END IF;
26635 END IF;
26636 END IF;
26637 --
26638 --
26639 ------------------------------------------------------------------------------------------------
26640 -- 4219869 Business Flow
26641 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26642 -- Prior Entry. Currently, the following code is always generated.
26643 ------------------------------------------------------------------------------------------------
26644 XLA_AE_LINES_PKG.ValidateCurrentLine;
26645
26646 ------------------------------------------------------------------------------------
26647 -- 4219869 Business Flow
26648 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26649 ------------------------------------------------------------------------------------
26650 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26651
26652 ----------------------------------------------------------------------------------
26653 -- 4219869 Business Flow
26654 -- Update journal entry status -- Need to generate this within IF <condition>
26655 ----------------------------------------------------------------------------------
26656 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26657 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26658 ,p_balance_type_code => l_balance_type_code
26659 );
26660
26661 -------------------------------------------------------------------------------------------
26662 -- 4262811 - Generate the Accrual Reversal lines
26663 -------------------------------------------------------------------------------------------
26664 BEGIN
26665 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26666 (g_array_event(p_event_id).array_value_num('header_index'));
26667 IF l_acc_rev_flag IS NULL THEN
26668 l_acc_rev_flag := 'N';
26669 END IF;
26670 EXCEPTION
26671 WHEN OTHERS THEN
26672 l_acc_rev_flag := 'N';
26673 END;
26674 --
26675 IF (l_acc_rev_flag = 'Y') THEN
26676
26677 -- 4645092 ------------------------------------------------------------------------------
26678 -- To allow MPA report to determine if it should generate report process
26679 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26680 ------------------------------------------------------------------------------------------
26681
26682 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26683 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26684 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26685 -- call ADRs
26686 -- Bug 4922099
26687 --
26688 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26689 (NVL(l_actual_upg_option, 'N') = 'O') OR
26690 (NVL(l_enc_upg_option, 'N') = 'O')
26691 )
26692 THEN
26693 NULL;
26694 --
26695 --
26696
26697 l_ccid := AcctDerRule_24(
26698 p_application_id => p_application_id
26699 , p_ae_header_id => l_ae_header_id
26700 , p_source_26 => p_source_26
26701 , x_transaction_coa_id => l_adr_transaction_coa_id
26702 , x_accounting_coa_id => l_adr_accounting_coa_id
26703 , x_value_type_code => l_adr_value_type_code
26704 , p_side => 'NA'
26705 );
26706
26710 , p_transaction_coa_id => l_adr_transaction_coa_id
26707 xla_ae_lines_pkg.set_ccid(
26708 p_code_combination_id => l_ccid
26709 , p_value_type_code => l_adr_value_type_code
26711 , p_accounting_coa_id => l_adr_accounting_coa_id
26712 , p_adr_code => 'TRX_DIST_CCID'
26713 , p_adr_type_code => 'S'
26714 , p_component_type => l_component_type
26715 , p_component_code => l_component_code
26716 , p_component_type_code => l_component_type_code
26717 , p_component_appl_id => l_component_appl_id
26718 , p_amb_context_code => l_amb_context_code
26719 , p_side => 'NA'
26720 );
26721
26722
26723 --
26724 --
26725 END IF;
26726
26727 --
26728 -- Update the line information that should be overwritten
26729 --
26730 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26731 p_header_num => 1);
26732 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26733
26734 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26735
26736 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26737 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26738 END IF;
26739
26740 --
26741 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26742 --
26743 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26744 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26745 ELSE
26746 ---------------------------------------------------------------------------------------------------
26747 -- 4262811a Switch Sign
26748 ---------------------------------------------------------------------------------------------------
26749 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26750 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26751 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26752 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26753 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26754 -- 5132302
26755 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26756 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26757
26758 END IF;
26759
26760 -- 4955764
26761 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26762 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26763
26764
26765 XLA_AE_LINES_PKG.ValidateCurrentLine;
26766 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26767
26768 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26769 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26770 ,p_balance_type_code => l_balance_type_code);
26771
26772 END IF;
26773
26774 -----------------------------------------------------------------------------------------
26775 -- 4262811 Multiperiod Accounting
26776 -----------------------------------------------------------------------------------------
26777 -- No MPA option is assigned.
26778
26779
26780 END IF;
26781 END IF;
26782 --
26783
26784 --
26785 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26786 trace
26787 (p_msg => 'END of AcctLineType_65'
26788 ,p_level => C_LEVEL_PROCEDURE
26789 ,p_module => l_log_module);
26790 END IF;
26791 --
26792 EXCEPTION
26793 WHEN xla_exceptions_pkg.application_exception THEN
26794 RAISE;
26795 WHEN OTHERS THEN
26796 xla_exceptions_pkg.raise_message
26797 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_65');
26798 END AcctLineType_65;
26799 --
26800
26801 ---------------------------------------
26802 --
26803 -- PRIVATE FUNCTION
26804 -- AcctLineType_66
26805 --
26806 ---------------------------------------
26807 PROCEDURE AcctLineType_66 (
26808 p_application_id IN NUMBER
26809 ,p_event_id IN NUMBER
26810 ,p_calculate_acctd_flag IN VARCHAR2
26811 ,p_calculate_g_l_flag IN VARCHAR2
26812 ,p_actual_flag IN OUT VARCHAR2
26813 ,p_balance_type_code OUT VARCHAR2
26814 ,p_gain_or_loss_ref OUT VARCHAR2
26815
26816 --Transaction Distribution GL Account
26817 , p_source_26 IN NUMBER
26818 --Bill To Customer Account Identifier
26819 , p_source_37 IN NUMBER
26820 --Bill To Customer Site Use Identifier
26821 , p_source_38 IN NUMBER
26822 --SLA Party Type
26823 , p_source_39 IN VARCHAR2
26824 --Transaction Distribution Account Class
26825 , p_source_43 IN VARCHAR2
26826 --Transaction Distribution Identifier
26827 , p_source_44 IN NUMBER
26828 --Transaction Distribution Type
26829 , p_source_45 IN VARCHAR2
26833 , p_source_47 IN VARCHAR2
26830 --Transaction Distribution Entered Amount
26831 , p_source_46 IN NUMBER
26832 --Transaction Currency Code
26834 --Transaction Exchange Date
26835 , p_source_48 IN DATE
26836 --Transaction Exchange Rate
26837 , p_source_49 IN NUMBER
26838 --Transaction Exchange Rate Type
26839 , p_source_50 IN VARCHAR2
26840 --Transaction Accounting Amount
26841 , p_source_51 IN NUMBER
26842 --Transaction Tax Line Identifier
26843 , p_source_86 IN NUMBER
26844 )
26845 IS
26846
26847 l_component_type VARCHAR2(80);
26848 l_component_code VARCHAR2(30);
26849 l_component_type_code VARCHAR2(1);
26850 l_component_appl_id INTEGER;
26851 l_amb_context_code VARCHAR2(30);
26852 l_entity_code VARCHAR2(30);
26853 l_event_class_code VARCHAR2(30);
26854 l_ae_header_id NUMBER;
26855 l_event_type_code VARCHAR2(30);
26856 l_line_definition_code VARCHAR2(30);
26857 l_line_definition_owner_code VARCHAR2(1);
26858 --
26859 -- adr variables
26860 l_segment VARCHAR2(30);
26861 l_ccid NUMBER;
26862 l_adr_transaction_coa_id NUMBER;
26863 l_adr_accounting_coa_id NUMBER;
26864 l_adr_flexfield_segment_code VARCHAR2(30);
26865 l_adr_flex_value_set_id NUMBER;
26866 l_adr_value_type_code VARCHAR2(30);
26867 l_adr_value_combination_id NUMBER;
26868 l_adr_value_segment_code VARCHAR2(30);
26869
26870 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26871 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26872 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26873 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26874
26875 -- 4262811 Variables ------------------------------------------------------------------------------------------
26876 l_entered_amt_idx NUMBER;
26877 l_accted_amt_idx NUMBER;
26878 l_acc_rev_flag VARCHAR2(1);
26879 l_accrual_line_num NUMBER;
26880 l_tmp_amt NUMBER;
26881 l_acc_rev_natural_side_code VARCHAR2(1);
26882
26883 l_num_entries NUMBER;
26884 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26885 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26886 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26887 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26888 l_recog_line_1 NUMBER;
26889 l_recog_line_2 NUMBER;
26890
26891 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26892 l_bflow_applied_to_amt NUMBER; -- 5132302
26893 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26894
26895 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26896
26897 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26898 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26899
26900 ---------------------------------------------------------------------------------------------------------------
26901
26902
26903 --
26904 -- bulk performance
26905 --
26906 l_balance_type_code VARCHAR2(1);
26907 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26908 l_log_module VARCHAR2(240);
26909
26910 --
26911 -- Upgrade strategy
26912 --
26913 l_actual_upg_option VARCHAR2(1);
26914 l_enc_upg_option VARCHAR2(1);
26915
26916 --
26917 BEGIN
26918 --
26919 IF g_log_enabled THEN
26920 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
26921 END IF;
26922 --
26923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26924
26925 trace
26926 (p_msg => 'BEGIN of AcctLineType_66'
26927 ,p_level => C_LEVEL_PROCEDURE
26928 ,p_module => l_log_module);
26929
26930 END IF;
26931 --
26932 l_component_type := 'AMB_JLT';
26933 l_component_code := 'DM_ROUND';
26934 l_component_type_code := 'S';
26935 l_component_appl_id := 222;
26936 l_amb_context_code := 'DEFAULT';
26937 l_entity_code := 'TRANSACTIONS';
26938 l_event_class_code := 'DEBIT_MEMO';
26939 l_event_type_code := 'DEBIT_MEMO_ALL';
26940 l_line_definition_owner_code := 'S';
26941 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
26942 --
26943 l_balance_type_code := 'A';
26944 l_segment := NULL;
26945 l_ccid := NULL;
26946 l_adr_transaction_coa_id := NULL;
26947 l_adr_accounting_coa_id := NULL;
26948 l_adr_flexfield_segment_code := NULL;
26949 l_adr_flex_value_set_id := NULL;
26950 l_adr_value_type_code := NULL;
26951 l_adr_value_combination_id := NULL;
26952 l_adr_value_segment_code := NULL;
26953
26954 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26955 l_bflow_class_code := ''; -- 4219869 Business Flow
26956 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26957 l_budgetary_control_flag := 'N';
26958
26959 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26960 l_bflow_applied_to_amt := NULL; -- 5132302
26961 l_entered_amt_idx := NULL; -- 4262811
26962 l_accted_amt_idx := NULL; -- 4262811
26963 l_acc_rev_flag := NULL; -- 4262811
26967
26964 l_accrual_line_num := NULL; -- 4262811
26965 l_tmp_amt := NULL; -- 4262811
26966 --
26968 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26969 l_balance_type_code <> 'B' THEN
26970 IF NVL(p_source_43,'
26971 ') = 'ROUND'
26972 THEN
26973
26974 --
26975 XLA_AE_LINES_PKG.SetNewLine;
26976
26977 p_balance_type_code := l_balance_type_code;
26978 -- set the flag so later we will know whether the gain loss line needs to be created
26979
26980 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26981 p_actual_flag :='A';
26982 END IF;
26983
26984 --
26985 -- bulk performance
26986 --
26987 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26988 p_header_num => 0); -- 4262811
26989 --
26990 -- set accounting line options
26991 --
26992 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26993 p_natural_side_code => 'C'
26994 , p_gain_or_loss_flag => 'N'
26995 , p_gl_transfer_mode_code => 'S'
26996 , p_acct_entry_type_code => 'A'
26997 , p_switch_side_flag => 'Y'
26998 , p_merge_duplicate_code => 'A'
26999 );
27000 --
27001 l_acc_rev_natural_side_code := 'D'; -- 4262811
27002 --
27003 --
27004 -- set accounting line type info
27005 --
27006 xla_ae_lines_pkg.SetAcctLineType
27007 (p_component_type => l_component_type
27008 ,p_event_type_code => l_event_type_code
27009 ,p_line_definition_owner_code => l_line_definition_owner_code
27010 ,p_line_definition_code => l_line_definition_code
27011 ,p_accounting_line_code => l_component_code
27012 ,p_accounting_line_type_code => l_component_type_code
27013 ,p_accounting_line_appl_id => l_component_appl_id
27014 ,p_amb_context_code => l_amb_context_code
27015 ,p_entity_code => l_entity_code
27016 ,p_event_class_code => l_event_class_code);
27017 --
27018 -- set accounting class
27019 --
27020 xla_ae_lines_pkg.SetAcctClass(
27021 p_accounting_class_code => 'ROUNDING'
27022 , p_ae_header_id => l_ae_header_id
27023 );
27024
27025 --
27026 -- set rounding class
27027 --
27028 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27029 'RECEIVABLE';
27030
27031 --
27032 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27033 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27034 --
27035 -- bulk performance
27036 --
27037 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27038
27039 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27040 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27041
27042 -- 4955764
27043 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27044 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27045
27046 -- 4458381 Public Sector Enh
27047
27048 --
27049 -- set accounting attributes for the line type
27050 --
27051 l_entered_amt_idx := 3;
27052 l_accted_amt_idx := 8;
27053 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27054 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
27055 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
27056 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
27057 l_rec_acct_attrs.array_char_value(2) := p_source_45;
27058 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
27059 l_rec_acct_attrs.array_num_value(3) := p_source_46;
27060 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
27061 l_rec_acct_attrs.array_char_value(4) := p_source_47;
27062 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
27063 l_rec_acct_attrs.array_date_value(5) := p_source_48;
27064 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
27065 l_rec_acct_attrs.array_num_value(6) := p_source_49;
27066 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
27067 l_rec_acct_attrs.array_char_value(7) := p_source_50;
27068 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
27069 l_rec_acct_attrs.array_num_value(8) := p_source_51;
27070 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
27071 l_rec_acct_attrs.array_num_value(9) := p_source_37;
27072 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
27073 l_rec_acct_attrs.array_num_value(10) := p_source_38;
27074 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
27075 l_rec_acct_attrs.array_char_value(11) := p_source_39;
27076 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
27077 l_rec_acct_attrs.array_num_value(12) := p_source_86;
27078
27079 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27080 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27081
27082 ---------------------------------------------------------------------------------------------------------------
27083 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27084 ---------------------------------------------------------------------------------------------------------------
27088 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27085 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27086
27087 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27089
27090 IF xla_accounting_cache_pkg.GetValueChar
27091 (p_source_code => 'LEDGER_CATEGORY_CODE'
27092 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27093 AND l_bflow_method_code = 'PRIOR_ENTRY'
27094 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27095 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27096 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27097 )
27098 THEN
27099 xla_ae_lines_pkg.BflowUpgEntry
27100 (p_business_method_code => l_bflow_method_code
27101 ,p_business_class_code => l_bflow_class_code
27102 ,p_balance_type => l_balance_type_code);
27103 ELSE
27104 NULL;
27105 -- No business flow processing for business flow method of NONE.
27106 END IF;
27107
27108 --
27109 -- call analytical criteria
27110 --
27111
27112 --
27113 -- call description
27114 --
27115 -- No description or it is inherited.
27116 --
27117 -- call ADRs
27118 -- Bug 4922099
27119 --
27120 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27121 (NVL(l_actual_upg_option, 'N') = 'O') OR
27122 (NVL(l_enc_upg_option, 'N') = 'O')
27123 )
27124 THEN
27125 NULL;
27126 --
27127 --
27128
27129 l_ccid := AcctDerRule_24(
27130 p_application_id => p_application_id
27131 , p_ae_header_id => l_ae_header_id
27132 , p_source_26 => p_source_26
27133 , x_transaction_coa_id => l_adr_transaction_coa_id
27134 , x_accounting_coa_id => l_adr_accounting_coa_id
27135 , x_value_type_code => l_adr_value_type_code
27136 , p_side => 'NA'
27137 );
27138
27139 xla_ae_lines_pkg.set_ccid(
27140 p_code_combination_id => l_ccid
27141 , p_value_type_code => l_adr_value_type_code
27142 , p_transaction_coa_id => l_adr_transaction_coa_id
27143 , p_accounting_coa_id => l_adr_accounting_coa_id
27144 , p_adr_code => 'TRX_DIST_CCID'
27145 , p_adr_type_code => 'S'
27146 , p_component_type => l_component_type
27147 , p_component_code => l_component_code
27148 , p_component_type_code => l_component_type_code
27149 , p_component_appl_id => l_component_appl_id
27150 , p_amb_context_code => l_amb_context_code
27151 , p_side => 'NA'
27152 );
27153
27154
27155 --
27156 --
27157 END IF;
27158 --
27159 -- Bug 4922099
27160 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27161 (NVL(l_enc_upg_option, 'N') = 'O')
27162 ) AND
27163 (l_bflow_method_code = 'PRIOR_ENTRY')
27164 )
27165 THEN
27166 IF
27167 --
27168 1 = 2
27169 --
27170 THEN
27171 xla_accounting_err_pkg.build_message
27172 (p_appli_s_name => 'XLA'
27173 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27174 ,p_token_1 => 'LINE_NUMBER'
27175 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27176 ,p_token_2 => 'LINE_TYPE_NAME'
27177 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27178 l_component_type
27179 ,l_component_code
27180 ,l_component_type_code
27181 ,l_component_appl_id
27182 ,l_amb_context_code
27183 ,l_entity_code
27184 ,l_event_class_code
27185 )
27186 ,p_token_3 => 'OWNER'
27187 ,p_value_3 => xla_lookups_pkg.get_meaning(
27188 p_lookup_type => 'XLA_OWNER_TYPE'
27189 ,p_lookup_code => l_component_type_code
27190 )
27191 ,p_token_4 => 'PRODUCT_NAME'
27192 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27193 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27194 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27195 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27196 ,p_ae_header_id => NULL
27197 );
27198
27202 ,p_level => C_LEVEL_ERROR
27199 IF (C_LEVEL_ERROR>= g_log_level) THEN
27200 trace
27201 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27203 ,p_module => l_log_module);
27204 END IF;
27205 END IF;
27206 END IF;
27207 --
27208 --
27209 ------------------------------------------------------------------------------------------------
27210 -- 4219869 Business Flow
27211 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27212 -- Prior Entry. Currently, the following code is always generated.
27213 ------------------------------------------------------------------------------------------------
27214 XLA_AE_LINES_PKG.ValidateCurrentLine;
27215
27216 ------------------------------------------------------------------------------------
27217 -- 4219869 Business Flow
27218 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27219 ------------------------------------------------------------------------------------
27220 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27221
27222 ----------------------------------------------------------------------------------
27223 -- 4219869 Business Flow
27224 -- Update journal entry status -- Need to generate this within IF <condition>
27225 ----------------------------------------------------------------------------------
27226 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27227 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27228 ,p_balance_type_code => l_balance_type_code
27229 );
27230
27231 -------------------------------------------------------------------------------------------
27232 -- 4262811 - Generate the Accrual Reversal lines
27233 -------------------------------------------------------------------------------------------
27234 BEGIN
27235 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27236 (g_array_event(p_event_id).array_value_num('header_index'));
27237 IF l_acc_rev_flag IS NULL THEN
27238 l_acc_rev_flag := 'N';
27239 END IF;
27240 EXCEPTION
27241 WHEN OTHERS THEN
27242 l_acc_rev_flag := 'N';
27243 END;
27244 --
27245 IF (l_acc_rev_flag = 'Y') THEN
27246
27247 -- 4645092 ------------------------------------------------------------------------------
27248 -- To allow MPA report to determine if it should generate report process
27249 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27250 ------------------------------------------------------------------------------------------
27251
27252 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27253 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27254 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27255 -- call ADRs
27256 -- Bug 4922099
27257 --
27258 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27259 (NVL(l_actual_upg_option, 'N') = 'O') OR
27260 (NVL(l_enc_upg_option, 'N') = 'O')
27261 )
27262 THEN
27263 NULL;
27264 --
27265 --
27266
27267 l_ccid := AcctDerRule_24(
27268 p_application_id => p_application_id
27269 , p_ae_header_id => l_ae_header_id
27270 , p_source_26 => p_source_26
27271 , x_transaction_coa_id => l_adr_transaction_coa_id
27272 , x_accounting_coa_id => l_adr_accounting_coa_id
27273 , x_value_type_code => l_adr_value_type_code
27274 , p_side => 'NA'
27275 );
27276
27277 xla_ae_lines_pkg.set_ccid(
27278 p_code_combination_id => l_ccid
27279 , p_value_type_code => l_adr_value_type_code
27280 , p_transaction_coa_id => l_adr_transaction_coa_id
27281 , p_accounting_coa_id => l_adr_accounting_coa_id
27282 , p_adr_code => 'TRX_DIST_CCID'
27283 , p_adr_type_code => 'S'
27284 , p_component_type => l_component_type
27285 , p_component_code => l_component_code
27286 , p_component_type_code => l_component_type_code
27287 , p_component_appl_id => l_component_appl_id
27288 , p_amb_context_code => l_amb_context_code
27289 , p_side => 'NA'
27290 );
27291
27292
27293 --
27294 --
27295 END IF;
27296
27297 --
27298 -- Update the line information that should be overwritten
27299 --
27300 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27301 p_header_num => 1);
27302 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27303
27304 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27305
27306 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27307 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27308 END IF;
27309
27310 --
27311 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27312 --
27313 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27314 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27315 ELSE
27316 ---------------------------------------------------------------------------------------------------
27317 -- 4262811a Switch Sign
27321 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27318 ---------------------------------------------------------------------------------------------------
27319 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27320 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27322 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27323 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27324 -- 5132302
27325 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27326 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27327
27328 END IF;
27329
27330 -- 4955764
27331 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27332 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27333
27334
27335 XLA_AE_LINES_PKG.ValidateCurrentLine;
27336 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27337
27338 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27339 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27340 ,p_balance_type_code => l_balance_type_code);
27341
27342 END IF;
27343
27344 -----------------------------------------------------------------------------------------
27345 -- 4262811 Multiperiod Accounting
27346 -----------------------------------------------------------------------------------------
27347 -- No MPA option is assigned.
27348
27349
27350 END IF;
27351 END IF;
27352 --
27353
27354 --
27355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27356 trace
27357 (p_msg => 'END of AcctLineType_66'
27358 ,p_level => C_LEVEL_PROCEDURE
27359 ,p_module => l_log_module);
27360 END IF;
27361 --
27362 EXCEPTION
27363 WHEN xla_exceptions_pkg.application_exception THEN
27364 RAISE;
27365 WHEN OTHERS THEN
27366 xla_exceptions_pkg.raise_message
27367 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_66');
27368 END AcctLineType_66;
27369 --
27370
27371 ---------------------------------------
27372 --
27373 -- PRIVATE FUNCTION
27374 -- AcctLineType_67
27375 --
27376 ---------------------------------------
27377 PROCEDURE AcctLineType_67 (
27378 p_application_id IN NUMBER
27379 ,p_event_id IN NUMBER
27380 ,p_calculate_acctd_flag IN VARCHAR2
27381 ,p_calculate_g_l_flag IN VARCHAR2
27382 ,p_actual_flag IN OUT VARCHAR2
27383 ,p_balance_type_code OUT VARCHAR2
27384 ,p_gain_or_loss_ref OUT VARCHAR2
27385
27386 --Transaction Distribution GL Account
27387 , p_source_26 IN NUMBER
27388 --Bill To Customer Account Identifier
27389 , p_source_37 IN NUMBER
27390 --Bill To Customer Site Use Identifier
27391 , p_source_38 IN NUMBER
27392 --SLA Party Type
27393 , p_source_39 IN VARCHAR2
27394 --Transaction Distribution Account Class
27395 , p_source_43 IN VARCHAR2
27396 --Transaction Distribution Identifier
27397 , p_source_44 IN NUMBER
27398 --Transaction Distribution Type
27399 , p_source_45 IN VARCHAR2
27400 --Transaction Distribution Entered Amount
27401 , p_source_46 IN NUMBER
27402 --Transaction Currency Code
27403 , p_source_47 IN VARCHAR2
27404 --Transaction Exchange Date
27405 , p_source_48 IN DATE
27406 --Transaction Exchange Rate
27407 , p_source_49 IN NUMBER
27408 --Transaction Exchange Rate Type
27409 , p_source_50 IN VARCHAR2
27410 --Transaction Accounting Amount
27411 , p_source_51 IN NUMBER
27412 --Transaction Tax Line Identifier
27413 , p_source_86 IN NUMBER
27414 )
27415 IS
27416
27417 l_component_type VARCHAR2(80);
27418 l_component_code VARCHAR2(30);
27419 l_component_type_code VARCHAR2(1);
27420 l_component_appl_id INTEGER;
27421 l_amb_context_code VARCHAR2(30);
27422 l_entity_code VARCHAR2(30);
27423 l_event_class_code VARCHAR2(30);
27424 l_ae_header_id NUMBER;
27425 l_event_type_code VARCHAR2(30);
27426 l_line_definition_code VARCHAR2(30);
27427 l_line_definition_owner_code VARCHAR2(1);
27428 --
27429 -- adr variables
27430 l_segment VARCHAR2(30);
27431 l_ccid NUMBER;
27432 l_adr_transaction_coa_id NUMBER;
27433 l_adr_accounting_coa_id NUMBER;
27434 l_adr_flexfield_segment_code VARCHAR2(30);
27435 l_adr_flex_value_set_id NUMBER;
27436 l_adr_value_type_code VARCHAR2(30);
27437 l_adr_value_combination_id NUMBER;
27438 l_adr_value_segment_code VARCHAR2(30);
27439
27440 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27441 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27442 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27443 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27444
27445 -- 4262811 Variables ------------------------------------------------------------------------------------------
27446 l_entered_amt_idx NUMBER;
27447 l_accted_amt_idx NUMBER;
27448 l_acc_rev_flag VARCHAR2(1);
27449 l_accrual_line_num NUMBER;
27450 l_tmp_amt NUMBER;
27454 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27451 l_acc_rev_natural_side_code VARCHAR2(1);
27452
27453 l_num_entries NUMBER;
27455 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27456 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27457 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27458 l_recog_line_1 NUMBER;
27459 l_recog_line_2 NUMBER;
27460
27461 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27462 l_bflow_applied_to_amt NUMBER; -- 5132302
27463 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27464
27465 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27466
27467 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27468 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27469
27470 ---------------------------------------------------------------------------------------------------------------
27471
27472
27473 --
27474 -- bulk performance
27475 --
27476 l_balance_type_code VARCHAR2(1);
27477 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27478 l_log_module VARCHAR2(240);
27479
27480 --
27481 -- Upgrade strategy
27482 --
27483 l_actual_upg_option VARCHAR2(1);
27484 l_enc_upg_option VARCHAR2(1);
27485
27486 --
27487 BEGIN
27488 --
27489 IF g_log_enabled THEN
27490 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
27491 END IF;
27492 --
27493 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27494
27495 trace
27496 (p_msg => 'BEGIN of AcctLineType_67'
27497 ,p_level => C_LEVEL_PROCEDURE
27498 ,p_module => l_log_module);
27499
27500 END IF;
27501 --
27502 l_component_type := 'AMB_JLT';
27503 l_component_code := 'DM_TAX';
27504 l_component_type_code := 'S';
27505 l_component_appl_id := 222;
27506 l_amb_context_code := 'DEFAULT';
27507 l_entity_code := 'TRANSACTIONS';
27508 l_event_class_code := 'DEBIT_MEMO';
27509 l_event_type_code := 'DEBIT_MEMO_ALL';
27510 l_line_definition_owner_code := 'S';
27511 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
27512 --
27513 l_balance_type_code := 'A';
27514 l_segment := NULL;
27515 l_ccid := NULL;
27516 l_adr_transaction_coa_id := NULL;
27517 l_adr_accounting_coa_id := NULL;
27518 l_adr_flexfield_segment_code := NULL;
27519 l_adr_flex_value_set_id := NULL;
27520 l_adr_value_type_code := NULL;
27521 l_adr_value_combination_id := NULL;
27522 l_adr_value_segment_code := NULL;
27523
27524 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27525 l_bflow_class_code := ''; -- 4219869 Business Flow
27526 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27527 l_budgetary_control_flag := 'N';
27528
27529 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27530 l_bflow_applied_to_amt := NULL; -- 5132302
27531 l_entered_amt_idx := NULL; -- 4262811
27532 l_accted_amt_idx := NULL; -- 4262811
27533 l_acc_rev_flag := NULL; -- 4262811
27534 l_accrual_line_num := NULL; -- 4262811
27535 l_tmp_amt := NULL; -- 4262811
27536 --
27537
27538 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27539 l_balance_type_code <> 'B' THEN
27540 IF NVL(p_source_43,'
27541 ') = 'TAX'
27542 THEN
27543
27544 --
27545 XLA_AE_LINES_PKG.SetNewLine;
27546
27547 p_balance_type_code := l_balance_type_code;
27548 -- set the flag so later we will know whether the gain loss line needs to be created
27549
27550 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27551 p_actual_flag :='A';
27552 END IF;
27553
27554 --
27555 -- bulk performance
27556 --
27557 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27558 p_header_num => 0); -- 4262811
27559 --
27560 -- set accounting line options
27561 --
27562 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27563 p_natural_side_code => 'C'
27564 , p_gain_or_loss_flag => 'N'
27565 , p_gl_transfer_mode_code => 'S'
27566 , p_acct_entry_type_code => 'A'
27567 , p_switch_side_flag => 'Y'
27568 , p_merge_duplicate_code => 'A'
27569 );
27570 --
27571 l_acc_rev_natural_side_code := 'D'; -- 4262811
27572 --
27573 --
27574 -- set accounting line type info
27575 --
27576 xla_ae_lines_pkg.SetAcctLineType
27577 (p_component_type => l_component_type
27578 ,p_event_type_code => l_event_type_code
27579 ,p_line_definition_owner_code => l_line_definition_owner_code
27580 ,p_line_definition_code => l_line_definition_code
27581 ,p_accounting_line_code => l_component_code
27582 ,p_accounting_line_type_code => l_component_type_code
27583 ,p_accounting_line_appl_id => l_component_appl_id
27584 ,p_amb_context_code => l_amb_context_code
27585 ,p_entity_code => l_entity_code
27586 ,p_event_class_code => l_event_class_code);
27587 --
27588 -- set accounting class
27592 , p_ae_header_id => l_ae_header_id
27589 --
27590 xla_ae_lines_pkg.SetAcctClass(
27591 p_accounting_class_code => 'TAX'
27593 );
27594
27595 --
27596 -- set rounding class
27597 --
27598 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27599 'RECEIVABLE';
27600
27601 --
27602 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27603 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27604 --
27605 -- bulk performance
27606 --
27607 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27608
27609 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27610 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27611
27612 -- 4955764
27613 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27614 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27615
27616 -- 4458381 Public Sector Enh
27617
27618 --
27619 -- set accounting attributes for the line type
27620 --
27621 l_entered_amt_idx := 3;
27622 l_accted_amt_idx := 8;
27623 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27624 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
27625 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
27626 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
27627 l_rec_acct_attrs.array_char_value(2) := p_source_45;
27628 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
27629 l_rec_acct_attrs.array_num_value(3) := p_source_46;
27630 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
27631 l_rec_acct_attrs.array_char_value(4) := p_source_47;
27632 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
27633 l_rec_acct_attrs.array_date_value(5) := p_source_48;
27634 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
27635 l_rec_acct_attrs.array_num_value(6) := p_source_49;
27636 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
27637 l_rec_acct_attrs.array_char_value(7) := p_source_50;
27638 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
27639 l_rec_acct_attrs.array_num_value(8) := p_source_51;
27640 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
27641 l_rec_acct_attrs.array_num_value(9) := p_source_37;
27642 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
27643 l_rec_acct_attrs.array_num_value(10) := p_source_38;
27644 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
27645 l_rec_acct_attrs.array_char_value(11) := p_source_39;
27646 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
27647 l_rec_acct_attrs.array_num_value(12) := p_source_86;
27648
27649 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27650 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27651
27652 ---------------------------------------------------------------------------------------------------------------
27653 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27654 ---------------------------------------------------------------------------------------------------------------
27655 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27656
27657 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27658 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27659
27660 IF xla_accounting_cache_pkg.GetValueChar
27661 (p_source_code => 'LEDGER_CATEGORY_CODE'
27662 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27663 AND l_bflow_method_code = 'PRIOR_ENTRY'
27664 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27665 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27666 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27667 )
27668 THEN
27669 xla_ae_lines_pkg.BflowUpgEntry
27670 (p_business_method_code => l_bflow_method_code
27671 ,p_business_class_code => l_bflow_class_code
27672 ,p_balance_type => l_balance_type_code);
27673 ELSE
27674 NULL;
27675 -- No business flow processing for business flow method of NONE.
27676 END IF;
27677
27678 --
27679 -- call analytical criteria
27680 --
27681
27682 --
27683 -- call description
27684 --
27685 -- No description or it is inherited.
27686 --
27687 -- call ADRs
27688 -- Bug 4922099
27689 --
27690 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27691 (NVL(l_actual_upg_option, 'N') = 'O') OR
27692 (NVL(l_enc_upg_option, 'N') = 'O')
27693 )
27694 THEN
27695 NULL;
27696 --
27697 --
27698
27699 l_ccid := AcctDerRule_24(
27700 p_application_id => p_application_id
27701 , p_ae_header_id => l_ae_header_id
27702 , p_source_26 => p_source_26
27703 , x_transaction_coa_id => l_adr_transaction_coa_id
27704 , x_accounting_coa_id => l_adr_accounting_coa_id
27705 , x_value_type_code => l_adr_value_type_code
27706 , p_side => 'NA'
27707 );
27708
27709 xla_ae_lines_pkg.set_ccid(
27710 p_code_combination_id => l_ccid
27714 , p_adr_code => 'TRX_DIST_CCID'
27711 , p_value_type_code => l_adr_value_type_code
27712 , p_transaction_coa_id => l_adr_transaction_coa_id
27713 , p_accounting_coa_id => l_adr_accounting_coa_id
27715 , p_adr_type_code => 'S'
27716 , p_component_type => l_component_type
27717 , p_component_code => l_component_code
27718 , p_component_type_code => l_component_type_code
27719 , p_component_appl_id => l_component_appl_id
27720 , p_amb_context_code => l_amb_context_code
27721 , p_side => 'NA'
27722 );
27723
27724
27725 --
27726 --
27727 END IF;
27728 --
27729 -- Bug 4922099
27730 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27731 (NVL(l_enc_upg_option, 'N') = 'O')
27732 ) AND
27733 (l_bflow_method_code = 'PRIOR_ENTRY')
27734 )
27735 THEN
27736 IF
27737 --
27738 1 = 2
27739 --
27740 THEN
27741 xla_accounting_err_pkg.build_message
27742 (p_appli_s_name => 'XLA'
27743 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27744 ,p_token_1 => 'LINE_NUMBER'
27745 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27746 ,p_token_2 => 'LINE_TYPE_NAME'
27747 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27748 l_component_type
27749 ,l_component_code
27750 ,l_component_type_code
27751 ,l_component_appl_id
27752 ,l_amb_context_code
27753 ,l_entity_code
27754 ,l_event_class_code
27755 )
27756 ,p_token_3 => 'OWNER'
27757 ,p_value_3 => xla_lookups_pkg.get_meaning(
27758 p_lookup_type => 'XLA_OWNER_TYPE'
27759 ,p_lookup_code => l_component_type_code
27760 )
27761 ,p_token_4 => 'PRODUCT_NAME'
27762 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27763 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27764 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27765 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27766 ,p_ae_header_id => NULL
27767 );
27768
27769 IF (C_LEVEL_ERROR>= g_log_level) THEN
27770 trace
27771 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27772 ,p_level => C_LEVEL_ERROR
27773 ,p_module => l_log_module);
27774 END IF;
27775 END IF;
27776 END IF;
27777 --
27778 --
27779 ------------------------------------------------------------------------------------------------
27780 -- 4219869 Business Flow
27781 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27782 -- Prior Entry. Currently, the following code is always generated.
27783 ------------------------------------------------------------------------------------------------
27784 XLA_AE_LINES_PKG.ValidateCurrentLine;
27785
27786 ------------------------------------------------------------------------------------
27787 -- 4219869 Business Flow
27788 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27789 ------------------------------------------------------------------------------------
27790 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27791
27792 ----------------------------------------------------------------------------------
27793 -- 4219869 Business Flow
27794 -- Update journal entry status -- Need to generate this within IF <condition>
27795 ----------------------------------------------------------------------------------
27796 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27797 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27798 ,p_balance_type_code => l_balance_type_code
27799 );
27800
27801 -------------------------------------------------------------------------------------------
27802 -- 4262811 - Generate the Accrual Reversal lines
27803 -------------------------------------------------------------------------------------------
27804 BEGIN
27805 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27806 (g_array_event(p_event_id).array_value_num('header_index'));
27807 IF l_acc_rev_flag IS NULL THEN
27808 l_acc_rev_flag := 'N';
27809 END IF;
27810 EXCEPTION
27811 WHEN OTHERS THEN
27812 l_acc_rev_flag := 'N';
27813 END;
27814 --
27818 -- To allow MPA report to determine if it should generate report process
27815 IF (l_acc_rev_flag = 'Y') THEN
27816
27817 -- 4645092 ------------------------------------------------------------------------------
27819 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27820 ------------------------------------------------------------------------------------------
27821
27822 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27823 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27824 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27825 -- call ADRs
27826 -- Bug 4922099
27827 --
27828 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27829 (NVL(l_actual_upg_option, 'N') = 'O') OR
27830 (NVL(l_enc_upg_option, 'N') = 'O')
27831 )
27832 THEN
27833 NULL;
27834 --
27835 --
27836
27837 l_ccid := AcctDerRule_24(
27838 p_application_id => p_application_id
27839 , p_ae_header_id => l_ae_header_id
27840 , p_source_26 => p_source_26
27841 , x_transaction_coa_id => l_adr_transaction_coa_id
27842 , x_accounting_coa_id => l_adr_accounting_coa_id
27843 , x_value_type_code => l_adr_value_type_code
27844 , p_side => 'NA'
27845 );
27846
27847 xla_ae_lines_pkg.set_ccid(
27848 p_code_combination_id => l_ccid
27849 , p_value_type_code => l_adr_value_type_code
27850 , p_transaction_coa_id => l_adr_transaction_coa_id
27851 , p_accounting_coa_id => l_adr_accounting_coa_id
27852 , p_adr_code => 'TRX_DIST_CCID'
27853 , p_adr_type_code => 'S'
27854 , p_component_type => l_component_type
27855 , p_component_code => l_component_code
27856 , p_component_type_code => l_component_type_code
27857 , p_component_appl_id => l_component_appl_id
27858 , p_amb_context_code => l_amb_context_code
27859 , p_side => 'NA'
27860 );
27861
27862
27863 --
27864 --
27865 END IF;
27866
27867 --
27868 -- Update the line information that should be overwritten
27869 --
27870 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27871 p_header_num => 1);
27872 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27873
27874 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27875
27876 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27877 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27878 END IF;
27879
27880 --
27881 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27882 --
27883 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27884 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27885 ELSE
27886 ---------------------------------------------------------------------------------------------------
27887 -- 4262811a Switch Sign
27888 ---------------------------------------------------------------------------------------------------
27889 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27891 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27893 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27894 -- 5132302
27895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27896 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27897
27898 END IF;
27899
27900 -- 4955764
27901 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27902 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27903
27904
27905 XLA_AE_LINES_PKG.ValidateCurrentLine;
27906 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27907
27908 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27909 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27910 ,p_balance_type_code => l_balance_type_code);
27911
27912 END IF;
27913
27914 -----------------------------------------------------------------------------------------
27915 -- 4262811 Multiperiod Accounting
27916 -----------------------------------------------------------------------------------------
27917 -- No MPA option is assigned.
27918
27919
27920 END IF;
27921 END IF;
27922 --
27923
27924 --
27925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27926 trace
27927 (p_msg => 'END of AcctLineType_67'
27928 ,p_level => C_LEVEL_PROCEDURE
27929 ,p_module => l_log_module);
27930 END IF;
27931 --
27932 EXCEPTION
27933 WHEN xla_exceptions_pkg.application_exception THEN
27934 RAISE;
27935 WHEN OTHERS THEN
27936 xla_exceptions_pkg.raise_message
27937 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_67');
27941 ---------------------------------------
27938 END AcctLineType_67;
27939 --
27940
27942 --
27943 -- PRIVATE FUNCTION
27944 -- AcctLineType_68
27945 --
27946 ---------------------------------------
27947 PROCEDURE AcctLineType_68 (
27948 p_application_id IN NUMBER
27949 ,p_event_id IN NUMBER
27950 ,p_calculate_acctd_flag IN VARCHAR2
27951 ,p_calculate_g_l_flag IN VARCHAR2
27952 ,p_actual_flag IN OUT VARCHAR2
27953 ,p_balance_type_code OUT VARCHAR2
27954 ,p_gain_or_loss_ref OUT VARCHAR2
27955
27956 --Transaction Distribution GL Account
27957 , p_source_26 IN NUMBER
27958 --Bill To Customer Account Identifier
27959 , p_source_37 IN NUMBER
27960 --Bill To Customer Site Use Identifier
27961 , p_source_38 IN NUMBER
27962 --SLA Party Type
27963 , p_source_39 IN VARCHAR2
27964 --Transaction Distribution Account Class
27965 , p_source_43 IN VARCHAR2
27966 --Transaction Distribution Identifier
27967 , p_source_44 IN NUMBER
27968 --Transaction Distribution Type
27969 , p_source_45 IN VARCHAR2
27970 --Transaction Distribution Entered Amount
27971 , p_source_46 IN NUMBER
27972 --Transaction Currency Code
27973 , p_source_47 IN VARCHAR2
27974 --Transaction Exchange Date
27975 , p_source_48 IN DATE
27976 --Transaction Exchange Rate
27977 , p_source_49 IN NUMBER
27978 --Transaction Exchange Rate Type
27979 , p_source_50 IN VARCHAR2
27980 --Transaction Accounting Amount
27981 , p_source_51 IN NUMBER
27982 --Transaction Tax Line Identifier
27983 , p_source_86 IN NUMBER
27984 )
27985 IS
27986
27987 l_component_type VARCHAR2(80);
27988 l_component_code VARCHAR2(30);
27989 l_component_type_code VARCHAR2(1);
27990 l_component_appl_id INTEGER;
27991 l_amb_context_code VARCHAR2(30);
27992 l_entity_code VARCHAR2(30);
27993 l_event_class_code VARCHAR2(30);
27994 l_ae_header_id NUMBER;
27995 l_event_type_code VARCHAR2(30);
27996 l_line_definition_code VARCHAR2(30);
27997 l_line_definition_owner_code VARCHAR2(1);
27998 --
27999 -- adr variables
28000 l_segment VARCHAR2(30);
28001 l_ccid NUMBER;
28002 l_adr_transaction_coa_id NUMBER;
28003 l_adr_accounting_coa_id NUMBER;
28004 l_adr_flexfield_segment_code VARCHAR2(30);
28005 l_adr_flex_value_set_id NUMBER;
28006 l_adr_value_type_code VARCHAR2(30);
28007 l_adr_value_combination_id NUMBER;
28008 l_adr_value_segment_code VARCHAR2(30);
28009
28010 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28011 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28012 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28013 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28014
28015 -- 4262811 Variables ------------------------------------------------------------------------------------------
28016 l_entered_amt_idx NUMBER;
28017 l_accted_amt_idx NUMBER;
28018 l_acc_rev_flag VARCHAR2(1);
28019 l_accrual_line_num NUMBER;
28020 l_tmp_amt NUMBER;
28021 l_acc_rev_natural_side_code VARCHAR2(1);
28022
28023 l_num_entries NUMBER;
28024 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28025 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28026 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28027 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28028 l_recog_line_1 NUMBER;
28029 l_recog_line_2 NUMBER;
28030
28031 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28032 l_bflow_applied_to_amt NUMBER; -- 5132302
28033 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28034
28035 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28036
28037 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28038 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28039
28040 ---------------------------------------------------------------------------------------------------------------
28041
28042
28043 --
28044 -- bulk performance
28045 --
28046 l_balance_type_code VARCHAR2(1);
28047 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28048 l_log_module VARCHAR2(240);
28049
28050 --
28051 -- Upgrade strategy
28052 --
28053 l_actual_upg_option VARCHAR2(1);
28054 l_enc_upg_option VARCHAR2(1);
28055
28056 --
28057 BEGIN
28058 --
28059 IF g_log_enabled THEN
28060 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
28061 END IF;
28062 --
28063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28064
28065 trace
28066 (p_msg => 'BEGIN of AcctLineType_68'
28067 ,p_level => C_LEVEL_PROCEDURE
28068 ,p_module => l_log_module);
28069
28070 END IF;
28071 --
28072 l_component_type := 'AMB_JLT';
28073 l_component_code := 'DM_UNBILL';
28074 l_component_type_code := 'S';
28075 l_component_appl_id := 222;
28076 l_amb_context_code := 'DEFAULT';
28077 l_entity_code := 'TRANSACTIONS';
28081 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
28078 l_event_class_code := 'DEBIT_MEMO';
28079 l_event_type_code := 'DEBIT_MEMO_ALL';
28080 l_line_definition_owner_code := 'S';
28082 --
28083 l_balance_type_code := 'A';
28084 l_segment := NULL;
28085 l_ccid := NULL;
28086 l_adr_transaction_coa_id := NULL;
28087 l_adr_accounting_coa_id := NULL;
28088 l_adr_flexfield_segment_code := NULL;
28089 l_adr_flex_value_set_id := NULL;
28090 l_adr_value_type_code := NULL;
28091 l_adr_value_combination_id := NULL;
28092 l_adr_value_segment_code := NULL;
28093
28094 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28095 l_bflow_class_code := ''; -- 4219869 Business Flow
28096 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28097 l_budgetary_control_flag := 'N';
28098
28099 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28100 l_bflow_applied_to_amt := NULL; -- 5132302
28101 l_entered_amt_idx := NULL; -- 4262811
28102 l_accted_amt_idx := NULL; -- 4262811
28103 l_acc_rev_flag := NULL; -- 4262811
28104 l_accrual_line_num := NULL; -- 4262811
28105 l_tmp_amt := NULL; -- 4262811
28106 --
28107
28108 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28109 l_balance_type_code <> 'B' THEN
28110 IF NVL(p_source_43,'
28111 ') = 'UNBILL'
28112 THEN
28113
28114 --
28115 XLA_AE_LINES_PKG.SetNewLine;
28116
28117 p_balance_type_code := l_balance_type_code;
28118 -- set the flag so later we will know whether the gain loss line needs to be created
28119
28120 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28121 p_actual_flag :='A';
28122 END IF;
28123
28124 --
28125 -- bulk performance
28126 --
28127 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28128 p_header_num => 0); -- 4262811
28129 --
28130 -- set accounting line options
28131 --
28132 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28133 p_natural_side_code => 'D'
28134 , p_gain_or_loss_flag => 'N'
28135 , p_gl_transfer_mode_code => 'S'
28136 , p_acct_entry_type_code => 'A'
28137 , p_switch_side_flag => 'Y'
28138 , p_merge_duplicate_code => 'A'
28139 );
28140 --
28141 l_acc_rev_natural_side_code := 'C'; -- 4262811
28142 --
28143 --
28144 -- set accounting line type info
28145 --
28146 xla_ae_lines_pkg.SetAcctLineType
28147 (p_component_type => l_component_type
28148 ,p_event_type_code => l_event_type_code
28149 ,p_line_definition_owner_code => l_line_definition_owner_code
28150 ,p_line_definition_code => l_line_definition_code
28151 ,p_accounting_line_code => l_component_code
28152 ,p_accounting_line_type_code => l_component_type_code
28153 ,p_accounting_line_appl_id => l_component_appl_id
28154 ,p_amb_context_code => l_amb_context_code
28155 ,p_entity_code => l_entity_code
28156 ,p_event_class_code => l_event_class_code);
28157 --
28158 -- set accounting class
28159 --
28160 xla_ae_lines_pkg.SetAcctClass(
28161 p_accounting_class_code => 'UNBILL'
28162 , p_ae_header_id => l_ae_header_id
28163 );
28164
28165 --
28166 -- set rounding class
28167 --
28168 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28169 'RECEIVABLE';
28170
28171 --
28172 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28173 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28174 --
28175 -- bulk performance
28176 --
28177 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28178
28179 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28180 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28181
28182 -- 4955764
28183 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28184 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28185
28186 -- 4458381 Public Sector Enh
28187
28188 --
28189 -- set accounting attributes for the line type
28190 --
28191 l_entered_amt_idx := 3;
28192 l_accted_amt_idx := 8;
28193 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28194 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
28195 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
28196 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
28197 l_rec_acct_attrs.array_char_value(2) := p_source_45;
28198 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
28199 l_rec_acct_attrs.array_num_value(3) := p_source_46;
28200 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
28201 l_rec_acct_attrs.array_char_value(4) := p_source_47;
28202 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
28203 l_rec_acct_attrs.array_date_value(5) := p_source_48;
28204 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
28208 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
28205 l_rec_acct_attrs.array_num_value(6) := p_source_49;
28206 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
28207 l_rec_acct_attrs.array_char_value(7) := p_source_50;
28209 l_rec_acct_attrs.array_num_value(8) := p_source_51;
28210 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
28211 l_rec_acct_attrs.array_num_value(9) := p_source_37;
28212 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
28213 l_rec_acct_attrs.array_num_value(10) := p_source_38;
28214 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
28215 l_rec_acct_attrs.array_char_value(11) := p_source_39;
28216 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
28217 l_rec_acct_attrs.array_num_value(12) := p_source_86;
28218
28219 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28220 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28221
28222 ---------------------------------------------------------------------------------------------------------------
28223 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28224 ---------------------------------------------------------------------------------------------------------------
28225 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28226
28227 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28228 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28229
28230 IF xla_accounting_cache_pkg.GetValueChar
28231 (p_source_code => 'LEDGER_CATEGORY_CODE'
28232 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28233 AND l_bflow_method_code = 'PRIOR_ENTRY'
28234 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28235 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28236 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28237 )
28238 THEN
28239 xla_ae_lines_pkg.BflowUpgEntry
28240 (p_business_method_code => l_bflow_method_code
28241 ,p_business_class_code => l_bflow_class_code
28242 ,p_balance_type => l_balance_type_code);
28243 ELSE
28244 NULL;
28245 -- No business flow processing for business flow method of NONE.
28246 END IF;
28247
28248 --
28249 -- call analytical criteria
28250 --
28251
28252 --
28253 -- call description
28254 --
28255 -- No description or it is inherited.
28256 --
28257 -- call ADRs
28258 -- Bug 4922099
28259 --
28260 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28261 (NVL(l_actual_upg_option, 'N') = 'O') OR
28262 (NVL(l_enc_upg_option, 'N') = 'O')
28263 )
28264 THEN
28265 NULL;
28266 --
28267 --
28268
28269 l_ccid := AcctDerRule_24(
28270 p_application_id => p_application_id
28271 , p_ae_header_id => l_ae_header_id
28272 , p_source_26 => p_source_26
28273 , x_transaction_coa_id => l_adr_transaction_coa_id
28274 , x_accounting_coa_id => l_adr_accounting_coa_id
28275 , x_value_type_code => l_adr_value_type_code
28276 , p_side => 'NA'
28277 );
28278
28279 xla_ae_lines_pkg.set_ccid(
28280 p_code_combination_id => l_ccid
28281 , p_value_type_code => l_adr_value_type_code
28282 , p_transaction_coa_id => l_adr_transaction_coa_id
28283 , p_accounting_coa_id => l_adr_accounting_coa_id
28284 , p_adr_code => 'TRX_DIST_CCID'
28285 , p_adr_type_code => 'S'
28286 , p_component_type => l_component_type
28287 , p_component_code => l_component_code
28288 , p_component_type_code => l_component_type_code
28289 , p_component_appl_id => l_component_appl_id
28290 , p_amb_context_code => l_amb_context_code
28291 , p_side => 'NA'
28292 );
28293
28294
28295 --
28296 --
28297 END IF;
28298 --
28299 -- Bug 4922099
28300 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28301 (NVL(l_enc_upg_option, 'N') = 'O')
28302 ) AND
28303 (l_bflow_method_code = 'PRIOR_ENTRY')
28304 )
28305 THEN
28306 IF
28307 --
28308 1 = 2
28309 --
28310 THEN
28311 xla_accounting_err_pkg.build_message
28312 (p_appli_s_name => 'XLA'
28313 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28314 ,p_token_1 => 'LINE_NUMBER'
28315 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28316 ,p_token_2 => 'LINE_TYPE_NAME'
28317 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28318 l_component_type
28319 ,l_component_code
28320 ,l_component_type_code
28321 ,l_component_appl_id
28325 )
28322 ,l_amb_context_code
28323 ,l_entity_code
28324 ,l_event_class_code
28326 ,p_token_3 => 'OWNER'
28327 ,p_value_3 => xla_lookups_pkg.get_meaning(
28328 p_lookup_type => 'XLA_OWNER_TYPE'
28329 ,p_lookup_code => l_component_type_code
28330 )
28331 ,p_token_4 => 'PRODUCT_NAME'
28332 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28333 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28334 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28335 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28336 ,p_ae_header_id => NULL
28337 );
28338
28339 IF (C_LEVEL_ERROR>= g_log_level) THEN
28340 trace
28341 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28342 ,p_level => C_LEVEL_ERROR
28343 ,p_module => l_log_module);
28344 END IF;
28345 END IF;
28346 END IF;
28347 --
28348 --
28349 ------------------------------------------------------------------------------------------------
28350 -- 4219869 Business Flow
28351 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28352 -- Prior Entry. Currently, the following code is always generated.
28353 ------------------------------------------------------------------------------------------------
28354 XLA_AE_LINES_PKG.ValidateCurrentLine;
28355
28356 ------------------------------------------------------------------------------------
28357 -- 4219869 Business Flow
28358 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28359 ------------------------------------------------------------------------------------
28360 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28361
28362 ----------------------------------------------------------------------------------
28363 -- 4219869 Business Flow
28364 -- Update journal entry status -- Need to generate this within IF <condition>
28365 ----------------------------------------------------------------------------------
28366 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28367 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28368 ,p_balance_type_code => l_balance_type_code
28369 );
28370
28371 -------------------------------------------------------------------------------------------
28372 -- 4262811 - Generate the Accrual Reversal lines
28373 -------------------------------------------------------------------------------------------
28374 BEGIN
28375 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28376 (g_array_event(p_event_id).array_value_num('header_index'));
28377 IF l_acc_rev_flag IS NULL THEN
28378 l_acc_rev_flag := 'N';
28379 END IF;
28380 EXCEPTION
28381 WHEN OTHERS THEN
28382 l_acc_rev_flag := 'N';
28383 END;
28384 --
28385 IF (l_acc_rev_flag = 'Y') THEN
28386
28387 -- 4645092 ------------------------------------------------------------------------------
28388 -- To allow MPA report to determine if it should generate report process
28389 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28390 ------------------------------------------------------------------------------------------
28391
28392 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28393 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28394 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28395 -- call ADRs
28396 -- Bug 4922099
28397 --
28398 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28399 (NVL(l_actual_upg_option, 'N') = 'O') OR
28400 (NVL(l_enc_upg_option, 'N') = 'O')
28401 )
28402 THEN
28403 NULL;
28404 --
28405 --
28406
28407 l_ccid := AcctDerRule_24(
28408 p_application_id => p_application_id
28409 , p_ae_header_id => l_ae_header_id
28410 , p_source_26 => p_source_26
28411 , x_transaction_coa_id => l_adr_transaction_coa_id
28412 , x_accounting_coa_id => l_adr_accounting_coa_id
28413 , x_value_type_code => l_adr_value_type_code
28414 , p_side => 'NA'
28415 );
28416
28417 xla_ae_lines_pkg.set_ccid(
28418 p_code_combination_id => l_ccid
28419 , p_value_type_code => l_adr_value_type_code
28420 , p_transaction_coa_id => l_adr_transaction_coa_id
28421 , p_accounting_coa_id => l_adr_accounting_coa_id
28422 , p_adr_code => 'TRX_DIST_CCID'
28423 , p_adr_type_code => 'S'
28424 , p_component_type => l_component_type
28428 , p_amb_context_code => l_amb_context_code
28425 , p_component_code => l_component_code
28426 , p_component_type_code => l_component_type_code
28427 , p_component_appl_id => l_component_appl_id
28429 , p_side => 'NA'
28430 );
28431
28432
28433 --
28434 --
28435 END IF;
28436
28437 --
28438 -- Update the line information that should be overwritten
28439 --
28440 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28441 p_header_num => 1);
28442 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28443
28444 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28445
28446 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28447 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28448 END IF;
28449
28450 --
28451 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28452 --
28453 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28454 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28455 ELSE
28456 ---------------------------------------------------------------------------------------------------
28457 -- 4262811a Switch Sign
28458 ---------------------------------------------------------------------------------------------------
28459 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28461 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28462 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28463 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28464 -- 5132302
28465 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28466 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28467
28468 END IF;
28469
28470 -- 4955764
28471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28473
28474
28475 XLA_AE_LINES_PKG.ValidateCurrentLine;
28476 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28477
28478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28479 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28480 ,p_balance_type_code => l_balance_type_code);
28481
28482 END IF;
28483
28484 -----------------------------------------------------------------------------------------
28485 -- 4262811 Multiperiod Accounting
28486 -----------------------------------------------------------------------------------------
28487 -- No MPA option is assigned.
28488
28489
28490 END IF;
28491 END IF;
28492 --
28493
28494 --
28495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28496 trace
28497 (p_msg => 'END of AcctLineType_68'
28498 ,p_level => C_LEVEL_PROCEDURE
28499 ,p_module => l_log_module);
28500 END IF;
28501 --
28502 EXCEPTION
28503 WHEN xla_exceptions_pkg.application_exception THEN
28504 RAISE;
28505 WHEN OTHERS THEN
28506 xla_exceptions_pkg.raise_message
28507 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_68');
28508 END AcctLineType_68;
28509 --
28510
28511 ---------------------------------------
28512 --
28513 -- PRIVATE FUNCTION
28514 -- AcctLineType_69
28515 --
28516 ---------------------------------------
28517 PROCEDURE AcctLineType_69 (
28518 p_application_id IN NUMBER
28519 ,p_event_id IN NUMBER
28520 ,p_calculate_acctd_flag IN VARCHAR2
28521 ,p_calculate_g_l_flag IN VARCHAR2
28522 ,p_actual_flag IN OUT VARCHAR2
28523 ,p_balance_type_code OUT VARCHAR2
28524 ,p_gain_or_loss_ref OUT VARCHAR2
28525
28526 --Transaction Distribution GL Account
28527 , p_source_26 IN NUMBER
28528 --Bill To Customer Account Identifier
28529 , p_source_37 IN NUMBER
28530 --Bill To Customer Site Use Identifier
28531 , p_source_38 IN NUMBER
28532 --SLA Party Type
28533 , p_source_39 IN VARCHAR2
28534 --Transaction Distribution Account Class
28535 , p_source_43 IN VARCHAR2
28536 --Transaction Distribution Identifier
28537 , p_source_44 IN NUMBER
28538 --Transaction Distribution Type
28539 , p_source_45 IN VARCHAR2
28540 --Transaction Distribution Entered Amount
28541 , p_source_46 IN NUMBER
28542 --Transaction Currency Code
28543 , p_source_47 IN VARCHAR2
28544 --Transaction Exchange Date
28545 , p_source_48 IN DATE
28546 --Transaction Exchange Rate
28547 , p_source_49 IN NUMBER
28548 --Transaction Exchange Rate Type
28549 , p_source_50 IN VARCHAR2
28550 --Transaction Accounting Amount
28554 --Transaction Tax Line Identifier
28551 , p_source_51 IN NUMBER
28552 --Transaction Line Flexfield Attribute 1
28553 , p_source_65 IN VARCHAR2
28555 , p_source_86 IN NUMBER
28556 )
28557 IS
28558
28559 l_component_type VARCHAR2(80);
28560 l_component_code VARCHAR2(30);
28561 l_component_type_code VARCHAR2(1);
28562 l_component_appl_id INTEGER;
28563 l_amb_context_code VARCHAR2(30);
28564 l_entity_code VARCHAR2(30);
28565 l_event_class_code VARCHAR2(30);
28566 l_ae_header_id NUMBER;
28567 l_event_type_code VARCHAR2(30);
28568 l_line_definition_code VARCHAR2(30);
28569 l_line_definition_owner_code VARCHAR2(1);
28570 --
28571 -- adr variables
28572 l_segment VARCHAR2(30);
28573 l_ccid NUMBER;
28574 l_adr_transaction_coa_id NUMBER;
28575 l_adr_accounting_coa_id NUMBER;
28576 l_adr_flexfield_segment_code VARCHAR2(30);
28577 l_adr_flex_value_set_id NUMBER;
28578 l_adr_value_type_code VARCHAR2(30);
28579 l_adr_value_combination_id NUMBER;
28580 l_adr_value_segment_code VARCHAR2(30);
28581
28582 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28583 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28584 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28585 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28586
28587 -- 4262811 Variables ------------------------------------------------------------------------------------------
28588 l_entered_amt_idx NUMBER;
28589 l_accted_amt_idx NUMBER;
28590 l_acc_rev_flag VARCHAR2(1);
28591 l_accrual_line_num NUMBER;
28592 l_tmp_amt NUMBER;
28593 l_acc_rev_natural_side_code VARCHAR2(1);
28594
28595 l_num_entries NUMBER;
28596 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28597 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28598 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28599 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28600 l_recog_line_1 NUMBER;
28601 l_recog_line_2 NUMBER;
28602
28603 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28604 l_bflow_applied_to_amt NUMBER; -- 5132302
28605 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28606
28607 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28608
28609 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28610 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28611
28612 ---------------------------------------------------------------------------------------------------------------
28613
28614
28615 --
28616 -- bulk performance
28617 --
28618 l_balance_type_code VARCHAR2(1);
28619 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28620 l_log_module VARCHAR2(240);
28621
28622 --
28623 -- Upgrade strategy
28624 --
28625 l_actual_upg_option VARCHAR2(1);
28626 l_enc_upg_option VARCHAR2(1);
28627
28628 --
28629 BEGIN
28630 --
28631 IF g_log_enabled THEN
28632 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
28633 END IF;
28634 --
28635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28636
28637 trace
28638 (p_msg => 'BEGIN of AcctLineType_69'
28639 ,p_level => C_LEVEL_PROCEDURE
28640 ,p_module => l_log_module);
28641
28642 END IF;
28643 --
28644 l_component_type := 'AMB_JLT';
28645 l_component_code := 'DM_UNEARN';
28646 l_component_type_code := 'S';
28647 l_component_appl_id := 222;
28648 l_amb_context_code := 'DEFAULT';
28649 l_entity_code := 'TRANSACTIONS';
28650 l_event_class_code := 'DEBIT_MEMO';
28651 l_event_type_code := 'DEBIT_MEMO_ALL';
28652 l_line_definition_owner_code := 'S';
28653 l_line_definition_code := 'JA_CN_AR_DM_DEFAULT_ACCRUAL';
28654 --
28655 l_balance_type_code := 'A';
28656 l_segment := NULL;
28657 l_ccid := NULL;
28658 l_adr_transaction_coa_id := NULL;
28659 l_adr_accounting_coa_id := NULL;
28660 l_adr_flexfield_segment_code := NULL;
28661 l_adr_flex_value_set_id := NULL;
28662 l_adr_value_type_code := NULL;
28663 l_adr_value_combination_id := NULL;
28664 l_adr_value_segment_code := NULL;
28665
28666 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28667 l_bflow_class_code := ''; -- 4219869 Business Flow
28668 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28669 l_budgetary_control_flag := 'N';
28670
28671 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28672 l_bflow_applied_to_amt := NULL; -- 5132302
28673 l_entered_amt_idx := NULL; -- 4262811
28674 l_accted_amt_idx := NULL; -- 4262811
28675 l_acc_rev_flag := NULL; -- 4262811
28676 l_accrual_line_num := NULL; -- 4262811
28677 l_tmp_amt := NULL; -- 4262811
28678 --
28679
28680 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28681 l_balance_type_code <> 'B' THEN
28682 IF NVL(p_source_43,'
28683 ') = 'UNEARN'
28684 THEN
28685
28689 p_balance_type_code := l_balance_type_code;
28686 --
28687 XLA_AE_LINES_PKG.SetNewLine;
28688
28690 -- set the flag so later we will know whether the gain loss line needs to be created
28691
28692 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28693 p_actual_flag :='A';
28694 END IF;
28695
28696 --
28697 -- bulk performance
28698 --
28699 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28700 p_header_num => 0); -- 4262811
28701 --
28702 -- set accounting line options
28703 --
28704 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28705 p_natural_side_code => 'C'
28706 , p_gain_or_loss_flag => 'N'
28707 , p_gl_transfer_mode_code => 'S'
28708 , p_acct_entry_type_code => 'A'
28709 , p_switch_side_flag => 'Y'
28710 , p_merge_duplicate_code => 'A'
28711 );
28712 --
28713 l_acc_rev_natural_side_code := 'D'; -- 4262811
28714 --
28715 --
28716 -- set accounting line type info
28717 --
28718 xla_ae_lines_pkg.SetAcctLineType
28719 (p_component_type => l_component_type
28720 ,p_event_type_code => l_event_type_code
28721 ,p_line_definition_owner_code => l_line_definition_owner_code
28722 ,p_line_definition_code => l_line_definition_code
28723 ,p_accounting_line_code => l_component_code
28724 ,p_accounting_line_type_code => l_component_type_code
28725 ,p_accounting_line_appl_id => l_component_appl_id
28726 ,p_amb_context_code => l_amb_context_code
28727 ,p_entity_code => l_entity_code
28728 ,p_event_class_code => l_event_class_code);
28729 --
28730 -- set accounting class
28731 --
28732 xla_ae_lines_pkg.SetAcctClass(
28733 p_accounting_class_code => 'UNEARNED_REVENUE'
28734 , p_ae_header_id => l_ae_header_id
28735 );
28736
28737 --
28738 -- set rounding class
28739 --
28740 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28741 'RECEIVABLE';
28742
28743 --
28744 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28745 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28746 --
28747 -- bulk performance
28748 --
28749 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28750
28751 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28752 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28753
28754 -- 4955764
28755 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28756 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28757
28758 -- 4458381 Public Sector Enh
28759
28760 --
28761 -- set accounting attributes for the line type
28762 --
28763 l_entered_amt_idx := 3;
28764 l_accted_amt_idx := 8;
28765 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28766 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
28767 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
28768 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
28769 l_rec_acct_attrs.array_char_value(2) := p_source_45;
28770 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
28771 l_rec_acct_attrs.array_num_value(3) := p_source_46;
28772 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
28773 l_rec_acct_attrs.array_char_value(4) := p_source_47;
28774 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
28775 l_rec_acct_attrs.array_date_value(5) := p_source_48;
28776 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
28777 l_rec_acct_attrs.array_num_value(6) := p_source_49;
28778 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
28779 l_rec_acct_attrs.array_char_value(7) := p_source_50;
28780 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
28781 l_rec_acct_attrs.array_num_value(8) := p_source_51;
28782 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
28783 l_rec_acct_attrs.array_num_value(9) := p_source_37;
28784 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
28785 l_rec_acct_attrs.array_num_value(10) := p_source_38;
28786 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
28787 l_rec_acct_attrs.array_char_value(11) := p_source_39;
28788 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
28789 l_rec_acct_attrs.array_num_value(12) := p_source_86;
28790
28791 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28792 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28793
28794 ---------------------------------------------------------------------------------------------------------------
28795 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28796 ---------------------------------------------------------------------------------------------------------------
28797 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28798
28799 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28800 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28801
28805 AND l_bflow_method_code = 'PRIOR_ENTRY'
28802 IF xla_accounting_cache_pkg.GetValueChar
28803 (p_source_code => 'LEDGER_CATEGORY_CODE'
28804 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28806 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28807 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28808 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28809 )
28810 THEN
28811 xla_ae_lines_pkg.BflowUpgEntry
28812 (p_business_method_code => l_bflow_method_code
28813 ,p_business_class_code => l_bflow_class_code
28814 ,p_balance_type => l_balance_type_code);
28815 ELSE
28816 NULL;
28817 -- No business flow processing for business flow method of NONE.
28818 END IF;
28819
28820 --
28821 -- call analytical criteria
28822 --
28823
28824
28825 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
28826 xla_ae_lines_pkg.SetAnalyticalCriteria(
28827 p_analytical_criterion_name => 'Project Number'
28828 , p_analytical_criterion_owner => 'S'
28829 , p_analytical_criterion_code => 'PROJECT_NUMBER'
28830 , p_amb_context_code => 'DEFAULT'
28831 , p_balancing_flag => 'N'
28832
28833 , p_analytical_detail_char_1 => TO_CHAR(p_source_65)
28834 , p_analytical_detail_num_1 => NULL
28835 , p_analytical_detail_date_1 => NULL
28836
28837 , p_ae_header_id => l_ae_header_id
28838 )
28839 ;
28840 --
28841
28842 --
28843 -- call description
28844 --
28845 -- No description or it is inherited.
28846 --
28847 -- call ADRs
28848 -- Bug 4922099
28849 --
28850 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28851 (NVL(l_actual_upg_option, 'N') = 'O') OR
28852 (NVL(l_enc_upg_option, 'N') = 'O')
28853 )
28854 THEN
28855 NULL;
28856 --
28857 --
28858
28859 l_ccid := AcctDerRule_24(
28860 p_application_id => p_application_id
28861 , p_ae_header_id => l_ae_header_id
28862 , p_source_26 => p_source_26
28863 , x_transaction_coa_id => l_adr_transaction_coa_id
28864 , x_accounting_coa_id => l_adr_accounting_coa_id
28865 , x_value_type_code => l_adr_value_type_code
28866 , p_side => 'NA'
28867 );
28868
28869 xla_ae_lines_pkg.set_ccid(
28870 p_code_combination_id => l_ccid
28871 , p_value_type_code => l_adr_value_type_code
28872 , p_transaction_coa_id => l_adr_transaction_coa_id
28873 , p_accounting_coa_id => l_adr_accounting_coa_id
28874 , p_adr_code => 'TRX_DIST_CCID'
28875 , p_adr_type_code => 'S'
28876 , p_component_type => l_component_type
28877 , p_component_code => l_component_code
28878 , p_component_type_code => l_component_type_code
28879 , p_component_appl_id => l_component_appl_id
28880 , p_amb_context_code => l_amb_context_code
28881 , p_side => 'NA'
28882 );
28883
28884
28885 --
28886 --
28887 END IF;
28888 --
28889 -- Bug 4922099
28890 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28891 (NVL(l_enc_upg_option, 'N') = 'O')
28892 ) AND
28893 (l_bflow_method_code = 'PRIOR_ENTRY')
28894 )
28895 THEN
28896 IF
28897 --
28898 1 = 2
28899 --
28900 THEN
28901 xla_accounting_err_pkg.build_message
28902 (p_appli_s_name => 'XLA'
28903 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28904 ,p_token_1 => 'LINE_NUMBER'
28905 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28906 ,p_token_2 => 'LINE_TYPE_NAME'
28907 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28908 l_component_type
28909 ,l_component_code
28910 ,l_component_type_code
28911 ,l_component_appl_id
28912 ,l_amb_context_code
28913 ,l_entity_code
28914 ,l_event_class_code
28915 )
28916 ,p_token_3 => 'OWNER'
28917 ,p_value_3 => xla_lookups_pkg.get_meaning(
28918 p_lookup_type => 'XLA_OWNER_TYPE'
28919 ,p_lookup_code => l_component_type_code
28920 )
28921 ,p_token_4 => 'PRODUCT_NAME'
28922 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28923 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28927 );
28924 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28925 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28926 ,p_ae_header_id => NULL
28928
28929 IF (C_LEVEL_ERROR>= g_log_level) THEN
28930 trace
28931 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28932 ,p_level => C_LEVEL_ERROR
28933 ,p_module => l_log_module);
28934 END IF;
28935 END IF;
28936 END IF;
28937 --
28938 --
28939 ------------------------------------------------------------------------------------------------
28940 -- 4219869 Business Flow
28941 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28942 -- Prior Entry. Currently, the following code is always generated.
28943 ------------------------------------------------------------------------------------------------
28944 XLA_AE_LINES_PKG.ValidateCurrentLine;
28945
28946 ------------------------------------------------------------------------------------
28947 -- 4219869 Business Flow
28948 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28949 ------------------------------------------------------------------------------------
28950 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28951
28952 ----------------------------------------------------------------------------------
28953 -- 4219869 Business Flow
28954 -- Update journal entry status -- Need to generate this within IF <condition>
28955 ----------------------------------------------------------------------------------
28956 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28957 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28958 ,p_balance_type_code => l_balance_type_code
28959 );
28960
28961 -------------------------------------------------------------------------------------------
28962 -- 4262811 - Generate the Accrual Reversal lines
28963 -------------------------------------------------------------------------------------------
28964 BEGIN
28965 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28966 (g_array_event(p_event_id).array_value_num('header_index'));
28967 IF l_acc_rev_flag IS NULL THEN
28968 l_acc_rev_flag := 'N';
28969 END IF;
28970 EXCEPTION
28971 WHEN OTHERS THEN
28972 l_acc_rev_flag := 'N';
28973 END;
28974 --
28975 IF (l_acc_rev_flag = 'Y') THEN
28976
28977 -- 4645092 ------------------------------------------------------------------------------
28978 -- To allow MPA report to determine if it should generate report process
28979 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28980 ------------------------------------------------------------------------------------------
28981
28982 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28983 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28984 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28985 -- call ADRs
28986 -- Bug 4922099
28987 --
28988 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28989 (NVL(l_actual_upg_option, 'N') = 'O') OR
28990 (NVL(l_enc_upg_option, 'N') = 'O')
28991 )
28992 THEN
28993 NULL;
28994 --
28995 --
28996
28997 l_ccid := AcctDerRule_24(
28998 p_application_id => p_application_id
28999 , p_ae_header_id => l_ae_header_id
29000 , p_source_26 => p_source_26
29001 , x_transaction_coa_id => l_adr_transaction_coa_id
29002 , x_accounting_coa_id => l_adr_accounting_coa_id
29003 , x_value_type_code => l_adr_value_type_code
29004 , p_side => 'NA'
29005 );
29006
29007 xla_ae_lines_pkg.set_ccid(
29008 p_code_combination_id => l_ccid
29009 , p_value_type_code => l_adr_value_type_code
29010 , p_transaction_coa_id => l_adr_transaction_coa_id
29011 , p_accounting_coa_id => l_adr_accounting_coa_id
29012 , p_adr_code => 'TRX_DIST_CCID'
29013 , p_adr_type_code => 'S'
29014 , p_component_type => l_component_type
29015 , p_component_code => l_component_code
29016 , p_component_type_code => l_component_type_code
29017 , p_component_appl_id => l_component_appl_id
29018 , p_amb_context_code => l_amb_context_code
29019 , p_side => 'NA'
29020 );
29021
29022
29023 --
29024 --
29025 END IF;
29026
29027 --
29028 -- Update the line information that should be overwritten
29029 --
29030 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29031 p_header_num => 1);
29032 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29033
29034 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29035
29036 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29037 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29038 END IF;
29039
29040 --
29041 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29042 --
29046 ---------------------------------------------------------------------------------------------------
29043 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29044 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29045 ELSE
29047 -- 4262811a Switch Sign
29048 ---------------------------------------------------------------------------------------------------
29049 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29050 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29051 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29052 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29053 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29054 -- 5132302
29055 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29056 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29057
29058 END IF;
29059
29060 -- 4955764
29061 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29062 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29063
29064
29065 XLA_AE_LINES_PKG.ValidateCurrentLine;
29066 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29067
29068 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29069 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29070 ,p_balance_type_code => l_balance_type_code);
29071
29072 END IF;
29073
29074 -----------------------------------------------------------------------------------------
29075 -- 4262811 Multiperiod Accounting
29076 -----------------------------------------------------------------------------------------
29077 -- No MPA option is assigned.
29078
29079
29080 END IF;
29081 END IF;
29082 --
29083
29084 --
29085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29086 trace
29087 (p_msg => 'END of AcctLineType_69'
29088 ,p_level => C_LEVEL_PROCEDURE
29089 ,p_module => l_log_module);
29090 END IF;
29091 --
29092 EXCEPTION
29093 WHEN xla_exceptions_pkg.application_exception THEN
29094 RAISE;
29095 WHEN OTHERS THEN
29096 xla_exceptions_pkg.raise_message
29097 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_69');
29098 END AcctLineType_69;
29099 --
29100
29101 ---------------------------------------
29102 --
29103 -- PRIVATE FUNCTION
29104 -- AcctLineType_70
29105 --
29106 ---------------------------------------
29107 PROCEDURE AcctLineType_70 (
29108 p_application_id IN NUMBER
29109 ,p_event_id IN NUMBER
29110 ,p_calculate_acctd_flag IN VARCHAR2
29111 ,p_calculate_g_l_flag IN VARCHAR2
29112 ,p_actual_flag IN OUT VARCHAR2
29113 ,p_balance_type_code OUT VARCHAR2
29114 ,p_gain_or_loss_ref OUT VARCHAR2
29115
29116 --Collection Document Bank Occurrence
29117 , p_source_4 IN VARCHAR2
29118 --Collection Document Number
29119 , p_source_5 IN NUMBER
29120 --Collection Document Trade Note Number
29121 , p_source_6 IN VARCHAR2
29122 --Bordero Type
29123 , p_source_7 IN VARCHAR2
29124 , p_source_7_meaning IN VARCHAR2
29125 --Collection Document Bank Charges Account
29126 , p_source_15 IN NUMBER
29127 --Bill To Customer Account Identifier
29128 , p_source_37 IN NUMBER
29129 --Bill To Customer Site Use Identifier
29130 , p_source_38 IN NUMBER
29131 --SLA Party Type
29132 , p_source_39 IN VARCHAR2
29133 --Collection Document Distribution Line Type
29134 , p_source_66 IN VARCHAR2
29135 , p_source_66_meaning IN VARCHAR2
29136 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
29137 , p_source_67 IN VARCHAR2
29138 , p_source_67_meaning IN VARCHAR2
29139 --Applied To Distribution Link Type
29140 , p_source_69 IN VARCHAR2
29141 --Applied To Distribution Identifier
29142 , p_source_71 IN NUMBER
29143 --Applied To Distribution Document Identifier
29144 , p_source_72 IN NUMBER
29145 --Applied To Distribution Occurrence Identifier
29146 , p_source_73 IN NUMBER
29147 --Collection Document Distribution Identifier
29148 , p_source_74 IN NUMBER
29149 --Collection Document Distribution Link Type
29150 , p_source_75 IN VARCHAR2
29151 --Collection Document Distribution Entered Amount
29152 , p_source_76 IN NUMBER
29153 --Collection Document Distribution Entered Currency Code
29154 , p_source_77 IN VARCHAR2
29155 --Collection Document Distribution Conversion Date
29156 , p_source_78 IN DATE
29157 --Collection Document Distribution Conversion Rate
29158 , p_source_79 IN NUMBER
29159 --Collection Document Distribution Conversion Rate Type
29160 , p_source_80 IN VARCHAR2
29161 --Collection Document Distribution Accounted Amount
29162 , p_source_81 IN NUMBER
29163 --Collection Document Occurrence Identifier
29164 , p_source_82 IN NUMBER
29165 --Reversed Collection Document Distribution Identifier
29166 , p_source_83 IN NUMBER
29167 --Reversed Collection Document Distribution Link Type
29171
29168 , p_source_84 IN VARCHAR2
29169 )
29170 IS
29172 l_component_type VARCHAR2(80);
29173 l_component_code VARCHAR2(30);
29174 l_component_type_code VARCHAR2(1);
29175 l_component_appl_id INTEGER;
29176 l_amb_context_code VARCHAR2(30);
29177 l_entity_code VARCHAR2(30);
29178 l_event_class_code VARCHAR2(30);
29179 l_ae_header_id NUMBER;
29180 l_event_type_code VARCHAR2(30);
29181 l_line_definition_code VARCHAR2(30);
29182 l_line_definition_owner_code VARCHAR2(1);
29183 --
29184 -- adr variables
29185 l_segment VARCHAR2(30);
29186 l_ccid NUMBER;
29187 l_adr_transaction_coa_id NUMBER;
29188 l_adr_accounting_coa_id NUMBER;
29189 l_adr_flexfield_segment_code VARCHAR2(30);
29190 l_adr_flex_value_set_id NUMBER;
29191 l_adr_value_type_code VARCHAR2(30);
29192 l_adr_value_combination_id NUMBER;
29193 l_adr_value_segment_code VARCHAR2(30);
29194
29195 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29196 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29197 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29198 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29199
29200 -- 4262811 Variables ------------------------------------------------------------------------------------------
29201 l_entered_amt_idx NUMBER;
29202 l_accted_amt_idx NUMBER;
29203 l_acc_rev_flag VARCHAR2(1);
29204 l_accrual_line_num NUMBER;
29205 l_tmp_amt NUMBER;
29206 l_acc_rev_natural_side_code VARCHAR2(1);
29207
29208 l_num_entries NUMBER;
29209 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29210 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29211 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29212 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29213 l_recog_line_1 NUMBER;
29214 l_recog_line_2 NUMBER;
29215
29216 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29217 l_bflow_applied_to_amt NUMBER; -- 5132302
29218 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29219
29220 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29221
29222 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29223 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29224
29225 ---------------------------------------------------------------------------------------------------------------
29226
29227
29228 --
29229 -- bulk performance
29230 --
29231 l_balance_type_code VARCHAR2(1);
29232 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29233 l_log_module VARCHAR2(240);
29234
29235 --
29236 -- Upgrade strategy
29237 --
29238 l_actual_upg_option VARCHAR2(1);
29239 l_enc_upg_option VARCHAR2(1);
29240
29241 --
29242 BEGIN
29243 --
29244 IF g_log_enabled THEN
29245 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
29246 END IF;
29247 --
29248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29249
29250 trace
29251 (p_msg => 'BEGIN of AcctLineType_70'
29252 ,p_level => C_LEVEL_PROCEDURE
29253 ,p_module => l_log_module);
29254
29255 END IF;
29256 --
29257 l_component_type := 'AMB_JLT';
29258 l_component_code := 'FACT_DOC_BANK_CHARGES';
29259 l_component_type_code := 'S';
29260 l_component_appl_id := 222;
29261 l_amb_context_code := 'DEFAULT';
29262 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
29263 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
29264 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
29265 l_line_definition_owner_code := 'S';
29266 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
29267 --
29268 l_balance_type_code := 'A';
29269 l_segment := NULL;
29270 l_ccid := NULL;
29271 l_adr_transaction_coa_id := NULL;
29272 l_adr_accounting_coa_id := NULL;
29273 l_adr_flexfield_segment_code := NULL;
29274 l_adr_flex_value_set_id := NULL;
29275 l_adr_value_type_code := NULL;
29276 l_adr_value_combination_id := NULL;
29277 l_adr_value_segment_code := NULL;
29278
29279 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29280 l_bflow_class_code := ''; -- 4219869 Business Flow
29281 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29282 l_budgetary_control_flag := 'N';
29283
29284 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29285 l_bflow_applied_to_amt := NULL; -- 5132302
29286 l_entered_amt_idx := NULL; -- 4262811
29287 l_accted_amt_idx := NULL; -- 4262811
29288 l_acc_rev_flag := NULL; -- 4262811
29289 l_accrual_line_num := NULL; -- 4262811
29290 l_tmp_amt := NULL; -- 4262811
29291 --
29292
29293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29294 l_balance_type_code <> 'B' THEN
29295 IF NVL(p_source_66,'
29296 ') = 'JLBR_AR_BANK_CHARGES' AND
29297 NVL(p_source_7,'
29301 --
29298 ') = 'FACTORING'
29299 THEN
29300
29302 XLA_AE_LINES_PKG.SetNewLine;
29303
29304 p_balance_type_code := l_balance_type_code;
29305 -- set the flag so later we will know whether the gain loss line needs to be created
29306
29307 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29308 p_actual_flag :='A';
29309 END IF;
29310
29311 --
29312 -- bulk performance
29313 --
29314 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29315 p_header_num => 0); -- 4262811
29316 --
29317 -- set accounting line options
29318 --
29319 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29320 p_natural_side_code => 'D'
29321 , p_gain_or_loss_flag => 'N'
29322 , p_gl_transfer_mode_code => 'S'
29323 , p_acct_entry_type_code => 'A'
29324 , p_switch_side_flag => 'Y'
29325 , p_merge_duplicate_code => 'W'
29326 );
29327 --
29328 l_acc_rev_natural_side_code := 'C'; -- 4262811
29329 --
29330 --
29331 -- set accounting line type info
29332 --
29333 xla_ae_lines_pkg.SetAcctLineType
29334 (p_component_type => l_component_type
29335 ,p_event_type_code => l_event_type_code
29336 ,p_line_definition_owner_code => l_line_definition_owner_code
29337 ,p_line_definition_code => l_line_definition_code
29338 ,p_accounting_line_code => l_component_code
29339 ,p_accounting_line_type_code => l_component_type_code
29340 ,p_accounting_line_appl_id => l_component_appl_id
29341 ,p_amb_context_code => l_amb_context_code
29342 ,p_entity_code => l_entity_code
29343 ,p_event_class_code => l_event_class_code);
29344 --
29345 -- set accounting class
29346 --
29347 xla_ae_lines_pkg.SetAcctClass(
29348 p_accounting_class_code => 'BANK_CHG'
29349 , p_ae_header_id => l_ae_header_id
29350 );
29351
29352 --
29353 -- set rounding class
29354 --
29355 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29356 'BANK_CHG';
29357
29358 --
29359 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29360 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29361 --
29362 -- bulk performance
29363 --
29364 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29365
29366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29367 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29368
29369 -- 4955764
29370 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29371 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29372
29373 -- 4458381 Public Sector Enh
29374
29375 --
29376 -- set accounting attributes for the line type
29377 --
29378 l_entered_amt_idx := 10;
29379 l_accted_amt_idx := 15;
29380 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29381 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29382 l_rec_acct_attrs.array_char_value(1) := p_source_67;
29383 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29384 l_rec_acct_attrs.array_num_value(2) :=
29385 xla_ae_sources_pkg.GetSystemSourceNum(
29386 p_source_code => 'XLA_EVENT_APPL_ID'
29387 , p_source_type_code => 'Y'
29388 , p_source_application_id => 602
29389 );
29390 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29391 l_rec_acct_attrs.array_char_value(3) := p_source_69;
29392 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29393 l_rec_acct_attrs.array_char_value(4) :=
29394 xla_ae_sources_pkg.GetSystemSourceChar(
29395 p_source_code => 'XLA_ENTITY_CODE'
29396 , p_source_type_code => 'Y'
29397 , p_source_application_id => 602
29398 );
29399 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29400 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
29401 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29402 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
29403 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
29404 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
29405 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29406 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
29407 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29408 l_rec_acct_attrs.array_char_value(9) := p_source_75;
29409 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29410 l_rec_acct_attrs.array_num_value(10) := p_source_76;
29411 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29412 l_rec_acct_attrs.array_char_value(11) := p_source_77;
29413 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29414 l_rec_acct_attrs.array_date_value(12) := p_source_78;
29415 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29416 l_rec_acct_attrs.array_num_value(13) := p_source_79;
29420 l_rec_acct_attrs.array_num_value(15) := p_source_81;
29417 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29418 l_rec_acct_attrs.array_char_value(14) := p_source_80;
29419 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29421 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29422 l_rec_acct_attrs.array_num_value(16) := p_source_37;
29423 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29424 l_rec_acct_attrs.array_num_value(17) := p_source_38;
29425 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29426 l_rec_acct_attrs.array_char_value(18) := p_source_39;
29427 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
29428 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
29429 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29433 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
29430 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
29431 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29432 l_rec_acct_attrs.array_char_value(21) := p_source_84;
29434 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
29435
29436 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29437 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29438
29439 ---------------------------------------------------------------------------------------------------------------
29440 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29441 ---------------------------------------------------------------------------------------------------------------
29442 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29443
29444 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29445 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29446
29447 IF xla_accounting_cache_pkg.GetValueChar
29448 (p_source_code => 'LEDGER_CATEGORY_CODE'
29449 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29450 AND l_bflow_method_code = 'PRIOR_ENTRY'
29451 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29452 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29453 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29454 )
29455 THEN
29456 xla_ae_lines_pkg.BflowUpgEntry
29457 (p_business_method_code => l_bflow_method_code
29458 ,p_business_class_code => l_bflow_class_code
29459 ,p_balance_type => l_balance_type_code);
29460 ELSE
29461 NULL;
29462 -- No business flow processing for business flow method of NONE.
29463 END IF;
29464
29465 --
29466 -- call analytical criteria
29467 --
29468
29469 --
29470 -- call description
29471 --
29472
29473 xla_ae_lines_pkg.SetLineDescription(
29474 p_ae_header_id => l_ae_header_id
29475 ,p_description => Description_2 (
29476 p_application_id => p_application_id
29477 , p_ae_header_id => l_ae_header_id
29478 , p_source_4 => p_source_4
29479 , p_source_5 => p_source_5
29480 , p_source_6 => p_source_6
29481 , p_source_7 => p_source_7
29482 , p_source_7_meaning => p_source_7_meaning
29483 )
29484 );
29485
29486
29487 --
29488 -- call ADRs
29489 -- Bug 4922099
29490 --
29491 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29492 (NVL(l_actual_upg_option, 'N') = 'O') OR
29493 (NVL(l_enc_upg_option, 'N') = 'O')
29494 )
29495 THEN
29496 NULL;
29497 --
29498 --
29499
29500 l_ccid := AcctDerRule_13(
29501 p_application_id => p_application_id
29502 , p_ae_header_id => l_ae_header_id
29503 , p_source_15 => p_source_15
29504 , x_transaction_coa_id => l_adr_transaction_coa_id
29505 , x_accounting_coa_id => l_adr_accounting_coa_id
29506 , x_value_type_code => l_adr_value_type_code
29507 , p_side => 'NA'
29508 );
29509
29510 xla_ae_lines_pkg.set_ccid(
29511 p_code_combination_id => l_ccid
29512 , p_value_type_code => l_adr_value_type_code
29513 , p_transaction_coa_id => l_adr_transaction_coa_id
29514 , p_accounting_coa_id => l_adr_accounting_coa_id
29515 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
29516 , p_adr_type_code => 'S'
29517 , p_component_type => l_component_type
29521 , p_amb_context_code => l_amb_context_code
29518 , p_component_code => l_component_code
29519 , p_component_type_code => l_component_type_code
29520 , p_component_appl_id => l_component_appl_id
29522 , p_side => 'NA'
29523 );
29524
29525
29526 --
29527 --
29528 END IF;
29529 --
29530 -- Bug 4922099
29531 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29532 (NVL(l_enc_upg_option, 'N') = 'O')
29533 ) AND
29534 (l_bflow_method_code = 'PRIOR_ENTRY')
29535 )
29536 THEN
29537 IF
29538 --
29539 1 = 2
29540 --
29541 THEN
29542 xla_accounting_err_pkg.build_message
29543 (p_appli_s_name => 'XLA'
29544 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29545 ,p_token_1 => 'LINE_NUMBER'
29546 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29547 ,p_token_2 => 'LINE_TYPE_NAME'
29548 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29549 l_component_type
29550 ,l_component_code
29551 ,l_component_type_code
29552 ,l_component_appl_id
29553 ,l_amb_context_code
29554 ,l_entity_code
29555 ,l_event_class_code
29556 )
29557 ,p_token_3 => 'OWNER'
29558 ,p_value_3 => xla_lookups_pkg.get_meaning(
29559 p_lookup_type => 'XLA_OWNER_TYPE'
29560 ,p_lookup_code => l_component_type_code
29561 )
29562 ,p_token_4 => 'PRODUCT_NAME'
29563 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29564 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29568 );
29565 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29566 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29567 ,p_ae_header_id => NULL
29569
29570 IF (C_LEVEL_ERROR>= g_log_level) THEN
29571 trace
29572 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29573 ,p_level => C_LEVEL_ERROR
29574 ,p_module => l_log_module);
29575 END IF;
29576 END IF;
29577 END IF;
29578 --
29579 --
29580 ------------------------------------------------------------------------------------------------
29581 -- 4219869 Business Flow
29582 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29583 -- Prior Entry. Currently, the following code is always generated.
29584 ------------------------------------------------------------------------------------------------
29585 XLA_AE_LINES_PKG.ValidateCurrentLine;
29586
29587 ------------------------------------------------------------------------------------
29588 -- 4219869 Business Flow
29589 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29590 ------------------------------------------------------------------------------------
29591 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29592
29593 ----------------------------------------------------------------------------------
29594 -- 4219869 Business Flow
29595 -- Update journal entry status -- Need to generate this within IF <condition>
29596 ----------------------------------------------------------------------------------
29597 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29598 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29599 ,p_balance_type_code => l_balance_type_code
29600 );
29601
29605 BEGIN
29602 -------------------------------------------------------------------------------------------
29603 -- 4262811 - Generate the Accrual Reversal lines
29604 -------------------------------------------------------------------------------------------
29606 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29607 (g_array_event(p_event_id).array_value_num('header_index'));
29608 IF l_acc_rev_flag IS NULL THEN
29609 l_acc_rev_flag := 'N';
29610 END IF;
29611 EXCEPTION
29612 WHEN OTHERS THEN
29613 l_acc_rev_flag := 'N';
29614 END;
29615 --
29616 IF (l_acc_rev_flag = 'Y') THEN
29617
29618 -- 4645092 ------------------------------------------------------------------------------
29619 -- To allow MPA report to determine if it should generate report process
29620 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29621 ------------------------------------------------------------------------------------------
29622
29623 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29624 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29625 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29626 -- call ADRs
29627 -- Bug 4922099
29628 --
29629 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29630 (NVL(l_actual_upg_option, 'N') = 'O') OR
29631 (NVL(l_enc_upg_option, 'N') = 'O')
29632 )
29633 THEN
29634 NULL;
29635 --
29636 --
29637
29638 l_ccid := AcctDerRule_13(
29639 p_application_id => p_application_id
29640 , p_ae_header_id => l_ae_header_id
29641 , p_source_15 => p_source_15
29642 , x_transaction_coa_id => l_adr_transaction_coa_id
29643 , x_accounting_coa_id => l_adr_accounting_coa_id
29644 , x_value_type_code => l_adr_value_type_code
29645 , p_side => 'NA'
29646 );
29647
29648 xla_ae_lines_pkg.set_ccid(
29649 p_code_combination_id => l_ccid
29650 , p_value_type_code => l_adr_value_type_code
29651 , p_transaction_coa_id => l_adr_transaction_coa_id
29652 , p_accounting_coa_id => l_adr_accounting_coa_id
29653 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
29654 , p_adr_type_code => 'S'
29655 , p_component_type => l_component_type
29656 , p_component_code => l_component_code
29657 , p_component_type_code => l_component_type_code
29658 , p_component_appl_id => l_component_appl_id
29659 , p_amb_context_code => l_amb_context_code
29660 , p_side => 'NA'
29661 );
29662
29663
29664 --
29665 --
29666 END IF;
29667
29668 --
29669 -- Update the line information that should be overwritten
29670 --
29671 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29672 p_header_num => 1);
29673 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29674
29675 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29676
29677 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29678 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29679 END IF;
29680
29681 --
29682 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29683 --
29684 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29685 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29686 ELSE
29687 ---------------------------------------------------------------------------------------------------
29688 -- 4262811a Switch Sign
29689 ---------------------------------------------------------------------------------------------------
29690 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29691 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29692 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29693 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29694 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29695 -- 5132302
29701 -- 4955764
29696 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29697 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29698
29699 END IF;
29700
29702 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29703 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29704
29705
29706 XLA_AE_LINES_PKG.ValidateCurrentLine;
29707 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29708
29709 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29710 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29711 ,p_balance_type_code => l_balance_type_code);
29712
29713 END IF;
29714
29715 -----------------------------------------------------------------------------------------
29716 -- 4262811 Multiperiod Accounting
29717 -----------------------------------------------------------------------------------------
29718 -- No MPA option is assigned.
29719
29720
29721 END IF;
29722 END IF;
29723 --
29724
29725 --
29726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29727 trace
29728 (p_msg => 'END of AcctLineType_70'
29729 ,p_level => C_LEVEL_PROCEDURE
29730 ,p_module => l_log_module);
29731 END IF;
29732 --
29733 EXCEPTION
29734 WHEN xla_exceptions_pkg.application_exception THEN
29735 RAISE;
29736 WHEN OTHERS THEN
29737 xla_exceptions_pkg.raise_message
29738 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_70');
29739 END AcctLineType_70;
29740 --
29741
29742 ---------------------------------------
29743 --
29744 -- PRIVATE FUNCTION
29745 -- AcctLineType_71
29746 --
29747 ---------------------------------------
29748 PROCEDURE AcctLineType_71 (
29749 p_application_id IN NUMBER
29750 ,p_event_id IN NUMBER
29751 ,p_calculate_acctd_flag IN VARCHAR2
29752 ,p_calculate_g_l_flag IN VARCHAR2
29753 ,p_actual_flag IN OUT VARCHAR2
29754 ,p_balance_type_code OUT VARCHAR2
29755 ,p_gain_or_loss_ref OUT VARCHAR2
29756
29757 --Bordero Type
29758 , p_source_7 IN VARCHAR2
29759 , p_source_7_meaning IN VARCHAR2
29760 --SLA Party Type
29761 , p_source_39 IN VARCHAR2
29762 --Collection Document Distribution Line Type
29763 , p_source_66 IN VARCHAR2
29764 , p_source_66_meaning IN VARCHAR2
29765 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
29766 , p_source_67 IN VARCHAR2
29767 , p_source_67_meaning IN VARCHAR2
29768 --Applied To Distribution Link Type
29769 , p_source_69 IN VARCHAR2
29770 --Applied To Distribution Identifier
29771 , p_source_71 IN NUMBER
29772 --Applied To Distribution Document Identifier
29773 , p_source_72 IN NUMBER
29774 --Applied To Distribution Occurrence Identifier
29775 , p_source_73 IN NUMBER
29776 --Collection Document Distribution Identifier
29777 , p_source_74 IN NUMBER
29778 --Collection Document Distribution Link Type
29779 , p_source_75 IN VARCHAR2
29780 --Collection Document Distribution Entered Amount
29781 , p_source_76 IN NUMBER
29782 --Collection Document Distribution Entered Currency Code
29783 , p_source_77 IN VARCHAR2
29784 --Collection Document Distribution Accounted Amount
29785 , p_source_81 IN NUMBER
29786 --Collection Document Occurrence Identifier
29787 , p_source_82 IN NUMBER
29788 --Reversed Collection Document Distribution Identifier
29789 , p_source_83 IN NUMBER
29790 --Reversed Collection Document Distribution Link Type
29791 , p_source_84 IN VARCHAR2
29792 --Collection Document Occurrence Type
29793 , p_source_85 IN VARCHAR2
29794 , p_source_85_meaning IN VARCHAR2
29795 )
29796 IS
29797
29798 l_component_type VARCHAR2(80);
29799 l_component_code VARCHAR2(30);
29800 l_component_type_code VARCHAR2(1);
29801 l_component_appl_id INTEGER;
29802 l_amb_context_code VARCHAR2(30);
29803 l_entity_code VARCHAR2(30);
29804 l_event_class_code VARCHAR2(30);
29805 l_ae_header_id NUMBER;
29806 l_event_type_code VARCHAR2(30);
29807 l_line_definition_code VARCHAR2(30);
29808 l_line_definition_owner_code VARCHAR2(1);
29809 --
29810 -- adr variables
29811 l_segment VARCHAR2(30);
29812 l_ccid NUMBER;
29813 l_adr_transaction_coa_id NUMBER;
29814 l_adr_accounting_coa_id NUMBER;
29815 l_adr_flexfield_segment_code VARCHAR2(30);
29816 l_adr_flex_value_set_id NUMBER;
29817 l_adr_value_type_code VARCHAR2(30);
29818 l_adr_value_combination_id NUMBER;
29819 l_adr_value_segment_code VARCHAR2(30);
29820
29821 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29822 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29823 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29824 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29825
29826 -- 4262811 Variables ------------------------------------------------------------------------------------------
29827 l_entered_amt_idx NUMBER;
29828 l_accted_amt_idx NUMBER;
29829 l_acc_rev_flag VARCHAR2(1);
29830 l_accrual_line_num NUMBER;
29831 l_tmp_amt NUMBER;
29832 l_acc_rev_natural_side_code VARCHAR2(1);
29833
29834 l_num_entries NUMBER;
29838 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29835 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29836 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29837 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29839 l_recog_line_1 NUMBER;
29840 l_recog_line_2 NUMBER;
29841
29842 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29843 l_bflow_applied_to_amt NUMBER; -- 5132302
29844 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29845
29846 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29847
29848 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29852
29849 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29850
29851 ---------------------------------------------------------------------------------------------------------------
29853
29854 --
29855 -- bulk performance
29856 --
29857 l_balance_type_code VARCHAR2(1);
29858 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29859 l_log_module VARCHAR2(240);
29860
29861 --
29862 -- Upgrade strategy
29863 --
29864 l_actual_upg_option VARCHAR2(1);
29865 l_enc_upg_option VARCHAR2(1);
29866
29867 --
29868 BEGIN
29869 --
29870 IF g_log_enabled THEN
29871 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
29872 END IF;
29873 --
29874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29875
29876 trace
29877 (p_msg => 'BEGIN of AcctLineType_71'
29878 ,p_level => C_LEVEL_PROCEDURE
29879 ,p_module => l_log_module);
29880
29881 END IF;
29882 --
29883 l_component_type := 'AMB_JLT';
29884 l_component_code := 'FACT_DOC_BILLS_UNDER_DISC_CR';
29885 l_component_type_code := 'S';
29886 l_component_appl_id := 222;
29887 l_amb_context_code := 'DEFAULT';
29888 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
29889 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
29890 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
29891 l_line_definition_owner_code := 'S';
29892 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
29893 --
29894 l_balance_type_code := 'A';
29895 l_segment := NULL;
29896 l_ccid := NULL;
29897 l_adr_transaction_coa_id := NULL;
29898 l_adr_accounting_coa_id := NULL;
29899 l_adr_flexfield_segment_code := NULL;
29900 l_adr_flex_value_set_id := NULL;
29901 l_adr_value_type_code := NULL;
29902 l_adr_value_combination_id := NULL;
29903 l_adr_value_segment_code := NULL;
29904
29905 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
29909
29906 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_DISCOUNT'; -- 4219869 Business Flow
29907 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
29908 l_budgetary_control_flag := 'N';
29910 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29911 l_bflow_applied_to_amt := NULL; -- 5132302
29912 l_entered_amt_idx := NULL; -- 4262811
29913 l_accted_amt_idx := NULL; -- 4262811
29914 l_acc_rev_flag := NULL; -- 4262811
29915 l_accrual_line_num := NULL; -- 4262811
29916 l_tmp_amt := NULL; -- 4262811
29917 --
29918
29919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29920 l_balance_type_code <> 'B' THEN
29921 IF NVL(p_source_66,'
29922 ') = 'JLBR_AR_ENDORSEMENT' AND
29923 NVL(p_source_7,'
29924 ') = 'FACTORING' AND
29925 NVL(p_source_85,'
29926 ') = 'RETURN_OCCURRENCE'
29927 THEN
29928
29929 --
29930 XLA_AE_LINES_PKG.SetNewLine;
29931
29932 p_balance_type_code := l_balance_type_code;
29933 -- set the flag so later we will know whether the gain loss line needs to be created
29934
29935 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29936 p_actual_flag :='A';
29937 END IF;
29938
29939 --
29940 -- bulk performance
29941 --
29942 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29943 p_header_num => 0); -- 4262811
29944 --
29945 -- set accounting line options
29946 --
29947 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29948 p_natural_side_code => 'C'
29949 , p_gain_or_loss_flag => 'N'
29950 , p_gl_transfer_mode_code => 'S'
29951 , p_acct_entry_type_code => 'A'
29952 , p_switch_side_flag => 'Y'
29953 , p_merge_duplicate_code => 'A'
29954 );
29955 --
29956 l_acc_rev_natural_side_code := 'D'; -- 4262811
29957 --
29958 --
29959 -- set accounting line type info
29960 --
29961 xla_ae_lines_pkg.SetAcctLineType
29962 (p_component_type => l_component_type
29963 ,p_event_type_code => l_event_type_code
29964 ,p_line_definition_owner_code => l_line_definition_owner_code
29965 ,p_line_definition_code => l_line_definition_code
29966 ,p_accounting_line_code => l_component_code
29967 ,p_accounting_line_type_code => l_component_type_code
29968 ,p_accounting_line_appl_id => l_component_appl_id
29969 ,p_amb_context_code => l_amb_context_code
29970 ,p_entity_code => l_entity_code
29971 ,p_event_class_code => l_event_class_code);
29972 --
29973 -- set accounting class
29974 --
29975 xla_ae_lines_pkg.SetAcctClass(
29976 p_accounting_class_code => 'FACTOR'
29977 , p_ae_header_id => l_ae_header_id
29978 );
29979
29980 --
29981 -- set rounding class
29982 --
29983 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29984 'FACTOR';
29985
29986 --
29987 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29988 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29989 --
29990 -- bulk performance
29991 --
29992 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29993
29994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29995 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29996
29997 -- 4955764
29998 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29999 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30000
30001 -- 4458381 Public Sector Enh
30002
30003 --
30004 -- set accounting attributes for the line type
30005 --
30006 l_entered_amt_idx := 10;
30007 l_accted_amt_idx := 12;
30008 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30009 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30010 l_rec_acct_attrs.array_char_value(1) := p_source_67;
30014 p_source_code => 'XLA_EVENT_APPL_ID'
30011 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30012 l_rec_acct_attrs.array_num_value(2) :=
30013 xla_ae_sources_pkg.GetSystemSourceNum(
30015 , p_source_type_code => 'Y'
30016 , p_source_application_id => 602
30017 );
30018 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30019 l_rec_acct_attrs.array_char_value(3) := p_source_69;
30020 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30021 l_rec_acct_attrs.array_char_value(4) :=
30022 xla_ae_sources_pkg.GetSystemSourceChar(
30023 p_source_code => 'XLA_ENTITY_CODE'
30024 , p_source_type_code => 'Y'
30025 , p_source_application_id => 602
30026 );
30027 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30028 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
30029 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30030 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
30031 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
30032 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
30033 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
30034 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
30035 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
30036 l_rec_acct_attrs.array_char_value(9) := p_source_75;
30037 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
30038 l_rec_acct_attrs.array_num_value(10) := p_source_76;
30039 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
30040 l_rec_acct_attrs.array_char_value(11) := p_source_77;
30041 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
30042 l_rec_acct_attrs.array_num_value(12) := p_source_81;
30043 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
30044 l_rec_acct_attrs.array_char_value(13) := p_source_39;
30045 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
30046 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_82);
30047 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
30048 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_83);
30049 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
30050 l_rec_acct_attrs.array_char_value(16) := p_source_84;
30051 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
30052 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_82);
30053
30054 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30055 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30056
30057 ---------------------------------------------------------------------------------------------------------------
30058 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30059 ---------------------------------------------------------------------------------------------------------------
30060 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30061
30062 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30063 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30064
30065 IF xla_accounting_cache_pkg.GetValueChar
30066 (p_source_code => 'LEDGER_CATEGORY_CODE'
30067 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30068 AND l_bflow_method_code = 'PRIOR_ENTRY'
30069 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30070 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30071 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30072 )
30073 THEN
30074 xla_ae_lines_pkg.BflowUpgEntry
30075 (p_business_method_code => l_bflow_method_code
30076 ,p_business_class_code => l_bflow_class_code
30077 ,p_balance_type => l_balance_type_code);
30078 ELSE
30079 NULL;
30080 XLA_AE_LINES_PKG.business_flow_validation(
30084 END IF;
30081 p_business_method_code => l_bflow_method_code
30082 ,p_business_class_code => l_bflow_class_code
30083 ,p_inherit_description_flag => l_inherit_desc_flag);
30085
30086 --
30087 -- call analytical criteria
30088 --
30089 -- Inherited Analytical Criteria for business flow method of Prior Entry.
30090 --
30091 -- call description
30092 --
30093 -- No description or it is inherited.
30094 --
30095 -- call ADRs
30096 -- Bug 4922099
30097 --
30098 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30099 (NVL(l_actual_upg_option, 'N') = 'O') OR
30100 (NVL(l_enc_upg_option, 'N') = 'O')
30101 )
30102 THEN
30103 NULL;
30104 --
30105 --
30106
30107 --
30108 --
30109 END IF;
30110 --
30111 -- Bug 4922099
30112 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30113 (NVL(l_enc_upg_option, 'N') = 'O')
30114 ) AND
30115 (l_bflow_method_code = 'PRIOR_ENTRY')
30116 )
30117 THEN
30118 IF
30119 --
30120 1 = 1
30121 --
30122 THEN
30123 xla_accounting_err_pkg.build_message
30124 (p_appli_s_name => 'XLA'
30125 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30126 ,p_token_1 => 'LINE_NUMBER'
30127 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30128 ,p_token_2 => 'LINE_TYPE_NAME'
30129 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30130 l_component_type
30131 ,l_component_code
30132 ,l_component_type_code
30133 ,l_component_appl_id
30134 ,l_amb_context_code
30135 ,l_entity_code
30136 ,l_event_class_code
30137 )
30138 ,p_token_3 => 'OWNER'
30139 ,p_value_3 => xla_lookups_pkg.get_meaning(
30140 p_lookup_type => 'XLA_OWNER_TYPE'
30141 ,p_lookup_code => l_component_type_code
30142 )
30143 ,p_token_4 => 'PRODUCT_NAME'
30144 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30145 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30146 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30147 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30148 ,p_ae_header_id => NULL
30149 );
30150
30151 IF (C_LEVEL_ERROR>= g_log_level) THEN
30152 trace
30153 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30154 ,p_level => C_LEVEL_ERROR
30155 ,p_module => l_log_module);
30156 END IF;
30157 END IF;
30158 END IF;
30159 --
30160 --
30161 ------------------------------------------------------------------------------------------------
30162 -- 4219869 Business Flow
30163 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30164 -- Prior Entry. Currently, the following code is always generated.
30165 ------------------------------------------------------------------------------------------------
30166 -- No ValidateCurrentLine for business flow method of Prior Entry
30167
30168 ------------------------------------------------------------------------------------
30169 -- 4219869 Business Flow
30170 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30171 ------------------------------------------------------------------------------------
30172 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30173
30174 ----------------------------------------------------------------------------------
30175 -- 4219869 Business Flow
30176 -- Update journal entry status -- Need to generate this within IF <condition>
30177 ----------------------------------------------------------------------------------
30178 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30179 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30180 ,p_balance_type_code => l_balance_type_code
30181 );
30182
30183 -------------------------------------------------------------------------------------------
30184 -- 4262811 - Generate the Accrual Reversal lines
30185 -------------------------------------------------------------------------------------------
30186 BEGIN
30187 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30188 (g_array_event(p_event_id).array_value_num('header_index'));
30192 EXCEPTION
30189 IF l_acc_rev_flag IS NULL THEN
30190 l_acc_rev_flag := 'N';
30191 END IF;
30193 WHEN OTHERS THEN
30194 l_acc_rev_flag := 'N';
30195 END;
30196 --
30197 IF (l_acc_rev_flag = 'Y') THEN
30198
30199 -- 4645092 ------------------------------------------------------------------------------
30200 -- To allow MPA report to determine if it should generate report process
30201 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30202 ------------------------------------------------------------------------------------------
30203
30204 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30205 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30206 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30207 -- call ADRs
30208 -- Bug 4922099
30209 --
30210 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30211 (NVL(l_actual_upg_option, 'N') = 'O') OR
30212 (NVL(l_enc_upg_option, 'N') = 'O')
30213 )
30214 THEN
30215 NULL;
30216 --
30217 --
30218
30219 --
30220 --
30221 END IF;
30222
30223 --
30224 -- Update the line information that should be overwritten
30225 --
30226 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30227 p_header_num => 1);
30228 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30229
30230 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30231
30232 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30233 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30234 END IF;
30235
30236 --
30237 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30238 --
30239 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30240 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30241 ELSE
30242 ---------------------------------------------------------------------------------------------------
30243 -- 4262811a Switch Sign
30244 ---------------------------------------------------------------------------------------------------
30245 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30246 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30247 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30248 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30249 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30250 -- 5132302
30251 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30252 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30253
30254 END IF;
30255
30256 -- 4955764
30257 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30261 XLA_AE_LINES_PKG.ValidateCurrentLine;
30258 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30259
30260
30262 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30263
30264 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30265 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30266 ,p_balance_type_code => l_balance_type_code);
30267
30268 END IF;
30269
30270 -----------------------------------------------------------------------------------------
30271 -- 4262811 Multiperiod Accounting
30272 -----------------------------------------------------------------------------------------
30273 -- No MPA option is assigned.
30274
30275
30276 END IF;
30277 END IF;
30278 --
30279
30280 --
30281 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30282 trace
30283 (p_msg => 'END of AcctLineType_71'
30284 ,p_level => C_LEVEL_PROCEDURE
30285 ,p_module => l_log_module);
30286 END IF;
30287 --
30288 EXCEPTION
30289 WHEN xla_exceptions_pkg.application_exception THEN
30290 RAISE;
30291 WHEN OTHERS THEN
30292 xla_exceptions_pkg.raise_message
30293 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_71');
30294 END AcctLineType_71;
30295 --
30296
30297 ---------------------------------------
30298 --
30299 -- PRIVATE FUNCTION
30300 -- AcctLineType_72
30301 --
30302 ---------------------------------------
30303 PROCEDURE AcctLineType_72 (
30304 p_application_id IN NUMBER
30305 ,p_event_id IN NUMBER
30306 ,p_calculate_acctd_flag IN VARCHAR2
30307 ,p_calculate_g_l_flag IN VARCHAR2
30308 ,p_actual_flag IN OUT VARCHAR2
30309 ,p_balance_type_code OUT VARCHAR2
30310 ,p_gain_or_loss_ref OUT VARCHAR2
30311
30312 --Collection Document Bank Occurrence
30313 , p_source_4 IN VARCHAR2
30314 --Collection Document Number
30315 , p_source_5 IN NUMBER
30316 --Collection Document Trade Note Number
30317 , p_source_6 IN VARCHAR2
30318 --Bordero Type
30319 , p_source_7 IN VARCHAR2
30320 , p_source_7_meaning IN VARCHAR2
30321 --Collection Document Bills Under Discount Account
30322 , p_source_17 IN NUMBER
30323 --Bill To Customer Account Identifier
30324 , p_source_37 IN NUMBER
30325 --Bill To Customer Site Use Identifier
30326 , p_source_38 IN NUMBER
30327 --SLA Party Type
30328 , p_source_39 IN VARCHAR2
30329 --Collection Document Distribution Line Type
30330 , p_source_66 IN VARCHAR2
30331 , p_source_66_meaning IN VARCHAR2
30332 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
30333 , p_source_67 IN VARCHAR2
30334 , p_source_67_meaning IN VARCHAR2
30335 --Applied To Distribution Link Type
30336 , p_source_69 IN VARCHAR2
30337 --Applied To Distribution Identifier
30338 , p_source_71 IN NUMBER
30339 --Applied To Distribution Document Identifier
30340 , p_source_72 IN NUMBER
30341 --Applied To Distribution Occurrence Identifier
30342 , p_source_73 IN NUMBER
30343 --Collection Document Distribution Identifier
30344 , p_source_74 IN NUMBER
30345 --Collection Document Distribution Link Type
30346 , p_source_75 IN VARCHAR2
30347 --Collection Document Distribution Entered Amount
30348 , p_source_76 IN NUMBER
30349 --Collection Document Distribution Entered Currency Code
30350 , p_source_77 IN VARCHAR2
30351 --Collection Document Distribution Conversion Date
30352 , p_source_78 IN DATE
30353 --Collection Document Distribution Conversion Rate
30354 , p_source_79 IN NUMBER
30355 --Collection Document Distribution Conversion Rate Type
30356 , p_source_80 IN VARCHAR2
30357 --Collection Document Distribution Accounted Amount
30358 , p_source_81 IN NUMBER
30359 --Collection Document Occurrence Identifier
30360 , p_source_82 IN NUMBER
30361 --Reversed Collection Document Distribution Identifier
30362 , p_source_83 IN NUMBER
30363 --Reversed Collection Document Distribution Link Type
30364 , p_source_84 IN VARCHAR2
30365 --Collection Document Occurrence Type
30366 , p_source_85 IN VARCHAR2
30367 , p_source_85_meaning IN VARCHAR2
30368 )
30369 IS
30370
30371 l_component_type VARCHAR2(80);
30372 l_component_code VARCHAR2(30);
30373 l_component_type_code VARCHAR2(1);
30374 l_component_appl_id INTEGER;
30375 l_amb_context_code VARCHAR2(30);
30376 l_entity_code VARCHAR2(30);
30377 l_event_class_code VARCHAR2(30);
30378 l_ae_header_id NUMBER;
30379 l_event_type_code VARCHAR2(30);
30380 l_line_definition_code VARCHAR2(30);
30381 l_line_definition_owner_code VARCHAR2(1);
30382 --
30383 -- adr variables
30387 l_adr_accounting_coa_id NUMBER;
30384 l_segment VARCHAR2(30);
30385 l_ccid NUMBER;
30386 l_adr_transaction_coa_id NUMBER;
30388 l_adr_flexfield_segment_code VARCHAR2(30);
30389 l_adr_flex_value_set_id NUMBER;
30390 l_adr_value_type_code VARCHAR2(30);
30391 l_adr_value_combination_id NUMBER;
30392 l_adr_value_segment_code VARCHAR2(30);
30393
30394 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30395 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30396 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30397 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30398
30399 -- 4262811 Variables ------------------------------------------------------------------------------------------
30400 l_entered_amt_idx NUMBER;
30401 l_accted_amt_idx NUMBER;
30402 l_acc_rev_flag VARCHAR2(1);
30403 l_accrual_line_num NUMBER;
30404 l_tmp_amt NUMBER;
30405 l_acc_rev_natural_side_code VARCHAR2(1);
30406
30407 l_num_entries NUMBER;
30408 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30409 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30410 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30411 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30412 l_recog_line_1 NUMBER;
30413 l_recog_line_2 NUMBER;
30414
30418
30415 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30416 l_bflow_applied_to_amt NUMBER; -- 5132302
30417 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30419 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30420
30421 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30422 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30423
30424 ---------------------------------------------------------------------------------------------------------------
30425
30426
30427 --
30428 -- bulk performance
30429 --
30430 l_balance_type_code VARCHAR2(1);
30431 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30432 l_log_module VARCHAR2(240);
30433
30434 --
30435 -- Upgrade strategy
30436 --
30437 l_actual_upg_option VARCHAR2(1);
30438 l_enc_upg_option VARCHAR2(1);
30439
30440 --
30441 BEGIN
30442 --
30443 IF g_log_enabled THEN
30444 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
30445 END IF;
30446 --
30447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30448
30449 trace
30450 (p_msg => 'BEGIN of AcctLineType_72'
30451 ,p_level => C_LEVEL_PROCEDURE
30452 ,p_module => l_log_module);
30453
30454 END IF;
30455 --
30456 l_component_type := 'AMB_JLT';
30457 l_component_code := 'FACT_DOC_BILLS_UNDER_DISC_DR';
30458 l_component_type_code := 'S';
30459 l_component_appl_id := 222;
30460 l_amb_context_code := 'DEFAULT';
30461 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
30462 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
30463 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
30464 l_line_definition_owner_code := 'S';
30465 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
30466 --
30467 l_balance_type_code := 'A';
30468 l_segment := NULL;
30469 l_ccid := NULL;
30470 l_adr_transaction_coa_id := NULL;
30471 l_adr_accounting_coa_id := NULL;
30472 l_adr_flexfield_segment_code := NULL;
30473 l_adr_flex_value_set_id := NULL;
30474 l_adr_value_type_code := NULL;
30475 l_adr_value_combination_id := NULL;
30476 l_adr_value_segment_code := NULL;
30477
30478 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30479 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_DISCOUNT'; -- 4219869 Business Flow
30480 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30481 l_budgetary_control_flag := 'N';
30482
30483 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30484 l_bflow_applied_to_amt := NULL; -- 5132302
30485 l_entered_amt_idx := NULL; -- 4262811
30486 l_accted_amt_idx := NULL; -- 4262811
30487 l_acc_rev_flag := NULL; -- 4262811
30488 l_accrual_line_num := NULL; -- 4262811
30492 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30489 l_tmp_amt := NULL; -- 4262811
30490 --
30491
30493 l_balance_type_code <> 'B' THEN
30494 IF NVL(p_source_66,'
30495 ') = 'JLBR_AR_ENDORSEMENT' AND
30496 NVL(p_source_7,'
30497 ') = 'FACTORING' AND
30498 NVL(p_source_85,'
30499 ') = 'REMITTANCE_OCCURRENCE'
30500 THEN
30501
30502 --
30503 XLA_AE_LINES_PKG.SetNewLine;
30504
30505 p_balance_type_code := l_balance_type_code;
30506 -- set the flag so later we will know whether the gain loss line needs to be created
30507
30508 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30509 p_actual_flag :='A';
30510 END IF;
30511
30512 --
30513 -- bulk performance
30514 --
30515 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30516 p_header_num => 0); -- 4262811
30517 --
30518 -- set accounting line options
30519 --
30520 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30521 p_natural_side_code => 'D'
30522 , p_gain_or_loss_flag => 'N'
30523 , p_gl_transfer_mode_code => 'S'
30524 , p_acct_entry_type_code => 'A'
30525 , p_switch_side_flag => 'Y'
30526 , p_merge_duplicate_code => 'A'
30527 );
30528 --
30529 l_acc_rev_natural_side_code := 'C'; -- 4262811
30530 --
30531 --
30532 -- set accounting line type info
30533 --
30534 xla_ae_lines_pkg.SetAcctLineType
30535 (p_component_type => l_component_type
30536 ,p_event_type_code => l_event_type_code
30537 ,p_line_definition_owner_code => l_line_definition_owner_code
30538 ,p_line_definition_code => l_line_definition_code
30539 ,p_accounting_line_code => l_component_code
30540 ,p_accounting_line_type_code => l_component_type_code
30541 ,p_accounting_line_appl_id => l_component_appl_id
30542 ,p_amb_context_code => l_amb_context_code
30543 ,p_entity_code => l_entity_code
30544 ,p_event_class_code => l_event_class_code);
30545 --
30546 -- set accounting class
30547 --
30548 xla_ae_lines_pkg.SetAcctClass(
30549 p_accounting_class_code => 'FACTOR'
30550 , p_ae_header_id => l_ae_header_id
30551 );
30552
30553 --
30554 -- set rounding class
30555 --
30556 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30557 'FACTOR';
30558
30559 --
30560 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30561 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30562 --
30563 -- bulk performance
30564 --
30565 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30566
30567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30568 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30569
30570 -- 4955764
30571 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30572 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30573
30574 -- 4458381 Public Sector Enh
30575
30576 --
30577 -- set accounting attributes for the line type
30578 --
30579 l_entered_amt_idx := 10;
30580 l_accted_amt_idx := 15;
30581 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30582 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30583 l_rec_acct_attrs.array_char_value(1) := p_source_67;
30584 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30585 l_rec_acct_attrs.array_num_value(2) :=
30586 xla_ae_sources_pkg.GetSystemSourceNum(
30587 p_source_code => 'XLA_EVENT_APPL_ID'
30588 , p_source_type_code => 'Y'
30589 , p_source_application_id => 602
30590 );
30591 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30592 l_rec_acct_attrs.array_char_value(3) := p_source_69;
30593 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30594 l_rec_acct_attrs.array_char_value(4) :=
30595 xla_ae_sources_pkg.GetSystemSourceChar(
30596 p_source_code => 'XLA_ENTITY_CODE'
30597 , p_source_type_code => 'Y'
30598 , p_source_application_id => 602
30599 );
30600 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30601 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
30602 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30603 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
30604 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
30605 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
30606 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
30607 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
30608 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
30609 l_rec_acct_attrs.array_char_value(9) := p_source_75;
30610 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
30611 l_rec_acct_attrs.array_num_value(10) := p_source_76;
30612 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
30616 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
30613 l_rec_acct_attrs.array_char_value(11) := p_source_77;
30614 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
30615 l_rec_acct_attrs.array_date_value(12) := p_source_78;
30617 l_rec_acct_attrs.array_num_value(13) := p_source_79;
30618 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
30619 l_rec_acct_attrs.array_char_value(14) := p_source_80;
30620 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
30621 l_rec_acct_attrs.array_num_value(15) := p_source_81;
30622 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30623 l_rec_acct_attrs.array_num_value(16) := p_source_37;
30624 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30625 l_rec_acct_attrs.array_num_value(17) := p_source_38;
30626 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30627 l_rec_acct_attrs.array_char_value(18) := p_source_39;
30628 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
30629 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
30630 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
30631 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
30632 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
30633 l_rec_acct_attrs.array_char_value(21) := p_source_84;
30634 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
30635 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
30636
30637 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30638 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30639
30640 ---------------------------------------------------------------------------------------------------------------
30641 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30642 ---------------------------------------------------------------------------------------------------------------
30643 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30644
30645 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30646 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30647
30648 IF xla_accounting_cache_pkg.GetValueChar
30649 (p_source_code => 'LEDGER_CATEGORY_CODE'
30650 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30651 AND l_bflow_method_code = 'PRIOR_ENTRY'
30652 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30653 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30654 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30655 )
30656 THEN
30657 xla_ae_lines_pkg.BflowUpgEntry
30658 (p_business_method_code => l_bflow_method_code
30659 ,p_business_class_code => l_bflow_class_code
30660 ,p_balance_type => l_balance_type_code);
30661 ELSE
30662 NULL;
30663 -- No business flow processing for business flow method of NONE.
30664 END IF;
30665
30666 --
30667 -- call analytical criteria
30668 --
30669
30670 --
30671 -- call description
30672 --
30673
30674 xla_ae_lines_pkg.SetLineDescription(
30675 p_ae_header_id => l_ae_header_id
30676 ,p_description => Description_4 (
30677 p_application_id => p_application_id
30678 , p_ae_header_id => l_ae_header_id
30679 , p_source_4 => p_source_4
30680 , p_source_5 => p_source_5
30681 , p_source_6 => p_source_6
30682 )
30683 );
30684
30685
30686 --
30687 -- call ADRs
30688 -- Bug 4922099
30689 --
30690 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30691 (NVL(l_actual_upg_option, 'N') = 'O') OR
30692 (NVL(l_enc_upg_option, 'N') = 'O')
30693 )
30694 THEN
30695 NULL;
30696 --
30697 --
30698
30699 l_ccid := AcctDerRule_15(
30700 p_application_id => p_application_id
30701 , p_ae_header_id => l_ae_header_id
30702 , p_source_17 => p_source_17
30703 , x_transaction_coa_id => l_adr_transaction_coa_id
30704 , x_accounting_coa_id => l_adr_accounting_coa_id
30705 , x_value_type_code => l_adr_value_type_code
30706 , p_side => 'NA'
30707 );
30708
30709 xla_ae_lines_pkg.set_ccid(
30710 p_code_combination_id => l_ccid
30711 , p_value_type_code => l_adr_value_type_code
30712 , p_transaction_coa_id => l_adr_transaction_coa_id
30713 , p_accounting_coa_id => l_adr_accounting_coa_id
30714 , p_adr_code => 'COLL_DOC_BILLS_UNDER_DISC'
30715 , p_adr_type_code => 'S'
30716 , p_component_type => l_component_type
30717 , p_component_code => l_component_code
30718 , p_component_type_code => l_component_type_code
30719 , p_component_appl_id => l_component_appl_id
30720 , p_amb_context_code => l_amb_context_code
30721 , p_side => 'NA'
30722 );
30723
30724
30725 --
30726 --
30727 END IF;
30728 --
30729 -- Bug 4922099
30730 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30731 (NVL(l_enc_upg_option, 'N') = 'O')
30732 ) AND
30733 (l_bflow_method_code = 'PRIOR_ENTRY')
30737 --
30734 )
30735 THEN
30736 IF
30738 1 = 2
30739 --
30740 THEN
30741 xla_accounting_err_pkg.build_message
30742 (p_appli_s_name => 'XLA'
30743 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30744 ,p_token_1 => 'LINE_NUMBER'
30745 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30746 ,p_token_2 => 'LINE_TYPE_NAME'
30747 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30748 l_component_type
30749 ,l_component_code
30750 ,l_component_type_code
30751 ,l_component_appl_id
30752 ,l_amb_context_code
30753 ,l_entity_code
30754 ,l_event_class_code
30755 )
30756 ,p_token_3 => 'OWNER'
30757 ,p_value_3 => xla_lookups_pkg.get_meaning(
30758 p_lookup_type => 'XLA_OWNER_TYPE'
30759 ,p_lookup_code => l_component_type_code
30760 )
30761 ,p_token_4 => 'PRODUCT_NAME'
30762 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30763 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30764 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30765 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30766 ,p_ae_header_id => NULL
30767 );
30768
30769 IF (C_LEVEL_ERROR>= g_log_level) THEN
30770 trace
30771 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30772 ,p_level => C_LEVEL_ERROR
30773 ,p_module => l_log_module);
30774 END IF;
30775 END IF;
30776 END IF;
30777 --
30778 --
30779 ------------------------------------------------------------------------------------------------
30780 -- 4219869 Business Flow
30781 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30782 -- Prior Entry. Currently, the following code is always generated.
30783 ------------------------------------------------------------------------------------------------
30784 XLA_AE_LINES_PKG.ValidateCurrentLine;
30785
30786 ------------------------------------------------------------------------------------
30787 -- 4219869 Business Flow
30788 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30789 ------------------------------------------------------------------------------------
30790 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30791
30792 ----------------------------------------------------------------------------------
30793 -- 4219869 Business Flow
30794 -- Update journal entry status -- Need to generate this within IF <condition>
30795 ----------------------------------------------------------------------------------
30796 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30797 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30798 ,p_balance_type_code => l_balance_type_code
30799 );
30800
30801 -------------------------------------------------------------------------------------------
30802 -- 4262811 - Generate the Accrual Reversal lines
30803 -------------------------------------------------------------------------------------------
30804 BEGIN
30805 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30806 (g_array_event(p_event_id).array_value_num('header_index'));
30807 IF l_acc_rev_flag IS NULL THEN
30808 l_acc_rev_flag := 'N';
30809 END IF;
30810 EXCEPTION
30811 WHEN OTHERS THEN
30812 l_acc_rev_flag := 'N';
30813 END;
30814 --
30815 IF (l_acc_rev_flag = 'Y') THEN
30816
30817 -- 4645092 ------------------------------------------------------------------------------
30818 -- To allow MPA report to determine if it should generate report process
30819 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30820 ------------------------------------------------------------------------------------------
30821
30822 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30823 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30824 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30825 -- call ADRs
30826 -- Bug 4922099
30827 --
30828 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30829 (NVL(l_actual_upg_option, 'N') = 'O') OR
30835 --
30830 (NVL(l_enc_upg_option, 'N') = 'O')
30831 )
30832 THEN
30833 NULL;
30834 --
30836
30837 l_ccid := AcctDerRule_15(
30838 p_application_id => p_application_id
30839 , p_ae_header_id => l_ae_header_id
30840 , p_source_17 => p_source_17
30841 , x_transaction_coa_id => l_adr_transaction_coa_id
30842 , x_accounting_coa_id => l_adr_accounting_coa_id
30843 , x_value_type_code => l_adr_value_type_code
30844 , p_side => 'NA'
30845 );
30846
30847 xla_ae_lines_pkg.set_ccid(
30848 p_code_combination_id => l_ccid
30849 , p_value_type_code => l_adr_value_type_code
30850 , p_transaction_coa_id => l_adr_transaction_coa_id
30851 , p_accounting_coa_id => l_adr_accounting_coa_id
30852 , p_adr_code => 'COLL_DOC_BILLS_UNDER_DISC'
30853 , p_adr_type_code => 'S'
30854 , p_component_type => l_component_type
30855 , p_component_code => l_component_code
30856 , p_component_type_code => l_component_type_code
30857 , p_component_appl_id => l_component_appl_id
30858 , p_amb_context_code => l_amb_context_code
30859 , p_side => 'NA'
30860 );
30861
30862
30863 --
30864 --
30865 END IF;
30866
30867 --
30868 -- Update the line information that should be overwritten
30869 --
30870 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30871 p_header_num => 1);
30872 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30873
30874 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30875
30876 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30877 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30878 END IF;
30879
30880 --
30881 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30882 --
30883 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30884 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30885 ELSE
30886 ---------------------------------------------------------------------------------------------------
30887 -- 4262811a Switch Sign
30888 ---------------------------------------------------------------------------------------------------
30889 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30891 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30893 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30894 -- 5132302
30895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30896 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30897
30898 END IF;
30899
30900 -- 4955764
30901 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30905 XLA_AE_LINES_PKG.ValidateCurrentLine;
30902 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30903
30904
30906 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30907
30908 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30909 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30910 ,p_balance_type_code => l_balance_type_code);
30911
30912 END IF;
30913
30914 -----------------------------------------------------------------------------------------
30915 -- 4262811 Multiperiod Accounting
30916 -----------------------------------------------------------------------------------------
30917 -- No MPA option is assigned.
30918
30919
30920 END IF;
30921 END IF;
30922 --
30923
30924 --
30925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30926 trace
30927 (p_msg => 'END of AcctLineType_72'
30928 ,p_level => C_LEVEL_PROCEDURE
30929 ,p_module => l_log_module);
30930 END IF;
30931 --
30932 EXCEPTION
30933 WHEN xla_exceptions_pkg.application_exception THEN
30934 RAISE;
30935 WHEN OTHERS THEN
30936 xla_exceptions_pkg.raise_message
30937 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_72');
30938 END AcctLineType_72;
30939 --
30940
30941 ---------------------------------------
30942 --
30943 -- PRIVATE FUNCTION
30944 -- AcctLineType_73
30945 --
30946 ---------------------------------------
30947 PROCEDURE AcctLineType_73 (
30948 p_application_id IN NUMBER
30949 ,p_event_id IN NUMBER
30950 ,p_calculate_acctd_flag IN VARCHAR2
30951 ,p_calculate_g_l_flag IN VARCHAR2
30952 ,p_actual_flag IN OUT VARCHAR2
30953 ,p_balance_type_code OUT VARCHAR2
30954 ,p_gain_or_loss_ref OUT VARCHAR2
30955
30956 --Collection Document Bank Occurrence
30957 , p_source_4 IN VARCHAR2
30958 --Collection Document Number
30959 , p_source_5 IN NUMBER
30960 --Collection Document Trade Note Number
30961 , p_source_6 IN VARCHAR2
30962 --Bordero Type
30963 , p_source_7 IN VARCHAR2
30964 , p_source_7_meaning IN VARCHAR2
30965 --Collection Document Cash Account
30966 , p_source_18 IN NUMBER
30967 --Bill To Customer Account Identifier
30968 , p_source_37 IN NUMBER
30969 --Bill To Customer Site Use Identifier
30970 , p_source_38 IN NUMBER
30971 --SLA Party Type
30972 , p_source_39 IN VARCHAR2
30973 --Collection Document Distribution Line Type
30974 , p_source_66 IN VARCHAR2
30975 , p_source_66_meaning IN VARCHAR2
30976 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
30977 , p_source_67 IN VARCHAR2
30978 , p_source_67_meaning IN VARCHAR2
30979 --Applied To Distribution Link Type
30980 , p_source_69 IN VARCHAR2
30981 --Applied To Distribution Identifier
30982 , p_source_71 IN NUMBER
30983 --Applied To Distribution Document Identifier
30984 , p_source_72 IN NUMBER
30985 --Applied To Distribution Occurrence Identifier
30986 , p_source_73 IN NUMBER
30987 --Collection Document Distribution Identifier
30991 --Collection Document Distribution Entered Amount
30988 , p_source_74 IN NUMBER
30989 --Collection Document Distribution Link Type
30990 , p_source_75 IN VARCHAR2
30992 , p_source_76 IN NUMBER
30993 --Collection Document Distribution Entered Currency Code
30994 , p_source_77 IN VARCHAR2
30995 --Collection Document Distribution Conversion Date
30996 , p_source_78 IN DATE
30997 --Collection Document Distribution Conversion Rate
30998 , p_source_79 IN NUMBER
30999 --Collection Document Distribution Conversion Rate Type
31000 , p_source_80 IN VARCHAR2
31001 --Collection Document Distribution Accounted Amount
31002 , p_source_81 IN NUMBER
31003 --Collection Document Occurrence Identifier
31004 , p_source_82 IN NUMBER
31005 --Reversed Collection Document Distribution Identifier
31006 , p_source_83 IN NUMBER
31007 --Reversed Collection Document Distribution Link Type
31008 , p_source_84 IN VARCHAR2
31009 )
31010 IS
31011
31012 l_component_type VARCHAR2(80);
31013 l_component_code VARCHAR2(30);
31014 l_component_type_code VARCHAR2(1);
31015 l_component_appl_id INTEGER;
31016 l_amb_context_code VARCHAR2(30);
31017 l_entity_code VARCHAR2(30);
31018 l_event_class_code VARCHAR2(30);
31019 l_ae_header_id NUMBER;
31020 l_event_type_code VARCHAR2(30);
31021 l_line_definition_code VARCHAR2(30);
31022 l_line_definition_owner_code VARCHAR2(1);
31023 --
31024 -- adr variables
31025 l_segment VARCHAR2(30);
31026 l_ccid NUMBER;
31027 l_adr_transaction_coa_id NUMBER;
31028 l_adr_accounting_coa_id NUMBER;
31029 l_adr_flexfield_segment_code VARCHAR2(30);
31030 l_adr_flex_value_set_id NUMBER;
31031 l_adr_value_type_code VARCHAR2(30);
31032 l_adr_value_combination_id NUMBER;
31033 l_adr_value_segment_code VARCHAR2(30);
31034
31035 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31036 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31037 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31038 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31039
31040 -- 4262811 Variables ------------------------------------------------------------------------------------------
31041 l_entered_amt_idx NUMBER;
31042 l_accted_amt_idx NUMBER;
31043 l_acc_rev_flag VARCHAR2(1);
31044 l_accrual_line_num NUMBER;
31045 l_tmp_amt NUMBER;
31046 l_acc_rev_natural_side_code VARCHAR2(1);
31047
31048 l_num_entries NUMBER;
31049 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31050 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31051 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31052 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31053 l_recog_line_1 NUMBER;
31054 l_recog_line_2 NUMBER;
31055
31056 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31057 l_bflow_applied_to_amt NUMBER; -- 5132302
31058 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31059
31060 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31061
31062 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31063 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31064
31065 ---------------------------------------------------------------------------------------------------------------
31066
31067
31068 --
31069 -- bulk performance
31070 --
31071 l_balance_type_code VARCHAR2(1);
31072 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31073 l_log_module VARCHAR2(240);
31074
31075 --
31076 -- Upgrade strategy
31077 --
31078 l_actual_upg_option VARCHAR2(1);
31079 l_enc_upg_option VARCHAR2(1);
31080
31081 --
31082 BEGIN
31083 --
31084 IF g_log_enabled THEN
31085 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
31086 END IF;
31087 --
31088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31089
31090 trace
31091 (p_msg => 'BEGIN of AcctLineType_73'
31092 ,p_level => C_LEVEL_PROCEDURE
31093 ,p_module => l_log_module);
31094
31095 END IF;
31096 --
31097 l_component_type := 'AMB_JLT';
31098 l_component_code := 'FACT_DOC_CASH';
31099 l_component_type_code := 'S';
31100 l_component_appl_id := 222;
31101 l_amb_context_code := 'DEFAULT';
31102 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
31103 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
31104 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
31105 l_line_definition_owner_code := 'S';
31106 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
31107 --
31108 l_balance_type_code := 'A';
31109 l_segment := NULL;
31110 l_ccid := NULL;
31111 l_adr_transaction_coa_id := NULL;
31112 l_adr_accounting_coa_id := NULL;
31113 l_adr_flexfield_segment_code := NULL;
31114 l_adr_flex_value_set_id := NULL;
31115 l_adr_value_type_code := NULL;
31116 l_adr_value_combination_id := NULL;
31117 l_adr_value_segment_code := NULL;
31118
31119 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31123
31120 l_bflow_class_code := ''; -- 4219869 Business Flow
31121 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31122 l_budgetary_control_flag := 'N';
31124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31125 l_bflow_applied_to_amt := NULL; -- 5132302
31126 l_entered_amt_idx := NULL; -- 4262811
31127 l_accted_amt_idx := NULL; -- 4262811
31128 l_acc_rev_flag := NULL; -- 4262811
31129 l_accrual_line_num := NULL; -- 4262811
31130 l_tmp_amt := NULL; -- 4262811
31131 --
31132
31133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31134 l_balance_type_code <> 'B' THEN
31135 IF (NVL(p_source_66,'
31136 ') = 'JLBR_AR_BANK_CHARGES' OR
31137 NVL(p_source_66,'
31138 ') = 'JLBR_AR_FACTORING_CHARGES') AND
31139 NVL(p_source_7,'
31140 ') = 'FACTORING'
31141 THEN
31142
31143 --
31144 XLA_AE_LINES_PKG.SetNewLine;
31145
31146 p_balance_type_code := l_balance_type_code;
31147 -- set the flag so later we will know whether the gain loss line needs to be created
31148
31149 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31150 p_actual_flag :='A';
31151 END IF;
31152
31153 --
31154 -- bulk performance
31155 --
31156 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31157 p_header_num => 0); -- 4262811
31158 --
31159 -- set accounting line options
31160 --
31161 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31162 p_natural_side_code => 'C'
31163 , p_gain_or_loss_flag => 'N'
31164 , p_gl_transfer_mode_code => 'S'
31165 , p_acct_entry_type_code => 'A'
31166 , p_switch_side_flag => 'Y'
31167 , p_merge_duplicate_code => 'W'
31168 );
31169 --
31170 l_acc_rev_natural_side_code := 'D'; -- 4262811
31171 --
31172 --
31173 -- set accounting line type info
31174 --
31175 xla_ae_lines_pkg.SetAcctLineType
31176 (p_component_type => l_component_type
31177 ,p_event_type_code => l_event_type_code
31178 ,p_line_definition_owner_code => l_line_definition_owner_code
31179 ,p_line_definition_code => l_line_definition_code
31180 ,p_accounting_line_code => l_component_code
31181 ,p_accounting_line_type_code => l_component_type_code
31182 ,p_accounting_line_appl_id => l_component_appl_id
31183 ,p_amb_context_code => l_amb_context_code
31184 ,p_entity_code => l_entity_code
31185 ,p_event_class_code => l_event_class_code);
31186 --
31187 -- set accounting class
31188 --
31189 xla_ae_lines_pkg.SetAcctClass(
31190 p_accounting_class_code => 'CASH'
31191 , p_ae_header_id => l_ae_header_id
31192 );
31193
31194 --
31195 -- set rounding class
31196 --
31197 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31198 'CASH';
31199
31200 --
31201 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31202 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31203 --
31204 -- bulk performance
31205 --
31206 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31207
31208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31209 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31210
31211 -- 4955764
31212 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31213 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31214
31215 -- 4458381 Public Sector Enh
31216
31217 --
31218 -- set accounting attributes for the line type
31219 --
31220 l_entered_amt_idx := 10;
31221 l_accted_amt_idx := 15;
31222 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31223 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31224 l_rec_acct_attrs.array_char_value(1) := p_source_67;
31225 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31226 l_rec_acct_attrs.array_num_value(2) :=
31227 xla_ae_sources_pkg.GetSystemSourceNum(
31228 p_source_code => 'XLA_EVENT_APPL_ID'
31229 , p_source_type_code => 'Y'
31230 , p_source_application_id => 602
31231 );
31232 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31233 l_rec_acct_attrs.array_char_value(3) := p_source_69;
31234 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31235 l_rec_acct_attrs.array_char_value(4) :=
31236 xla_ae_sources_pkg.GetSystemSourceChar(
31237 p_source_code => 'XLA_ENTITY_CODE'
31238 , p_source_type_code => 'Y'
31239 , p_source_application_id => 602
31240 );
31241 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31242 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
31243 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31244 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
31245 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
31246 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
31247 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
31251 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
31248 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
31249 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
31250 l_rec_acct_attrs.array_char_value(9) := p_source_75;
31252 l_rec_acct_attrs.array_num_value(10) := p_source_76;
31253 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
31254 l_rec_acct_attrs.array_char_value(11) := p_source_77;
31255 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
31256 l_rec_acct_attrs.array_date_value(12) := p_source_78;
31257 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
31258 l_rec_acct_attrs.array_num_value(13) := p_source_79;
31259 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
31260 l_rec_acct_attrs.array_char_value(14) := p_source_80;
31261 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
31262 l_rec_acct_attrs.array_num_value(15) := p_source_81;
31263 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31264 l_rec_acct_attrs.array_num_value(16) := p_source_37;
31265 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31266 l_rec_acct_attrs.array_num_value(17) := p_source_38;
31267 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31268 l_rec_acct_attrs.array_char_value(18) := p_source_39;
31269 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
31270 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
31271 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
31272 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
31273 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
31274 l_rec_acct_attrs.array_char_value(21) := p_source_84;
31275 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
31276 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
31277
31278 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31279 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31280
31281 ---------------------------------------------------------------------------------------------------------------
31282 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31283 ---------------------------------------------------------------------------------------------------------------
31284 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31285
31286 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31287 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31288
31289 IF xla_accounting_cache_pkg.GetValueChar
31290 (p_source_code => 'LEDGER_CATEGORY_CODE'
31291 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31292 AND l_bflow_method_code = 'PRIOR_ENTRY'
31293 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31294 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31295 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31296 )
31297 THEN
31298 xla_ae_lines_pkg.BflowUpgEntry
31299 (p_business_method_code => l_bflow_method_code
31300 ,p_business_class_code => l_bflow_class_code
31301 ,p_balance_type => l_balance_type_code);
31302 ELSE
31303 NULL;
31304 -- No business flow processing for business flow method of NONE.
31305 END IF;
31306
31307 --
31308 -- call analytical criteria
31309 --
31310
31311 --
31312 -- call description
31313 --
31314
31315 xla_ae_lines_pkg.SetLineDescription(
31316 p_ae_header_id => l_ae_header_id
31317 ,p_description => Description_5 (
31318 p_application_id => p_application_id
31319 , p_ae_header_id => l_ae_header_id
31320 , p_source_4 => p_source_4
31321 , p_source_5 => p_source_5
31322 , p_source_6 => p_source_6
31323 , p_source_7 => p_source_7
31324 , p_source_7_meaning => p_source_7_meaning
31325 )
31326 );
31327
31328
31329 --
31330 -- call ADRs
31331 -- Bug 4922099
31332 --
31333 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31334 (NVL(l_actual_upg_option, 'N') = 'O') OR
31335 (NVL(l_enc_upg_option, 'N') = 'O')
31336 )
31337 THEN
31338 NULL;
31339 --
31340 --
31341
31342 l_ccid := AcctDerRule_16(
31343 p_application_id => p_application_id
31344 , p_ae_header_id => l_ae_header_id
31345 , p_source_18 => p_source_18
31346 , x_transaction_coa_id => l_adr_transaction_coa_id
31347 , x_accounting_coa_id => l_adr_accounting_coa_id
31348 , x_value_type_code => l_adr_value_type_code
31349 , p_side => 'NA'
31350 );
31351
31352 xla_ae_lines_pkg.set_ccid(
31353 p_code_combination_id => l_ccid
31354 , p_value_type_code => l_adr_value_type_code
31355 , p_transaction_coa_id => l_adr_transaction_coa_id
31356 , p_accounting_coa_id => l_adr_accounting_coa_id
31357 , p_adr_code => 'COLL_DOC_CASH'
31358 , p_adr_type_code => 'S'
31359 , p_component_type => l_component_type
31360 , p_component_code => l_component_code
31361 , p_component_type_code => l_component_type_code
31362 , p_component_appl_id => l_component_appl_id
31363 , p_amb_context_code => l_amb_context_code
31364 , p_side => 'NA'
31365 );
31366
31370 END IF;
31367
31368 --
31369 --
31371 --
31372 -- Bug 4922099
31373 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31374 (NVL(l_enc_upg_option, 'N') = 'O')
31375 ) AND
31376 (l_bflow_method_code = 'PRIOR_ENTRY')
31377 )
31378 THEN
31379 IF
31380 --
31381 1 = 2
31382 --
31383 THEN
31384 xla_accounting_err_pkg.build_message
31385 (p_appli_s_name => 'XLA'
31386 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31387 ,p_token_1 => 'LINE_NUMBER'
31388 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31389 ,p_token_2 => 'LINE_TYPE_NAME'
31390 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31391 l_component_type
31392 ,l_component_code
31393 ,l_component_type_code
31394 ,l_component_appl_id
31395 ,l_amb_context_code
31396 ,l_entity_code
31397 ,l_event_class_code
31398 )
31399 ,p_token_3 => 'OWNER'
31400 ,p_value_3 => xla_lookups_pkg.get_meaning(
31401 p_lookup_type => 'XLA_OWNER_TYPE'
31402 ,p_lookup_code => l_component_type_code
31403 )
31404 ,p_token_4 => 'PRODUCT_NAME'
31405 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31406 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31407 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31408 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31409 ,p_ae_header_id => NULL
31410 );
31411
31412 IF (C_LEVEL_ERROR>= g_log_level) THEN
31413 trace
31414 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31415 ,p_level => C_LEVEL_ERROR
31416 ,p_module => l_log_module);
31417 END IF;
31418 END IF;
31419 END IF;
31420 --
31421 --
31422 ------------------------------------------------------------------------------------------------
31423 -- 4219869 Business Flow
31424 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31425 -- Prior Entry. Currently, the following code is always generated.
31426 ------------------------------------------------------------------------------------------------
31427 XLA_AE_LINES_PKG.ValidateCurrentLine;
31428
31429 ------------------------------------------------------------------------------------
31430 -- 4219869 Business Flow
31431 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31432 ------------------------------------------------------------------------------------
31433 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31434
31435 ----------------------------------------------------------------------------------
31436 -- 4219869 Business Flow
31437 -- Update journal entry status -- Need to generate this within IF <condition>
31438 ----------------------------------------------------------------------------------
31439 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31440 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31441 ,p_balance_type_code => l_balance_type_code
31442 );
31443
31444 -------------------------------------------------------------------------------------------
31445 -- 4262811 - Generate the Accrual Reversal lines
31446 -------------------------------------------------------------------------------------------
31447 BEGIN
31448 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31449 (g_array_event(p_event_id).array_value_num('header_index'));
31450 IF l_acc_rev_flag IS NULL THEN
31451 l_acc_rev_flag := 'N';
31452 END IF;
31453 EXCEPTION
31454 WHEN OTHERS THEN
31455 l_acc_rev_flag := 'N';
31456 END;
31457 --
31458 IF (l_acc_rev_flag = 'Y') THEN
31459
31460 -- 4645092 ------------------------------------------------------------------------------
31461 -- To allow MPA report to determine if it should generate report process
31462 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31463 ------------------------------------------------------------------------------------------
31464
31465 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31466 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31467 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
31468 -- call ADRs
31469 -- Bug 4922099
31470 --
31474 )
31471 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31472 (NVL(l_actual_upg_option, 'N') = 'O') OR
31473 (NVL(l_enc_upg_option, 'N') = 'O')
31475 THEN
31476 NULL;
31477 --
31478 --
31479
31480 l_ccid := AcctDerRule_16(
31481 p_application_id => p_application_id
31482 , p_ae_header_id => l_ae_header_id
31483 , p_source_18 => p_source_18
31484 , x_transaction_coa_id => l_adr_transaction_coa_id
31485 , x_accounting_coa_id => l_adr_accounting_coa_id
31486 , x_value_type_code => l_adr_value_type_code
31487 , p_side => 'NA'
31488 );
31489
31490 xla_ae_lines_pkg.set_ccid(
31491 p_code_combination_id => l_ccid
31492 , p_value_type_code => l_adr_value_type_code
31493 , p_transaction_coa_id => l_adr_transaction_coa_id
31494 , p_accounting_coa_id => l_adr_accounting_coa_id
31495 , p_adr_code => 'COLL_DOC_CASH'
31496 , p_adr_type_code => 'S'
31497 , p_component_type => l_component_type
31498 , p_component_code => l_component_code
31499 , p_component_type_code => l_component_type_code
31500 , p_component_appl_id => l_component_appl_id
31501 , p_amb_context_code => l_amb_context_code
31502 , p_side => 'NA'
31503 );
31504
31505
31506 --
31507 --
31508 END IF;
31509
31510 --
31511 -- Update the line information that should be overwritten
31512 --
31513 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31514 p_header_num => 1);
31515 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31516
31517 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31518
31519 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31520 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31521 END IF;
31522
31523 --
31524 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31525 --
31526 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31527 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31528 ELSE
31529 ---------------------------------------------------------------------------------------------------
31530 -- 4262811a Switch Sign
31531 ---------------------------------------------------------------------------------------------------
31532 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31533 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31534 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31535 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31536 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31537 -- 5132302
31538 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31539 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31540
31541 END IF;
31542
31543 -- 4955764
31544 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31545 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31546
31547
31548 XLA_AE_LINES_PKG.ValidateCurrentLine;
31549 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31550
31551 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31552 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31553 ,p_balance_type_code => l_balance_type_code);
31554
31555 END IF;
31556
31557 -----------------------------------------------------------------------------------------
31558 -- 4262811 Multiperiod Accounting
31559 -----------------------------------------------------------------------------------------
31560 -- No MPA option is assigned.
31561
31562
31563 END IF;
31564 END IF;
31565 --
31566
31567 --
31568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31569 trace
31570 (p_msg => 'END of AcctLineType_73'
31571 ,p_level => C_LEVEL_PROCEDURE
31572 ,p_module => l_log_module);
31573 END IF;
31574 --
31575 EXCEPTION
31576 WHEN xla_exceptions_pkg.application_exception THEN
31577 RAISE;
31578 WHEN OTHERS THEN
31579 xla_exceptions_pkg.raise_message
31580 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_73');
31581 END AcctLineType_73;
31582 --
31583
31584 ---------------------------------------
31585 --
31586 -- PRIVATE FUNCTION
31587 -- AcctLineType_74
31588 --
31589 ---------------------------------------
31590 PROCEDURE AcctLineType_74 (
31591 p_application_id IN NUMBER
31592 ,p_event_id IN NUMBER
31593 ,p_calculate_acctd_flag IN VARCHAR2
31594 ,p_calculate_g_l_flag IN VARCHAR2
31595 ,p_actual_flag IN OUT VARCHAR2
31599 --Collection Document Bank Occurrence
31596 ,p_balance_type_code OUT VARCHAR2
31597 ,p_gain_or_loss_ref OUT VARCHAR2
31598
31600 , p_source_4 IN VARCHAR2
31601 --Collection Document Number
31602 , p_source_5 IN NUMBER
31603 --Collection Document Trade Note Number
31604 , p_source_6 IN VARCHAR2
31605 --Bordero Type
31606 , p_source_7 IN VARCHAR2
31607 , p_source_7_meaning IN VARCHAR2
31608 --Collection Document Discount Endorsement Account
31609 , p_source_20 IN NUMBER
31610 --Bill To Customer Account Identifier
31611 , p_source_37 IN NUMBER
31612 --Bill To Customer Site Use Identifier
31613 , p_source_38 IN NUMBER
31614 --SLA Party Type
31615 , p_source_39 IN VARCHAR2
31616 --Collection Document Distribution Line Type
31617 , p_source_66 IN VARCHAR2
31618 , p_source_66_meaning IN VARCHAR2
31619 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
31620 , p_source_67 IN VARCHAR2
31621 , p_source_67_meaning IN VARCHAR2
31622 --Applied To Distribution Link Type
31623 , p_source_69 IN VARCHAR2
31624 --Applied To Distribution Identifier
31625 , p_source_71 IN NUMBER
31626 --Applied To Distribution Document Identifier
31627 , p_source_72 IN NUMBER
31628 --Applied To Distribution Occurrence Identifier
31629 , p_source_73 IN NUMBER
31630 --Collection Document Distribution Identifier
31631 , p_source_74 IN NUMBER
31632 --Collection Document Distribution Link Type
31633 , p_source_75 IN VARCHAR2
31634 --Collection Document Distribution Entered Amount
31635 , p_source_76 IN NUMBER
31636 --Collection Document Distribution Entered Currency Code
31637 , p_source_77 IN VARCHAR2
31638 --Collection Document Distribution Conversion Date
31639 , p_source_78 IN DATE
31640 --Collection Document Distribution Conversion Rate
31641 , p_source_79 IN NUMBER
31642 --Collection Document Distribution Conversion Rate Type
31643 , p_source_80 IN VARCHAR2
31644 --Collection Document Distribution Accounted Amount
31645 , p_source_81 IN NUMBER
31646 --Collection Document Occurrence Identifier
31647 , p_source_82 IN NUMBER
31648 --Reversed Collection Document Distribution Identifier
31649 , p_source_83 IN NUMBER
31650 --Reversed Collection Document Distribution Link Type
31651 , p_source_84 IN VARCHAR2
31652 --Collection Document Occurrence Type
31653 , p_source_85 IN VARCHAR2
31654 , p_source_85_meaning IN VARCHAR2
31655 )
31656 IS
31657
31658 l_component_type VARCHAR2(80);
31659 l_component_code VARCHAR2(30);
31660 l_component_type_code VARCHAR2(1);
31661 l_component_appl_id INTEGER;
31662 l_amb_context_code VARCHAR2(30);
31663 l_entity_code VARCHAR2(30);
31664 l_event_class_code VARCHAR2(30);
31665 l_ae_header_id NUMBER;
31666 l_event_type_code VARCHAR2(30);
31667 l_line_definition_code VARCHAR2(30);
31668 l_line_definition_owner_code VARCHAR2(1);
31669 --
31670 -- adr variables
31671 l_segment VARCHAR2(30);
31672 l_ccid NUMBER;
31673 l_adr_transaction_coa_id NUMBER;
31674 l_adr_accounting_coa_id NUMBER;
31675 l_adr_flexfield_segment_code VARCHAR2(30);
31676 l_adr_flex_value_set_id NUMBER;
31677 l_adr_value_type_code VARCHAR2(30);
31678 l_adr_value_combination_id NUMBER;
31679 l_adr_value_segment_code VARCHAR2(30);
31680
31681 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31682 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31683 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31684 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31685
31686 -- 4262811 Variables ------------------------------------------------------------------------------------------
31687 l_entered_amt_idx NUMBER;
31688 l_accted_amt_idx NUMBER;
31689 l_acc_rev_flag VARCHAR2(1);
31690 l_accrual_line_num NUMBER;
31691 l_tmp_amt NUMBER;
31692 l_acc_rev_natural_side_code VARCHAR2(1);
31693
31694 l_num_entries NUMBER;
31695 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31696 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31697 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31698 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31699 l_recog_line_1 NUMBER;
31700 l_recog_line_2 NUMBER;
31701
31702 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31703 l_bflow_applied_to_amt NUMBER; -- 5132302
31704 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31705
31706 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31707
31708 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31709 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31710
31711 ---------------------------------------------------------------------------------------------------------------
31712
31713
31714 --
31715 -- bulk performance
31716 --
31717 l_balance_type_code VARCHAR2(1);
31721 --
31718 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31719 l_log_module VARCHAR2(240);
31720
31722 -- Upgrade strategy
31723 --
31724 l_actual_upg_option VARCHAR2(1);
31725 l_enc_upg_option VARCHAR2(1);
31726
31727 --
31728 BEGIN
31729 --
31730 IF g_log_enabled THEN
31731 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
31732 END IF;
31733 --
31734 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31735
31736 trace
31737 (p_msg => 'BEGIN of AcctLineType_74'
31738 ,p_level => C_LEVEL_PROCEDURE
31739 ,p_module => l_log_module);
31740
31741 END IF;
31742 --
31743 l_component_type := 'AMB_JLT';
31744 l_component_code := 'FACT_DOC_DISC_ENDRSMNT_CR';
31745 l_component_type_code := 'S';
31746 l_component_appl_id := 222;
31747 l_amb_context_code := 'DEFAULT';
31748 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
31749 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
31750 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
31751 l_line_definition_owner_code := 'S';
31752 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
31753 --
31754 l_balance_type_code := 'A';
31755 l_segment := NULL;
31756 l_ccid := NULL;
31757 l_adr_transaction_coa_id := NULL;
31758 l_adr_accounting_coa_id := NULL;
31759 l_adr_flexfield_segment_code := NULL;
31760 l_adr_flex_value_set_id := NULL;
31761 l_adr_value_type_code := NULL;
31762 l_adr_value_combination_id := NULL;
31763 l_adr_value_segment_code := NULL;
31764
31765 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31766 l_bflow_class_code := 'JLBR_AR_DISCOUNT_ENDORSEMENT'; -- 4219869 Business Flow
31767 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31768 l_budgetary_control_flag := 'N';
31769
31770 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31771 l_bflow_applied_to_amt := NULL; -- 5132302
31772 l_entered_amt_idx := NULL; -- 4262811
31773 l_accted_amt_idx := NULL; -- 4262811
31774 l_acc_rev_flag := NULL; -- 4262811
31775 l_accrual_line_num := NULL; -- 4262811
31776 l_tmp_amt := NULL; -- 4262811
31777 --
31778
31779 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31780 l_balance_type_code <> 'B' THEN
31781 IF NVL(p_source_66,'
31782 ') = 'JLBR_AR_ENDORSEMENT' AND
31783 NVL(p_source_7,'
31784 ') = 'FACTORING' AND
31785 NVL(p_source_85,'
31786 ') = 'REMITTANCE_OCCURRENCE'
31787 THEN
31788
31789 --
31790 XLA_AE_LINES_PKG.SetNewLine;
31791
31792 p_balance_type_code := l_balance_type_code;
31793 -- set the flag so later we will know whether the gain loss line needs to be created
31794
31795 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31796 p_actual_flag :='A';
31797 END IF;
31798
31799 --
31800 -- bulk performance
31801 --
31802 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31803 p_header_num => 0); -- 4262811
31804 --
31805 -- set accounting line options
31806 --
31807 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31808 p_natural_side_code => 'C'
31809 , p_gain_or_loss_flag => 'N'
31810 , p_gl_transfer_mode_code => 'S'
31811 , p_acct_entry_type_code => 'A'
31812 , p_switch_side_flag => 'Y'
31813 , p_merge_duplicate_code => 'A'
31814 );
31815 --
31816 l_acc_rev_natural_side_code := 'D'; -- 4262811
31817 --
31818 --
31819 -- set accounting line type info
31820 --
31821 xla_ae_lines_pkg.SetAcctLineType
31822 (p_component_type => l_component_type
31823 ,p_event_type_code => l_event_type_code
31824 ,p_line_definition_owner_code => l_line_definition_owner_code
31825 ,p_line_definition_code => l_line_definition_code
31826 ,p_accounting_line_code => l_component_code
31827 ,p_accounting_line_type_code => l_component_type_code
31828 ,p_accounting_line_appl_id => l_component_appl_id
31829 ,p_amb_context_code => l_amb_context_code
31830 ,p_entity_code => l_entity_code
31831 ,p_event_class_code => l_event_class_code);
31832 --
31833 -- set accounting class
31834 --
31835 xla_ae_lines_pkg.SetAcctClass(
31836 p_accounting_class_code => 'FACTOR'
31837 , p_ae_header_id => l_ae_header_id
31838 );
31839
31840 --
31841 -- set rounding class
31842 --
31843 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31844 'FACTOR';
31845
31846 --
31847 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31848 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31849 --
31850 -- bulk performance
31851 --
31852 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31853
31857 -- 4955764
31854 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31855 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31856
31858 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31859 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31860
31861 -- 4458381 Public Sector Enh
31862
31863 --
31864 -- set accounting attributes for the line type
31865 --
31866 l_entered_amt_idx := 10;
31867 l_accted_amt_idx := 15;
31868 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31869 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31870 l_rec_acct_attrs.array_char_value(1) := p_source_67;
31871 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31872 l_rec_acct_attrs.array_num_value(2) :=
31873 xla_ae_sources_pkg.GetSystemSourceNum(
31874 p_source_code => 'XLA_EVENT_APPL_ID'
31875 , p_source_type_code => 'Y'
31876 , p_source_application_id => 602
31877 );
31878 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31879 l_rec_acct_attrs.array_char_value(3) := p_source_69;
31880 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31881 l_rec_acct_attrs.array_char_value(4) :=
31882 xla_ae_sources_pkg.GetSystemSourceChar(
31883 p_source_code => 'XLA_ENTITY_CODE'
31884 , p_source_type_code => 'Y'
31885 , p_source_application_id => 602
31886 );
31887 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31888 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
31889 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31890 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
31891 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
31892 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
31893 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
31894 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
31895 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
31896 l_rec_acct_attrs.array_char_value(9) := p_source_75;
31897 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
31898 l_rec_acct_attrs.array_num_value(10) := p_source_76;
31899 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
31900 l_rec_acct_attrs.array_char_value(11) := p_source_77;
31901 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
31902 l_rec_acct_attrs.array_date_value(12) := p_source_78;
31903 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
31904 l_rec_acct_attrs.array_num_value(13) := p_source_79;
31905 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
31906 l_rec_acct_attrs.array_char_value(14) := p_source_80;
31907 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
31908 l_rec_acct_attrs.array_num_value(15) := p_source_81;
31909 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31910 l_rec_acct_attrs.array_num_value(16) := p_source_37;
31911 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31912 l_rec_acct_attrs.array_num_value(17) := p_source_38;
31913 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31914 l_rec_acct_attrs.array_char_value(18) := p_source_39;
31915 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
31916 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
31917 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
31918 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
31919 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
31920 l_rec_acct_attrs.array_char_value(21) := p_source_84;
31921 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
31922 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
31923
31924 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31925 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31926
31927 ---------------------------------------------------------------------------------------------------------------
31928 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31929 ---------------------------------------------------------------------------------------------------------------
31930 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31931
31932 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31933 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31934
31935 IF xla_accounting_cache_pkg.GetValueChar
31936 (p_source_code => 'LEDGER_CATEGORY_CODE'
31937 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31938 AND l_bflow_method_code = 'PRIOR_ENTRY'
31939 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31940 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31941 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31942 )
31943 THEN
31944 xla_ae_lines_pkg.BflowUpgEntry
31945 (p_business_method_code => l_bflow_method_code
31946 ,p_business_class_code => l_bflow_class_code
31947 ,p_balance_type => l_balance_type_code);
31948 ELSE
31949 NULL;
31950 -- No business flow processing for business flow method of NONE.
31951 END IF;
31952
31953 --
31954 -- call analytical criteria
31955 --
31956
31957 --
31958 -- call description
31959 --
31963 ,p_description => Description_7 (
31960
31961 xla_ae_lines_pkg.SetLineDescription(
31962 p_ae_header_id => l_ae_header_id
31964 p_application_id => p_application_id
31965 , p_ae_header_id => l_ae_header_id
31966 , p_source_4 => p_source_4
31967 , p_source_5 => p_source_5
31968 , p_source_6 => p_source_6
31969 )
31970 );
31971
31972
31973 --
31974 -- call ADRs
31975 -- Bug 4922099
31976 --
31977 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31978 (NVL(l_actual_upg_option, 'N') = 'O') OR
31979 (NVL(l_enc_upg_option, 'N') = 'O')
31980 )
31981 THEN
31982 NULL;
31983 --
31984 --
31985
31986 l_ccid := AcctDerRule_18(
31987 p_application_id => p_application_id
31988 , p_ae_header_id => l_ae_header_id
31989 , p_source_20 => p_source_20
31990 , x_transaction_coa_id => l_adr_transaction_coa_id
31991 , x_accounting_coa_id => l_adr_accounting_coa_id
31992 , x_value_type_code => l_adr_value_type_code
31993 , p_side => 'NA'
31994 );
31995
31996 xla_ae_lines_pkg.set_ccid(
31997 p_code_combination_id => l_ccid
31998 , p_value_type_code => l_adr_value_type_code
31999 , p_transaction_coa_id => l_adr_transaction_coa_id
32000 , p_accounting_coa_id => l_adr_accounting_coa_id
32001 , p_adr_code => 'COLL_DOC_DISC_ENDRSMNT'
32002 , p_adr_type_code => 'S'
32003 , p_component_type => l_component_type
32004 , p_component_code => l_component_code
32005 , p_component_type_code => l_component_type_code
32006 , p_component_appl_id => l_component_appl_id
32007 , p_amb_context_code => l_amb_context_code
32008 , p_side => 'NA'
32009 );
32010
32011
32012 --
32013 --
32014 END IF;
32015 --
32016 -- Bug 4922099
32017 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32018 (NVL(l_enc_upg_option, 'N') = 'O')
32019 ) AND
32020 (l_bflow_method_code = 'PRIOR_ENTRY')
32021 )
32022 THEN
32023 IF
32024 --
32025 1 = 2
32026 --
32027 THEN
32028 xla_accounting_err_pkg.build_message
32029 (p_appli_s_name => 'XLA'
32030 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32031 ,p_token_1 => 'LINE_NUMBER'
32032 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32033 ,p_token_2 => 'LINE_TYPE_NAME'
32034 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32035 l_component_type
32036 ,l_component_code
32037 ,l_component_type_code
32038 ,l_component_appl_id
32039 ,l_amb_context_code
32040 ,l_entity_code
32041 ,l_event_class_code
32042 )
32043 ,p_token_3 => 'OWNER'
32044 ,p_value_3 => xla_lookups_pkg.get_meaning(
32045 p_lookup_type => 'XLA_OWNER_TYPE'
32046 ,p_lookup_code => l_component_type_code
32047 )
32048 ,p_token_4 => 'PRODUCT_NAME'
32049 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32050 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32051 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32052 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32053 ,p_ae_header_id => NULL
32054 );
32055
32056 IF (C_LEVEL_ERROR>= g_log_level) THEN
32057 trace
32058 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32059 ,p_level => C_LEVEL_ERROR
32060 ,p_module => l_log_module);
32061 END IF;
32062 END IF;
32063 END IF;
32064 --
32065 --
32066 ------------------------------------------------------------------------------------------------
32067 -- 4219869 Business Flow
32068 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32069 -- Prior Entry. Currently, the following code is always generated.
32070 ------------------------------------------------------------------------------------------------
32071 XLA_AE_LINES_PKG.ValidateCurrentLine;
32072
32073 ------------------------------------------------------------------------------------
32074 -- 4219869 Business Flow
32078
32075 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32076 ------------------------------------------------------------------------------------
32077 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32079 ----------------------------------------------------------------------------------
32080 -- 4219869 Business Flow
32081 -- Update journal entry status -- Need to generate this within IF <condition>
32082 ----------------------------------------------------------------------------------
32083 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32084 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32085 ,p_balance_type_code => l_balance_type_code
32086 );
32087
32088 -------------------------------------------------------------------------------------------
32089 -- 4262811 - Generate the Accrual Reversal lines
32090 -------------------------------------------------------------------------------------------
32091 BEGIN
32092 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32093 (g_array_event(p_event_id).array_value_num('header_index'));
32094 IF l_acc_rev_flag IS NULL THEN
32095 l_acc_rev_flag := 'N';
32096 END IF;
32097 EXCEPTION
32098 WHEN OTHERS THEN
32099 l_acc_rev_flag := 'N';
32100 END;
32101 --
32102 IF (l_acc_rev_flag = 'Y') THEN
32103
32104 -- 4645092 ------------------------------------------------------------------------------
32105 -- To allow MPA report to determine if it should generate report process
32106 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32107 ------------------------------------------------------------------------------------------
32108
32109 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32110 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32111 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32112 -- call ADRs
32113 -- Bug 4922099
32114 --
32115 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32116 (NVL(l_actual_upg_option, 'N') = 'O') OR
32117 (NVL(l_enc_upg_option, 'N') = 'O')
32118 )
32119 THEN
32120 NULL;
32121 --
32122 --
32123
32124 l_ccid := AcctDerRule_18(
32125 p_application_id => p_application_id
32126 , p_ae_header_id => l_ae_header_id
32127 , p_source_20 => p_source_20
32128 , x_transaction_coa_id => l_adr_transaction_coa_id
32129 , x_accounting_coa_id => l_adr_accounting_coa_id
32130 , x_value_type_code => l_adr_value_type_code
32131 , p_side => 'NA'
32132 );
32133
32134 xla_ae_lines_pkg.set_ccid(
32135 p_code_combination_id => l_ccid
32136 , p_value_type_code => l_adr_value_type_code
32137 , p_transaction_coa_id => l_adr_transaction_coa_id
32138 , p_accounting_coa_id => l_adr_accounting_coa_id
32139 , p_adr_code => 'COLL_DOC_DISC_ENDRSMNT'
32140 , p_adr_type_code => 'S'
32141 , p_component_type => l_component_type
32142 , p_component_code => l_component_code
32143 , p_component_type_code => l_component_type_code
32144 , p_component_appl_id => l_component_appl_id
32145 , p_amb_context_code => l_amb_context_code
32146 , p_side => 'NA'
32147 );
32148
32149
32150 --
32151 --
32152 END IF;
32153
32154 --
32155 -- Update the line information that should be overwritten
32156 --
32157 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32158 p_header_num => 1);
32159 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32160
32161 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32162
32163 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32164 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32165 END IF;
32166
32167 --
32168 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32169 --
32170 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32171 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32172 ELSE
32173 ---------------------------------------------------------------------------------------------------
32174 -- 4262811a Switch Sign
32175 ---------------------------------------------------------------------------------------------------
32176 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32178 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32179 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32180 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32181 -- 5132302
32182 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32183 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32184
32185 END IF;
32186
32187 -- 4955764
32191
32188 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32189 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32190
32192 XLA_AE_LINES_PKG.ValidateCurrentLine;
32193 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32194
32195 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32196 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32197 ,p_balance_type_code => l_balance_type_code);
32198
32199 END IF;
32200
32201 -----------------------------------------------------------------------------------------
32202 -- 4262811 Multiperiod Accounting
32203 -----------------------------------------------------------------------------------------
32204 -- No MPA option is assigned.
32205
32206
32207 END IF;
32208 END IF;
32209 --
32210
32211 --
32212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32213 trace
32214 (p_msg => 'END of AcctLineType_74'
32215 ,p_level => C_LEVEL_PROCEDURE
32216 ,p_module => l_log_module);
32217 END IF;
32218 --
32219 EXCEPTION
32220 WHEN xla_exceptions_pkg.application_exception THEN
32221 RAISE;
32222 WHEN OTHERS THEN
32223 xla_exceptions_pkg.raise_message
32224 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_74');
32225 END AcctLineType_74;
32226 --
32227
32228 ---------------------------------------
32229 --
32230 -- PRIVATE FUNCTION
32231 -- AcctLineType_75
32232 --
32233 ---------------------------------------
32234 PROCEDURE AcctLineType_75 (
32235 p_application_id IN NUMBER
32236 ,p_event_id IN NUMBER
32237 ,p_calculate_acctd_flag IN VARCHAR2
32238 ,p_calculate_g_l_flag IN VARCHAR2
32239 ,p_actual_flag IN OUT VARCHAR2
32240 ,p_balance_type_code OUT VARCHAR2
32241 ,p_gain_or_loss_ref OUT VARCHAR2
32242
32243 --Bordero Type
32244 , p_source_7 IN VARCHAR2
32245 , p_source_7_meaning IN VARCHAR2
32246 --SLA Party Type
32247 , p_source_39 IN VARCHAR2
32248 --Collection Document Distribution Line Type
32249 , p_source_66 IN VARCHAR2
32250 , p_source_66_meaning IN VARCHAR2
32251 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
32252 , p_source_67 IN VARCHAR2
32253 , p_source_67_meaning IN VARCHAR2
32254 --Applied To Distribution Link Type
32255 , p_source_69 IN VARCHAR2
32256 --Applied To Distribution Identifier
32257 , p_source_71 IN NUMBER
32258 --Applied To Distribution Document Identifier
32259 , p_source_72 IN NUMBER
32260 --Applied To Distribution Occurrence Identifier
32261 , p_source_73 IN NUMBER
32262 --Collection Document Distribution Identifier
32263 , p_source_74 IN NUMBER
32264 --Collection Document Distribution Link Type
32265 , p_source_75 IN VARCHAR2
32266 --Collection Document Distribution Entered Amount
32267 , p_source_76 IN NUMBER
32268 --Collection Document Distribution Entered Currency Code
32269 , p_source_77 IN VARCHAR2
32270 --Collection Document Distribution Accounted Amount
32271 , p_source_81 IN NUMBER
32272 --Collection Document Occurrence Identifier
32273 , p_source_82 IN NUMBER
32274 --Reversed Collection Document Distribution Identifier
32275 , p_source_83 IN NUMBER
32276 --Reversed Collection Document Distribution Link Type
32277 , p_source_84 IN VARCHAR2
32278 --Collection Document Occurrence Type
32279 , p_source_85 IN VARCHAR2
32280 , p_source_85_meaning IN VARCHAR2
32281 )
32282 IS
32283
32284 l_component_type VARCHAR2(80);
32285 l_component_code VARCHAR2(30);
32286 l_component_type_code VARCHAR2(1);
32287 l_component_appl_id INTEGER;
32288 l_amb_context_code VARCHAR2(30);
32289 l_entity_code VARCHAR2(30);
32290 l_event_class_code VARCHAR2(30);
32291 l_ae_header_id NUMBER;
32292 l_event_type_code VARCHAR2(30);
32293 l_line_definition_code VARCHAR2(30);
32294 l_line_definition_owner_code VARCHAR2(1);
32295 --
32296 -- adr variables
32297 l_segment VARCHAR2(30);
32298 l_ccid NUMBER;
32299 l_adr_transaction_coa_id NUMBER;
32300 l_adr_accounting_coa_id NUMBER;
32301 l_adr_flexfield_segment_code VARCHAR2(30);
32302 l_adr_flex_value_set_id NUMBER;
32303 l_adr_value_type_code VARCHAR2(30);
32304 l_adr_value_combination_id NUMBER;
32305 l_adr_value_segment_code VARCHAR2(30);
32306
32307 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32308 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32309 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32310 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32311
32312 -- 4262811 Variables ------------------------------------------------------------------------------------------
32313 l_entered_amt_idx NUMBER;
32314 l_accted_amt_idx NUMBER;
32315 l_acc_rev_flag VARCHAR2(1);
32316 l_accrual_line_num NUMBER;
32317 l_tmp_amt NUMBER;
32318 l_acc_rev_natural_side_code VARCHAR2(1);
32319
32320 l_num_entries NUMBER;
32321 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32322 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32323 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32327
32324 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32325 l_recog_line_1 NUMBER;
32326 l_recog_line_2 NUMBER;
32328 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32329 l_bflow_applied_to_amt NUMBER; -- 5132302
32330 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32331
32332 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32333
32334 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32335 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32336
32337 ---------------------------------------------------------------------------------------------------------------
32338
32339
32340 --
32341 -- bulk performance
32342 --
32343 l_balance_type_code VARCHAR2(1);
32344 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32345 l_log_module VARCHAR2(240);
32346
32347 --
32348 -- Upgrade strategy
32349 --
32350 l_actual_upg_option VARCHAR2(1);
32351 l_enc_upg_option VARCHAR2(1);
32352
32353 --
32354 BEGIN
32355 --
32356 IF g_log_enabled THEN
32357 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
32358 END IF;
32359 --
32360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32361
32362 trace
32363 (p_msg => 'BEGIN of AcctLineType_75'
32364 ,p_level => C_LEVEL_PROCEDURE
32365 ,p_module => l_log_module);
32366
32367 END IF;
32368 --
32369 l_component_type := 'AMB_JLT';
32370 l_component_code := 'FACT_DOC_DISC_ENDRSMNT_DR';
32371 l_component_type_code := 'S';
32372 l_component_appl_id := 222;
32373 l_amb_context_code := 'DEFAULT';
32374 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
32375 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
32376 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
32377 l_line_definition_owner_code := 'S';
32378 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
32379 --
32380 l_balance_type_code := 'A';
32381 l_segment := NULL;
32382 l_ccid := NULL;
32383 l_adr_transaction_coa_id := NULL;
32384 l_adr_accounting_coa_id := NULL;
32385 l_adr_flexfield_segment_code := NULL;
32386 l_adr_flex_value_set_id := NULL;
32387 l_adr_value_type_code := NULL;
32388 l_adr_value_combination_id := NULL;
32389 l_adr_value_segment_code := NULL;
32390
32391 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
32392 l_bflow_class_code := 'JLBR_AR_DISCOUNT_ENDORSEMENT'; -- 4219869 Business Flow
32393 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
32394 l_budgetary_control_flag := 'N';
32395
32396 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32397 l_bflow_applied_to_amt := NULL; -- 5132302
32398 l_entered_amt_idx := NULL; -- 4262811
32399 l_accted_amt_idx := NULL; -- 4262811
32400 l_acc_rev_flag := NULL; -- 4262811
32401 l_accrual_line_num := NULL; -- 4262811
32402 l_tmp_amt := NULL; -- 4262811
32403 --
32404
32405 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32406 l_balance_type_code <> 'B' THEN
32407 IF NVL(p_source_66,'
32408 ') = 'JLBR_AR_ENDORSEMENT' AND
32409 NVL(p_source_7,'
32410 ') = 'FACTORING' AND
32411 NVL(p_source_85,'
32412 ') = 'RETURN_OCCURRENCE'
32413 THEN
32414
32415 --
32416 XLA_AE_LINES_PKG.SetNewLine;
32417
32418 p_balance_type_code := l_balance_type_code;
32419 -- set the flag so later we will know whether the gain loss line needs to be created
32420
32421 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32422 p_actual_flag :='A';
32423 END IF;
32424
32425 --
32426 -- bulk performance
32427 --
32428 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32429 p_header_num => 0); -- 4262811
32430 --
32431 -- set accounting line options
32432 --
32433 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32434 p_natural_side_code => 'D'
32435 , p_gain_or_loss_flag => 'N'
32436 , p_gl_transfer_mode_code => 'S'
32437 , p_acct_entry_type_code => 'A'
32438 , p_switch_side_flag => 'Y'
32439 , p_merge_duplicate_code => 'A'
32440 );
32441 --
32442 l_acc_rev_natural_side_code := 'C'; -- 4262811
32443 --
32444 --
32445 -- set accounting line type info
32446 --
32447 xla_ae_lines_pkg.SetAcctLineType
32448 (p_component_type => l_component_type
32449 ,p_event_type_code => l_event_type_code
32450 ,p_line_definition_owner_code => l_line_definition_owner_code
32451 ,p_line_definition_code => l_line_definition_code
32452 ,p_accounting_line_code => l_component_code
32453 ,p_accounting_line_type_code => l_component_type_code
32454 ,p_accounting_line_appl_id => l_component_appl_id
32455 ,p_amb_context_code => l_amb_context_code
32456 ,p_entity_code => l_entity_code
32457 ,p_event_class_code => l_event_class_code);
32458 --
32459 -- set accounting class
32460 --
32461 xla_ae_lines_pkg.SetAcctClass(
32465
32462 p_accounting_class_code => 'FACTOR'
32463 , p_ae_header_id => l_ae_header_id
32464 );
32466 --
32467 -- set rounding class
32468 --
32469 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32470 'FACTOR';
32471
32472 --
32473 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32474 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32475 --
32476 -- bulk performance
32477 --
32478 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32479
32480 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32481 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32482
32483 -- 4955764
32484 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32485 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32486
32487 -- 4458381 Public Sector Enh
32488
32489 --
32490 -- set accounting attributes for the line type
32491 --
32492 l_entered_amt_idx := 10;
32493 l_accted_amt_idx := 12;
32494 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32495 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32496 l_rec_acct_attrs.array_char_value(1) := p_source_67;
32497 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32498 l_rec_acct_attrs.array_num_value(2) :=
32499 xla_ae_sources_pkg.GetSystemSourceNum(
32500 p_source_code => 'XLA_EVENT_APPL_ID'
32501 , p_source_type_code => 'Y'
32502 , p_source_application_id => 602
32503 );
32504 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32505 l_rec_acct_attrs.array_char_value(3) := p_source_69;
32506 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32507 l_rec_acct_attrs.array_char_value(4) :=
32508 xla_ae_sources_pkg.GetSystemSourceChar(
32509 p_source_code => 'XLA_ENTITY_CODE'
32510 , p_source_type_code => 'Y'
32511 , p_source_application_id => 602
32512 );
32513 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32514 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
32515 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32516 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
32517 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
32518 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
32519 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
32520 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
32521 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
32522 l_rec_acct_attrs.array_char_value(9) := p_source_75;
32523 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
32524 l_rec_acct_attrs.array_num_value(10) := p_source_76;
32525 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
32526 l_rec_acct_attrs.array_char_value(11) := p_source_77;
32527 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
32528 l_rec_acct_attrs.array_num_value(12) := p_source_81;
32529 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
32530 l_rec_acct_attrs.array_char_value(13) := p_source_39;
32531 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
32532 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_82);
32533 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
32534 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_83);
32535 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
32536 l_rec_acct_attrs.array_char_value(16) := p_source_84;
32537 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
32538 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_82);
32539
32540 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32541 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32542
32543 ---------------------------------------------------------------------------------------------------------------
32544 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32545 ---------------------------------------------------------------------------------------------------------------
32546 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32547
32548 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32549 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32550
32551 IF xla_accounting_cache_pkg.GetValueChar
32552 (p_source_code => 'LEDGER_CATEGORY_CODE'
32553 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32554 AND l_bflow_method_code = 'PRIOR_ENTRY'
32555 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32556 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32557 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32558 )
32559 THEN
32560 xla_ae_lines_pkg.BflowUpgEntry
32561 (p_business_method_code => l_bflow_method_code
32562 ,p_business_class_code => l_bflow_class_code
32563 ,p_balance_type => l_balance_type_code);
32564 ELSE
32565 NULL;
32566 XLA_AE_LINES_PKG.business_flow_validation(
32567 p_business_method_code => l_bflow_method_code
32571
32568 ,p_business_class_code => l_bflow_class_code
32569 ,p_inherit_description_flag => l_inherit_desc_flag);
32570 END IF;
32572 --
32573 -- call analytical criteria
32574 --
32575 -- Inherited Analytical Criteria for business flow method of Prior Entry.
32576 --
32577 -- call description
32578 --
32579 -- No description or it is inherited.
32580 --
32581 -- call ADRs
32582 -- Bug 4922099
32583 --
32584 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32585 (NVL(l_actual_upg_option, 'N') = 'O') OR
32586 (NVL(l_enc_upg_option, 'N') = 'O')
32587 )
32588 THEN
32589 NULL;
32590 --
32591 --
32592
32593 --
32594 --
32595 END IF;
32596 --
32597 -- Bug 4922099
32598 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32599 (NVL(l_enc_upg_option, 'N') = 'O')
32600 ) AND
32601 (l_bflow_method_code = 'PRIOR_ENTRY')
32602 )
32603 THEN
32604 IF
32605 --
32606 1 = 1
32607 --
32608 THEN
32609 xla_accounting_err_pkg.build_message
32610 (p_appli_s_name => 'XLA'
32611 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32612 ,p_token_1 => 'LINE_NUMBER'
32613 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32614 ,p_token_2 => 'LINE_TYPE_NAME'
32615 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32616 l_component_type
32617 ,l_component_code
32618 ,l_component_type_code
32619 ,l_component_appl_id
32620 ,l_amb_context_code
32621 ,l_entity_code
32622 ,l_event_class_code
32623 )
32624 ,p_token_3 => 'OWNER'
32625 ,p_value_3 => xla_lookups_pkg.get_meaning(
32626 p_lookup_type => 'XLA_OWNER_TYPE'
32627 ,p_lookup_code => l_component_type_code
32628 )
32629 ,p_token_4 => 'PRODUCT_NAME'
32630 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32631 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32632 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32633 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32634 ,p_ae_header_id => NULL
32635 );
32636
32637 IF (C_LEVEL_ERROR>= g_log_level) THEN
32638 trace
32639 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32640 ,p_level => C_LEVEL_ERROR
32641 ,p_module => l_log_module);
32642 END IF;
32643 END IF;
32644 END IF;
32645 --
32646 --
32647 ------------------------------------------------------------------------------------------------
32648 -- 4219869 Business Flow
32649 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32650 -- Prior Entry. Currently, the following code is always generated.
32651 ------------------------------------------------------------------------------------------------
32652 -- No ValidateCurrentLine for business flow method of Prior Entry
32653
32654 ------------------------------------------------------------------------------------
32655 -- 4219869 Business Flow
32656 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32657 ------------------------------------------------------------------------------------
32658 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32659
32660 ----------------------------------------------------------------------------------
32661 -- 4219869 Business Flow
32662 -- Update journal entry status -- Need to generate this within IF <condition>
32663 ----------------------------------------------------------------------------------
32664 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32665 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32666 ,p_balance_type_code => l_balance_type_code
32667 );
32668
32669 -------------------------------------------------------------------------------------------
32670 -- 4262811 - Generate the Accrual Reversal lines
32671 -------------------------------------------------------------------------------------------
32672 BEGIN
32673 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32674 (g_array_event(p_event_id).array_value_num('header_index'));
32675 IF l_acc_rev_flag IS NULL THEN
32676 l_acc_rev_flag := 'N';
32680 l_acc_rev_flag := 'N';
32677 END IF;
32678 EXCEPTION
32679 WHEN OTHERS THEN
32681 END;
32682 --
32683 IF (l_acc_rev_flag = 'Y') THEN
32684
32685 -- 4645092 ------------------------------------------------------------------------------
32686 -- To allow MPA report to determine if it should generate report process
32687 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32688 ------------------------------------------------------------------------------------------
32689
32690 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32691 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32692 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32693 -- call ADRs
32694 -- Bug 4922099
32695 --
32696 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32697 (NVL(l_actual_upg_option, 'N') = 'O') OR
32698 (NVL(l_enc_upg_option, 'N') = 'O')
32699 )
32700 THEN
32701 NULL;
32702 --
32703 --
32704
32705 --
32706 --
32707 END IF;
32708
32709 --
32710 -- Update the line information that should be overwritten
32711 --
32712 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32713 p_header_num => 1);
32714 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32715
32716 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32717
32718 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32719 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32720 END IF;
32721
32722 --
32723 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32724 --
32725 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32726 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32727 ELSE
32728 ---------------------------------------------------------------------------------------------------
32729 -- 4262811a Switch Sign
32730 ---------------------------------------------------------------------------------------------------
32731 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32732 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32733 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32734 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32735 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32736 -- 5132302
32737 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32738 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32739
32740 END IF;
32741
32742 -- 4955764
32743 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32744 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32745
32746
32747 XLA_AE_LINES_PKG.ValidateCurrentLine;
32748 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32749
32750 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32751 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32752 ,p_balance_type_code => l_balance_type_code);
32753
32754 END IF;
32755
32756 -----------------------------------------------------------------------------------------
32757 -- 4262811 Multiperiod Accounting
32758 -----------------------------------------------------------------------------------------
32759 -- No MPA option is assigned.
32760
32761
32762 END IF;
32763 END IF;
32764 --
32765
32766 --
32767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32768 trace
32769 (p_msg => 'END of AcctLineType_75'
32770 ,p_level => C_LEVEL_PROCEDURE
32771 ,p_module => l_log_module);
32772 END IF;
32773 --
32774 EXCEPTION
32775 WHEN xla_exceptions_pkg.application_exception THEN
32776 RAISE;
32777 WHEN OTHERS THEN
32778 xla_exceptions_pkg.raise_message
32779 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_75');
32780 END AcctLineType_75;
32781 --
32782
32783 ---------------------------------------
32784 --
32785 -- PRIVATE FUNCTION
32786 -- AcctLineType_76
32787 --
32788 ---------------------------------------
32789 PROCEDURE AcctLineType_76 (
32790 p_application_id IN NUMBER
32791 ,p_event_id IN NUMBER
32792 ,p_calculate_acctd_flag IN VARCHAR2
32793 ,p_calculate_g_l_flag IN VARCHAR2
32794 ,p_actual_flag IN OUT VARCHAR2
32795 ,p_balance_type_code OUT VARCHAR2
32796 ,p_gain_or_loss_ref OUT VARCHAR2
32797
32798 --Collection Document Bank Occurrence
32799 , p_source_4 IN VARCHAR2
32800 --Collection Document Number
32801 , p_source_5 IN NUMBER
32802 --Collection Document Trade Note Number
32803 , p_source_6 IN VARCHAR2
32804 --Bordero Type
32805 , p_source_7 IN VARCHAR2
32809 --Bill To Customer Account Identifier
32806 , p_source_7_meaning IN VARCHAR2
32807 --Collection Document Factoring Charges Account
32808 , p_source_21 IN NUMBER
32810 , p_source_37 IN NUMBER
32811 --Bill To Customer Site Use Identifier
32812 , p_source_38 IN NUMBER
32813 --SLA Party Type
32814 , p_source_39 IN VARCHAR2
32815 --Collection Document Distribution Line Type
32816 , p_source_66 IN VARCHAR2
32817 , p_source_66_meaning IN VARCHAR2
32818 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
32819 , p_source_67 IN VARCHAR2
32820 , p_source_67_meaning IN VARCHAR2
32821 --Applied To Distribution Link Type
32822 , p_source_69 IN VARCHAR2
32823 --Applied To Distribution Identifier
32824 , p_source_71 IN NUMBER
32825 --Applied To Distribution Document Identifier
32826 , p_source_72 IN NUMBER
32827 --Applied To Distribution Occurrence Identifier
32828 , p_source_73 IN NUMBER
32829 --Collection Document Distribution Identifier
32830 , p_source_74 IN NUMBER
32831 --Collection Document Distribution Link Type
32832 , p_source_75 IN VARCHAR2
32833 --Collection Document Distribution Entered Amount
32834 , p_source_76 IN NUMBER
32835 --Collection Document Distribution Entered Currency Code
32836 , p_source_77 IN VARCHAR2
32837 --Collection Document Distribution Conversion Date
32838 , p_source_78 IN DATE
32839 --Collection Document Distribution Conversion Rate
32840 , p_source_79 IN NUMBER
32841 --Collection Document Distribution Conversion Rate Type
32842 , p_source_80 IN VARCHAR2
32843 --Collection Document Distribution Accounted Amount
32844 , p_source_81 IN NUMBER
32845 --Collection Document Occurrence Identifier
32846 , p_source_82 IN NUMBER
32847 --Reversed Collection Document Distribution Identifier
32848 , p_source_83 IN NUMBER
32849 --Reversed Collection Document Distribution Link Type
32850 , p_source_84 IN VARCHAR2
32851 )
32852 IS
32853
32854 l_component_type VARCHAR2(80);
32855 l_component_code VARCHAR2(30);
32856 l_component_type_code VARCHAR2(1);
32857 l_component_appl_id INTEGER;
32858 l_amb_context_code VARCHAR2(30);
32859 l_entity_code VARCHAR2(30);
32860 l_event_class_code VARCHAR2(30);
32861 l_ae_header_id NUMBER;
32862 l_event_type_code VARCHAR2(30);
32863 l_line_definition_code VARCHAR2(30);
32864 l_line_definition_owner_code VARCHAR2(1);
32865 --
32866 -- adr variables
32867 l_segment VARCHAR2(30);
32868 l_ccid NUMBER;
32869 l_adr_transaction_coa_id NUMBER;
32870 l_adr_accounting_coa_id NUMBER;
32871 l_adr_flexfield_segment_code VARCHAR2(30);
32872 l_adr_flex_value_set_id NUMBER;
32873 l_adr_value_type_code VARCHAR2(30);
32874 l_adr_value_combination_id NUMBER;
32875 l_adr_value_segment_code VARCHAR2(30);
32876
32877 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32878 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32879 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32880 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32881
32882 -- 4262811 Variables ------------------------------------------------------------------------------------------
32883 l_entered_amt_idx NUMBER;
32884 l_accted_amt_idx NUMBER;
32885 l_acc_rev_flag VARCHAR2(1);
32886 l_accrual_line_num NUMBER;
32887 l_tmp_amt NUMBER;
32888 l_acc_rev_natural_side_code VARCHAR2(1);
32889
32890 l_num_entries NUMBER;
32891 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32892 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32893 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32894 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32895 l_recog_line_1 NUMBER;
32896 l_recog_line_2 NUMBER;
32897
32898 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32899 l_bflow_applied_to_amt NUMBER; -- 5132302
32900 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32901
32902 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32903
32904 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32905 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32906
32907 ---------------------------------------------------------------------------------------------------------------
32908
32909
32910 --
32911 -- bulk performance
32912 --
32913 l_balance_type_code VARCHAR2(1);
32914 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32915 l_log_module VARCHAR2(240);
32916
32917 --
32918 -- Upgrade strategy
32919 --
32920 l_actual_upg_option VARCHAR2(1);
32921 l_enc_upg_option VARCHAR2(1);
32922
32923 --
32924 BEGIN
32925 --
32926 IF g_log_enabled THEN
32927 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
32928 END IF;
32929 --
32930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32931
32932 trace
32933 (p_msg => 'BEGIN of AcctLineType_76'
32934 ,p_level => C_LEVEL_PROCEDURE
32935 ,p_module => l_log_module);
32936
32937 END IF;
32938 --
32942 l_component_appl_id := 222;
32939 l_component_type := 'AMB_JLT';
32940 l_component_code := 'FACT_DOC_FACTORING_CHARGES';
32941 l_component_type_code := 'S';
32943 l_amb_context_code := 'DEFAULT';
32944 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
32945 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
32946 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
32947 l_line_definition_owner_code := 'S';
32948 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
32949 --
32950 l_balance_type_code := 'A';
32951 l_segment := NULL;
32952 l_ccid := NULL;
32953 l_adr_transaction_coa_id := NULL;
32954 l_adr_accounting_coa_id := NULL;
32955 l_adr_flexfield_segment_code := NULL;
32956 l_adr_flex_value_set_id := NULL;
32957 l_adr_value_type_code := NULL;
32958 l_adr_value_combination_id := NULL;
32959 l_adr_value_segment_code := NULL;
32960
32961 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32962 l_bflow_class_code := ''; -- 4219869 Business Flow
32963 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32964 l_budgetary_control_flag := 'N';
32965
32966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32967 l_bflow_applied_to_amt := NULL; -- 5132302
32968 l_entered_amt_idx := NULL; -- 4262811
32969 l_accted_amt_idx := NULL; -- 4262811
32970 l_acc_rev_flag := NULL; -- 4262811
32971 l_accrual_line_num := NULL; -- 4262811
32972 l_tmp_amt := NULL; -- 4262811
32973 --
32974
32975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32976 l_balance_type_code <> 'B' THEN
32977 IF NVL(p_source_66,'
32978 ') = 'JLBR_AR_FACTORING_CHARGES' AND
32979 NVL(p_source_7,'
32980 ') = 'FACTORING'
32981 THEN
32982
32983 --
32984 XLA_AE_LINES_PKG.SetNewLine;
32985
32986 p_balance_type_code := l_balance_type_code;
32987 -- set the flag so later we will know whether the gain loss line needs to be created
32988
32989 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32990 p_actual_flag :='A';
32991 END IF;
32992
32993 --
32994 -- bulk performance
32995 --
32996 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32997 p_header_num => 0); -- 4262811
32998 --
32999 -- set accounting line options
33000 --
33001 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33002 p_natural_side_code => 'D'
33003 , p_gain_or_loss_flag => 'N'
33004 , p_gl_transfer_mode_code => 'S'
33005 , p_acct_entry_type_code => 'A'
33006 , p_switch_side_flag => 'Y'
33007 , p_merge_duplicate_code => 'A'
33008 );
33009 --
33010 l_acc_rev_natural_side_code := 'C'; -- 4262811
33011 --
33012 --
33013 -- set accounting line type info
33014 --
33015 xla_ae_lines_pkg.SetAcctLineType
33016 (p_component_type => l_component_type
33017 ,p_event_type_code => l_event_type_code
33018 ,p_line_definition_owner_code => l_line_definition_owner_code
33019 ,p_line_definition_code => l_line_definition_code
33020 ,p_accounting_line_code => l_component_code
33021 ,p_accounting_line_type_code => l_component_type_code
33022 ,p_accounting_line_appl_id => l_component_appl_id
33023 ,p_amb_context_code => l_amb_context_code
33024 ,p_entity_code => l_entity_code
33025 ,p_event_class_code => l_event_class_code);
33026 --
33027 -- set accounting class
33028 --
33029 xla_ae_lines_pkg.SetAcctClass(
33030 p_accounting_class_code => 'BANK_CHG'
33031 , p_ae_header_id => l_ae_header_id
33032 );
33033
33034 --
33035 -- set rounding class
33036 --
33037 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33038 'BANK_CHG';
33039
33040 --
33041 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33042 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33043 --
33044 -- bulk performance
33045 --
33046 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33047
33048 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33049 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33050
33051 -- 4955764
33052 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33053 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33054
33055 -- 4458381 Public Sector Enh
33056
33057 --
33058 -- set accounting attributes for the line type
33059 --
33060 l_entered_amt_idx := 10;
33061 l_accted_amt_idx := 15;
33062 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33063 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33064 l_rec_acct_attrs.array_char_value(1) := p_source_67;
33065 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33066 l_rec_acct_attrs.array_num_value(2) :=
33067 xla_ae_sources_pkg.GetSystemSourceNum(
33068 p_source_code => 'XLA_EVENT_APPL_ID'
33072 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33069 , p_source_type_code => 'Y'
33070 , p_source_application_id => 602
33071 );
33073 l_rec_acct_attrs.array_char_value(3) := p_source_69;
33074 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33075 l_rec_acct_attrs.array_char_value(4) :=
33076 xla_ae_sources_pkg.GetSystemSourceChar(
33077 p_source_code => 'XLA_ENTITY_CODE'
33078 , p_source_type_code => 'Y'
33079 , p_source_application_id => 602
33080 );
33081 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33082 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
33083 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33084 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
33085 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
33086 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_73);
33087 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
33088 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_74);
33089 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
33090 l_rec_acct_attrs.array_char_value(9) := p_source_75;
33091 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
33092 l_rec_acct_attrs.array_num_value(10) := p_source_76;
33093 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
33094 l_rec_acct_attrs.array_char_value(11) := p_source_77;
33095 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
33096 l_rec_acct_attrs.array_date_value(12) := p_source_78;
33097 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
33098 l_rec_acct_attrs.array_num_value(13) := p_source_79;
33099 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
33100 l_rec_acct_attrs.array_char_value(14) := p_source_80;
33101 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
33102 l_rec_acct_attrs.array_num_value(15) := p_source_81;
33103 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33104 l_rec_acct_attrs.array_num_value(16) := p_source_37;
33105 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33106 l_rec_acct_attrs.array_num_value(17) := p_source_38;
33107 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33108 l_rec_acct_attrs.array_char_value(18) := p_source_39;
33109 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
33110 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_82);
33111 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
33112 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_83);
33113 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
33114 l_rec_acct_attrs.array_char_value(21) := p_source_84;
33115 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
33116 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_82);
33117
33118 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33119 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33120
33121 ---------------------------------------------------------------------------------------------------------------
33122 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33123 ---------------------------------------------------------------------------------------------------------------
33124 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33125
33126 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33127 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33128
33129 IF xla_accounting_cache_pkg.GetValueChar
33130 (p_source_code => 'LEDGER_CATEGORY_CODE'
33131 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33132 AND l_bflow_method_code = 'PRIOR_ENTRY'
33133 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33134 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33135 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33136 )
33137 THEN
33138 xla_ae_lines_pkg.BflowUpgEntry
33139 (p_business_method_code => l_bflow_method_code
33140 ,p_business_class_code => l_bflow_class_code
33141 ,p_balance_type => l_balance_type_code);
33142 ELSE
33143 NULL;
33144 -- No business flow processing for business flow method of NONE.
33145 END IF;
33146
33147 --
33148 -- call analytical criteria
33149 --
33150
33151 --
33152 -- call description
33153 --
33154
33155 xla_ae_lines_pkg.SetLineDescription(
33156 p_ae_header_id => l_ae_header_id
33157 ,p_description => Description_8 (
33158 p_application_id => p_application_id
33159 , p_ae_header_id => l_ae_header_id
33160 , p_source_4 => p_source_4
33161 , p_source_5 => p_source_5
33162 , p_source_6 => p_source_6
33163 )
33164 );
33165
33166
33167 --
33168 -- call ADRs
33169 -- Bug 4922099
33170 --
33171 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33172 (NVL(l_actual_upg_option, 'N') = 'O') OR
33173 (NVL(l_enc_upg_option, 'N') = 'O')
33174 )
33175 THEN
33176 NULL;
33177 --
33178 --
33179
33180 l_ccid := AcctDerRule_19(
33181 p_application_id => p_application_id
33182 , p_ae_header_id => l_ae_header_id
33183 , p_source_21 => p_source_21
33187 , p_side => 'NA'
33184 , x_transaction_coa_id => l_adr_transaction_coa_id
33185 , x_accounting_coa_id => l_adr_accounting_coa_id
33186 , x_value_type_code => l_adr_value_type_code
33188 );
33189
33190 xla_ae_lines_pkg.set_ccid(
33191 p_code_combination_id => l_ccid
33192 , p_value_type_code => l_adr_value_type_code
33193 , p_transaction_coa_id => l_adr_transaction_coa_id
33194 , p_accounting_coa_id => l_adr_accounting_coa_id
33195 , p_adr_code => 'COLL_DOC_FACTORING_CHARGES'
33196 , p_adr_type_code => 'S'
33197 , p_component_type => l_component_type
33198 , p_component_code => l_component_code
33199 , p_component_type_code => l_component_type_code
33200 , p_component_appl_id => l_component_appl_id
33201 , p_amb_context_code => l_amb_context_code
33202 , p_side => 'NA'
33203 );
33204
33205
33206 --
33207 --
33208 END IF;
33209 --
33210 -- Bug 4922099
33211 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33212 (NVL(l_enc_upg_option, 'N') = 'O')
33213 ) AND
33214 (l_bflow_method_code = 'PRIOR_ENTRY')
33215 )
33216 THEN
33217 IF
33218 --
33219 1 = 2
33220 --
33221 THEN
33222 xla_accounting_err_pkg.build_message
33223 (p_appli_s_name => 'XLA'
33224 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33225 ,p_token_1 => 'LINE_NUMBER'
33226 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33227 ,p_token_2 => 'LINE_TYPE_NAME'
33228 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33229 l_component_type
33230 ,l_component_code
33231 ,l_component_type_code
33232 ,l_component_appl_id
33233 ,l_amb_context_code
33234 ,l_entity_code
33235 ,l_event_class_code
33236 )
33237 ,p_token_3 => 'OWNER'
33238 ,p_value_3 => xla_lookups_pkg.get_meaning(
33239 p_lookup_type => 'XLA_OWNER_TYPE'
33240 ,p_lookup_code => l_component_type_code
33241 )
33242 ,p_token_4 => 'PRODUCT_NAME'
33243 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33244 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33245 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33246 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33247 ,p_ae_header_id => NULL
33248 );
33249
33250 IF (C_LEVEL_ERROR>= g_log_level) THEN
33251 trace
33252 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33253 ,p_level => C_LEVEL_ERROR
33254 ,p_module => l_log_module);
33255 END IF;
33256 END IF;
33257 END IF;
33258 --
33259 --
33260 ------------------------------------------------------------------------------------------------
33261 -- 4219869 Business Flow
33262 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33263 -- Prior Entry. Currently, the following code is always generated.
33264 ------------------------------------------------------------------------------------------------
33265 XLA_AE_LINES_PKG.ValidateCurrentLine;
33266
33267 ------------------------------------------------------------------------------------
33268 -- 4219869 Business Flow
33269 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33270 ------------------------------------------------------------------------------------
33271 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33272
33273 ----------------------------------------------------------------------------------
33274 -- 4219869 Business Flow
33275 -- Update journal entry status -- Need to generate this within IF <condition>
33276 ----------------------------------------------------------------------------------
33277 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33278 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33279 ,p_balance_type_code => l_balance_type_code
33280 );
33281
33282 -------------------------------------------------------------------------------------------
33283 -- 4262811 - Generate the Accrual Reversal lines
33284 -------------------------------------------------------------------------------------------
33285 BEGIN
33289 l_acc_rev_flag := 'N';
33286 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33287 (g_array_event(p_event_id).array_value_num('header_index'));
33288 IF l_acc_rev_flag IS NULL THEN
33290 END IF;
33291 EXCEPTION
33292 WHEN OTHERS THEN
33293 l_acc_rev_flag := 'N';
33294 END;
33295 --
33296 IF (l_acc_rev_flag = 'Y') THEN
33297
33298 -- 4645092 ------------------------------------------------------------------------------
33299 -- To allow MPA report to determine if it should generate report process
33300 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33301 ------------------------------------------------------------------------------------------
33302
33303 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33304 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33305 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33306 -- call ADRs
33307 -- Bug 4922099
33308 --
33309 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33310 (NVL(l_actual_upg_option, 'N') = 'O') OR
33311 (NVL(l_enc_upg_option, 'N') = 'O')
33312 )
33313 THEN
33314 NULL;
33315 --
33316 --
33317
33318 l_ccid := AcctDerRule_19(
33319 p_application_id => p_application_id
33320 , p_ae_header_id => l_ae_header_id
33321 , p_source_21 => p_source_21
33322 , x_transaction_coa_id => l_adr_transaction_coa_id
33323 , x_accounting_coa_id => l_adr_accounting_coa_id
33324 , x_value_type_code => l_adr_value_type_code
33325 , p_side => 'NA'
33326 );
33327
33328 xla_ae_lines_pkg.set_ccid(
33329 p_code_combination_id => l_ccid
33330 , p_value_type_code => l_adr_value_type_code
33331 , p_transaction_coa_id => l_adr_transaction_coa_id
33332 , p_accounting_coa_id => l_adr_accounting_coa_id
33333 , p_adr_code => 'COLL_DOC_FACTORING_CHARGES'
33334 , p_adr_type_code => 'S'
33335 , p_component_type => l_component_type
33336 , p_component_code => l_component_code
33337 , p_component_type_code => l_component_type_code
33338 , p_component_appl_id => l_component_appl_id
33339 , p_amb_context_code => l_amb_context_code
33340 , p_side => 'NA'
33341 );
33342
33343
33344 --
33345 --
33346 END IF;
33347
33348 --
33349 -- Update the line information that should be overwritten
33350 --
33351 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33352 p_header_num => 1);
33353 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33354
33355 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33356
33357 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33358 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33359 END IF;
33360
33361 --
33362 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33363 --
33364 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33365 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33366 ELSE
33367 ---------------------------------------------------------------------------------------------------
33368 -- 4262811a Switch Sign
33369 ---------------------------------------------------------------------------------------------------
33370 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33371 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33372 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33373 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33374 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33375 -- 5132302
33376 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33377 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33378
33379 END IF;
33380
33381 -- 4955764
33382 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33383 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33384
33385
33386 XLA_AE_LINES_PKG.ValidateCurrentLine;
33387 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33388
33389 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33390 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33391 ,p_balance_type_code => l_balance_type_code);
33392
33393 END IF;
33394
33395 -----------------------------------------------------------------------------------------
33396 -- 4262811 Multiperiod Accounting
33397 -----------------------------------------------------------------------------------------
33398 -- No MPA option is assigned.
33399
33400
33401 END IF;
33402 END IF;
33403 --
33404
33405 --
33406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33407 trace
33411 END IF;
33408 (p_msg => 'END of AcctLineType_76'
33409 ,p_level => C_LEVEL_PROCEDURE
33410 ,p_module => l_log_module);
33412 --
33413 EXCEPTION
33414 WHEN xla_exceptions_pkg.application_exception THEN
33415 RAISE;
33416 WHEN OTHERS THEN
33417 xla_exceptions_pkg.raise_message
33418 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_76');
33419 END AcctLineType_76;
33420 --
33421
33422 ---------------------------------------
33423 --
33424 -- PRIVATE FUNCTION
33425 -- AcctLineType_77
33426 --
33427 ---------------------------------------
33428 PROCEDURE AcctLineType_77 (
33429 p_application_id IN NUMBER
33430 ,p_event_id IN NUMBER
33431 ,p_calculate_acctd_flag IN VARCHAR2
33432 ,p_calculate_g_l_flag IN VARCHAR2
33433 ,p_actual_flag IN OUT VARCHAR2
33434 ,p_balance_type_code OUT VARCHAR2
33435 ,p_gain_or_loss_ref OUT VARCHAR2
33436
33437 --Transaction Distribution GL Account
33438 , p_source_26 IN NUMBER
33439 --Bill To Customer Account Identifier
33440 , p_source_37 IN NUMBER
33441 --Bill To Customer Site Use Identifier
33442 , p_source_38 IN NUMBER
33443 --SLA Party Type
33444 , p_source_39 IN VARCHAR2
33445 --Transaction Distribution Account Class
33446 , p_source_43 IN VARCHAR2
33447 --Transaction Distribution Identifier
33448 , p_source_44 IN NUMBER
33449 --Transaction Distribution Type
33450 , p_source_45 IN VARCHAR2
33451 --Transaction Distribution Entered Amount
33452 , p_source_46 IN NUMBER
33453 --Transaction Currency Code
33454 , p_source_47 IN VARCHAR2
33455 --Transaction Exchange Date
33456 , p_source_48 IN DATE
33457 --Transaction Exchange Rate
33458 , p_source_49 IN NUMBER
33459 --Transaction Exchange Rate Type
33460 , p_source_50 IN VARCHAR2
33461 --Transaction Accounting Amount
33462 , p_source_51 IN NUMBER
33463 )
33464 IS
33465
33466 l_component_type VARCHAR2(80);
33467 l_component_code VARCHAR2(30);
33468 l_component_type_code VARCHAR2(1);
33469 l_component_appl_id INTEGER;
33470 l_amb_context_code VARCHAR2(30);
33471 l_entity_code VARCHAR2(30);
33472 l_event_class_code VARCHAR2(30);
33473 l_ae_header_id NUMBER;
33474 l_event_type_code VARCHAR2(30);
33475 l_line_definition_code VARCHAR2(30);
33476 l_line_definition_owner_code VARCHAR2(1);
33477 --
33478 -- adr variables
33479 l_segment VARCHAR2(30);
33480 l_ccid NUMBER;
33481 l_adr_transaction_coa_id NUMBER;
33482 l_adr_accounting_coa_id NUMBER;
33483 l_adr_flexfield_segment_code VARCHAR2(30);
33484 l_adr_flex_value_set_id NUMBER;
33485 l_adr_value_type_code VARCHAR2(30);
33486 l_adr_value_combination_id NUMBER;
33487 l_adr_value_segment_code VARCHAR2(30);
33488
33489 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33490 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33491 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33492 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33493
33494 -- 4262811 Variables ------------------------------------------------------------------------------------------
33495 l_entered_amt_idx NUMBER;
33496 l_accted_amt_idx NUMBER;
33497 l_acc_rev_flag VARCHAR2(1);
33498 l_accrual_line_num NUMBER;
33499 l_tmp_amt NUMBER;
33500 l_acc_rev_natural_side_code VARCHAR2(1);
33501
33502 l_num_entries NUMBER;
33503 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33504 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33505 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33506 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33507 l_recog_line_1 NUMBER;
33508 l_recog_line_2 NUMBER;
33509
33510 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33511 l_bflow_applied_to_amt NUMBER; -- 5132302
33512 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33513
33514 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33515
33516 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33517 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33518
33519 ---------------------------------------------------------------------------------------------------------------
33520
33521
33522 --
33523 -- bulk performance
33524 --
33525 l_balance_type_code VARCHAR2(1);
33526 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33527 l_log_module VARCHAR2(240);
33528
33529 --
33530 -- Upgrade strategy
33531 --
33532 l_actual_upg_option VARCHAR2(1);
33533 l_enc_upg_option VARCHAR2(1);
33534
33535 --
33536 BEGIN
33537 --
33538 IF g_log_enabled THEN
33539 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
33540 END IF;
33541 --
33542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33543
33544 trace
33548
33545 (p_msg => 'BEGIN of AcctLineType_77'
33546 ,p_level => C_LEVEL_PROCEDURE
33547 ,p_module => l_log_module);
33549 END IF;
33550 --
33551 l_component_type := 'AMB_JLT';
33552 l_component_code := 'GUAR_DEFAULT_REC';
33553 l_component_type_code := 'S';
33554 l_component_appl_id := 222;
33555 l_amb_context_code := 'DEFAULT';
33556 l_entity_code := 'TRANSACTIONS';
33557 l_event_class_code := 'GUARANTEE';
33558 l_event_type_code := 'GUARANTEE_ALL';
33559 l_line_definition_owner_code := 'S';
33560 l_line_definition_code := 'AR_GUAR_DEFAULT_ACCRUAL';
33561 --
33562 l_balance_type_code := 'A';
33563 l_segment := NULL;
33564 l_ccid := NULL;
33565 l_adr_transaction_coa_id := NULL;
33566 l_adr_accounting_coa_id := NULL;
33567 l_adr_flexfield_segment_code := NULL;
33568 l_adr_flex_value_set_id := NULL;
33569 l_adr_value_type_code := NULL;
33570 l_adr_value_combination_id := NULL;
33571 l_adr_value_segment_code := NULL;
33572
33573 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33574 l_bflow_class_code := ''; -- 4219869 Business Flow
33575 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33576 l_budgetary_control_flag := 'N';
33577
33578 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33579 l_bflow_applied_to_amt := NULL; -- 5132302
33580 l_entered_amt_idx := NULL; -- 4262811
33581 l_accted_amt_idx := NULL; -- 4262811
33582 l_acc_rev_flag := NULL; -- 4262811
33583 l_accrual_line_num := NULL; -- 4262811
33584 l_tmp_amt := NULL; -- 4262811
33585 --
33586
33587 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33588 l_balance_type_code <> 'B' THEN
33589 IF NVL(p_source_43,'
33590 ') = 'REC'
33591 THEN
33592
33593 --
33594 XLA_AE_LINES_PKG.SetNewLine;
33595
33596 p_balance_type_code := l_balance_type_code;
33597 -- set the flag so later we will know whether the gain loss line needs to be created
33598
33599 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33600 p_actual_flag :='A';
33601 END IF;
33602
33603 --
33604 -- bulk performance
33605 --
33606 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33607 p_header_num => 0); -- 4262811
33608 --
33609 -- set accounting line options
33610 --
33611 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33612 p_natural_side_code => 'D'
33613 , p_gain_or_loss_flag => 'N'
33614 , p_gl_transfer_mode_code => 'S'
33615 , p_acct_entry_type_code => 'A'
33616 , p_switch_side_flag => 'Y'
33617 , p_merge_duplicate_code => 'A'
33618 );
33619 --
33620 l_acc_rev_natural_side_code := 'C'; -- 4262811
33621 --
33622 --
33623 -- set accounting line type info
33624 --
33625 xla_ae_lines_pkg.SetAcctLineType
33626 (p_component_type => l_component_type
33627 ,p_event_type_code => l_event_type_code
33628 ,p_line_definition_owner_code => l_line_definition_owner_code
33629 ,p_line_definition_code => l_line_definition_code
33630 ,p_accounting_line_code => l_component_code
33631 ,p_accounting_line_type_code => l_component_type_code
33632 ,p_accounting_line_appl_id => l_component_appl_id
33633 ,p_amb_context_code => l_amb_context_code
33634 ,p_entity_code => l_entity_code
33635 ,p_event_class_code => l_event_class_code);
33636 --
33637 -- set accounting class
33638 --
33639 xla_ae_lines_pkg.SetAcctClass(
33640 p_accounting_class_code => 'RECEIVABLE'
33641 , p_ae_header_id => l_ae_header_id
33642 );
33643
33644 --
33645 -- set rounding class
33646 --
33647 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33648 'RECEIVABLE';
33649
33650 --
33651 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33652 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33653 --
33654 -- bulk performance
33655 --
33656 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33657
33658 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33659 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33660
33661 -- 4955764
33662 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33663 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33664
33665 -- 4458381 Public Sector Enh
33666
33667 --
33668 -- set accounting attributes for the line type
33669 --
33670 l_entered_amt_idx := 3;
33671 l_accted_amt_idx := 8;
33672 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33673 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
33674 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
33675 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
33676 l_rec_acct_attrs.array_char_value(2) := p_source_45;
33680 l_rec_acct_attrs.array_char_value(4) := p_source_47;
33677 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
33678 l_rec_acct_attrs.array_num_value(3) := p_source_46;
33679 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
33681 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
33682 l_rec_acct_attrs.array_date_value(5) := p_source_48;
33683 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
33684 l_rec_acct_attrs.array_num_value(6) := p_source_49;
33685 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
33686 l_rec_acct_attrs.array_char_value(7) := p_source_50;
33687 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
33688 l_rec_acct_attrs.array_num_value(8) := p_source_51;
33689 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
33690 l_rec_acct_attrs.array_num_value(9) := p_source_37;
33694 l_rec_acct_attrs.array_char_value(11) := p_source_39;
33691 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
33692 l_rec_acct_attrs.array_num_value(10) := p_source_38;
33693 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
33695
33696 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33697 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33698
33699 ---------------------------------------------------------------------------------------------------------------
33700 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33701 ---------------------------------------------------------------------------------------------------------------
33702 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33703
33704 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33705 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33706
33707 IF xla_accounting_cache_pkg.GetValueChar
33708 (p_source_code => 'LEDGER_CATEGORY_CODE'
33709 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33710 AND l_bflow_method_code = 'PRIOR_ENTRY'
33711 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33712 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33713 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33714 )
33715 THEN
33716 xla_ae_lines_pkg.BflowUpgEntry
33717 (p_business_method_code => l_bflow_method_code
33718 ,p_business_class_code => l_bflow_class_code
33719 ,p_balance_type => l_balance_type_code);
33720 ELSE
33721 NULL;
33722 -- No business flow processing for business flow method of NONE.
33723 END IF;
33724
33725 --
33726 -- call analytical criteria
33727 --
33728
33729 --
33730 -- call description
33731 --
33732 -- No description or it is inherited.
33733 --
33734 -- call ADRs
33735 -- Bug 4922099
33736 --
33737 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33738 (NVL(l_actual_upg_option, 'N') = 'O') OR
33739 (NVL(l_enc_upg_option, 'N') = 'O')
33740 )
33741 THEN
33742 NULL;
33743 --
33744 --
33745
33746 l_ccid := AcctDerRule_24(
33747 p_application_id => p_application_id
33748 , p_ae_header_id => l_ae_header_id
33749 , p_source_26 => p_source_26
33750 , x_transaction_coa_id => l_adr_transaction_coa_id
33751 , x_accounting_coa_id => l_adr_accounting_coa_id
33752 , x_value_type_code => l_adr_value_type_code
33753 , p_side => 'NA'
33754 );
33755
33756 xla_ae_lines_pkg.set_ccid(
33757 p_code_combination_id => l_ccid
33758 , p_value_type_code => l_adr_value_type_code
33762 , p_adr_type_code => 'S'
33759 , p_transaction_coa_id => l_adr_transaction_coa_id
33760 , p_accounting_coa_id => l_adr_accounting_coa_id
33761 , p_adr_code => 'TRX_DIST_CCID'
33763 , p_component_type => l_component_type
33764 , p_component_code => l_component_code
33765 , p_component_type_code => l_component_type_code
33766 , p_component_appl_id => l_component_appl_id
33767 , p_amb_context_code => l_amb_context_code
33768 , p_side => 'NA'
33769 );
33770
33771
33772 --
33773 --
33774 END IF;
33775 --
33776 -- Bug 4922099
33777 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33778 (NVL(l_enc_upg_option, 'N') = 'O')
33779 ) AND
33780 (l_bflow_method_code = 'PRIOR_ENTRY')
33781 )
33782 THEN
33783 IF
33784 --
33785 1 = 2
33786 --
33787 THEN
33788 xla_accounting_err_pkg.build_message
33789 (p_appli_s_name => 'XLA'
33790 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33791 ,p_token_1 => 'LINE_NUMBER'
33792 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33793 ,p_token_2 => 'LINE_TYPE_NAME'
33794 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33795 l_component_type
33796 ,l_component_code
33797 ,l_component_type_code
33798 ,l_component_appl_id
33799 ,l_amb_context_code
33800 ,l_entity_code
33801 ,l_event_class_code
33802 )
33803 ,p_token_3 => 'OWNER'
33804 ,p_value_3 => xla_lookups_pkg.get_meaning(
33805 p_lookup_type => 'XLA_OWNER_TYPE'
33806 ,p_lookup_code => l_component_type_code
33807 )
33808 ,p_token_4 => 'PRODUCT_NAME'
33809 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33810 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33811 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33812 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33813 ,p_ae_header_id => NULL
33814 );
33815
33816 IF (C_LEVEL_ERROR>= g_log_level) THEN
33817 trace
33818 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33819 ,p_level => C_LEVEL_ERROR
33820 ,p_module => l_log_module);
33821 END IF;
33822 END IF;
33823 END IF;
33824 --
33825 --
33826 ------------------------------------------------------------------------------------------------
33827 -- 4219869 Business Flow
33828 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33829 -- Prior Entry. Currently, the following code is always generated.
33830 ------------------------------------------------------------------------------------------------
33831 XLA_AE_LINES_PKG.ValidateCurrentLine;
33832
33833 ------------------------------------------------------------------------------------
33834 -- 4219869 Business Flow
33835 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33836 ------------------------------------------------------------------------------------
33837 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33838
33839 ----------------------------------------------------------------------------------
33840 -- 4219869 Business Flow
33841 -- Update journal entry status -- Need to generate this within IF <condition>
33842 ----------------------------------------------------------------------------------
33843 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33844 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33845 ,p_balance_type_code => l_balance_type_code
33846 );
33847
33848 -------------------------------------------------------------------------------------------
33849 -- 4262811 - Generate the Accrual Reversal lines
33850 -------------------------------------------------------------------------------------------
33851 BEGIN
33852 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33853 (g_array_event(p_event_id).array_value_num('header_index'));
33854 IF l_acc_rev_flag IS NULL THEN
33855 l_acc_rev_flag := 'N';
33856 END IF;
33857 EXCEPTION
33858 WHEN OTHERS THEN
33859 l_acc_rev_flag := 'N';
33860 END;
33861 --
33862 IF (l_acc_rev_flag = 'Y') THEN
33863
33867 ------------------------------------------------------------------------------------------
33864 -- 4645092 ------------------------------------------------------------------------------
33865 -- To allow MPA report to determine if it should generate report process
33866 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33868
33869 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33870 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33871 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33872 -- call ADRs
33873 -- Bug 4922099
33874 --
33875 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33876 (NVL(l_actual_upg_option, 'N') = 'O') OR
33877 (NVL(l_enc_upg_option, 'N') = 'O')
33878 )
33879 THEN
33880 NULL;
33881 --
33882 --
33883
33884 l_ccid := AcctDerRule_24(
33885 p_application_id => p_application_id
33886 , p_ae_header_id => l_ae_header_id
33887 , p_source_26 => p_source_26
33888 , x_transaction_coa_id => l_adr_transaction_coa_id
33889 , x_accounting_coa_id => l_adr_accounting_coa_id
33890 , x_value_type_code => l_adr_value_type_code
33891 , p_side => 'NA'
33892 );
33893
33894 xla_ae_lines_pkg.set_ccid(
33895 p_code_combination_id => l_ccid
33896 , p_value_type_code => l_adr_value_type_code
33897 , p_transaction_coa_id => l_adr_transaction_coa_id
33898 , p_accounting_coa_id => l_adr_accounting_coa_id
33899 , p_adr_code => 'TRX_DIST_CCID'
33900 , p_adr_type_code => 'S'
33901 , p_component_type => l_component_type
33902 , p_component_code => l_component_code
33903 , p_component_type_code => l_component_type_code
33904 , p_component_appl_id => l_component_appl_id
33905 , p_amb_context_code => l_amb_context_code
33906 , p_side => 'NA'
33907 );
33908
33909
33910 --
33911 --
33912 END IF;
33913
33914 --
33915 -- Update the line information that should be overwritten
33916 --
33917 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33918 p_header_num => 1);
33919 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33920
33921 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33922
33923 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33924 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33925 END IF;
33926
33927 --
33928 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33929 --
33930 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33931 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33932 ELSE
33933 ---------------------------------------------------------------------------------------------------
33934 -- 4262811a Switch Sign
33935 ---------------------------------------------------------------------------------------------------
33936 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33939 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33941 -- 5132302
33942 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33944
33945 END IF;
33946
33947 -- 4955764
33948 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33949 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33950
33951
33952 XLA_AE_LINES_PKG.ValidateCurrentLine;
33953 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33954
33955 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33956 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33957 ,p_balance_type_code => l_balance_type_code);
33958
33959 END IF;
33960
33961 -----------------------------------------------------------------------------------------
33962 -- 4262811 Multiperiod Accounting
33963 -----------------------------------------------------------------------------------------
33964 -- No MPA option is assigned.
33965
33966
33967 END IF;
33968 END IF;
33969 --
33970
33971 --
33972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33973 trace
33974 (p_msg => 'END of AcctLineType_77'
33975 ,p_level => C_LEVEL_PROCEDURE
33976 ,p_module => l_log_module);
33977 END IF;
33978 --
33979 EXCEPTION
33980 WHEN xla_exceptions_pkg.application_exception THEN
33981 RAISE;
33982 WHEN OTHERS THEN
33983 xla_exceptions_pkg.raise_message
33984 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_77');
33988 ---------------------------------------
33985 END AcctLineType_77;
33986 --
33987
33989 --
33990 -- PRIVATE FUNCTION
33991 -- AcctLineType_78
33992 --
33993 ---------------------------------------
33994 PROCEDURE AcctLineType_78 (
33995 p_application_id IN NUMBER
33996 ,p_event_id IN NUMBER
33997 ,p_calculate_acctd_flag IN VARCHAR2
33998 ,p_calculate_g_l_flag IN VARCHAR2
33999 ,p_actual_flag IN OUT VARCHAR2
34000 ,p_balance_type_code OUT VARCHAR2
34001 ,p_gain_or_loss_ref OUT VARCHAR2
34002
34003 --Transaction Distribution GL Account
34004 , p_source_26 IN NUMBER
34005 --Bill To Customer Account Identifier
34006 , p_source_37 IN NUMBER
34007 --Bill To Customer Site Use Identifier
34008 , p_source_38 IN NUMBER
34009 --SLA Party Type
34010 , p_source_39 IN VARCHAR2
34011 --Transaction Distribution Account Class
34012 , p_source_43 IN VARCHAR2
34013 --Transaction Distribution Identifier
34014 , p_source_44 IN NUMBER
34015 --Transaction Distribution Type
34016 , p_source_45 IN VARCHAR2
34017 --Transaction Distribution Entered Amount
34018 , p_source_46 IN NUMBER
34019 --Transaction Currency Code
34020 , p_source_47 IN VARCHAR2
34021 --Transaction Exchange Date
34022 , p_source_48 IN DATE
34023 --Transaction Exchange Rate
34024 , p_source_49 IN NUMBER
34025 --Transaction Exchange Rate Type
34026 , p_source_50 IN VARCHAR2
34027 --Transaction Accounting Amount
34028 , p_source_51 IN NUMBER
34029 )
34030 IS
34031
34032 l_component_type VARCHAR2(80);
34033 l_component_code VARCHAR2(30);
34034 l_component_type_code VARCHAR2(1);
34035 l_component_appl_id INTEGER;
34036 l_amb_context_code VARCHAR2(30);
34037 l_entity_code VARCHAR2(30);
34038 l_event_class_code VARCHAR2(30);
34039 l_ae_header_id NUMBER;
34040 l_event_type_code VARCHAR2(30);
34041 l_line_definition_code VARCHAR2(30);
34042 l_line_definition_owner_code VARCHAR2(1);
34043 --
34044 -- adr variables
34045 l_segment VARCHAR2(30);
34046 l_ccid NUMBER;
34047 l_adr_transaction_coa_id NUMBER;
34048 l_adr_accounting_coa_id NUMBER;
34049 l_adr_flexfield_segment_code VARCHAR2(30);
34050 l_adr_flex_value_set_id NUMBER;
34051 l_adr_value_type_code VARCHAR2(30);
34052 l_adr_value_combination_id NUMBER;
34053 l_adr_value_segment_code VARCHAR2(30);
34054
34055 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34056 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34057 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34058 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34059
34060 -- 4262811 Variables ------------------------------------------------------------------------------------------
34061 l_entered_amt_idx NUMBER;
34062 l_accted_amt_idx NUMBER;
34063 l_acc_rev_flag VARCHAR2(1);
34064 l_accrual_line_num NUMBER;
34065 l_tmp_amt NUMBER;
34066 l_acc_rev_natural_side_code VARCHAR2(1);
34067
34068 l_num_entries NUMBER;
34069 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34070 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34071 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34072 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34073 l_recog_line_1 NUMBER;
34074 l_recog_line_2 NUMBER;
34075
34076 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34077 l_bflow_applied_to_amt NUMBER; -- 5132302
34078 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34079
34080 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34081
34082 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34083 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34084
34085 ---------------------------------------------------------------------------------------------------------------
34086
34087
34088 --
34089 -- bulk performance
34090 --
34091 l_balance_type_code VARCHAR2(1);
34092 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34093 l_log_module VARCHAR2(240);
34094
34095 --
34096 -- Upgrade strategy
34097 --
34098 l_actual_upg_option VARCHAR2(1);
34099 l_enc_upg_option VARCHAR2(1);
34100
34101 --
34102 BEGIN
34103 --
34104 IF g_log_enabled THEN
34105 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
34106 END IF;
34107 --
34108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34109
34110 trace
34111 (p_msg => 'BEGIN of AcctLineType_78'
34112 ,p_level => C_LEVEL_PROCEDURE
34113 ,p_module => l_log_module);
34114
34115 END IF;
34116 --
34117 l_component_type := 'AMB_JLT';
34118 l_component_code := 'GUAR_REV';
34119 l_component_type_code := 'S';
34120 l_component_appl_id := 222;
34121 l_amb_context_code := 'DEFAULT';
34122 l_entity_code := 'TRANSACTIONS';
34123 l_event_class_code := 'GUARANTEE';
34124 l_event_type_code := 'GUARANTEE_ALL';
34125 l_line_definition_owner_code := 'S';
34129 l_segment := NULL;
34126 l_line_definition_code := 'AR_GUAR_DEFAULT_ACCRUAL';
34127 --
34128 l_balance_type_code := 'A';
34130 l_ccid := NULL;
34131 l_adr_transaction_coa_id := NULL;
34132 l_adr_accounting_coa_id := NULL;
34133 l_adr_flexfield_segment_code := NULL;
34134 l_adr_flex_value_set_id := NULL;
34135 l_adr_value_type_code := NULL;
34136 l_adr_value_combination_id := NULL;
34137 l_adr_value_segment_code := NULL;
34138
34139 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34140 l_bflow_class_code := ''; -- 4219869 Business Flow
34141 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34142 l_budgetary_control_flag := 'N';
34143
34144 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34145 l_bflow_applied_to_amt := NULL; -- 5132302
34146 l_entered_amt_idx := NULL; -- 4262811
34147 l_accted_amt_idx := NULL; -- 4262811
34148 l_acc_rev_flag := NULL; -- 4262811
34149 l_accrual_line_num := NULL; -- 4262811
34150 l_tmp_amt := NULL; -- 4262811
34151 --
34152
34153 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34154 l_balance_type_code <> 'B' THEN
34155 IF NVL(p_source_43,'
34156 ') = 'REV'
34157 THEN
34158
34159 --
34160 XLA_AE_LINES_PKG.SetNewLine;
34161
34162 p_balance_type_code := l_balance_type_code;
34163 -- set the flag so later we will know whether the gain loss line needs to be created
34164
34165 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34166 p_actual_flag :='A';
34167 END IF;
34168
34169 --
34170 -- bulk performance
34171 --
34172 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34173 p_header_num => 0); -- 4262811
34174 --
34175 -- set accounting line options
34176 --
34177 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34178 p_natural_side_code => 'C'
34179 , p_gain_or_loss_flag => 'N'
34180 , p_gl_transfer_mode_code => 'S'
34181 , p_acct_entry_type_code => 'A'
34182 , p_switch_side_flag => 'Y'
34183 , p_merge_duplicate_code => 'A'
34184 );
34185 --
34186 l_acc_rev_natural_side_code := 'D'; -- 4262811
34187 --
34188 --
34189 -- set accounting line type info
34190 --
34191 xla_ae_lines_pkg.SetAcctLineType
34192 (p_component_type => l_component_type
34193 ,p_event_type_code => l_event_type_code
34194 ,p_line_definition_owner_code => l_line_definition_owner_code
34195 ,p_line_definition_code => l_line_definition_code
34196 ,p_accounting_line_code => l_component_code
34197 ,p_accounting_line_type_code => l_component_type_code
34198 ,p_accounting_line_appl_id => l_component_appl_id
34199 ,p_amb_context_code => l_amb_context_code
34200 ,p_entity_code => l_entity_code
34201 ,p_event_class_code => l_event_class_code);
34202 --
34203 -- set accounting class
34204 --
34205 xla_ae_lines_pkg.SetAcctClass(
34206 p_accounting_class_code => 'REVENUE'
34207 , p_ae_header_id => l_ae_header_id
34208 );
34209
34210 --
34211 -- set rounding class
34212 --
34213 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34214 'RECEIVABLE';
34215
34216 --
34217 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34218 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34219 --
34220 -- bulk performance
34221 --
34222 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34223
34224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34225 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34226
34227 -- 4955764
34228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34230
34231 -- 4458381 Public Sector Enh
34232
34233 --
34234 -- set accounting attributes for the line type
34235 --
34236 l_entered_amt_idx := 3;
34237 l_accted_amt_idx := 8;
34238 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34239 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
34240 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
34241 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
34242 l_rec_acct_attrs.array_char_value(2) := p_source_45;
34243 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
34244 l_rec_acct_attrs.array_num_value(3) := p_source_46;
34245 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
34246 l_rec_acct_attrs.array_char_value(4) := p_source_47;
34247 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
34248 l_rec_acct_attrs.array_date_value(5) := p_source_48;
34249 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
34250 l_rec_acct_attrs.array_num_value(6) := p_source_49;
34251 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
34252 l_rec_acct_attrs.array_char_value(7) := p_source_50;
34253 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
34254 l_rec_acct_attrs.array_num_value(8) := p_source_51;
34255 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
34256 l_rec_acct_attrs.array_num_value(9) := p_source_37;
34257 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
34258 l_rec_acct_attrs.array_num_value(10) := p_source_38;
34259 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
34260 l_rec_acct_attrs.array_char_value(11) := p_source_39;
34261
34262 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34263 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34264
34265 ---------------------------------------------------------------------------------------------------------------
34266 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34267 ---------------------------------------------------------------------------------------------------------------
34268 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34269
34270 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34271 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34272
34273 IF xla_accounting_cache_pkg.GetValueChar
34274 (p_source_code => 'LEDGER_CATEGORY_CODE'
34275 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34276 AND l_bflow_method_code = 'PRIOR_ENTRY'
34277 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34278 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34279 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34280 )
34281 THEN
34282 xla_ae_lines_pkg.BflowUpgEntry
34283 (p_business_method_code => l_bflow_method_code
34284 ,p_business_class_code => l_bflow_class_code
34285 ,p_balance_type => l_balance_type_code);
34286 ELSE
34287 NULL;
34288 -- No business flow processing for business flow method of NONE.
34289 END IF;
34290
34291 --
34292 -- call analytical criteria
34293 --
34294
34295 --
34296 -- call description
34297 --
34298 -- No description or it is inherited.
34299 --
34300 -- call ADRs
34301 -- Bug 4922099
34305 (NVL(l_enc_upg_option, 'N') = 'O')
34302 --
34303 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34304 (NVL(l_actual_upg_option, 'N') = 'O') OR
34306 )
34307 THEN
34308 NULL;
34309 --
34310 --
34311
34312 l_ccid := AcctDerRule_24(
34313 p_application_id => p_application_id
34314 , p_ae_header_id => l_ae_header_id
34315 , p_source_26 => p_source_26
34316 , x_transaction_coa_id => l_adr_transaction_coa_id
34317 , x_accounting_coa_id => l_adr_accounting_coa_id
34318 , x_value_type_code => l_adr_value_type_code
34319 , p_side => 'NA'
34320 );
34321
34322 xla_ae_lines_pkg.set_ccid(
34323 p_code_combination_id => l_ccid
34324 , p_value_type_code => l_adr_value_type_code
34325 , p_transaction_coa_id => l_adr_transaction_coa_id
34326 , p_accounting_coa_id => l_adr_accounting_coa_id
34327 , p_adr_code => 'TRX_DIST_CCID'
34328 , p_adr_type_code => 'S'
34329 , p_component_type => l_component_type
34330 , p_component_code => l_component_code
34331 , p_component_type_code => l_component_type_code
34332 , p_component_appl_id => l_component_appl_id
34333 , p_amb_context_code => l_amb_context_code
34334 , p_side => 'NA'
34335 );
34336
34337
34338 --
34339 --
34340 END IF;
34341 --
34342 -- Bug 4922099
34343 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34344 (NVL(l_enc_upg_option, 'N') = 'O')
34345 ) AND
34346 (l_bflow_method_code = 'PRIOR_ENTRY')
34347 )
34348 THEN
34349 IF
34350 --
34351 1 = 2
34352 --
34353 THEN
34354 xla_accounting_err_pkg.build_message
34355 (p_appli_s_name => 'XLA'
34356 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34357 ,p_token_1 => 'LINE_NUMBER'
34358 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34359 ,p_token_2 => 'LINE_TYPE_NAME'
34360 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34361 l_component_type
34362 ,l_component_code
34363 ,l_component_type_code
34364 ,l_component_appl_id
34365 ,l_amb_context_code
34366 ,l_entity_code
34367 ,l_event_class_code
34368 )
34369 ,p_token_3 => 'OWNER'
34370 ,p_value_3 => xla_lookups_pkg.get_meaning(
34371 p_lookup_type => 'XLA_OWNER_TYPE'
34372 ,p_lookup_code => l_component_type_code
34373 )
34374 ,p_token_4 => 'PRODUCT_NAME'
34375 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34376 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34377 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34378 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34379 ,p_ae_header_id => NULL
34380 );
34381
34382 IF (C_LEVEL_ERROR>= g_log_level) THEN
34383 trace
34384 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34385 ,p_level => C_LEVEL_ERROR
34386 ,p_module => l_log_module);
34387 END IF;
34388 END IF;
34389 END IF;
34390 --
34391 --
34392 ------------------------------------------------------------------------------------------------
34393 -- 4219869 Business Flow
34394 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34395 -- Prior Entry. Currently, the following code is always generated.
34396 ------------------------------------------------------------------------------------------------
34397 XLA_AE_LINES_PKG.ValidateCurrentLine;
34398
34399 ------------------------------------------------------------------------------------
34400 -- 4219869 Business Flow
34401 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34402 ------------------------------------------------------------------------------------
34403 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34404
34405 ----------------------------------------------------------------------------------
34406 -- 4219869 Business Flow
34410 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34407 -- Update journal entry status -- Need to generate this within IF <condition>
34408 ----------------------------------------------------------------------------------
34409 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34411 ,p_balance_type_code => l_balance_type_code
34412 );
34413
34414 -------------------------------------------------------------------------------------------
34415 -- 4262811 - Generate the Accrual Reversal lines
34416 -------------------------------------------------------------------------------------------
34417 BEGIN
34418 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34419 (g_array_event(p_event_id).array_value_num('header_index'));
34420 IF l_acc_rev_flag IS NULL THEN
34421 l_acc_rev_flag := 'N';
34422 END IF;
34423 EXCEPTION
34424 WHEN OTHERS THEN
34425 l_acc_rev_flag := 'N';
34426 END;
34427 --
34428 IF (l_acc_rev_flag = 'Y') THEN
34429
34430 -- 4645092 ------------------------------------------------------------------------------
34431 -- To allow MPA report to determine if it should generate report process
34432 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34433 ------------------------------------------------------------------------------------------
34434
34435 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34436 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34437 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34438 -- call ADRs
34439 -- Bug 4922099
34440 --
34441 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34442 (NVL(l_actual_upg_option, 'N') = 'O') OR
34443 (NVL(l_enc_upg_option, 'N') = 'O')
34444 )
34445 THEN
34446 NULL;
34447 --
34448 --
34449
34450 l_ccid := AcctDerRule_24(
34451 p_application_id => p_application_id
34452 , p_ae_header_id => l_ae_header_id
34453 , p_source_26 => p_source_26
34454 , x_transaction_coa_id => l_adr_transaction_coa_id
34455 , x_accounting_coa_id => l_adr_accounting_coa_id
34456 , x_value_type_code => l_adr_value_type_code
34457 , p_side => 'NA'
34458 );
34459
34460 xla_ae_lines_pkg.set_ccid(
34461 p_code_combination_id => l_ccid
34462 , p_value_type_code => l_adr_value_type_code
34463 , p_transaction_coa_id => l_adr_transaction_coa_id
34464 , p_accounting_coa_id => l_adr_accounting_coa_id
34465 , p_adr_code => 'TRX_DIST_CCID'
34466 , p_adr_type_code => 'S'
34467 , p_component_type => l_component_type
34468 , p_component_code => l_component_code
34469 , p_component_type_code => l_component_type_code
34470 , p_component_appl_id => l_component_appl_id
34471 , p_amb_context_code => l_amb_context_code
34472 , p_side => 'NA'
34473 );
34474
34475
34476 --
34477 --
34478 END IF;
34479
34480 --
34481 -- Update the line information that should be overwritten
34482 --
34483 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34484 p_header_num => 1);
34485 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34486
34487 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34488
34489 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34490 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34491 END IF;
34492
34493 --
34494 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34495 --
34496 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34497 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34498 ELSE
34499 ---------------------------------------------------------------------------------------------------
34500 -- 4262811a Switch Sign
34501 ---------------------------------------------------------------------------------------------------
34502 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34503 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34504 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34505 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34506 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34507 -- 5132302
34508 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34509 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34510
34511 END IF;
34512
34513 -- 4955764
34514 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34515 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34516
34517
34518 XLA_AE_LINES_PKG.ValidateCurrentLine;
34519 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34520
34521 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34522 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34523 ,p_balance_type_code => l_balance_type_code);
34524
34525 END IF;
34526
34527 -----------------------------------------------------------------------------------------
34528 -- 4262811 Multiperiod Accounting
34529 -----------------------------------------------------------------------------------------
34530 -- No MPA option is assigned.
34531
34532
34533 END IF;
34534 END IF;
34535 --
34536
34537 --
34538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34539 trace
34540 (p_msg => 'END of AcctLineType_78'
34541 ,p_level => C_LEVEL_PROCEDURE
34542 ,p_module => l_log_module);
34543 END IF;
34544 --
34545 EXCEPTION
34546 WHEN xla_exceptions_pkg.application_exception THEN
34547 RAISE;
34548 WHEN OTHERS THEN
34549 xla_exceptions_pkg.raise_message
34550 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_78');
34551 END AcctLineType_78;
34552 --
34553
34554 ---------------------------------------
34555 --
34556 -- PRIVATE FUNCTION
34557 -- AcctLineType_79
34558 --
34559 ---------------------------------------
34560 PROCEDURE AcctLineType_79 (
34561 p_application_id IN NUMBER
34562 ,p_event_id IN NUMBER
34563 ,p_calculate_acctd_flag IN VARCHAR2
34564 ,p_calculate_g_l_flag IN VARCHAR2
34565 ,p_actual_flag IN OUT VARCHAR2
34566 ,p_balance_type_code OUT VARCHAR2
34567 ,p_gain_or_loss_ref OUT VARCHAR2
34568
34569 --Transaction Distribution GL Account
34570 , p_source_26 IN NUMBER
34571 --Bill To Customer Account Identifier
34572 , p_source_37 IN NUMBER
34573 --Bill To Customer Site Use Identifier
34574 , p_source_38 IN NUMBER
34575 --SLA Party Type
34576 , p_source_39 IN VARCHAR2
34577 --Transaction Distribution Account Class
34578 , p_source_43 IN VARCHAR2
34579 --Transaction Distribution Identifier
34580 , p_source_44 IN NUMBER
34581 --Transaction Distribution Type
34582 , p_source_45 IN VARCHAR2
34583 --Transaction Distribution Entered Amount
34584 , p_source_46 IN NUMBER
34585 --Transaction Currency Code
34586 , p_source_47 IN VARCHAR2
34587 --Transaction Exchange Date
34588 , p_source_48 IN DATE
34589 --Transaction Exchange Rate
34590 , p_source_49 IN NUMBER
34591 --Transaction Exchange Rate Type
34592 , p_source_50 IN VARCHAR2
34593 --Transaction Accounting Amount
34594 , p_source_51 IN NUMBER
34595 --Transaction Tax Line Identifier
34596 , p_source_86 IN NUMBER
34597 )
34598 IS
34599
34600 l_component_type VARCHAR2(80);
34601 l_component_code VARCHAR2(30);
34602 l_component_type_code VARCHAR2(1);
34603 l_component_appl_id INTEGER;
34604 l_amb_context_code VARCHAR2(30);
34605 l_entity_code VARCHAR2(30);
34606 l_event_class_code VARCHAR2(30);
34607 l_ae_header_id NUMBER;
34608 l_event_type_code VARCHAR2(30);
34609 l_line_definition_code VARCHAR2(30);
34610 l_line_definition_owner_code VARCHAR2(1);
34611 --
34612 -- adr variables
34613 l_segment VARCHAR2(30);
34614 l_ccid NUMBER;
34615 l_adr_transaction_coa_id NUMBER;
34616 l_adr_accounting_coa_id NUMBER;
34617 l_adr_flexfield_segment_code VARCHAR2(30);
34618 l_adr_flex_value_set_id NUMBER;
34619 l_adr_value_type_code VARCHAR2(30);
34620 l_adr_value_combination_id NUMBER;
34621 l_adr_value_segment_code VARCHAR2(30);
34622
34623 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34624 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34625 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34626 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34627
34628 -- 4262811 Variables ------------------------------------------------------------------------------------------
34629 l_entered_amt_idx NUMBER;
34630 l_accted_amt_idx NUMBER;
34631 l_acc_rev_flag VARCHAR2(1);
34632 l_accrual_line_num NUMBER;
34633 l_tmp_amt NUMBER;
34634 l_acc_rev_natural_side_code VARCHAR2(1);
34635
34636 l_num_entries NUMBER;
34640 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34637 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34638 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34639 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34641 l_recog_line_1 NUMBER;
34642 l_recog_line_2 NUMBER;
34643
34644 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34645 l_bflow_applied_to_amt NUMBER; -- 5132302
34646 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34647
34648 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34649
34650 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34651 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34652
34653 ---------------------------------------------------------------------------------------------------------------
34654
34655
34656 --
34657 -- bulk performance
34658 --
34659 l_balance_type_code VARCHAR2(1);
34660 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34661 l_log_module VARCHAR2(240);
34662
34663 --
34664 -- Upgrade strategy
34665 --
34666 l_actual_upg_option VARCHAR2(1);
34667 l_enc_upg_option VARCHAR2(1);
34668
34669 --
34670 BEGIN
34671 --
34672 IF g_log_enabled THEN
34673 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
34674 END IF;
34675 --
34676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34677
34678 trace
34679 (p_msg => 'BEGIN of AcctLineType_79'
34680 ,p_level => C_LEVEL_PROCEDURE
34681 ,p_module => l_log_module);
34682
34683 END IF;
34684 --
34685 l_component_type := 'AMB_JLT';
34686 l_component_code := 'INV_CHARGES';
34687 l_component_type_code := 'S';
34688 l_component_appl_id := 222;
34689 l_amb_context_code := 'DEFAULT';
34690 l_entity_code := 'TRANSACTIONS';
34691 l_event_class_code := 'INVOICE';
34692 l_event_type_code := 'INVOICE_ALL';
34693 l_line_definition_owner_code := 'S';
34697 l_segment := NULL;
34694 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
34695 --
34696 l_balance_type_code := 'A';
34698 l_ccid := NULL;
34699 l_adr_transaction_coa_id := NULL;
34700 l_adr_accounting_coa_id := NULL;
34701 l_adr_flexfield_segment_code := NULL;
34702 l_adr_flex_value_set_id := NULL;
34703 l_adr_value_type_code := NULL;
34704 l_adr_value_combination_id := NULL;
34705 l_adr_value_segment_code := NULL;
34706
34707 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34708 l_bflow_class_code := ''; -- 4219869 Business Flow
34709 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34710 l_budgetary_control_flag := 'N';
34711
34712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34713 l_bflow_applied_to_amt := NULL; -- 5132302
34714 l_entered_amt_idx := NULL; -- 4262811
34715 l_accted_amt_idx := NULL; -- 4262811
34716 l_acc_rev_flag := NULL; -- 4262811
34717 l_accrual_line_num := NULL; -- 4262811
34718 l_tmp_amt := NULL; -- 4262811
34719 --
34720
34721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34722 l_balance_type_code <> 'B' THEN
34723 IF NVL(p_source_43,'
34724 ') = 'CHARGES'
34725 THEN
34726
34727 --
34728 XLA_AE_LINES_PKG.SetNewLine;
34729
34730 p_balance_type_code := l_balance_type_code;
34731 -- set the flag so later we will know whether the gain loss line needs to be created
34732
34733 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34734 p_actual_flag :='A';
34735 END IF;
34736
34737 --
34738 -- bulk performance
34739 --
34740 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34741 p_header_num => 0); -- 4262811
34742 --
34743 -- set accounting line options
34744 --
34745 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34746 p_natural_side_code => 'C'
34747 , p_gain_or_loss_flag => 'N'
34748 , p_gl_transfer_mode_code => 'S'
34749 , p_acct_entry_type_code => 'A'
34750 , p_switch_side_flag => 'Y'
34751 , p_merge_duplicate_code => 'A'
34752 );
34753 --
34754 l_acc_rev_natural_side_code := 'D'; -- 4262811
34755 --
34756 --
34757 -- set accounting line type info
34758 --
34759 xla_ae_lines_pkg.SetAcctLineType
34760 (p_component_type => l_component_type
34761 ,p_event_type_code => l_event_type_code
34762 ,p_line_definition_owner_code => l_line_definition_owner_code
34763 ,p_line_definition_code => l_line_definition_code
34764 ,p_accounting_line_code => l_component_code
34765 ,p_accounting_line_type_code => l_component_type_code
34766 ,p_accounting_line_appl_id => l_component_appl_id
34767 ,p_amb_context_code => l_amb_context_code
34768 ,p_entity_code => l_entity_code
34769 ,p_event_class_code => l_event_class_code);
34770 --
34771 -- set accounting class
34772 --
34773 xla_ae_lines_pkg.SetAcctClass(
34774 p_accounting_class_code => 'CHARGES'
34775 , p_ae_header_id => l_ae_header_id
34776 );
34777
34778 --
34779 -- set rounding class
34780 --
34781 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34782 'RECEIVABLE';
34783
34784 --
34785 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34786 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34787 --
34788 -- bulk performance
34789 --
34790 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34791
34792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34793 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34794
34795 -- 4955764
34796 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34797 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34798
34799 -- 4458381 Public Sector Enh
34800
34801 --
34802 -- set accounting attributes for the line type
34803 --
34804 l_entered_amt_idx := 3;
34805 l_accted_amt_idx := 8;
34806 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34807 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
34808 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
34809 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
34810 l_rec_acct_attrs.array_char_value(2) := p_source_45;
34811 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
34812 l_rec_acct_attrs.array_num_value(3) := p_source_46;
34813 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
34814 l_rec_acct_attrs.array_char_value(4) := p_source_47;
34815 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
34816 l_rec_acct_attrs.array_date_value(5) := p_source_48;
34817 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
34818 l_rec_acct_attrs.array_num_value(6) := p_source_49;
34819 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
34820 l_rec_acct_attrs.array_char_value(7) := p_source_50;
34821 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
34822 l_rec_acct_attrs.array_num_value(8) := p_source_51;
34823 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
34824 l_rec_acct_attrs.array_num_value(9) := p_source_37;
34825 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
34826 l_rec_acct_attrs.array_num_value(10) := p_source_38;
34827 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
34828 l_rec_acct_attrs.array_char_value(11) := p_source_39;
34829 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
34830 l_rec_acct_attrs.array_num_value(12) := p_source_86;
34831
34832 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34833 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34834
34835 ---------------------------------------------------------------------------------------------------------------
34836 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34837 ---------------------------------------------------------------------------------------------------------------
34838 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34839
34840 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34841 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34842
34843 IF xla_accounting_cache_pkg.GetValueChar
34844 (p_source_code => 'LEDGER_CATEGORY_CODE'
34845 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34846 AND l_bflow_method_code = 'PRIOR_ENTRY'
34847 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34848 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34849 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34850 )
34851 THEN
34852 xla_ae_lines_pkg.BflowUpgEntry
34853 (p_business_method_code => l_bflow_method_code
34854 ,p_business_class_code => l_bflow_class_code
34855 ,p_balance_type => l_balance_type_code);
34856 ELSE
34857 NULL;
34858 -- No business flow processing for business flow method of NONE.
34859 END IF;
34860
34861 --
34862 -- call analytical criteria
34863 --
34864
34865 --
34866 -- call description
34867 --
34868 -- No description or it is inherited.
34869 --
34870 -- call ADRs
34871 -- Bug 4922099
34872 --
34873 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34874 (NVL(l_actual_upg_option, 'N') = 'O') OR
34875 (NVL(l_enc_upg_option, 'N') = 'O')
34876 )
34877 THEN
34878 NULL;
34879 --
34880 --
34881
34882 l_ccid := AcctDerRule_24(
34883 p_application_id => p_application_id
34884 , p_ae_header_id => l_ae_header_id
34885 , p_source_26 => p_source_26
34886 , x_transaction_coa_id => l_adr_transaction_coa_id
34887 , x_accounting_coa_id => l_adr_accounting_coa_id
34891
34888 , x_value_type_code => l_adr_value_type_code
34889 , p_side => 'NA'
34890 );
34892 xla_ae_lines_pkg.set_ccid(
34893 p_code_combination_id => l_ccid
34894 , p_value_type_code => l_adr_value_type_code
34895 , p_transaction_coa_id => l_adr_transaction_coa_id
34896 , p_accounting_coa_id => l_adr_accounting_coa_id
34897 , p_adr_code => 'TRX_DIST_CCID'
34898 , p_adr_type_code => 'S'
34899 , p_component_type => l_component_type
34900 , p_component_code => l_component_code
34901 , p_component_type_code => l_component_type_code
34902 , p_component_appl_id => l_component_appl_id
34903 , p_amb_context_code => l_amb_context_code
34904 , p_side => 'NA'
34905 );
34906
34907
34908 --
34909 --
34910 END IF;
34911 --
34912 -- Bug 4922099
34913 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34914 (NVL(l_enc_upg_option, 'N') = 'O')
34915 ) AND
34916 (l_bflow_method_code = 'PRIOR_ENTRY')
34917 )
34918 THEN
34919 IF
34920 --
34921 1 = 2
34922 --
34923 THEN
34924 xla_accounting_err_pkg.build_message
34925 (p_appli_s_name => 'XLA'
34926 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34927 ,p_token_1 => 'LINE_NUMBER'
34928 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34929 ,p_token_2 => 'LINE_TYPE_NAME'
34930 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34931 l_component_type
34932 ,l_component_code
34933 ,l_component_type_code
34934 ,l_component_appl_id
34935 ,l_amb_context_code
34936 ,l_entity_code
34937 ,l_event_class_code
34938 )
34939 ,p_token_3 => 'OWNER'
34940 ,p_value_3 => xla_lookups_pkg.get_meaning(
34941 p_lookup_type => 'XLA_OWNER_TYPE'
34942 ,p_lookup_code => l_component_type_code
34943 )
34944 ,p_token_4 => 'PRODUCT_NAME'
34945 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34946 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34947 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34948 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34949 ,p_ae_header_id => NULL
34950 );
34951
34952 IF (C_LEVEL_ERROR>= g_log_level) THEN
34953 trace
34954 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34955 ,p_level => C_LEVEL_ERROR
34956 ,p_module => l_log_module);
34957 END IF;
34958 END IF;
34959 END IF;
34960 --
34961 --
34962 ------------------------------------------------------------------------------------------------
34963 -- 4219869 Business Flow
34964 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34965 -- Prior Entry. Currently, the following code is always generated.
34966 ------------------------------------------------------------------------------------------------
34967 XLA_AE_LINES_PKG.ValidateCurrentLine;
34968
34969 ------------------------------------------------------------------------------------
34970 -- 4219869 Business Flow
34971 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34972 ------------------------------------------------------------------------------------
34973 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34974
34975 ----------------------------------------------------------------------------------
34976 -- 4219869 Business Flow
34977 -- Update journal entry status -- Need to generate this within IF <condition>
34978 ----------------------------------------------------------------------------------
34979 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34980 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34981 ,p_balance_type_code => l_balance_type_code
34982 );
34983
34984 -------------------------------------------------------------------------------------------
34985 -- 4262811 - Generate the Accrual Reversal lines
34986 -------------------------------------------------------------------------------------------
34987 BEGIN
34991 l_acc_rev_flag := 'N';
34988 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34989 (g_array_event(p_event_id).array_value_num('header_index'));
34990 IF l_acc_rev_flag IS NULL THEN
34992 END IF;
34993 EXCEPTION
34994 WHEN OTHERS THEN
34995 l_acc_rev_flag := 'N';
34996 END;
34997 --
34998 IF (l_acc_rev_flag = 'Y') THEN
34999
35000 -- 4645092 ------------------------------------------------------------------------------
35001 -- To allow MPA report to determine if it should generate report process
35002 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35003 ------------------------------------------------------------------------------------------
35004
35005 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35006 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35007 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35008 -- call ADRs
35009 -- Bug 4922099
35010 --
35011 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35012 (NVL(l_actual_upg_option, 'N') = 'O') OR
35013 (NVL(l_enc_upg_option, 'N') = 'O')
35014 )
35015 THEN
35016 NULL;
35017 --
35018 --
35019
35020 l_ccid := AcctDerRule_24(
35021 p_application_id => p_application_id
35022 , p_ae_header_id => l_ae_header_id
35023 , p_source_26 => p_source_26
35024 , x_transaction_coa_id => l_adr_transaction_coa_id
35025 , x_accounting_coa_id => l_adr_accounting_coa_id
35026 , x_value_type_code => l_adr_value_type_code
35027 , p_side => 'NA'
35028 );
35029
35030 xla_ae_lines_pkg.set_ccid(
35031 p_code_combination_id => l_ccid
35032 , p_value_type_code => l_adr_value_type_code
35033 , p_transaction_coa_id => l_adr_transaction_coa_id
35034 , p_accounting_coa_id => l_adr_accounting_coa_id
35035 , p_adr_code => 'TRX_DIST_CCID'
35036 , p_adr_type_code => 'S'
35037 , p_component_type => l_component_type
35038 , p_component_code => l_component_code
35039 , p_component_type_code => l_component_type_code
35040 , p_component_appl_id => l_component_appl_id
35041 , p_amb_context_code => l_amb_context_code
35042 , p_side => 'NA'
35043 );
35044
35045
35046 --
35047 --
35048 END IF;
35049
35050 --
35051 -- Update the line information that should be overwritten
35052 --
35053 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35054 p_header_num => 1);
35055 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35056
35057 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35058
35059 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35060 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35061 END IF;
35062
35063 --
35064 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35065 --
35066 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35067 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35068 ELSE
35069 ---------------------------------------------------------------------------------------------------
35070 -- 4262811a Switch Sign
35071 ---------------------------------------------------------------------------------------------------
35072 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35073 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35074 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35075 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35076 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35077 -- 5132302
35078 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35079 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35080
35081 END IF;
35082
35083 -- 4955764
35084 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35085 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35086
35087
35088 XLA_AE_LINES_PKG.ValidateCurrentLine;
35089 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35090
35091 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35092 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35093 ,p_balance_type_code => l_balance_type_code);
35094
35095 END IF;
35096
35097 -----------------------------------------------------------------------------------------
35098 -- 4262811 Multiperiod Accounting
35099 -----------------------------------------------------------------------------------------
35100 -- No MPA option is assigned.
35101
35105 --
35102
35103 END IF;
35104 END IF;
35106
35107 --
35108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35109 trace
35110 (p_msg => 'END of AcctLineType_79'
35111 ,p_level => C_LEVEL_PROCEDURE
35112 ,p_module => l_log_module);
35113 END IF;
35114 --
35115 EXCEPTION
35116 WHEN xla_exceptions_pkg.application_exception THEN
35117 RAISE;
35118 WHEN OTHERS THEN
35119 xla_exceptions_pkg.raise_message
35120 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_79');
35121 END AcctLineType_79;
35122 --
35123
35124 ---------------------------------------
35125 --
35126 -- PRIVATE FUNCTION
35127 -- AcctLineType_80
35128 --
35129 ---------------------------------------
35130 PROCEDURE AcctLineType_80 (
35131 p_application_id IN NUMBER
35132 ,p_event_id IN NUMBER
35133 ,p_calculate_acctd_flag IN VARCHAR2
35134 ,p_calculate_g_l_flag IN VARCHAR2
35135 ,p_actual_flag IN OUT VARCHAR2
35136 ,p_balance_type_code OUT VARCHAR2
35137 ,p_gain_or_loss_ref OUT VARCHAR2
35138
35139 --Transaction Distribution GL Account
35140 , p_source_26 IN NUMBER
35141 --Bill To Customer Account Identifier
35142 , p_source_37 IN NUMBER
35143 --Bill To Customer Site Use Identifier
35144 , p_source_38 IN NUMBER
35145 --SLA Party Type
35146 , p_source_39 IN VARCHAR2
35147 --Transaction Distribution Account Class
35148 , p_source_43 IN VARCHAR2
35149 --Transaction Distribution Identifier
35150 , p_source_44 IN NUMBER
35151 --Transaction Distribution Type
35152 , p_source_45 IN VARCHAR2
35153 --Transaction Distribution Entered Amount
35154 , p_source_46 IN NUMBER
35155 --Transaction Currency Code
35156 , p_source_47 IN VARCHAR2
35157 --Transaction Exchange Date
35158 , p_source_48 IN DATE
35159 --Transaction Exchange Rate
35160 , p_source_49 IN NUMBER
35161 --Transaction Exchange Rate Type
35162 , p_source_50 IN VARCHAR2
35163 --Transaction Accounting Amount
35164 , p_source_51 IN NUMBER
35165 --Transaction Tax Line Identifier
35166 , p_source_86 IN NUMBER
35167 )
35168 IS
35169
35170 l_component_type VARCHAR2(80);
35171 l_component_code VARCHAR2(30);
35172 l_component_type_code VARCHAR2(1);
35173 l_component_appl_id INTEGER;
35174 l_amb_context_code VARCHAR2(30);
35175 l_entity_code VARCHAR2(30);
35176 l_event_class_code VARCHAR2(30);
35177 l_ae_header_id NUMBER;
35178 l_event_type_code VARCHAR2(30);
35179 l_line_definition_code VARCHAR2(30);
35180 l_line_definition_owner_code VARCHAR2(1);
35181 --
35182 -- adr variables
35183 l_segment VARCHAR2(30);
35184 l_ccid NUMBER;
35185 l_adr_transaction_coa_id NUMBER;
35186 l_adr_accounting_coa_id NUMBER;
35187 l_adr_flexfield_segment_code VARCHAR2(30);
35188 l_adr_flex_value_set_id NUMBER;
35189 l_adr_value_type_code VARCHAR2(30);
35190 l_adr_value_combination_id NUMBER;
35191 l_adr_value_segment_code VARCHAR2(30);
35192
35193 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35194 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35195 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35196 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35197
35198 -- 4262811 Variables ------------------------------------------------------------------------------------------
35199 l_entered_amt_idx NUMBER;
35200 l_accted_amt_idx NUMBER;
35201 l_acc_rev_flag VARCHAR2(1);
35202 l_accrual_line_num NUMBER;
35203 l_tmp_amt NUMBER;
35204 l_acc_rev_natural_side_code VARCHAR2(1);
35205
35206 l_num_entries NUMBER;
35207 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35208 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35209 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35210 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35211 l_recog_line_1 NUMBER;
35212 l_recog_line_2 NUMBER;
35213
35214 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35215 l_bflow_applied_to_amt NUMBER; -- 5132302
35216 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35217
35218 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35219
35220 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35221 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35222
35223 ---------------------------------------------------------------------------------------------------------------
35224
35225
35226 --
35227 -- bulk performance
35228 --
35229 l_balance_type_code VARCHAR2(1);
35230 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35231 l_log_module VARCHAR2(240);
35232
35233 --
35234 -- Upgrade strategy
35235 --
35236 l_actual_upg_option VARCHAR2(1);
35237 l_enc_upg_option VARCHAR2(1);
35238
35239 --
35240 BEGIN
35244 END IF;
35241 --
35242 IF g_log_enabled THEN
35243 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
35245 --
35246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35247
35248 trace
35249 (p_msg => 'BEGIN of AcctLineType_80'
35250 ,p_level => C_LEVEL_PROCEDURE
35251 ,p_module => l_log_module);
35252
35253 END IF;
35254 --
35255 l_component_type := 'AMB_JLT';
35256 l_component_code := 'INV_DEFAULT_REC';
35257 l_component_type_code := 'S';
35258 l_component_appl_id := 222;
35259 l_amb_context_code := 'DEFAULT';
35260 l_entity_code := 'TRANSACTIONS';
35261 l_event_class_code := 'INVOICE';
35262 l_event_type_code := 'INVOICE_ALL';
35263 l_line_definition_owner_code := 'S';
35264 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
35265 --
35266 l_balance_type_code := 'A';
35267 l_segment := NULL;
35268 l_ccid := NULL;
35269 l_adr_transaction_coa_id := NULL;
35270 l_adr_accounting_coa_id := NULL;
35271 l_adr_flexfield_segment_code := NULL;
35272 l_adr_flex_value_set_id := NULL;
35273 l_adr_value_type_code := NULL;
35274 l_adr_value_combination_id := NULL;
35275 l_adr_value_segment_code := NULL;
35276
35277 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35278 l_bflow_class_code := 'RECEIVABLE'; -- 4219869 Business Flow
35279 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35280 l_budgetary_control_flag := 'N';
35281
35282 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35283 l_bflow_applied_to_amt := NULL; -- 5132302
35284 l_entered_amt_idx := NULL; -- 4262811
35285 l_accted_amt_idx := NULL; -- 4262811
35286 l_acc_rev_flag := NULL; -- 4262811
35287 l_accrual_line_num := NULL; -- 4262811
35288 l_tmp_amt := NULL; -- 4262811
35289 --
35290
35291 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35292 l_balance_type_code <> 'B' THEN
35293 IF NVL(p_source_43,'
35294 ') = 'REC'
35295 THEN
35296
35297 --
35298 XLA_AE_LINES_PKG.SetNewLine;
35299
35300 p_balance_type_code := l_balance_type_code;
35301 -- set the flag so later we will know whether the gain loss line needs to be created
35302
35303 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35304 p_actual_flag :='A';
35305 END IF;
35306
35307 --
35308 -- bulk performance
35309 --
35310 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35311 p_header_num => 0); -- 4262811
35312 --
35313 -- set accounting line options
35314 --
35315 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35316 p_natural_side_code => 'D'
35317 , p_gain_or_loss_flag => 'N'
35318 , p_gl_transfer_mode_code => 'S'
35319 , p_acct_entry_type_code => 'A'
35320 , p_switch_side_flag => 'Y'
35321 , p_merge_duplicate_code => 'A'
35322 );
35323 --
35324 l_acc_rev_natural_side_code := 'C'; -- 4262811
35325 --
35326 --
35327 -- set accounting line type info
35328 --
35329 xla_ae_lines_pkg.SetAcctLineType
35330 (p_component_type => l_component_type
35331 ,p_event_type_code => l_event_type_code
35332 ,p_line_definition_owner_code => l_line_definition_owner_code
35333 ,p_line_definition_code => l_line_definition_code
35337 ,p_amb_context_code => l_amb_context_code
35334 ,p_accounting_line_code => l_component_code
35335 ,p_accounting_line_type_code => l_component_type_code
35336 ,p_accounting_line_appl_id => l_component_appl_id
35338 ,p_entity_code => l_entity_code
35339 ,p_event_class_code => l_event_class_code);
35340 --
35341 -- set accounting class
35342 --
35343 xla_ae_lines_pkg.SetAcctClass(
35344 p_accounting_class_code => 'RECEIVABLE'
35345 , p_ae_header_id => l_ae_header_id
35346 );
35347
35348 --
35349 -- set rounding class
35350 --
35351 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35352 'RECEIVABLE';
35353
35354 --
35355 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35356 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35357 --
35358 -- bulk performance
35359 --
35360 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35361
35362 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35363 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35364
35365 -- 4955764
35366 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35367 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35368
35369 -- 4458381 Public Sector Enh
35370
35371 --
35372 -- set accounting attributes for the line type
35373 --
35374 l_entered_amt_idx := 3;
35375 l_accted_amt_idx := 8;
35376 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35377 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
35378 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
35379 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
35380 l_rec_acct_attrs.array_char_value(2) := p_source_45;
35381 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
35382 l_rec_acct_attrs.array_num_value(3) := p_source_46;
35383 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
35384 l_rec_acct_attrs.array_char_value(4) := p_source_47;
35385 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
35386 l_rec_acct_attrs.array_date_value(5) := p_source_48;
35387 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
35388 l_rec_acct_attrs.array_num_value(6) := p_source_49;
35389 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
35390 l_rec_acct_attrs.array_char_value(7) := p_source_50;
35391 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
35392 l_rec_acct_attrs.array_num_value(8) := p_source_51;
35393 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
35394 l_rec_acct_attrs.array_num_value(9) := p_source_37;
35395 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
35396 l_rec_acct_attrs.array_num_value(10) := p_source_38;
35397 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
35398 l_rec_acct_attrs.array_char_value(11) := p_source_39;
35399 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
35400 l_rec_acct_attrs.array_num_value(12) := p_source_86;
35401
35402 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35403 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35404
35405 ---------------------------------------------------------------------------------------------------------------
35406 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35407 ---------------------------------------------------------------------------------------------------------------
35408 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35409
35410 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35411 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35412
35413 IF xla_accounting_cache_pkg.GetValueChar
35414 (p_source_code => 'LEDGER_CATEGORY_CODE'
35415 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35416 AND l_bflow_method_code = 'PRIOR_ENTRY'
35417 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35418 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35419 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35420 )
35421 THEN
35422 xla_ae_lines_pkg.BflowUpgEntry
35423 (p_business_method_code => l_bflow_method_code
35424 ,p_business_class_code => l_bflow_class_code
35425 ,p_balance_type => l_balance_type_code);
35426 ELSE
35427 NULL;
35428 -- No business flow processing for business flow method of NONE.
35429 END IF;
35430
35431 --
35432 -- call analytical criteria
35433 --
35434
35435 --
35436 -- call description
35437 --
35438 -- No description or it is inherited.
35439 --
35440 -- call ADRs
35441 -- Bug 4922099
35442 --
35443 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35444 (NVL(l_actual_upg_option, 'N') = 'O') OR
35445 (NVL(l_enc_upg_option, 'N') = 'O')
35446 )
35447 THEN
35448 NULL;
35449 --
35450 --
35451
35455 , p_source_26 => p_source_26
35452 l_ccid := AcctDerRule_24(
35453 p_application_id => p_application_id
35454 , p_ae_header_id => l_ae_header_id
35456 , x_transaction_coa_id => l_adr_transaction_coa_id
35457 , x_accounting_coa_id => l_adr_accounting_coa_id
35458 , x_value_type_code => l_adr_value_type_code
35459 , p_side => 'NA'
35460 );
35461
35462 xla_ae_lines_pkg.set_ccid(
35463 p_code_combination_id => l_ccid
35464 , p_value_type_code => l_adr_value_type_code
35465 , p_transaction_coa_id => l_adr_transaction_coa_id
35466 , p_accounting_coa_id => l_adr_accounting_coa_id
35467 , p_adr_code => 'TRX_DIST_CCID'
35468 , p_adr_type_code => 'S'
35469 , p_component_type => l_component_type
35470 , p_component_code => l_component_code
35471 , p_component_type_code => l_component_type_code
35472 , p_component_appl_id => l_component_appl_id
35473 , p_amb_context_code => l_amb_context_code
35474 , p_side => 'NA'
35475 );
35476
35477
35478 --
35479 --
35480 END IF;
35481 --
35482 -- Bug 4922099
35483 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35484 (NVL(l_enc_upg_option, 'N') = 'O')
35485 ) AND
35486 (l_bflow_method_code = 'PRIOR_ENTRY')
35487 )
35488 THEN
35489 IF
35490 --
35491 1 = 2
35492 --
35493 THEN
35494 xla_accounting_err_pkg.build_message
35495 (p_appli_s_name => 'XLA'
35496 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35497 ,p_token_1 => 'LINE_NUMBER'
35498 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35499 ,p_token_2 => 'LINE_TYPE_NAME'
35500 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35501 l_component_type
35502 ,l_component_code
35503 ,l_component_type_code
35504 ,l_component_appl_id
35505 ,l_amb_context_code
35506 ,l_entity_code
35507 ,l_event_class_code
35508 )
35509 ,p_token_3 => 'OWNER'
35510 ,p_value_3 => xla_lookups_pkg.get_meaning(
35511 p_lookup_type => 'XLA_OWNER_TYPE'
35512 ,p_lookup_code => l_component_type_code
35513 )
35514 ,p_token_4 => 'PRODUCT_NAME'
35515 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35516 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35517 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35518 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35519 ,p_ae_header_id => NULL
35520 );
35521
35522 IF (C_LEVEL_ERROR>= g_log_level) THEN
35523 trace
35524 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35525 ,p_level => C_LEVEL_ERROR
35526 ,p_module => l_log_module);
35527 END IF;
35528 END IF;
35529 END IF;
35530 --
35531 --
35532 ------------------------------------------------------------------------------------------------
35533 -- 4219869 Business Flow
35534 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35535 -- Prior Entry. Currently, the following code is always generated.
35536 ------------------------------------------------------------------------------------------------
35537 XLA_AE_LINES_PKG.ValidateCurrentLine;
35538
35539 ------------------------------------------------------------------------------------
35540 -- 4219869 Business Flow
35541 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35542 ------------------------------------------------------------------------------------
35543 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35544
35545 ----------------------------------------------------------------------------------
35546 -- 4219869 Business Flow
35547 -- Update journal entry status -- Need to generate this within IF <condition>
35548 ----------------------------------------------------------------------------------
35549 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35550 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35554 -------------------------------------------------------------------------------------------
35551 ,p_balance_type_code => l_balance_type_code
35552 );
35553
35555 -- 4262811 - Generate the Accrual Reversal lines
35556 -------------------------------------------------------------------------------------------
35557 BEGIN
35558 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35559 (g_array_event(p_event_id).array_value_num('header_index'));
35560 IF l_acc_rev_flag IS NULL THEN
35561 l_acc_rev_flag := 'N';
35562 END IF;
35563 EXCEPTION
35564 WHEN OTHERS THEN
35565 l_acc_rev_flag := 'N';
35566 END;
35567 --
35568 IF (l_acc_rev_flag = 'Y') THEN
35569
35570 -- 4645092 ------------------------------------------------------------------------------
35571 -- To allow MPA report to determine if it should generate report process
35572 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35573 ------------------------------------------------------------------------------------------
35574
35575 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35576 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35577 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35578 -- call ADRs
35579 -- Bug 4922099
35580 --
35581 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35582 (NVL(l_actual_upg_option, 'N') = 'O') OR
35583 (NVL(l_enc_upg_option, 'N') = 'O')
35584 )
35585 THEN
35586 NULL;
35587 --
35588 --
35589
35590 l_ccid := AcctDerRule_24(
35591 p_application_id => p_application_id
35592 , p_ae_header_id => l_ae_header_id
35593 , p_source_26 => p_source_26
35594 , x_transaction_coa_id => l_adr_transaction_coa_id
35595 , x_accounting_coa_id => l_adr_accounting_coa_id
35596 , x_value_type_code => l_adr_value_type_code
35597 , p_side => 'NA'
35598 );
35599
35600 xla_ae_lines_pkg.set_ccid(
35601 p_code_combination_id => l_ccid
35602 , p_value_type_code => l_adr_value_type_code
35603 , p_transaction_coa_id => l_adr_transaction_coa_id
35604 , p_accounting_coa_id => l_adr_accounting_coa_id
35605 , p_adr_code => 'TRX_DIST_CCID'
35606 , p_adr_type_code => 'S'
35607 , p_component_type => l_component_type
35608 , p_component_code => l_component_code
35609 , p_component_type_code => l_component_type_code
35610 , p_component_appl_id => l_component_appl_id
35611 , p_amb_context_code => l_amb_context_code
35612 , p_side => 'NA'
35613 );
35614
35615
35616 --
35617 --
35618 END IF;
35619
35620 --
35621 -- Update the line information that should be overwritten
35622 --
35623 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35624 p_header_num => 1);
35625 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35626
35627 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35628
35629 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35630 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35631 END IF;
35632
35633 --
35634 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35635 --
35636 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35637 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35638 ELSE
35639 ---------------------------------------------------------------------------------------------------
35640 -- 4262811a Switch Sign
35641 ---------------------------------------------------------------------------------------------------
35642 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35643 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35644 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35645 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35646 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35647 -- 5132302
35648 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35649 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35650
35651 END IF;
35652
35653 -- 4955764
35654 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35655 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35656
35657
35658 XLA_AE_LINES_PKG.ValidateCurrentLine;
35659 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35660
35661 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35662 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35663 ,p_balance_type_code => l_balance_type_code);
35664
35668 -- 4262811 Multiperiod Accounting
35665 END IF;
35666
35667 -----------------------------------------------------------------------------------------
35669 -----------------------------------------------------------------------------------------
35670 -- No MPA option is assigned.
35671
35672
35673 END IF;
35674 END IF;
35675 --
35676
35677 --
35678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35679 trace
35680 (p_msg => 'END of AcctLineType_80'
35681 ,p_level => C_LEVEL_PROCEDURE
35682 ,p_module => l_log_module);
35683 END IF;
35684 --
35685 EXCEPTION
35686 WHEN xla_exceptions_pkg.application_exception THEN
35687 RAISE;
35688 WHEN OTHERS THEN
35689 xla_exceptions_pkg.raise_message
35690 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_80');
35691 END AcctLineType_80;
35692 --
35693
35694 ---------------------------------------
35695 --
35696 -- PRIVATE FUNCTION
35697 -- AcctLineType_81
35698 --
35699 ---------------------------------------
35700 PROCEDURE AcctLineType_81 (
35701 p_application_id IN NUMBER
35702 ,p_event_id IN NUMBER
35703 ,p_calculate_acctd_flag IN VARCHAR2
35704 ,p_calculate_g_l_flag IN VARCHAR2
35705 ,p_actual_flag IN OUT VARCHAR2
35706 ,p_balance_type_code OUT VARCHAR2
35707 ,p_gain_or_loss_ref OUT VARCHAR2
35708
35709 --Transaction Distribution GL Account
35710 , p_source_26 IN NUMBER
35711 --Bill To Customer Account Identifier
35712 , p_source_37 IN NUMBER
35713 --Bill To Customer Site Use Identifier
35714 , p_source_38 IN NUMBER
35715 --SLA Party Type
35716 , p_source_39 IN VARCHAR2
35717 --Transaction Distribution Account Class
35718 , p_source_43 IN VARCHAR2
35719 --Transaction Distribution Identifier
35720 , p_source_44 IN NUMBER
35721 --Transaction Distribution Type
35722 , p_source_45 IN VARCHAR2
35723 --Transaction Distribution Entered Amount
35724 , p_source_46 IN NUMBER
35725 --Transaction Currency Code
35726 , p_source_47 IN VARCHAR2
35727 --Transaction Exchange Date
35728 , p_source_48 IN DATE
35729 --Transaction Exchange Rate
35730 , p_source_49 IN NUMBER
35731 --Transaction Exchange Rate Type
35732 , p_source_50 IN VARCHAR2
35733 --Transaction Accounting Amount
35734 , p_source_51 IN NUMBER
35735 --Transaction Tax Line Identifier
35736 , p_source_86 IN NUMBER
35737 )
35738 IS
35739
35740 l_component_type VARCHAR2(80);
35741 l_component_code VARCHAR2(30);
35742 l_component_type_code VARCHAR2(1);
35743 l_component_appl_id INTEGER;
35744 l_amb_context_code VARCHAR2(30);
35745 l_entity_code VARCHAR2(30);
35746 l_event_class_code VARCHAR2(30);
35747 l_ae_header_id NUMBER;
35748 l_event_type_code VARCHAR2(30);
35749 l_line_definition_code VARCHAR2(30);
35750 l_line_definition_owner_code VARCHAR2(1);
35751 --
35752 -- adr variables
35753 l_segment VARCHAR2(30);
35754 l_ccid NUMBER;
35755 l_adr_transaction_coa_id NUMBER;
35756 l_adr_accounting_coa_id NUMBER;
35757 l_adr_flexfield_segment_code VARCHAR2(30);
35758 l_adr_flex_value_set_id NUMBER;
35759 l_adr_value_type_code VARCHAR2(30);
35760 l_adr_value_combination_id NUMBER;
35761 l_adr_value_segment_code VARCHAR2(30);
35762
35763 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35764 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35765 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35766 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35767
35768 -- 4262811 Variables ------------------------------------------------------------------------------------------
35769 l_entered_amt_idx NUMBER;
35770 l_accted_amt_idx NUMBER;
35771 l_acc_rev_flag VARCHAR2(1);
35772 l_accrual_line_num NUMBER;
35773 l_tmp_amt NUMBER;
35774 l_acc_rev_natural_side_code VARCHAR2(1);
35775
35776 l_num_entries NUMBER;
35777 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35778 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35779 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35780 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35781 l_recog_line_1 NUMBER;
35782 l_recog_line_2 NUMBER;
35783
35784 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35785 l_bflow_applied_to_amt NUMBER; -- 5132302
35786 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35787
35788 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35789
35790 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35791 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35792
35793 ---------------------------------------------------------------------------------------------------------------
35794
35795
35796 --
35797 -- bulk performance
35798 --
35799 l_balance_type_code VARCHAR2(1);
35800 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35801 l_log_module VARCHAR2(240);
35802
35803 --
35804 -- Upgrade strategy
35805 --
35809 --
35806 l_actual_upg_option VARCHAR2(1);
35807 l_enc_upg_option VARCHAR2(1);
35808
35810 BEGIN
35811 --
35812 IF g_log_enabled THEN
35813 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
35814 END IF;
35815 --
35816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35817
35818 trace
35819 (p_msg => 'BEGIN of AcctLineType_81'
35820 ,p_level => C_LEVEL_PROCEDURE
35821 ,p_module => l_log_module);
35822
35823 END IF;
35824 --
35825 l_component_type := 'AMB_JLT';
35826 l_component_code := 'INV_FREIGHT';
35827 l_component_type_code := 'S';
35828 l_component_appl_id := 222;
35829 l_amb_context_code := 'DEFAULT';
35830 l_entity_code := 'TRANSACTIONS';
35831 l_event_class_code := 'INVOICE';
35832 l_event_type_code := 'INVOICE_ALL';
35833 l_line_definition_owner_code := 'S';
35834 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
35835 --
35836 l_balance_type_code := 'A';
35837 l_segment := NULL;
35838 l_ccid := NULL;
35839 l_adr_transaction_coa_id := NULL;
35840 l_adr_accounting_coa_id := NULL;
35841 l_adr_flexfield_segment_code := NULL;
35842 l_adr_flex_value_set_id := NULL;
35843 l_adr_value_type_code := NULL;
35844 l_adr_value_combination_id := NULL;
35845 l_adr_value_segment_code := NULL;
35846
35847 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35848 l_bflow_class_code := 'FREIGHT'; -- 4219869 Business Flow
35849 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35850 l_budgetary_control_flag := 'N';
35851
35852 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35853 l_bflow_applied_to_amt := NULL; -- 5132302
35854 l_entered_amt_idx := NULL; -- 4262811
35855 l_accted_amt_idx := NULL; -- 4262811
35856 l_acc_rev_flag := NULL; -- 4262811
35857 l_accrual_line_num := NULL; -- 4262811
35858 l_tmp_amt := NULL; -- 4262811
35859 --
35860
35861 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35862 l_balance_type_code <> 'B' THEN
35863 IF NVL(p_source_43,'
35864 ') = 'FREIGHT'
35865 THEN
35866
35867 --
35868 XLA_AE_LINES_PKG.SetNewLine;
35869
35870 p_balance_type_code := l_balance_type_code;
35871 -- set the flag so later we will know whether the gain loss line needs to be created
35872
35873 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35874 p_actual_flag :='A';
35875 END IF;
35876
35877 --
35878 -- bulk performance
35879 --
35880 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35881 p_header_num => 0); -- 4262811
35882 --
35883 -- set accounting line options
35884 --
35885 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35886 p_natural_side_code => 'C'
35887 , p_gain_or_loss_flag => 'N'
35888 , p_gl_transfer_mode_code => 'S'
35889 , p_acct_entry_type_code => 'A'
35890 , p_switch_side_flag => 'Y'
35891 , p_merge_duplicate_code => 'A'
35892 );
35893 --
35894 l_acc_rev_natural_side_code := 'D'; -- 4262811
35895 --
35896 --
35897 -- set accounting line type info
35898 --
35899 xla_ae_lines_pkg.SetAcctLineType
35900 (p_component_type => l_component_type
35901 ,p_event_type_code => l_event_type_code
35902 ,p_line_definition_owner_code => l_line_definition_owner_code
35903 ,p_line_definition_code => l_line_definition_code
35904 ,p_accounting_line_code => l_component_code
35905 ,p_accounting_line_type_code => l_component_type_code
35906 ,p_accounting_line_appl_id => l_component_appl_id
35907 ,p_amb_context_code => l_amb_context_code
35908 ,p_entity_code => l_entity_code
35909 ,p_event_class_code => l_event_class_code);
35910 --
35911 -- set accounting class
35912 --
35913 xla_ae_lines_pkg.SetAcctClass(
35914 p_accounting_class_code => 'FREIGHT'
35915 , p_ae_header_id => l_ae_header_id
35916 );
35917
35918 --
35919 -- set rounding class
35920 --
35921 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35922 'RECEIVABLE';
35923
35924 --
35925 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35926 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35927 --
35928 -- bulk performance
35929 --
35930 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35931
35932 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35933 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35934
35935 -- 4955764
35936 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35937 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35938
35939 -- 4458381 Public Sector Enh
35940
35941 --
35942 -- set accounting attributes for the line type
35943 --
35944 l_entered_amt_idx := 3;
35948 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
35945 l_accted_amt_idx := 8;
35946 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35947 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
35949 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
35950 l_rec_acct_attrs.array_char_value(2) := p_source_45;
35951 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
35952 l_rec_acct_attrs.array_num_value(3) := p_source_46;
35953 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
35954 l_rec_acct_attrs.array_char_value(4) := p_source_47;
35955 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
35956 l_rec_acct_attrs.array_date_value(5) := p_source_48;
35957 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
35958 l_rec_acct_attrs.array_num_value(6) := p_source_49;
35959 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
35960 l_rec_acct_attrs.array_char_value(7) := p_source_50;
35961 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
35962 l_rec_acct_attrs.array_num_value(8) := p_source_51;
35963 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
35964 l_rec_acct_attrs.array_num_value(9) := p_source_37;
35965 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
35966 l_rec_acct_attrs.array_num_value(10) := p_source_38;
35967 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
35968 l_rec_acct_attrs.array_char_value(11) := p_source_39;
35969 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
35970 l_rec_acct_attrs.array_num_value(12) := p_source_86;
35971
35972 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35973 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35974
35975 ---------------------------------------------------------------------------------------------------------------
35976 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35977 ---------------------------------------------------------------------------------------------------------------
35978 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35979
35980 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35981 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35982
35983 IF xla_accounting_cache_pkg.GetValueChar
35984 (p_source_code => 'LEDGER_CATEGORY_CODE'
35985 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35986 AND l_bflow_method_code = 'PRIOR_ENTRY'
35987 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35988 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35989 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35990 )
35991 THEN
35992 xla_ae_lines_pkg.BflowUpgEntry
35993 (p_business_method_code => l_bflow_method_code
35994 ,p_business_class_code => l_bflow_class_code
35995 ,p_balance_type => l_balance_type_code);
35996 ELSE
35997 NULL;
35998 -- No business flow processing for business flow method of NONE.
35999 END IF;
36000
36001 --
36002 -- call analytical criteria
36003 --
36004
36005 --
36006 -- call description
36007 --
36008 -- No description or it is inherited.
36009 --
36010 -- call ADRs
36011 -- Bug 4922099
36012 --
36013 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36014 (NVL(l_actual_upg_option, 'N') = 'O') OR
36015 (NVL(l_enc_upg_option, 'N') = 'O')
36016 )
36017 THEN
36018 NULL;
36019 --
36020 --
36021
36022 l_ccid := AcctDerRule_24(
36023 p_application_id => p_application_id
36024 , p_ae_header_id => l_ae_header_id
36025 , p_source_26 => p_source_26
36026 , x_transaction_coa_id => l_adr_transaction_coa_id
36027 , x_accounting_coa_id => l_adr_accounting_coa_id
36028 , x_value_type_code => l_adr_value_type_code
36029 , p_side => 'NA'
36030 );
36031
36032 xla_ae_lines_pkg.set_ccid(
36033 p_code_combination_id => l_ccid
36034 , p_value_type_code => l_adr_value_type_code
36035 , p_transaction_coa_id => l_adr_transaction_coa_id
36036 , p_accounting_coa_id => l_adr_accounting_coa_id
36037 , p_adr_code => 'TRX_DIST_CCID'
36038 , p_adr_type_code => 'S'
36039 , p_component_type => l_component_type
36040 , p_component_code => l_component_code
36041 , p_component_type_code => l_component_type_code
36042 , p_component_appl_id => l_component_appl_id
36043 , p_amb_context_code => l_amb_context_code
36044 , p_side => 'NA'
36045 );
36046
36047
36048 --
36049 --
36050 END IF;
36051 --
36052 -- Bug 4922099
36053 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36054 (NVL(l_enc_upg_option, 'N') = 'O')
36055 ) AND
36056 (l_bflow_method_code = 'PRIOR_ENTRY')
36057 )
36058 THEN
36059 IF
36060 --
36061 1 = 2
36062 --
36063 THEN
36064 xla_accounting_err_pkg.build_message
36065 (p_appli_s_name => 'XLA'
36066 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36067 ,p_token_1 => 'LINE_NUMBER'
36068 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36069 ,p_token_2 => 'LINE_TYPE_NAME'
36070 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36071 l_component_type
36072 ,l_component_code
36073 ,l_component_type_code
36074 ,l_component_appl_id
36075 ,l_amb_context_code
36076 ,l_entity_code
36077 ,l_event_class_code
36078 )
36079 ,p_token_3 => 'OWNER'
36080 ,p_value_3 => xla_lookups_pkg.get_meaning(
36081 p_lookup_type => 'XLA_OWNER_TYPE'
36082 ,p_lookup_code => l_component_type_code
36083 )
36084 ,p_token_4 => 'PRODUCT_NAME'
36085 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36086 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36087 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36088 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36089 ,p_ae_header_id => NULL
36090 );
36091
36092 IF (C_LEVEL_ERROR>= g_log_level) THEN
36093 trace
36094 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36095 ,p_level => C_LEVEL_ERROR
36096 ,p_module => l_log_module);
36097 END IF;
36098 END IF;
36099 END IF;
36100 --
36101 --
36102 ------------------------------------------------------------------------------------------------
36103 -- 4219869 Business Flow
36104 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36105 -- Prior Entry. Currently, the following code is always generated.
36106 ------------------------------------------------------------------------------------------------
36107 XLA_AE_LINES_PKG.ValidateCurrentLine;
36108
36109 ------------------------------------------------------------------------------------
36110 -- 4219869 Business Flow
36111 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36115 ----------------------------------------------------------------------------------
36112 ------------------------------------------------------------------------------------
36113 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36114
36116 -- 4219869 Business Flow
36117 -- Update journal entry status -- Need to generate this within IF <condition>
36118 ----------------------------------------------------------------------------------
36119 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36120 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36121 ,p_balance_type_code => l_balance_type_code
36122 );
36123
36124 -------------------------------------------------------------------------------------------
36125 -- 4262811 - Generate the Accrual Reversal lines
36126 -------------------------------------------------------------------------------------------
36127 BEGIN
36128 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36129 (g_array_event(p_event_id).array_value_num('header_index'));
36130 IF l_acc_rev_flag IS NULL THEN
36131 l_acc_rev_flag := 'N';
36132 END IF;
36133 EXCEPTION
36134 WHEN OTHERS THEN
36135 l_acc_rev_flag := 'N';
36136 END;
36137 --
36138 IF (l_acc_rev_flag = 'Y') THEN
36139
36140 -- 4645092 ------------------------------------------------------------------------------
36141 -- To allow MPA report to determine if it should generate report process
36142 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36143 ------------------------------------------------------------------------------------------
36144
36145 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36146 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36147 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36148 -- call ADRs
36149 -- Bug 4922099
36150 --
36151 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36152 (NVL(l_actual_upg_option, 'N') = 'O') OR
36153 (NVL(l_enc_upg_option, 'N') = 'O')
36154 )
36155 THEN
36156 NULL;
36157 --
36158 --
36159
36160 l_ccid := AcctDerRule_24(
36161 p_application_id => p_application_id
36162 , p_ae_header_id => l_ae_header_id
36163 , p_source_26 => p_source_26
36164 , x_transaction_coa_id => l_adr_transaction_coa_id
36165 , x_accounting_coa_id => l_adr_accounting_coa_id
36166 , x_value_type_code => l_adr_value_type_code
36167 , p_side => 'NA'
36168 );
36169
36170 xla_ae_lines_pkg.set_ccid(
36171 p_code_combination_id => l_ccid
36172 , p_value_type_code => l_adr_value_type_code
36173 , p_transaction_coa_id => l_adr_transaction_coa_id
36174 , p_accounting_coa_id => l_adr_accounting_coa_id
36175 , p_adr_code => 'TRX_DIST_CCID'
36176 , p_adr_type_code => 'S'
36177 , p_component_type => l_component_type
36178 , p_component_code => l_component_code
36179 , p_component_type_code => l_component_type_code
36180 , p_component_appl_id => l_component_appl_id
36181 , p_amb_context_code => l_amb_context_code
36182 , p_side => 'NA'
36183 );
36184
36185
36186 --
36187 --
36188 END IF;
36189
36190 --
36191 -- Update the line information that should be overwritten
36192 --
36193 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36194 p_header_num => 1);
36195 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36196
36197 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36198
36199 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36200 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36201 END IF;
36202
36203 --
36204 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36205 --
36206 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36207 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36208 ELSE
36209 ---------------------------------------------------------------------------------------------------
36210 -- 4262811a Switch Sign
36211 ---------------------------------------------------------------------------------------------------
36212 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36213 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36214 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36215 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36216 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36217 -- 5132302
36218 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36222
36219 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36220
36221 END IF;
36223 -- 4955764
36224 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36225 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36226
36227
36228 XLA_AE_LINES_PKG.ValidateCurrentLine;
36229 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36230
36231 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36232 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36233 ,p_balance_type_code => l_balance_type_code);
36234
36235 END IF;
36236
36237 -----------------------------------------------------------------------------------------
36238 -- 4262811 Multiperiod Accounting
36239 -----------------------------------------------------------------------------------------
36240 -- No MPA option is assigned.
36241
36242
36243 END IF;
36244 END IF;
36245 --
36246
36247 --
36248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36249 trace
36250 (p_msg => 'END of AcctLineType_81'
36251 ,p_level => C_LEVEL_PROCEDURE
36252 ,p_module => l_log_module);
36253 END IF;
36254 --
36255 EXCEPTION
36256 WHEN xla_exceptions_pkg.application_exception THEN
36257 RAISE;
36258 WHEN OTHERS THEN
36259 xla_exceptions_pkg.raise_message
36260 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_81');
36261 END AcctLineType_81;
36262 --
36263
36264 ---------------------------------------
36265 --
36266 -- PRIVATE FUNCTION
36267 -- AcctLineType_82
36268 --
36269 ---------------------------------------
36270 PROCEDURE AcctLineType_82 (
36271 p_application_id IN NUMBER
36272 ,p_event_id IN NUMBER
36273 ,p_calculate_acctd_flag IN VARCHAR2
36274 ,p_calculate_g_l_flag IN VARCHAR2
36275 ,p_actual_flag IN OUT VARCHAR2
36276 ,p_balance_type_code OUT VARCHAR2
36277 ,p_gain_or_loss_ref OUT VARCHAR2
36278
36279 --Transaction Distribution GL Account
36280 , p_source_26 IN NUMBER
36281 --Bill To Customer Account Identifier
36282 , p_source_37 IN NUMBER
36283 --Bill To Customer Site Use Identifier
36284 , p_source_38 IN NUMBER
36285 --SLA Party Type
36286 , p_source_39 IN VARCHAR2
36287 --Transaction Distribution Account Class
36288 , p_source_43 IN VARCHAR2
36289 --Transaction Distribution Identifier
36290 , p_source_44 IN NUMBER
36291 --Transaction Distribution Type
36292 , p_source_45 IN VARCHAR2
36293 --Transaction Distribution Entered Amount
36294 , p_source_46 IN NUMBER
36295 --Transaction Currency Code
36296 , p_source_47 IN VARCHAR2
36297 --Transaction Exchange Date
36298 , p_source_48 IN DATE
36299 --Transaction Exchange Rate
36300 , p_source_49 IN NUMBER
36301 --Transaction Exchange Rate Type
36302 , p_source_50 IN VARCHAR2
36303 --Transaction Accounting Amount
36304 , p_source_51 IN NUMBER
36305 --Transaction Line Flexfield Attribute 1
36306 , p_source_65 IN VARCHAR2
36307 --Transaction Tax Line Identifier
36308 , p_source_86 IN NUMBER
36309 --Rounding Correction Flag
36310 , p_source_87 IN VARCHAR2
36311 )
36312 IS
36313
36314 l_component_type VARCHAR2(80);
36315 l_component_code VARCHAR2(30);
36316 l_component_type_code VARCHAR2(1);
36317 l_component_appl_id INTEGER;
36318 l_amb_context_code VARCHAR2(30);
36319 l_entity_code VARCHAR2(30);
36320 l_event_class_code VARCHAR2(30);
36321 l_ae_header_id NUMBER;
36322 l_event_type_code VARCHAR2(30);
36323 l_line_definition_code VARCHAR2(30);
36324 l_line_definition_owner_code VARCHAR2(1);
36325 --
36326 -- adr variables
36327 l_segment VARCHAR2(30);
36328 l_ccid NUMBER;
36329 l_adr_transaction_coa_id NUMBER;
36330 l_adr_accounting_coa_id NUMBER;
36331 l_adr_flexfield_segment_code VARCHAR2(30);
36332 l_adr_flex_value_set_id NUMBER;
36333 l_adr_value_type_code VARCHAR2(30);
36334 l_adr_value_combination_id NUMBER;
36335 l_adr_value_segment_code VARCHAR2(30);
36336
36337 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36338 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36339 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36340 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36341
36342 -- 4262811 Variables ------------------------------------------------------------------------------------------
36343 l_entered_amt_idx NUMBER;
36344 l_accted_amt_idx NUMBER;
36345 l_acc_rev_flag VARCHAR2(1);
36346 l_accrual_line_num NUMBER;
36347 l_tmp_amt NUMBER;
36348 l_acc_rev_natural_side_code VARCHAR2(1);
36349
36350 l_num_entries NUMBER;
36351 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36352 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36353 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36354 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36355 l_recog_line_1 NUMBER;
36356 l_recog_line_2 NUMBER;
36357
36361
36358 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36359 l_bflow_applied_to_amt NUMBER; -- 5132302
36360 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36362 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36363
36364 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36365 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36366
36367 ---------------------------------------------------------------------------------------------------------------
36368
36369
36370 --
36371 -- bulk performance
36372 --
36373 l_balance_type_code VARCHAR2(1);
36374 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36375 l_log_module VARCHAR2(240);
36376
36377 --
36378 -- Upgrade strategy
36379 --
36380 l_actual_upg_option VARCHAR2(1);
36381 l_enc_upg_option VARCHAR2(1);
36382
36383 --
36384 BEGIN
36385 --
36386 IF g_log_enabled THEN
36387 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
36388 END IF;
36389 --
36390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36391
36392 trace
36393 (p_msg => 'BEGIN of AcctLineType_82'
36394 ,p_level => C_LEVEL_PROCEDURE
36395 ,p_module => l_log_module);
36396
36397 END IF;
36398 --
36399 l_component_type := 'AMB_JLT';
36400 l_component_code := 'INV_REV';
36401 l_component_type_code := 'S';
36402 l_component_appl_id := 222;
36403 l_amb_context_code := 'DEFAULT';
36404 l_entity_code := 'TRANSACTIONS';
36405 l_event_class_code := 'INVOICE';
36406 l_event_type_code := 'INVOICE_ALL';
36407 l_line_definition_owner_code := 'S';
36408 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
36409 --
36410 l_balance_type_code := 'A';
36411 l_segment := NULL;
36412 l_ccid := NULL;
36413 l_adr_transaction_coa_id := NULL;
36414 l_adr_accounting_coa_id := NULL;
36415 l_adr_flexfield_segment_code := NULL;
36416 l_adr_flex_value_set_id := NULL;
36417 l_adr_value_type_code := NULL;
36418 l_adr_value_combination_id := NULL;
36419 l_adr_value_segment_code := NULL;
36420
36421 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36422 l_bflow_class_code := 'REVENUE'; -- 4219869 Business Flow
36423 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36424 l_budgetary_control_flag := 'N';
36425
36426 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36427 l_bflow_applied_to_amt := NULL; -- 5132302
36428 l_entered_amt_idx := NULL; -- 4262811
36429 l_accted_amt_idx := NULL; -- 4262811
36430 l_acc_rev_flag := NULL; -- 4262811
36431 l_accrual_line_num := NULL; -- 4262811
36432 l_tmp_amt := NULL; -- 4262811
36433 --
36434
36435 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36436 l_balance_type_code <> 'B' THEN
36437 IF NVL(p_source_43,'
36438 ') = 'REV' AND
36439 p_source_87 IS NULL
36440 THEN
36441
36442 --
36443 XLA_AE_LINES_PKG.SetNewLine;
36444
36445 p_balance_type_code := l_balance_type_code;
36446 -- set the flag so later we will know whether the gain loss line needs to be created
36447
36448 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36449 p_actual_flag :='A';
36450 END IF;
36451
36452 --
36453 -- bulk performance
36454 --
36455 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36456 p_header_num => 0); -- 4262811
36457 --
36458 -- set accounting line options
36459 --
36460 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36461 p_natural_side_code => 'C'
36462 , p_gain_or_loss_flag => 'N'
36463 , p_gl_transfer_mode_code => 'S'
36464 , p_acct_entry_type_code => 'A'
36465 , p_switch_side_flag => 'Y'
36466 , p_merge_duplicate_code => 'A'
36467 );
36468 --
36469 l_acc_rev_natural_side_code := 'D'; -- 4262811
36470 --
36471 --
36472 -- set accounting line type info
36473 --
36474 xla_ae_lines_pkg.SetAcctLineType
36475 (p_component_type => l_component_type
36476 ,p_event_type_code => l_event_type_code
36477 ,p_line_definition_owner_code => l_line_definition_owner_code
36478 ,p_line_definition_code => l_line_definition_code
36479 ,p_accounting_line_code => l_component_code
36480 ,p_accounting_line_type_code => l_component_type_code
36481 ,p_accounting_line_appl_id => l_component_appl_id
36482 ,p_amb_context_code => l_amb_context_code
36483 ,p_entity_code => l_entity_code
36484 ,p_event_class_code => l_event_class_code);
36485 --
36486 -- set accounting class
36487 --
36488 xla_ae_lines_pkg.SetAcctClass(
36489 p_accounting_class_code => 'REVENUE'
36490 , p_ae_header_id => l_ae_header_id
36491 );
36492
36493 --
36494 -- set rounding class
36495 --
36496 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36497 'RECEIVABLE';
36498
36499 --
36500 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36501 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36502 --
36503 -- bulk performance
36504 --
36505 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36506
36507 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36508 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36509
36510 -- 4955764
36511 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36512 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36513
36514 -- 4458381 Public Sector Enh
36515
36516 --
36517 -- set accounting attributes for the line type
36518 --
36519 l_entered_amt_idx := 3;
36520 l_accted_amt_idx := 8;
36521 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36522 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
36523 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
36524 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
36525 l_rec_acct_attrs.array_char_value(2) := p_source_45;
36526 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
36527 l_rec_acct_attrs.array_num_value(3) := p_source_46;
36528 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
36529 l_rec_acct_attrs.array_char_value(4) := p_source_47;
36530 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
36531 l_rec_acct_attrs.array_date_value(5) := p_source_48;
36532 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
36533 l_rec_acct_attrs.array_num_value(6) := p_source_49;
36534 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
36535 l_rec_acct_attrs.array_char_value(7) := p_source_50;
36536 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
36537 l_rec_acct_attrs.array_num_value(8) := p_source_51;
36538 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
36539 l_rec_acct_attrs.array_num_value(9) := p_source_37;
36540 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
36541 l_rec_acct_attrs.array_num_value(10) := p_source_38;
36542 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
36543 l_rec_acct_attrs.array_char_value(11) := p_source_39;
36544 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
36545 l_rec_acct_attrs.array_num_value(12) := p_source_86;
36546
36547 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36548 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36549
36550 ---------------------------------------------------------------------------------------------------------------
36551 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36552 ---------------------------------------------------------------------------------------------------------------
36553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36554
36555 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36556 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36557
36558 IF xla_accounting_cache_pkg.GetValueChar
36559 (p_source_code => 'LEDGER_CATEGORY_CODE'
36560 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36561 AND l_bflow_method_code = 'PRIOR_ENTRY'
36562 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36563 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36567 xla_ae_lines_pkg.BflowUpgEntry
36564 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36565 )
36566 THEN
36568 (p_business_method_code => l_bflow_method_code
36569 ,p_business_class_code => l_bflow_class_code
36570 ,p_balance_type => l_balance_type_code);
36571 ELSE
36572 NULL;
36573 -- No business flow processing for business flow method of NONE.
36574 END IF;
36575
36576 --
36577 -- call analytical criteria
36578 --
36579
36580
36581 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
36582 xla_ae_lines_pkg.SetAnalyticalCriteria(
36583 p_analytical_criterion_name => 'Project Number'
36584 , p_analytical_criterion_owner => 'S'
36585 , p_analytical_criterion_code => 'PROJECT_NUMBER'
36586 , p_amb_context_code => 'DEFAULT'
36587 , p_balancing_flag => 'N'
36588
36589 , p_analytical_detail_char_1 => TO_CHAR(p_source_65)
36590 , p_analytical_detail_num_1 => NULL
36591 , p_analytical_detail_date_1 => NULL
36592
36593 , p_ae_header_id => l_ae_header_id
36594 )
36595 ;
36596 --
36597
36598 --
36599 -- call description
36600 --
36601 -- No description or it is inherited.
36602 --
36603 -- call ADRs
36604 -- Bug 4922099
36605 --
36606 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36607 (NVL(l_actual_upg_option, 'N') = 'O') OR
36608 (NVL(l_enc_upg_option, 'N') = 'O')
36609 )
36610 THEN
36611 NULL;
36612 --
36613 --
36614
36615 l_ccid := AcctDerRule_24(
36616 p_application_id => p_application_id
36617 , p_ae_header_id => l_ae_header_id
36618 , p_source_26 => p_source_26
36619 , x_transaction_coa_id => l_adr_transaction_coa_id
36620 , x_accounting_coa_id => l_adr_accounting_coa_id
36621 , x_value_type_code => l_adr_value_type_code
36622 , p_side => 'NA'
36623 );
36624
36625 xla_ae_lines_pkg.set_ccid(
36626 p_code_combination_id => l_ccid
36627 , p_value_type_code => l_adr_value_type_code
36628 , p_transaction_coa_id => l_adr_transaction_coa_id
36629 , p_accounting_coa_id => l_adr_accounting_coa_id
36630 , p_adr_code => 'TRX_DIST_CCID'
36631 , p_adr_type_code => 'S'
36632 , p_component_type => l_component_type
36633 , p_component_code => l_component_code
36634 , p_component_type_code => l_component_type_code
36635 , p_component_appl_id => l_component_appl_id
36636 , p_amb_context_code => l_amb_context_code
36637 , p_side => 'NA'
36638 );
36639
36640
36641 --
36642 --
36643 END IF;
36644 --
36645 -- Bug 4922099
36646 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36647 (NVL(l_enc_upg_option, 'N') = 'O')
36648 ) AND
36649 (l_bflow_method_code = 'PRIOR_ENTRY')
36650 )
36651 THEN
36652 IF
36653 --
36654 1 = 2
36655 --
36656 THEN
36657 xla_accounting_err_pkg.build_message
36658 (p_appli_s_name => 'XLA'
36659 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36660 ,p_token_1 => 'LINE_NUMBER'
36661 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36662 ,p_token_2 => 'LINE_TYPE_NAME'
36663 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36664 l_component_type
36665 ,l_component_code
36666 ,l_component_type_code
36667 ,l_component_appl_id
36668 ,l_amb_context_code
36669 ,l_entity_code
36670 ,l_event_class_code
36671 )
36672 ,p_token_3 => 'OWNER'
36673 ,p_value_3 => xla_lookups_pkg.get_meaning(
36674 p_lookup_type => 'XLA_OWNER_TYPE'
36675 ,p_lookup_code => l_component_type_code
36676 )
36677 ,p_token_4 => 'PRODUCT_NAME'
36678 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36679 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36680 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36681 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36685 IF (C_LEVEL_ERROR>= g_log_level) THEN
36682 ,p_ae_header_id => NULL
36683 );
36684
36686 trace
36687 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36688 ,p_level => C_LEVEL_ERROR
36689 ,p_module => l_log_module);
36690 END IF;
36691 END IF;
36692 END IF;
36693 --
36694 --
36695 ------------------------------------------------------------------------------------------------
36696 -- 4219869 Business Flow
36697 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36698 -- Prior Entry. Currently, the following code is always generated.
36699 ------------------------------------------------------------------------------------------------
36700 XLA_AE_LINES_PKG.ValidateCurrentLine;
36701
36702 ------------------------------------------------------------------------------------
36703 -- 4219869 Business Flow
36704 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36705 ------------------------------------------------------------------------------------
36706 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36707
36708 ----------------------------------------------------------------------------------
36709 -- 4219869 Business Flow
36710 -- Update journal entry status -- Need to generate this within IF <condition>
36711 ----------------------------------------------------------------------------------
36712 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36713 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36714 ,p_balance_type_code => l_balance_type_code
36715 );
36716
36717 -------------------------------------------------------------------------------------------
36718 -- 4262811 - Generate the Accrual Reversal lines
36719 -------------------------------------------------------------------------------------------
36720 BEGIN
36721 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36722 (g_array_event(p_event_id).array_value_num('header_index'));
36723 IF l_acc_rev_flag IS NULL THEN
36724 l_acc_rev_flag := 'N';
36725 END IF;
36726 EXCEPTION
36727 WHEN OTHERS THEN
36728 l_acc_rev_flag := 'N';
36729 END;
36730 --
36731 IF (l_acc_rev_flag = 'Y') THEN
36732
36733 -- 4645092 ------------------------------------------------------------------------------
36734 -- To allow MPA report to determine if it should generate report process
36735 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36736 ------------------------------------------------------------------------------------------
36737
36738 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36739 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36740 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36741 -- call ADRs
36742 -- Bug 4922099
36743 --
36744 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36745 (NVL(l_actual_upg_option, 'N') = 'O') OR
36746 (NVL(l_enc_upg_option, 'N') = 'O')
36747 )
36748 THEN
36749 NULL;
36750 --
36751 --
36752
36753 l_ccid := AcctDerRule_24(
36754 p_application_id => p_application_id
36755 , p_ae_header_id => l_ae_header_id
36756 , p_source_26 => p_source_26
36757 , x_transaction_coa_id => l_adr_transaction_coa_id
36758 , x_accounting_coa_id => l_adr_accounting_coa_id
36759 , x_value_type_code => l_adr_value_type_code
36760 , p_side => 'NA'
36761 );
36762
36763 xla_ae_lines_pkg.set_ccid(
36764 p_code_combination_id => l_ccid
36765 , p_value_type_code => l_adr_value_type_code
36766 , p_transaction_coa_id => l_adr_transaction_coa_id
36767 , p_accounting_coa_id => l_adr_accounting_coa_id
36768 , p_adr_code => 'TRX_DIST_CCID'
36769 , p_adr_type_code => 'S'
36770 , p_component_type => l_component_type
36771 , p_component_code => l_component_code
36772 , p_component_type_code => l_component_type_code
36773 , p_component_appl_id => l_component_appl_id
36774 , p_amb_context_code => l_amb_context_code
36775 , p_side => 'NA'
36776 );
36777
36778
36779 --
36780 --
36781 END IF;
36782
36783 --
36784 -- Update the line information that should be overwritten
36785 --
36786 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36787 p_header_num => 1);
36788 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36789
36790 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36791
36792 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36793 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36794 END IF;
36795
36796 --
36797 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36798 --
36799 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36800 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36801 ELSE
36805 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36802 ---------------------------------------------------------------------------------------------------
36803 -- 4262811a Switch Sign
36804 ---------------------------------------------------------------------------------------------------
36806 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36807 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36808 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36809 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36810 -- 5132302
36811 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36812 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36813
36814 END IF;
36815
36816 -- 4955764
36817 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36818 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36819
36820
36821 XLA_AE_LINES_PKG.ValidateCurrentLine;
36822 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36823
36824 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36825 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36826 ,p_balance_type_code => l_balance_type_code);
36827
36828 END IF;
36829
36830 -----------------------------------------------------------------------------------------
36831 -- 4262811 Multiperiod Accounting
36832 -----------------------------------------------------------------------------------------
36833 -- No MPA option is assigned.
36834
36835
36836 END IF;
36837 END IF;
36838 --
36839
36840 --
36841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36842 trace
36843 (p_msg => 'END of AcctLineType_82'
36844 ,p_level => C_LEVEL_PROCEDURE
36845 ,p_module => l_log_module);
36846 END IF;
36847 --
36848 EXCEPTION
36849 WHEN xla_exceptions_pkg.application_exception THEN
36850 RAISE;
36851 WHEN OTHERS THEN
36852 xla_exceptions_pkg.raise_message
36853 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_82');
36854 END AcctLineType_82;
36855 --
36856
36857 ---------------------------------------
36858 --
36859 -- PRIVATE FUNCTION
36860 -- AcctLineType_83
36861 --
36862 ---------------------------------------
36863 PROCEDURE AcctLineType_83 (
36864 p_application_id IN NUMBER
36865 ,p_event_id IN NUMBER
36866 ,p_calculate_acctd_flag IN VARCHAR2
36867 ,p_calculate_g_l_flag IN VARCHAR2
36868 ,p_actual_flag IN OUT VARCHAR2
36869 ,p_balance_type_code OUT VARCHAR2
36870 ,p_gain_or_loss_ref OUT VARCHAR2
36871
36872 --Transaction Distribution GL Account
36873 , p_source_26 IN NUMBER
36874 --Bill To Customer Account Identifier
36875 , p_source_37 IN NUMBER
36876 --Bill To Customer Site Use Identifier
36877 , p_source_38 IN NUMBER
36878 --SLA Party Type
36879 , p_source_39 IN VARCHAR2
36880 --Transaction Distribution Account Class
36881 , p_source_43 IN VARCHAR2
36882 --Transaction Distribution Identifier
36883 , p_source_44 IN NUMBER
36884 --Transaction Distribution Type
36885 , p_source_45 IN VARCHAR2
36886 --Transaction Distribution Entered Amount
36887 , p_source_46 IN NUMBER
36888 --Transaction Currency Code
36889 , p_source_47 IN VARCHAR2
36890 --Transaction Exchange Date
36891 , p_source_48 IN DATE
36892 --Transaction Exchange Rate
36893 , p_source_49 IN NUMBER
36894 --Transaction Exchange Rate Type
36895 , p_source_50 IN VARCHAR2
36896 --Transaction Accounting Amount
36897 , p_source_51 IN NUMBER
36898 --Transaction Tax Line Identifier
36899 , p_source_86 IN NUMBER
36900 --Rounding Correction Flag
36901 , p_source_87 IN VARCHAR2
36902 )
36903 IS
36904
36905 l_component_type VARCHAR2(80);
36906 l_component_code VARCHAR2(30);
36907 l_component_type_code VARCHAR2(1);
36908 l_component_appl_id INTEGER;
36909 l_amb_context_code VARCHAR2(30);
36910 l_entity_code VARCHAR2(30);
36911 l_event_class_code VARCHAR2(30);
36912 l_ae_header_id NUMBER;
36913 l_event_type_code VARCHAR2(30);
36914 l_line_definition_code VARCHAR2(30);
36915 l_line_definition_owner_code VARCHAR2(1);
36916 --
36917 -- adr variables
36918 l_segment VARCHAR2(30);
36919 l_ccid NUMBER;
36920 l_adr_transaction_coa_id NUMBER;
36921 l_adr_accounting_coa_id NUMBER;
36922 l_adr_flexfield_segment_code VARCHAR2(30);
36923 l_adr_flex_value_set_id NUMBER;
36924 l_adr_value_type_code VARCHAR2(30);
36925 l_adr_value_combination_id NUMBER;
36926 l_adr_value_segment_code VARCHAR2(30);
36927
36928 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36929 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36930 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36931 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36932
36933 -- 4262811 Variables ------------------------------------------------------------------------------------------
36937 l_accrual_line_num NUMBER;
36934 l_entered_amt_idx NUMBER;
36935 l_accted_amt_idx NUMBER;
36936 l_acc_rev_flag VARCHAR2(1);
36938 l_tmp_amt NUMBER;
36939 l_acc_rev_natural_side_code VARCHAR2(1);
36940
36941 l_num_entries NUMBER;
36942 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36943 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36944 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36945 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36946 l_recog_line_1 NUMBER;
36947 l_recog_line_2 NUMBER;
36948
36949 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36950 l_bflow_applied_to_amt NUMBER; -- 5132302
36951 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36952
36953 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36954
36955 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36956 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36957
36958 ---------------------------------------------------------------------------------------------------------------
36959
36960
36961 --
36962 -- bulk performance
36963 --
36964 l_balance_type_code VARCHAR2(1);
36965 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36966 l_log_module VARCHAR2(240);
36967
36968 --
36969 -- Upgrade strategy
36970 --
36971 l_actual_upg_option VARCHAR2(1);
36972 l_enc_upg_option VARCHAR2(1);
36973
36974 --
36975 BEGIN
36976 --
36977 IF g_log_enabled THEN
36978 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
36979 END IF;
36980 --
36981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36982
36983 trace
36984 (p_msg => 'BEGIN of AcctLineType_83'
36985 ,p_level => C_LEVEL_PROCEDURE
36986 ,p_module => l_log_module);
36987
36988 END IF;
36989 --
36990 l_component_type := 'AMB_JLT';
36991 l_component_code := 'INV_REV_ROUND';
36992 l_component_type_code := 'S';
36993 l_component_appl_id := 222;
36994 l_amb_context_code := 'DEFAULT';
36995 l_entity_code := 'TRANSACTIONS';
36996 l_event_class_code := 'INVOICE';
36997 l_event_type_code := 'INVOICE_ALL';
36998 l_line_definition_owner_code := 'S';
36999 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
37000 --
37001 l_balance_type_code := 'A';
37002 l_segment := NULL;
37003 l_ccid := NULL;
37004 l_adr_transaction_coa_id := NULL;
37005 l_adr_accounting_coa_id := NULL;
37006 l_adr_flexfield_segment_code := NULL;
37007 l_adr_flex_value_set_id := NULL;
37008 l_adr_value_type_code := NULL;
37009 l_adr_value_combination_id := NULL;
37010 l_adr_value_segment_code := NULL;
37011
37012 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37013 l_bflow_class_code := 'REVENUE'; -- 4219869 Business Flow
37014 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37015 l_budgetary_control_flag := 'N';
37016
37017 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37018 l_bflow_applied_to_amt := NULL; -- 5132302
37019 l_entered_amt_idx := NULL; -- 4262811
37020 l_accted_amt_idx := NULL; -- 4262811
37021 l_acc_rev_flag := NULL; -- 4262811
37022 l_accrual_line_num := NULL; -- 4262811
37023 l_tmp_amt := NULL; -- 4262811
37024 --
37025
37026 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37027 l_balance_type_code <> 'B' THEN
37028 IF NVL(p_source_43,'
37029 ') = 'REV' AND
37030 NVL(p_source_87,'
37031 ') = 'Y'
37032 THEN
37033
37034 --
37035 XLA_AE_LINES_PKG.SetNewLine;
37036
37037 p_balance_type_code := l_balance_type_code;
37038 -- set the flag so later we will know whether the gain loss line needs to be created
37039
37040 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37041 p_actual_flag :='A';
37042 END IF;
37043
37044 --
37045 -- bulk performance
37046 --
37047 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37048 p_header_num => 0); -- 4262811
37049 --
37050 -- set accounting line options
37051 --
37052 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37053 p_natural_side_code => 'C'
37054 , p_gain_or_loss_flag => 'N'
37055 , p_gl_transfer_mode_code => 'S'
37056 , p_acct_entry_type_code => 'A'
37057 , p_switch_side_flag => 'Y'
37058 , p_merge_duplicate_code => 'N'
37059 );
37060 --
37061 l_acc_rev_natural_side_code := 'D'; -- 4262811
37062 --
37063 --
37064 -- set accounting line type info
37065 --
37066 xla_ae_lines_pkg.SetAcctLineType
37067 (p_component_type => l_component_type
37068 ,p_event_type_code => l_event_type_code
37069 ,p_line_definition_owner_code => l_line_definition_owner_code
37070 ,p_line_definition_code => l_line_definition_code
37071 ,p_accounting_line_code => l_component_code
37072 ,p_accounting_line_type_code => l_component_type_code
37073 ,p_accounting_line_appl_id => l_component_appl_id
37074 ,p_amb_context_code => l_amb_context_code
37075 ,p_entity_code => l_entity_code
37076 ,p_event_class_code => l_event_class_code);
37077 --
37078 -- set accounting class
37079 --
37080 xla_ae_lines_pkg.SetAcctClass(
37081 p_accounting_class_code => 'REVENUE'
37082 , p_ae_header_id => l_ae_header_id
37083 );
37084
37085 --
37086 -- set rounding class
37087 --
37088 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37089 'RECEIVABLE';
37090
37091 --
37092 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37093 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37094 --
37095 -- bulk performance
37096 --
37097 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37098
37099 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37100 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37101
37102 -- 4955764
37103 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37104 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37105
37106 -- 4458381 Public Sector Enh
37107
37108 --
37109 -- set accounting attributes for the line type
37110 --
37111 l_entered_amt_idx := 3;
37112 l_accted_amt_idx := 8;
37113 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37114 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
37115 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
37116 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
37117 l_rec_acct_attrs.array_char_value(2) := p_source_45;
37118 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
37119 l_rec_acct_attrs.array_num_value(3) := p_source_46;
37120 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
37121 l_rec_acct_attrs.array_char_value(4) := p_source_47;
37122 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
37123 l_rec_acct_attrs.array_date_value(5) := p_source_48;
37124 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
37125 l_rec_acct_attrs.array_num_value(6) := p_source_49;
37126 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
37127 l_rec_acct_attrs.array_char_value(7) := p_source_50;
37128 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
37129 l_rec_acct_attrs.array_num_value(8) := p_source_51;
37130 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
37131 l_rec_acct_attrs.array_num_value(9) := p_source_37;
37132 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
37133 l_rec_acct_attrs.array_num_value(10) := p_source_38;
37134 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
37135 l_rec_acct_attrs.array_char_value(11) := p_source_39;
37136 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
37137 l_rec_acct_attrs.array_num_value(12) := p_source_86;
37138
37139 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37140 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37141
37142 ---------------------------------------------------------------------------------------------------------------
37143 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37144 ---------------------------------------------------------------------------------------------------------------
37145 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37146
37147 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37148 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37149
37150 IF xla_accounting_cache_pkg.GetValueChar
37151 (p_source_code => 'LEDGER_CATEGORY_CODE'
37152 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37153 AND l_bflow_method_code = 'PRIOR_ENTRY'
37154 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37155 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37156 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37157 )
37158 THEN
37159 xla_ae_lines_pkg.BflowUpgEntry
37160 (p_business_method_code => l_bflow_method_code
37161 ,p_business_class_code => l_bflow_class_code
37162 ,p_balance_type => l_balance_type_code);
37163 ELSE
37164 NULL;
37165 -- No business flow processing for business flow method of NONE.
37166 END IF;
37167
37168 --
37169 -- call analytical criteria
37170 --
37171
37172 --
37173 -- call description
37174 --
37175 -- No description or it is inherited.
37176 --
37177 -- call ADRs
37178 -- Bug 4922099
37179 --
37180 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37181 (NVL(l_actual_upg_option, 'N') = 'O') OR
37182 (NVL(l_enc_upg_option, 'N') = 'O')
37183 )
37184 THEN
37185 NULL;
37186 --
37187 --
37188
37189 l_ccid := AcctDerRule_24(
37190 p_application_id => p_application_id
37191 , p_ae_header_id => l_ae_header_id
37192 , p_source_26 => p_source_26
37193 , x_transaction_coa_id => l_adr_transaction_coa_id
37194 , x_accounting_coa_id => l_adr_accounting_coa_id
37195 , x_value_type_code => l_adr_value_type_code
37196 , p_side => 'NA'
37197 );
37198
37199 xla_ae_lines_pkg.set_ccid(
37200 p_code_combination_id => l_ccid
37201 , p_value_type_code => l_adr_value_type_code
37202 , p_transaction_coa_id => l_adr_transaction_coa_id
37203 , p_accounting_coa_id => l_adr_accounting_coa_id
37204 , p_adr_code => 'TRX_DIST_CCID'
37205 , p_adr_type_code => 'S'
37206 , p_component_type => l_component_type
37207 , p_component_code => l_component_code
37208 , p_component_type_code => l_component_type_code
37209 , p_component_appl_id => l_component_appl_id
37210 , p_amb_context_code => l_amb_context_code
37211 , p_side => 'NA'
37212 );
37213
37214
37215 --
37216 --
37217 END IF;
37218 --
37219 -- Bug 4922099
37220 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37221 (NVL(l_enc_upg_option, 'N') = 'O')
37222 ) AND
37223 (l_bflow_method_code = 'PRIOR_ENTRY')
37224 )
37225 THEN
37226 IF
37227 --
37228 1 = 2
37229 --
37230 THEN
37231 xla_accounting_err_pkg.build_message
37232 (p_appli_s_name => 'XLA'
37233 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37234 ,p_token_1 => 'LINE_NUMBER'
37235 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37236 ,p_token_2 => 'LINE_TYPE_NAME'
37237 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37238 l_component_type
37239 ,l_component_code
37240 ,l_component_type_code
37241 ,l_component_appl_id
37242 ,l_amb_context_code
37243 ,l_entity_code
37244 ,l_event_class_code
37245 )
37246 ,p_token_3 => 'OWNER'
37247 ,p_value_3 => xla_lookups_pkg.get_meaning(
37248 p_lookup_type => 'XLA_OWNER_TYPE'
37249 ,p_lookup_code => l_component_type_code
37250 )
37251 ,p_token_4 => 'PRODUCT_NAME'
37252 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37253 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37254 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37255 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37256 ,p_ae_header_id => NULL
37257 );
37258
37259 IF (C_LEVEL_ERROR>= g_log_level) THEN
37260 trace
37261 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37262 ,p_level => C_LEVEL_ERROR
37263 ,p_module => l_log_module);
37264 END IF;
37265 END IF;
37266 END IF;
37267 --
37268 --
37269 ------------------------------------------------------------------------------------------------
37270 -- 4219869 Business Flow
37271 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37272 -- Prior Entry. Currently, the following code is always generated.
37273 ------------------------------------------------------------------------------------------------
37274 XLA_AE_LINES_PKG.ValidateCurrentLine;
37275
37276 ------------------------------------------------------------------------------------
37277 -- 4219869 Business Flow
37278 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37279 ------------------------------------------------------------------------------------
37280 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37281
37282 ----------------------------------------------------------------------------------
37283 -- 4219869 Business Flow
37284 -- Update journal entry status -- Need to generate this within IF <condition>
37285 ----------------------------------------------------------------------------------
37286 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37287 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37288 ,p_balance_type_code => l_balance_type_code
37289 );
37290
37291 -------------------------------------------------------------------------------------------
37292 -- 4262811 - Generate the Accrual Reversal lines
37293 -------------------------------------------------------------------------------------------
37294 BEGIN
37295 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37296 (g_array_event(p_event_id).array_value_num('header_index'));
37297 IF l_acc_rev_flag IS NULL THEN
37298 l_acc_rev_flag := 'N';
37299 END IF;
37300 EXCEPTION
37301 WHEN OTHERS THEN
37302 l_acc_rev_flag := 'N';
37303 END;
37304 --
37305 IF (l_acc_rev_flag = 'Y') THEN
37306
37307 -- 4645092 ------------------------------------------------------------------------------
37308 -- To allow MPA report to determine if it should generate report process
37309 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37310 ------------------------------------------------------------------------------------------
37311
37312 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37313 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37314 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37315 -- call ADRs
37316 -- Bug 4922099
37317 --
37318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37319 (NVL(l_actual_upg_option, 'N') = 'O') OR
37320 (NVL(l_enc_upg_option, 'N') = 'O')
37321 )
37322 THEN
37323 NULL;
37324 --
37325 --
37326
37327 l_ccid := AcctDerRule_24(
37328 p_application_id => p_application_id
37329 , p_ae_header_id => l_ae_header_id
37330 , p_source_26 => p_source_26
37331 , x_transaction_coa_id => l_adr_transaction_coa_id
37332 , x_accounting_coa_id => l_adr_accounting_coa_id
37333 , x_value_type_code => l_adr_value_type_code
37334 , p_side => 'NA'
37335 );
37336
37337 xla_ae_lines_pkg.set_ccid(
37338 p_code_combination_id => l_ccid
37339 , p_value_type_code => l_adr_value_type_code
37340 , p_transaction_coa_id => l_adr_transaction_coa_id
37341 , p_accounting_coa_id => l_adr_accounting_coa_id
37342 , p_adr_code => 'TRX_DIST_CCID'
37343 , p_adr_type_code => 'S'
37344 , p_component_type => l_component_type
37345 , p_component_code => l_component_code
37346 , p_component_type_code => l_component_type_code
37347 , p_component_appl_id => l_component_appl_id
37348 , p_amb_context_code => l_amb_context_code
37349 , p_side => 'NA'
37350 );
37351
37352
37353 --
37354 --
37355 END IF;
37356
37357 --
37358 -- Update the line information that should be overwritten
37359 --
37360 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37361 p_header_num => 1);
37362 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37363
37364 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37365
37366 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37367 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37368 END IF;
37369
37370 --
37371 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37372 --
37373 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37374 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37375 ELSE
37376 ---------------------------------------------------------------------------------------------------
37377 -- 4262811a Switch Sign
37378 ---------------------------------------------------------------------------------------------------
37379 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37380 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37381 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37382 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37383 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37384 -- 5132302
37385 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37386 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37387
37388 END IF;
37389
37390 -- 4955764
37391 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37392 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37393
37394
37395 XLA_AE_LINES_PKG.ValidateCurrentLine;
37396 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37397
37398 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37402 END IF;
37399 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37400 ,p_balance_type_code => l_balance_type_code);
37401
37403
37404 -----------------------------------------------------------------------------------------
37405 -- 4262811 Multiperiod Accounting
37406 -----------------------------------------------------------------------------------------
37407 -- No MPA option is assigned.
37408
37409
37410 END IF;
37411 END IF;
37412 --
37413
37414 --
37415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37416 trace
37417 (p_msg => 'END of AcctLineType_83'
37418 ,p_level => C_LEVEL_PROCEDURE
37419 ,p_module => l_log_module);
37420 END IF;
37421 --
37422 EXCEPTION
37423 WHEN xla_exceptions_pkg.application_exception THEN
37424 RAISE;
37425 WHEN OTHERS THEN
37426 xla_exceptions_pkg.raise_message
37427 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_83');
37428 END AcctLineType_83;
37429 --
37430
37431 ---------------------------------------
37432 --
37433 -- PRIVATE FUNCTION
37434 -- AcctLineType_84
37435 --
37436 ---------------------------------------
37437 PROCEDURE AcctLineType_84 (
37438 p_application_id IN NUMBER
37439 ,p_event_id IN NUMBER
37440 ,p_calculate_acctd_flag IN VARCHAR2
37441 ,p_calculate_g_l_flag IN VARCHAR2
37442 ,p_actual_flag IN OUT VARCHAR2
37443 ,p_balance_type_code OUT VARCHAR2
37444 ,p_gain_or_loss_ref OUT VARCHAR2
37445
37446 --Transaction Distribution GL Account
37447 , p_source_26 IN NUMBER
37448 --Bill To Customer Account Identifier
37449 , p_source_37 IN NUMBER
37453 , p_source_39 IN VARCHAR2
37450 --Bill To Customer Site Use Identifier
37451 , p_source_38 IN NUMBER
37452 --SLA Party Type
37454 --Transaction Distribution Account Class
37455 , p_source_43 IN VARCHAR2
37456 --Transaction Distribution Identifier
37457 , p_source_44 IN NUMBER
37458 --Transaction Distribution Type
37459 , p_source_45 IN VARCHAR2
37460 --Transaction Distribution Entered Amount
37461 , p_source_46 IN NUMBER
37462 --Transaction Currency Code
37463 , p_source_47 IN VARCHAR2
37464 --Transaction Exchange Date
37465 , p_source_48 IN DATE
37466 --Transaction Exchange Rate
37467 , p_source_49 IN NUMBER
37468 --Transaction Exchange Rate Type
37469 , p_source_50 IN VARCHAR2
37470 --Transaction Accounting Amount
37471 , p_source_51 IN NUMBER
37472 --Transaction Tax Line Identifier
37473 , p_source_86 IN NUMBER
37474 )
37475 IS
37476
37477 l_component_type VARCHAR2(80);
37478 l_component_code VARCHAR2(30);
37479 l_component_type_code VARCHAR2(1);
37480 l_component_appl_id INTEGER;
37481 l_amb_context_code VARCHAR2(30);
37482 l_entity_code VARCHAR2(30);
37483 l_event_class_code VARCHAR2(30);
37484 l_ae_header_id NUMBER;
37485 l_event_type_code VARCHAR2(30);
37486 l_line_definition_code VARCHAR2(30);
37487 l_line_definition_owner_code VARCHAR2(1);
37488 --
37489 -- adr variables
37490 l_segment VARCHAR2(30);
37491 l_ccid NUMBER;
37492 l_adr_transaction_coa_id NUMBER;
37493 l_adr_accounting_coa_id NUMBER;
37494 l_adr_flexfield_segment_code VARCHAR2(30);
37495 l_adr_flex_value_set_id NUMBER;
37496 l_adr_value_type_code VARCHAR2(30);
37497 l_adr_value_combination_id NUMBER;
37498 l_adr_value_segment_code VARCHAR2(30);
37499
37500 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37501 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37502 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37503 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37504
37505 -- 4262811 Variables ------------------------------------------------------------------------------------------
37506 l_entered_amt_idx NUMBER;
37507 l_accted_amt_idx NUMBER;
37508 l_acc_rev_flag VARCHAR2(1);
37509 l_accrual_line_num NUMBER;
37510 l_tmp_amt NUMBER;
37511 l_acc_rev_natural_side_code VARCHAR2(1);
37512
37513 l_num_entries NUMBER;
37514 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37515 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37516 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37517 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37518 l_recog_line_1 NUMBER;
37519 l_recog_line_2 NUMBER;
37520
37521 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37522 l_bflow_applied_to_amt NUMBER; -- 5132302
37523 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37524
37525 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37526
37527 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37528 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37529
37530 ---------------------------------------------------------------------------------------------------------------
37531
37532
37533 --
37534 -- bulk performance
37535 --
37536 l_balance_type_code VARCHAR2(1);
37537 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37538 l_log_module VARCHAR2(240);
37539
37540 --
37541 -- Upgrade strategy
37542 --
37543 l_actual_upg_option VARCHAR2(1);
37544 l_enc_upg_option VARCHAR2(1);
37545
37546 --
37547 BEGIN
37548 --
37549 IF g_log_enabled THEN
37550 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
37551 END IF;
37552 --
37553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37554
37555 trace
37556 (p_msg => 'BEGIN of AcctLineType_84'
37557 ,p_level => C_LEVEL_PROCEDURE
37558 ,p_module => l_log_module);
37559
37560 END IF;
37561 --
37562 l_component_type := 'AMB_JLT';
37563 l_component_code := 'INV_ROUND';
37564 l_component_type_code := 'S';
37565 l_component_appl_id := 222;
37566 l_amb_context_code := 'DEFAULT';
37567 l_entity_code := 'TRANSACTIONS';
37568 l_event_class_code := 'INVOICE';
37569 l_event_type_code := 'INVOICE_ALL';
37570 l_line_definition_owner_code := 'S';
37571 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
37572 --
37573 l_balance_type_code := 'A';
37574 l_segment := NULL;
37575 l_ccid := NULL;
37576 l_adr_transaction_coa_id := NULL;
37577 l_adr_accounting_coa_id := NULL;
37578 l_adr_flexfield_segment_code := NULL;
37579 l_adr_flex_value_set_id := NULL;
37580 l_adr_value_type_code := NULL;
37581 l_adr_value_combination_id := NULL;
37582 l_adr_value_segment_code := NULL;
37583
37584 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37585 l_bflow_class_code := ''; -- 4219869 Business Flow
37589 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37586 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37587 l_budgetary_control_flag := 'N';
37588
37590 l_bflow_applied_to_amt := NULL; -- 5132302
37591 l_entered_amt_idx := NULL; -- 4262811
37592 l_accted_amt_idx := NULL; -- 4262811
37593 l_acc_rev_flag := NULL; -- 4262811
37594 l_accrual_line_num := NULL; -- 4262811
37595 l_tmp_amt := NULL; -- 4262811
37596 --
37597
37598 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37599 l_balance_type_code <> 'B' THEN
37600 IF NVL(p_source_43,'
37601 ') = 'ROUND'
37602 THEN
37603
37604 --
37605 XLA_AE_LINES_PKG.SetNewLine;
37606
37607 p_balance_type_code := l_balance_type_code;
37608 -- set the flag so later we will know whether the gain loss line needs to be created
37609
37610 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37611 p_actual_flag :='A';
37612 END IF;
37613
37614 --
37615 -- bulk performance
37616 --
37617 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37618 p_header_num => 0); -- 4262811
37619 --
37620 -- set accounting line options
37621 --
37622 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37623 p_natural_side_code => 'C'
37624 , p_gain_or_loss_flag => 'N'
37625 , p_gl_transfer_mode_code => 'S'
37626 , p_acct_entry_type_code => 'A'
37627 , p_switch_side_flag => 'Y'
37628 , p_merge_duplicate_code => 'A'
37629 );
37630 --
37631 l_acc_rev_natural_side_code := 'D'; -- 4262811
37632 --
37633 --
37634 -- set accounting line type info
37635 --
37636 xla_ae_lines_pkg.SetAcctLineType
37637 (p_component_type => l_component_type
37638 ,p_event_type_code => l_event_type_code
37639 ,p_line_definition_owner_code => l_line_definition_owner_code
37640 ,p_line_definition_code => l_line_definition_code
37641 ,p_accounting_line_code => l_component_code
37642 ,p_accounting_line_type_code => l_component_type_code
37643 ,p_accounting_line_appl_id => l_component_appl_id
37644 ,p_amb_context_code => l_amb_context_code
37645 ,p_entity_code => l_entity_code
37646 ,p_event_class_code => l_event_class_code);
37647 --
37648 -- set accounting class
37649 --
37650 xla_ae_lines_pkg.SetAcctClass(
37651 p_accounting_class_code => 'ROUNDING'
37652 , p_ae_header_id => l_ae_header_id
37653 );
37654
37655 --
37656 -- set rounding class
37657 --
37658 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37659 'RECEIVABLE';
37660
37661 --
37662 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37663 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37664 --
37665 -- bulk performance
37666 --
37667 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37668
37669 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37670 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37671
37672 -- 4955764
37673 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37674 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37675
37676 -- 4458381 Public Sector Enh
37677
37678 --
37679 -- set accounting attributes for the line type
37680 --
37681 l_entered_amt_idx := 3;
37682 l_accted_amt_idx := 8;
37683 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37684 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
37685 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
37686 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
37687 l_rec_acct_attrs.array_char_value(2) := p_source_45;
37688 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
37689 l_rec_acct_attrs.array_num_value(3) := p_source_46;
37690 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
37691 l_rec_acct_attrs.array_char_value(4) := p_source_47;
37692 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
37693 l_rec_acct_attrs.array_date_value(5) := p_source_48;
37694 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
37695 l_rec_acct_attrs.array_num_value(6) := p_source_49;
37696 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
37697 l_rec_acct_attrs.array_char_value(7) := p_source_50;
37698 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
37699 l_rec_acct_attrs.array_num_value(8) := p_source_51;
37700 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
37701 l_rec_acct_attrs.array_num_value(9) := p_source_37;
37702 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
37703 l_rec_acct_attrs.array_num_value(10) := p_source_38;
37704 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
37705 l_rec_acct_attrs.array_char_value(11) := p_source_39;
37706 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
37707 l_rec_acct_attrs.array_num_value(12) := p_source_86;
37708
37709 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37710 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37711
37715 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37712 ---------------------------------------------------------------------------------------------------------------
37713 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37714 ---------------------------------------------------------------------------------------------------------------
37716
37717 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37718 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37719
37720 IF xla_accounting_cache_pkg.GetValueChar
37721 (p_source_code => 'LEDGER_CATEGORY_CODE'
37722 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37723 AND l_bflow_method_code = 'PRIOR_ENTRY'
37724 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37725 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37726 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37727 )
37728 THEN
37729 xla_ae_lines_pkg.BflowUpgEntry
37730 (p_business_method_code => l_bflow_method_code
37731 ,p_business_class_code => l_bflow_class_code
37732 ,p_balance_type => l_balance_type_code);
37733 ELSE
37734 NULL;
37735 -- No business flow processing for business flow method of NONE.
37736 END IF;
37737
37738 --
37739 -- call analytical criteria
37740 --
37741
37742 --
37743 -- call description
37744 --
37745 -- No description or it is inherited.
37746 --
37747 -- call ADRs
37748 -- Bug 4922099
37749 --
37750 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37751 (NVL(l_actual_upg_option, 'N') = 'O') OR
37752 (NVL(l_enc_upg_option, 'N') = 'O')
37753 )
37754 THEN
37755 NULL;
37756 --
37757 --
37758
37759 l_ccid := AcctDerRule_24(
37760 p_application_id => p_application_id
37761 , p_ae_header_id => l_ae_header_id
37762 , p_source_26 => p_source_26
37763 , x_transaction_coa_id => l_adr_transaction_coa_id
37764 , x_accounting_coa_id => l_adr_accounting_coa_id
37765 , x_value_type_code => l_adr_value_type_code
37766 , p_side => 'NA'
37767 );
37768
37769 xla_ae_lines_pkg.set_ccid(
37770 p_code_combination_id => l_ccid
37771 , p_value_type_code => l_adr_value_type_code
37772 , p_transaction_coa_id => l_adr_transaction_coa_id
37773 , p_accounting_coa_id => l_adr_accounting_coa_id
37774 , p_adr_code => 'TRX_DIST_CCID'
37775 , p_adr_type_code => 'S'
37776 , p_component_type => l_component_type
37777 , p_component_code => l_component_code
37778 , p_component_type_code => l_component_type_code
37779 , p_component_appl_id => l_component_appl_id
37780 , p_amb_context_code => l_amb_context_code
37781 , p_side => 'NA'
37782 );
37783
37784
37785 --
37786 --
37787 END IF;
37788 --
37789 -- Bug 4922099
37790 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37791 (NVL(l_enc_upg_option, 'N') = 'O')
37792 ) AND
37793 (l_bflow_method_code = 'PRIOR_ENTRY')
37794 )
37795 THEN
37796 IF
37797 --
37798 1 = 2
37799 --
37800 THEN
37801 xla_accounting_err_pkg.build_message
37802 (p_appli_s_name => 'XLA'
37803 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37804 ,p_token_1 => 'LINE_NUMBER'
37805 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37806 ,p_token_2 => 'LINE_TYPE_NAME'
37807 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37808 l_component_type
37809 ,l_component_code
37810 ,l_component_type_code
37811 ,l_component_appl_id
37815 )
37812 ,l_amb_context_code
37813 ,l_entity_code
37814 ,l_event_class_code
37816 ,p_token_3 => 'OWNER'
37817 ,p_value_3 => xla_lookups_pkg.get_meaning(
37818 p_lookup_type => 'XLA_OWNER_TYPE'
37819 ,p_lookup_code => l_component_type_code
37820 )
37821 ,p_token_4 => 'PRODUCT_NAME'
37822 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37823 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37824 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37825 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37826 ,p_ae_header_id => NULL
37827 );
37828
37829 IF (C_LEVEL_ERROR>= g_log_level) THEN
37830 trace
37831 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37832 ,p_level => C_LEVEL_ERROR
37833 ,p_module => l_log_module);
37834 END IF;
37835 END IF;
37836 END IF;
37837 --
37838 --
37839 ------------------------------------------------------------------------------------------------
37840 -- 4219869 Business Flow
37841 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37842 -- Prior Entry. Currently, the following code is always generated.
37843 ------------------------------------------------------------------------------------------------
37844 XLA_AE_LINES_PKG.ValidateCurrentLine;
37845
37846 ------------------------------------------------------------------------------------
37847 -- 4219869 Business Flow
37848 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37849 ------------------------------------------------------------------------------------
37850 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37851
37852 ----------------------------------------------------------------------------------
37853 -- 4219869 Business Flow
37854 -- Update journal entry status -- Need to generate this within IF <condition>
37855 ----------------------------------------------------------------------------------
37856 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37857 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37858 ,p_balance_type_code => l_balance_type_code
37859 );
37860
37861 -------------------------------------------------------------------------------------------
37862 -- 4262811 - Generate the Accrual Reversal lines
37863 -------------------------------------------------------------------------------------------
37864 BEGIN
37865 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37866 (g_array_event(p_event_id).array_value_num('header_index'));
37867 IF l_acc_rev_flag IS NULL THEN
37868 l_acc_rev_flag := 'N';
37869 END IF;
37870 EXCEPTION
37871 WHEN OTHERS THEN
37872 l_acc_rev_flag := 'N';
37873 END;
37874 --
37875 IF (l_acc_rev_flag = 'Y') THEN
37876
37877 -- 4645092 ------------------------------------------------------------------------------
37878 -- To allow MPA report to determine if it should generate report process
37879 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37880 ------------------------------------------------------------------------------------------
37881
37882 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37883 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37884 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37885 -- call ADRs
37886 -- Bug 4922099
37887 --
37888 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37889 (NVL(l_actual_upg_option, 'N') = 'O') OR
37890 (NVL(l_enc_upg_option, 'N') = 'O')
37891 )
37892 THEN
37893 NULL;
37894 --
37895 --
37896
37897 l_ccid := AcctDerRule_24(
37898 p_application_id => p_application_id
37899 , p_ae_header_id => l_ae_header_id
37900 , p_source_26 => p_source_26
37901 , x_transaction_coa_id => l_adr_transaction_coa_id
37902 , x_accounting_coa_id => l_adr_accounting_coa_id
37903 , x_value_type_code => l_adr_value_type_code
37904 , p_side => 'NA'
37905 );
37906
37907 xla_ae_lines_pkg.set_ccid(
37908 p_code_combination_id => l_ccid
37909 , p_value_type_code => l_adr_value_type_code
37910 , p_transaction_coa_id => l_adr_transaction_coa_id
37911 , p_accounting_coa_id => l_adr_accounting_coa_id
37912 , p_adr_code => 'TRX_DIST_CCID'
37913 , p_adr_type_code => 'S'
37914 , p_component_type => l_component_type
37915 , p_component_code => l_component_code
37916 , p_component_type_code => l_component_type_code
37920 );
37917 , p_component_appl_id => l_component_appl_id
37918 , p_amb_context_code => l_amb_context_code
37919 , p_side => 'NA'
37921
37922
37923 --
37924 --
37925 END IF;
37926
37927 --
37928 -- Update the line information that should be overwritten
37929 --
37930 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37931 p_header_num => 1);
37932 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37933
37934 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37935
37936 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37937 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37938 END IF;
37939
37940 --
37941 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37942 --
37943 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37944 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37945 ELSE
37946 ---------------------------------------------------------------------------------------------------
37947 -- 4262811a Switch Sign
37948 ---------------------------------------------------------------------------------------------------
37949 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37950 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37952 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37953 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37954 -- 5132302
37955 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37956 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37957
37958 END IF;
37959
37960 -- 4955764
37961 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37962 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37963
37964
37965 XLA_AE_LINES_PKG.ValidateCurrentLine;
37966 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37967
37968 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37969 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37970 ,p_balance_type_code => l_balance_type_code);
37971
37972 END IF;
37973
37974 -----------------------------------------------------------------------------------------
37975 -- 4262811 Multiperiod Accounting
37976 -----------------------------------------------------------------------------------------
37977 -- No MPA option is assigned.
37978
37979
37980 END IF;
37981 END IF;
37982 --
37983
37984 --
37985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37986 trace
37987 (p_msg => 'END of AcctLineType_84'
37988 ,p_level => C_LEVEL_PROCEDURE
37989 ,p_module => l_log_module);
37990 END IF;
37991 --
37992 EXCEPTION
37993 WHEN xla_exceptions_pkg.application_exception THEN
37994 RAISE;
37995 WHEN OTHERS THEN
37996 xla_exceptions_pkg.raise_message
37997 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_84');
37998 END AcctLineType_84;
37999 --
38000
38001 ---------------------------------------
38002 --
38003 -- PRIVATE FUNCTION
38004 -- AcctLineType_85
38005 --
38006 ---------------------------------------
38007 PROCEDURE AcctLineType_85 (
38008 p_application_id IN NUMBER
38009 ,p_event_id IN NUMBER
38010 ,p_calculate_acctd_flag IN VARCHAR2
38011 ,p_calculate_g_l_flag IN VARCHAR2
38012 ,p_actual_flag IN OUT VARCHAR2
38013 ,p_balance_type_code OUT VARCHAR2
38014 ,p_gain_or_loss_ref OUT VARCHAR2
38015
38016 --Transaction Distribution GL Account
38017 , p_source_26 IN NUMBER
38018 --Bill To Customer Account Identifier
38019 , p_source_37 IN NUMBER
38020 --Bill To Customer Site Use Identifier
38021 , p_source_38 IN NUMBER
38022 --SLA Party Type
38023 , p_source_39 IN VARCHAR2
38024 --Transaction Distribution Account Class
38025 , p_source_43 IN VARCHAR2
38026 --Transaction Distribution Identifier
38027 , p_source_44 IN NUMBER
38028 --Transaction Distribution Type
38029 , p_source_45 IN VARCHAR2
38030 --Transaction Distribution Entered Amount
38031 , p_source_46 IN NUMBER
38032 --Transaction Currency Code
38033 , p_source_47 IN VARCHAR2
38034 --Transaction Exchange Date
38035 , p_source_48 IN DATE
38036 --Transaction Exchange Rate
38037 , p_source_49 IN NUMBER
38038 --Transaction Exchange Rate Type
38039 , p_source_50 IN VARCHAR2
38040 --Transaction Accounting Amount
38041 , p_source_51 IN NUMBER
38042 --Transaction Tax Line Identifier
38043 , p_source_86 IN NUMBER
38044 )
38045 IS
38046
38047 l_component_type VARCHAR2(80);
38048 l_component_code VARCHAR2(30);
38052 l_entity_code VARCHAR2(30);
38049 l_component_type_code VARCHAR2(1);
38050 l_component_appl_id INTEGER;
38051 l_amb_context_code VARCHAR2(30);
38053 l_event_class_code VARCHAR2(30);
38054 l_ae_header_id NUMBER;
38055 l_event_type_code VARCHAR2(30);
38056 l_line_definition_code VARCHAR2(30);
38057 l_line_definition_owner_code VARCHAR2(1);
38058 --
38059 -- adr variables
38060 l_segment VARCHAR2(30);
38061 l_ccid NUMBER;
38062 l_adr_transaction_coa_id NUMBER;
38063 l_adr_accounting_coa_id NUMBER;
38064 l_adr_flexfield_segment_code VARCHAR2(30);
38065 l_adr_flex_value_set_id NUMBER;
38066 l_adr_value_type_code VARCHAR2(30);
38067 l_adr_value_combination_id NUMBER;
38068 l_adr_value_segment_code VARCHAR2(30);
38069
38070 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38071 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38072 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38073 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38074
38075 -- 4262811 Variables ------------------------------------------------------------------------------------------
38076 l_entered_amt_idx NUMBER;
38077 l_accted_amt_idx NUMBER;
38078 l_acc_rev_flag VARCHAR2(1);
38079 l_accrual_line_num NUMBER;
38080 l_tmp_amt NUMBER;
38081 l_acc_rev_natural_side_code VARCHAR2(1);
38082
38083 l_num_entries NUMBER;
38084 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38085 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38086 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38087 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38088 l_recog_line_1 NUMBER;
38089 l_recog_line_2 NUMBER;
38090
38091 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38092 l_bflow_applied_to_amt NUMBER; -- 5132302
38093 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38094
38095 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38096
38097 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38098 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38099
38100 ---------------------------------------------------------------------------------------------------------------
38101
38102
38103 --
38104 -- bulk performance
38105 --
38106 l_balance_type_code VARCHAR2(1);
38107 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38108 l_log_module VARCHAR2(240);
38109
38110 --
38111 -- Upgrade strategy
38112 --
38113 l_actual_upg_option VARCHAR2(1);
38114 l_enc_upg_option VARCHAR2(1);
38115
38116 --
38117 BEGIN
38118 --
38119 IF g_log_enabled THEN
38120 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
38121 END IF;
38122 --
38123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38124
38125 trace
38126 (p_msg => 'BEGIN of AcctLineType_85'
38127 ,p_level => C_LEVEL_PROCEDURE
38128 ,p_module => l_log_module);
38129
38130 END IF;
38131 --
38132 l_component_type := 'AMB_JLT';
38133 l_component_code := 'INV_TAX';
38134 l_component_type_code := 'S';
38135 l_component_appl_id := 222;
38136 l_amb_context_code := 'DEFAULT';
38137 l_entity_code := 'TRANSACTIONS';
38138 l_event_class_code := 'INVOICE';
38139 l_event_type_code := 'INVOICE_ALL';
38140 l_line_definition_owner_code := 'S';
38141 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
38142 --
38143 l_balance_type_code := 'A';
38144 l_segment := NULL;
38145 l_ccid := NULL;
38146 l_adr_transaction_coa_id := NULL;
38147 l_adr_accounting_coa_id := NULL;
38148 l_adr_flexfield_segment_code := NULL;
38149 l_adr_flex_value_set_id := NULL;
38150 l_adr_value_type_code := NULL;
38151 l_adr_value_combination_id := NULL;
38152 l_adr_value_segment_code := NULL;
38153
38154 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38155 l_bflow_class_code := 'TAX'; -- 4219869 Business Flow
38156 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38157 l_budgetary_control_flag := 'N';
38158
38159 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38160 l_bflow_applied_to_amt := NULL; -- 5132302
38161 l_entered_amt_idx := NULL; -- 4262811
38162 l_accted_amt_idx := NULL; -- 4262811
38163 l_acc_rev_flag := NULL; -- 4262811
38164 l_accrual_line_num := NULL; -- 4262811
38165 l_tmp_amt := NULL; -- 4262811
38166 --
38167
38168 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38169 l_balance_type_code <> 'B' THEN
38170 IF NVL(p_source_43,'
38171 ') = 'TAX'
38172 THEN
38173
38174 --
38175 XLA_AE_LINES_PKG.SetNewLine;
38176
38177 p_balance_type_code := l_balance_type_code;
38178 -- set the flag so later we will know whether the gain loss line needs to be created
38179
38180 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38181 p_actual_flag :='A';
38182 END IF;
38186 --
38183
38184 --
38185 -- bulk performance
38187 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38188 p_header_num => 0); -- 4262811
38189 --
38190 -- set accounting line options
38191 --
38192 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38193 p_natural_side_code => 'C'
38194 , p_gain_or_loss_flag => 'N'
38195 , p_gl_transfer_mode_code => 'S'
38196 , p_acct_entry_type_code => 'A'
38197 , p_switch_side_flag => 'Y'
38198 , p_merge_duplicate_code => 'A'
38199 );
38200 --
38201 l_acc_rev_natural_side_code := 'D'; -- 4262811
38202 --
38203 --
38204 -- set accounting line type info
38205 --
38206 xla_ae_lines_pkg.SetAcctLineType
38207 (p_component_type => l_component_type
38208 ,p_event_type_code => l_event_type_code
38209 ,p_line_definition_owner_code => l_line_definition_owner_code
38210 ,p_line_definition_code => l_line_definition_code
38211 ,p_accounting_line_code => l_component_code
38212 ,p_accounting_line_type_code => l_component_type_code
38213 ,p_accounting_line_appl_id => l_component_appl_id
38214 ,p_amb_context_code => l_amb_context_code
38215 ,p_entity_code => l_entity_code
38216 ,p_event_class_code => l_event_class_code);
38217 --
38218 -- set accounting class
38219 --
38220 xla_ae_lines_pkg.SetAcctClass(
38221 p_accounting_class_code => 'TAX'
38222 , p_ae_header_id => l_ae_header_id
38223 );
38224
38225 --
38226 -- set rounding class
38227 --
38228 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38229 'RECEIVABLE';
38230
38231 --
38232 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38233 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38234 --
38235 -- bulk performance
38236 --
38237 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38238
38239 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38240 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38241
38242 -- 4955764
38243 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38244 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38245
38246 -- 4458381 Public Sector Enh
38247
38248 --
38249 -- set accounting attributes for the line type
38250 --
38251 l_entered_amt_idx := 3;
38252 l_accted_amt_idx := 8;
38253 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38254 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
38255 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
38256 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
38257 l_rec_acct_attrs.array_char_value(2) := p_source_45;
38258 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
38259 l_rec_acct_attrs.array_num_value(3) := p_source_46;
38260 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
38261 l_rec_acct_attrs.array_char_value(4) := p_source_47;
38262 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
38263 l_rec_acct_attrs.array_date_value(5) := p_source_48;
38264 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
38265 l_rec_acct_attrs.array_num_value(6) := p_source_49;
38266 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
38267 l_rec_acct_attrs.array_char_value(7) := p_source_50;
38268 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
38269 l_rec_acct_attrs.array_num_value(8) := p_source_51;
38270 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
38271 l_rec_acct_attrs.array_num_value(9) := p_source_37;
38272 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
38273 l_rec_acct_attrs.array_num_value(10) := p_source_38;
38274 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
38275 l_rec_acct_attrs.array_char_value(11) := p_source_39;
38276 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
38277 l_rec_acct_attrs.array_num_value(12) := p_source_86;
38278
38279 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38280 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38281
38282 ---------------------------------------------------------------------------------------------------------------
38286
38283 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38284 ---------------------------------------------------------------------------------------------------------------
38285 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38287 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38288 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38289
38290 IF xla_accounting_cache_pkg.GetValueChar
38291 (p_source_code => 'LEDGER_CATEGORY_CODE'
38292 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38293 AND l_bflow_method_code = 'PRIOR_ENTRY'
38294 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38295 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38296 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38297 )
38298 THEN
38299 xla_ae_lines_pkg.BflowUpgEntry
38300 (p_business_method_code => l_bflow_method_code
38301 ,p_business_class_code => l_bflow_class_code
38302 ,p_balance_type => l_balance_type_code);
38303 ELSE
38304 NULL;
38305 -- No business flow processing for business flow method of NONE.
38306 END IF;
38307
38308 --
38309 -- call analytical criteria
38310 --
38311
38312 --
38313 -- call description
38314 --
38315 -- No description or it is inherited.
38316 --
38317 -- call ADRs
38318 -- Bug 4922099
38319 --
38320 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38321 (NVL(l_actual_upg_option, 'N') = 'O') OR
38322 (NVL(l_enc_upg_option, 'N') = 'O')
38323 )
38324 THEN
38325 NULL;
38326 --
38327 --
38328
38329 l_ccid := AcctDerRule_24(
38330 p_application_id => p_application_id
38331 , p_ae_header_id => l_ae_header_id
38332 , p_source_26 => p_source_26
38333 , x_transaction_coa_id => l_adr_transaction_coa_id
38334 , x_accounting_coa_id => l_adr_accounting_coa_id
38335 , x_value_type_code => l_adr_value_type_code
38336 , p_side => 'NA'
38337 );
38338
38339 xla_ae_lines_pkg.set_ccid(
38340 p_code_combination_id => l_ccid
38341 , p_value_type_code => l_adr_value_type_code
38342 , p_transaction_coa_id => l_adr_transaction_coa_id
38343 , p_accounting_coa_id => l_adr_accounting_coa_id
38344 , p_adr_code => 'TRX_DIST_CCID'
38345 , p_adr_type_code => 'S'
38346 , p_component_type => l_component_type
38347 , p_component_code => l_component_code
38348 , p_component_type_code => l_component_type_code
38349 , p_component_appl_id => l_component_appl_id
38350 , p_amb_context_code => l_amb_context_code
38351 , p_side => 'NA'
38352 );
38353
38354
38355 --
38356 --
38357 END IF;
38358 --
38359 -- Bug 4922099
38360 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38361 (NVL(l_enc_upg_option, 'N') = 'O')
38362 ) AND
38363 (l_bflow_method_code = 'PRIOR_ENTRY')
38364 )
38365 THEN
38366 IF
38367 --
38368 1 = 2
38369 --
38370 THEN
38371 xla_accounting_err_pkg.build_message
38372 (p_appli_s_name => 'XLA'
38373 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38374 ,p_token_1 => 'LINE_NUMBER'
38375 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38376 ,p_token_2 => 'LINE_TYPE_NAME'
38377 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38378 l_component_type
38379 ,l_component_code
38380 ,l_component_type_code
38381 ,l_component_appl_id
38382 ,l_amb_context_code
38383 ,l_entity_code
38384 ,l_event_class_code
38385 )
38386 ,p_token_3 => 'OWNER'
38390 )
38387 ,p_value_3 => xla_lookups_pkg.get_meaning(
38388 p_lookup_type => 'XLA_OWNER_TYPE'
38389 ,p_lookup_code => l_component_type_code
38391 ,p_token_4 => 'PRODUCT_NAME'
38392 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38393 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38394 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38395 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38396 ,p_ae_header_id => NULL
38397 );
38398
38399 IF (C_LEVEL_ERROR>= g_log_level) THEN
38400 trace
38401 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38402 ,p_level => C_LEVEL_ERROR
38403 ,p_module => l_log_module);
38404 END IF;
38405 END IF;
38406 END IF;
38407 --
38408 --
38409 ------------------------------------------------------------------------------------------------
38410 -- 4219869 Business Flow
38411 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38412 -- Prior Entry. Currently, the following code is always generated.
38413 ------------------------------------------------------------------------------------------------
38417 -- 4219869 Business Flow
38414 XLA_AE_LINES_PKG.ValidateCurrentLine;
38415
38416 ------------------------------------------------------------------------------------
38418 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38419 ------------------------------------------------------------------------------------
38420 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38421
38422 ----------------------------------------------------------------------------------
38423 -- 4219869 Business Flow
38424 -- Update journal entry status -- Need to generate this within IF <condition>
38425 ----------------------------------------------------------------------------------
38426 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38427 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38428 ,p_balance_type_code => l_balance_type_code
38429 );
38430
38431 -------------------------------------------------------------------------------------------
38432 -- 4262811 - Generate the Accrual Reversal lines
38433 -------------------------------------------------------------------------------------------
38434 BEGIN
38435 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38436 (g_array_event(p_event_id).array_value_num('header_index'));
38437 IF l_acc_rev_flag IS NULL THEN
38438 l_acc_rev_flag := 'N';
38439 END IF;
38440 EXCEPTION
38441 WHEN OTHERS THEN
38442 l_acc_rev_flag := 'N';
38443 END;
38444 --
38445 IF (l_acc_rev_flag = 'Y') THEN
38446
38447 -- 4645092 ------------------------------------------------------------------------------
38448 -- To allow MPA report to determine if it should generate report process
38449 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38450 ------------------------------------------------------------------------------------------
38451
38452 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38453 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38454 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38455 -- call ADRs
38456 -- Bug 4922099
38457 --
38458 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38459 (NVL(l_actual_upg_option, 'N') = 'O') OR
38460 (NVL(l_enc_upg_option, 'N') = 'O')
38461 )
38462 THEN
38463 NULL;
38464 --
38465 --
38466
38467 l_ccid := AcctDerRule_24(
38468 p_application_id => p_application_id
38469 , p_ae_header_id => l_ae_header_id
38470 , p_source_26 => p_source_26
38471 , x_transaction_coa_id => l_adr_transaction_coa_id
38472 , x_accounting_coa_id => l_adr_accounting_coa_id
38473 , x_value_type_code => l_adr_value_type_code
38474 , p_side => 'NA'
38475 );
38476
38477 xla_ae_lines_pkg.set_ccid(
38478 p_code_combination_id => l_ccid
38479 , p_value_type_code => l_adr_value_type_code
38480 , p_transaction_coa_id => l_adr_transaction_coa_id
38481 , p_accounting_coa_id => l_adr_accounting_coa_id
38482 , p_adr_code => 'TRX_DIST_CCID'
38483 , p_adr_type_code => 'S'
38484 , p_component_type => l_component_type
38485 , p_component_code => l_component_code
38486 , p_component_type_code => l_component_type_code
38487 , p_component_appl_id => l_component_appl_id
38488 , p_amb_context_code => l_amb_context_code
38489 , p_side => 'NA'
38490 );
38491
38492
38493 --
38494 --
38495 END IF;
38496
38497 --
38498 -- Update the line information that should be overwritten
38499 --
38500 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38501 p_header_num => 1);
38502 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38503
38504 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38505
38506 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38507 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38508 END IF;
38509
38510 --
38511 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38512 --
38513 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38514 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38515 ELSE
38516 ---------------------------------------------------------------------------------------------------
38517 -- 4262811a Switch Sign
38518 ---------------------------------------------------------------------------------------------------
38519 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38520 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38521 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38522 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38523 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38524 -- 5132302
38525 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38526 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38527
38528 END IF;
38529
38530 -- 4955764
38531 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38532 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38533
38534
38535 XLA_AE_LINES_PKG.ValidateCurrentLine;
38536 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38537
38538 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38539 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38540 ,p_balance_type_code => l_balance_type_code);
38541
38542 END IF;
38543
38544 -----------------------------------------------------------------------------------------
38545 -- 4262811 Multiperiod Accounting
38546 -----------------------------------------------------------------------------------------
38547 -- No MPA option is assigned.
38548
38549
38550 END IF;
38551 END IF;
38552 --
38553
38554 --
38555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38556 trace
38557 (p_msg => 'END of AcctLineType_85'
38558 ,p_level => C_LEVEL_PROCEDURE
38559 ,p_module => l_log_module);
38560 END IF;
38561 --
38562 EXCEPTION
38563 WHEN xla_exceptions_pkg.application_exception THEN
38564 RAISE;
38565 WHEN OTHERS THEN
38566 xla_exceptions_pkg.raise_message
38567 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_85');
38568 END AcctLineType_85;
38569 --
38570
38571 ---------------------------------------
38572 --
38573 -- PRIVATE FUNCTION
38574 -- AcctLineType_86
38575 --
38576 ---------------------------------------
38577 PROCEDURE AcctLineType_86 (
38578 p_application_id IN NUMBER
38579 ,p_event_id IN NUMBER
38580 ,p_calculate_acctd_flag IN VARCHAR2
38581 ,p_calculate_g_l_flag IN VARCHAR2
38582 ,p_actual_flag IN OUT VARCHAR2
38583 ,p_balance_type_code OUT VARCHAR2
38584 ,p_gain_or_loss_ref OUT VARCHAR2
38585
38586 --Transaction Distribution GL Account
38587 , p_source_26 IN NUMBER
38588 --Bill To Customer Account Identifier
38589 , p_source_37 IN NUMBER
38590 --Bill To Customer Site Use Identifier
38591 , p_source_38 IN NUMBER
38592 --SLA Party Type
38593 , p_source_39 IN VARCHAR2
38594 --Transaction Distribution Account Class
38595 , p_source_43 IN VARCHAR2
38596 --Transaction Distribution Identifier
38597 , p_source_44 IN NUMBER
38598 --Transaction Distribution Type
38599 , p_source_45 IN VARCHAR2
38600 --Transaction Distribution Entered Amount
38601 , p_source_46 IN NUMBER
38602 --Transaction Currency Code
38603 , p_source_47 IN VARCHAR2
38604 --Transaction Exchange Date
38605 , p_source_48 IN DATE
38606 --Transaction Exchange Rate
38607 , p_source_49 IN NUMBER
38608 --Transaction Exchange Rate Type
38609 , p_source_50 IN VARCHAR2
38610 --Transaction Accounting Amount
38611 , p_source_51 IN NUMBER
38612 --Transaction Tax Line Identifier
38613 , p_source_86 IN NUMBER
38614 --Rounding Correction Flag
38615 , p_source_87 IN VARCHAR2
38616 )
38617 IS
38618
38619 l_component_type VARCHAR2(80);
38620 l_component_code VARCHAR2(30);
38621 l_component_type_code VARCHAR2(1);
38622 l_component_appl_id INTEGER;
38623 l_amb_context_code VARCHAR2(30);
38624 l_entity_code VARCHAR2(30);
38625 l_event_class_code VARCHAR2(30);
38626 l_ae_header_id NUMBER;
38627 l_event_type_code VARCHAR2(30);
38628 l_line_definition_code VARCHAR2(30);
38629 l_line_definition_owner_code VARCHAR2(1);
38630 --
38631 -- adr variables
38632 l_segment VARCHAR2(30);
38633 l_ccid NUMBER;
38634 l_adr_transaction_coa_id NUMBER;
38635 l_adr_accounting_coa_id NUMBER;
38636 l_adr_flexfield_segment_code VARCHAR2(30);
38637 l_adr_flex_value_set_id NUMBER;
38638 l_adr_value_type_code VARCHAR2(30);
38639 l_adr_value_combination_id NUMBER;
38640 l_adr_value_segment_code VARCHAR2(30);
38641
38642 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38643 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38644 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38645 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38646
38647 -- 4262811 Variables ------------------------------------------------------------------------------------------
38648 l_entered_amt_idx NUMBER;
38649 l_accted_amt_idx NUMBER;
38650 l_acc_rev_flag VARCHAR2(1);
38651 l_accrual_line_num NUMBER;
38652 l_tmp_amt NUMBER;
38653 l_acc_rev_natural_side_code VARCHAR2(1);
38654
38655 l_num_entries NUMBER;
38656 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38657 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38658 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38659 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38660 l_recog_line_1 NUMBER;
38661 l_recog_line_2 NUMBER;
38662
38663 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38664 l_bflow_applied_to_amt NUMBER; -- 5132302
38665 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38666
38667 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38668
38669 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38670 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38671
38672 ---------------------------------------------------------------------------------------------------------------
38673
38674
38675 --
38676 -- bulk performance
38677 --
38678 l_balance_type_code VARCHAR2(1);
38679 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38680 l_log_module VARCHAR2(240);
38681
38682 --
38683 -- Upgrade strategy
38684 --
38685 l_actual_upg_option VARCHAR2(1);
38686 l_enc_upg_option VARCHAR2(1);
38687
38688 --
38689 BEGIN
38690 --
38691 IF g_log_enabled THEN
38692 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
38693 END IF;
38694 --
38695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38696
38697 trace
38698 (p_msg => 'BEGIN of AcctLineType_86'
38699 ,p_level => C_LEVEL_PROCEDURE
38700 ,p_module => l_log_module);
38701
38702 END IF;
38703 --
38704 l_component_type := 'AMB_JLT';
38705 l_component_code := 'INV_UNBILL';
38706 l_component_type_code := 'S';
38707 l_component_appl_id := 222;
38708 l_amb_context_code := 'DEFAULT';
38709 l_entity_code := 'TRANSACTIONS';
38710 l_event_class_code := 'INVOICE';
38711 l_event_type_code := 'INVOICE_ALL';
38712 l_line_definition_owner_code := 'S';
38713 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
38714 --
38715 l_balance_type_code := 'A';
38716 l_segment := NULL;
38717 l_ccid := NULL;
38718 l_adr_transaction_coa_id := NULL;
38719 l_adr_accounting_coa_id := NULL;
38720 l_adr_flexfield_segment_code := NULL;
38721 l_adr_flex_value_set_id := NULL;
38722 l_adr_value_type_code := NULL;
38723 l_adr_value_combination_id := NULL;
38724 l_adr_value_segment_code := NULL;
38725
38726 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38727 l_bflow_class_code := ''; -- 4219869 Business Flow
38728 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38729 l_budgetary_control_flag := 'N';
38730
38731 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38732 l_bflow_applied_to_amt := NULL; -- 5132302
38733 l_entered_amt_idx := NULL; -- 4262811
38734 l_accted_amt_idx := NULL; -- 4262811
38735 l_acc_rev_flag := NULL; -- 4262811
38736 l_accrual_line_num := NULL; -- 4262811
38737 l_tmp_amt := NULL; -- 4262811
38738 --
38739
38740 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38741 l_balance_type_code <> 'B' THEN
38742 IF NVL(p_source_43,'
38743 ') = 'UNBILL' AND
38744 p_source_87 IS NULL
38745 THEN
38746
38747 --
38748 XLA_AE_LINES_PKG.SetNewLine;
38749
38750 p_balance_type_code := l_balance_type_code;
38751 -- set the flag so later we will know whether the gain loss line needs to be created
38752
38753 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38754 p_actual_flag :='A';
38755 END IF;
38756
38757 --
38758 -- bulk performance
38759 --
38760 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38761 p_header_num => 0); -- 4262811
38762 --
38763 -- set accounting line options
38764 --
38765 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38766 p_natural_side_code => 'C'
38767 , p_gain_or_loss_flag => 'N'
38768 , p_gl_transfer_mode_code => 'S'
38772 );
38769 , p_acct_entry_type_code => 'A'
38770 , p_switch_side_flag => 'Y'
38771 , p_merge_duplicate_code => 'A'
38773 --
38774 l_acc_rev_natural_side_code := 'D'; -- 4262811
38775 --
38776 --
38777 -- set accounting line type info
38778 --
38779 xla_ae_lines_pkg.SetAcctLineType
38780 (p_component_type => l_component_type
38781 ,p_event_type_code => l_event_type_code
38782 ,p_line_definition_owner_code => l_line_definition_owner_code
38783 ,p_line_definition_code => l_line_definition_code
38784 ,p_accounting_line_code => l_component_code
38785 ,p_accounting_line_type_code => l_component_type_code
38786 ,p_accounting_line_appl_id => l_component_appl_id
38787 ,p_amb_context_code => l_amb_context_code
38788 ,p_entity_code => l_entity_code
38789 ,p_event_class_code => l_event_class_code);
38790 --
38791 -- set accounting class
38792 --
38793 xla_ae_lines_pkg.SetAcctClass(
38794 p_accounting_class_code => 'UNBILL'
38795 , p_ae_header_id => l_ae_header_id
38796 );
38797
38798 --
38799 -- set rounding class
38800 --
38801 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38802 'UNBILL';
38803
38804 --
38805 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38806 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38807 --
38808 -- bulk performance
38809 --
38810 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38811
38812 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38813 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38814
38815 -- 4955764
38816 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38817 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38818
38819 -- 4458381 Public Sector Enh
38820
38821 --
38822 -- set accounting attributes for the line type
38823 --
38824 l_entered_amt_idx := 3;
38825 l_accted_amt_idx := 8;
38826 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38827 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
38828 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
38829 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
38830 l_rec_acct_attrs.array_char_value(2) := p_source_45;
38831 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
38832 l_rec_acct_attrs.array_num_value(3) := p_source_46;
38833 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
38834 l_rec_acct_attrs.array_char_value(4) := p_source_47;
38835 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
38836 l_rec_acct_attrs.array_date_value(5) := p_source_48;
38837 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
38838 l_rec_acct_attrs.array_num_value(6) := p_source_49;
38839 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
38840 l_rec_acct_attrs.array_char_value(7) := p_source_50;
38841 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
38842 l_rec_acct_attrs.array_num_value(8) := p_source_51;
38843 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
38844 l_rec_acct_attrs.array_num_value(9) := p_source_37;
38845 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
38846 l_rec_acct_attrs.array_num_value(10) := p_source_38;
38847 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
38848 l_rec_acct_attrs.array_char_value(11) := p_source_39;
38849 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
38850 l_rec_acct_attrs.array_num_value(12) := p_source_86;
38851
38852 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38853 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38854
38855 ---------------------------------------------------------------------------------------------------------------
38856 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38857 ---------------------------------------------------------------------------------------------------------------
38858 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38859
38860 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38861 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38862
38863 IF xla_accounting_cache_pkg.GetValueChar
38864 (p_source_code => 'LEDGER_CATEGORY_CODE'
38865 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38866 AND l_bflow_method_code = 'PRIOR_ENTRY'
38867 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38868 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38869 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38870 )
38871 THEN
38872 xla_ae_lines_pkg.BflowUpgEntry
38873 (p_business_method_code => l_bflow_method_code
38874 ,p_business_class_code => l_bflow_class_code
38875 ,p_balance_type => l_balance_type_code);
38876 ELSE
38877 NULL;
38878 -- No business flow processing for business flow method of NONE.
38879 END IF;
38880
38881 --
38882 -- call analytical criteria
38886 -- call description
38883 --
38884
38885 --
38887 --
38888 -- No description or it is inherited.
38889 --
38890 -- call ADRs
38891 -- Bug 4922099
38892 --
38893 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38894 (NVL(l_actual_upg_option, 'N') = 'O') OR
38895 (NVL(l_enc_upg_option, 'N') = 'O')
38896 )
38897 THEN
38898 NULL;
38899 --
38900 --
38901
38902 l_ccid := AcctDerRule_24(
38903 p_application_id => p_application_id
38904 , p_ae_header_id => l_ae_header_id
38905 , p_source_26 => p_source_26
38906 , x_transaction_coa_id => l_adr_transaction_coa_id
38907 , x_accounting_coa_id => l_adr_accounting_coa_id
38908 , x_value_type_code => l_adr_value_type_code
38909 , p_side => 'NA'
38910 );
38911
38912 xla_ae_lines_pkg.set_ccid(
38913 p_code_combination_id => l_ccid
38914 , p_value_type_code => l_adr_value_type_code
38915 , p_transaction_coa_id => l_adr_transaction_coa_id
38916 , p_accounting_coa_id => l_adr_accounting_coa_id
38917 , p_adr_code => 'TRX_DIST_CCID'
38918 , p_adr_type_code => 'S'
38919 , p_component_type => l_component_type
38920 , p_component_code => l_component_code
38921 , p_component_type_code => l_component_type_code
38922 , p_component_appl_id => l_component_appl_id
38923 , p_amb_context_code => l_amb_context_code
38924 , p_side => 'NA'
38925 );
38926
38927
38928 --
38929 --
38930 END IF;
38931 --
38932 -- Bug 4922099
38933 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38934 (NVL(l_enc_upg_option, 'N') = 'O')
38935 ) AND
38936 (l_bflow_method_code = 'PRIOR_ENTRY')
38937 )
38938 THEN
38939 IF
38940 --
38941 1 = 2
38942 --
38943 THEN
38944 xla_accounting_err_pkg.build_message
38945 (p_appli_s_name => 'XLA'
38946 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38947 ,p_token_1 => 'LINE_NUMBER'
38948 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38949 ,p_token_2 => 'LINE_TYPE_NAME'
38950 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38951 l_component_type
38952 ,l_component_code
38953 ,l_component_type_code
38954 ,l_component_appl_id
38955 ,l_amb_context_code
38956 ,l_entity_code
38957 ,l_event_class_code
38958 )
38959 ,p_token_3 => 'OWNER'
38960 ,p_value_3 => xla_lookups_pkg.get_meaning(
38961 p_lookup_type => 'XLA_OWNER_TYPE'
38962 ,p_lookup_code => l_component_type_code
38963 )
38964 ,p_token_4 => 'PRODUCT_NAME'
38965 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38966 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38967 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38968 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38969 ,p_ae_header_id => NULL
38970 );
38971
38972 IF (C_LEVEL_ERROR>= g_log_level) THEN
38973 trace
38974 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38975 ,p_level => C_LEVEL_ERROR
38976 ,p_module => l_log_module);
38977 END IF;
38978 END IF;
38979 END IF;
38980 --
38981 --
38982 ------------------------------------------------------------------------------------------------
38983 -- 4219869 Business Flow
38984 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38985 -- Prior Entry. Currently, the following code is always generated.
38986 ------------------------------------------------------------------------------------------------
38987 XLA_AE_LINES_PKG.ValidateCurrentLine;
38988
38989 ------------------------------------------------------------------------------------
38990 -- 4219869 Business Flow
38991 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38992 ------------------------------------------------------------------------------------
38993 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38994
38995 ----------------------------------------------------------------------------------
38996 -- 4219869 Business Flow
39000 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38997 -- Update journal entry status -- Need to generate this within IF <condition>
38998 ----------------------------------------------------------------------------------
38999 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39001 ,p_balance_type_code => l_balance_type_code
39002 );
39003
39004 -------------------------------------------------------------------------------------------
39005 -- 4262811 - Generate the Accrual Reversal lines
39006 -------------------------------------------------------------------------------------------
39007 BEGIN
39008 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39009 (g_array_event(p_event_id).array_value_num('header_index'));
39010 IF l_acc_rev_flag IS NULL THEN
39011 l_acc_rev_flag := 'N';
39012 END IF;
39013 EXCEPTION
39014 WHEN OTHERS THEN
39015 l_acc_rev_flag := 'N';
39016 END;
39017 --
39018 IF (l_acc_rev_flag = 'Y') THEN
39019
39020 -- 4645092 ------------------------------------------------------------------------------
39021 -- To allow MPA report to determine if it should generate report process
39022 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39023 ------------------------------------------------------------------------------------------
39024
39025 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39026 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39027 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39028 -- call ADRs
39029 -- Bug 4922099
39030 --
39031 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39032 (NVL(l_actual_upg_option, 'N') = 'O') OR
39033 (NVL(l_enc_upg_option, 'N') = 'O')
39034 )
39035 THEN
39036 NULL;
39037 --
39038 --
39039
39040 l_ccid := AcctDerRule_24(
39041 p_application_id => p_application_id
39042 , p_ae_header_id => l_ae_header_id
39043 , p_source_26 => p_source_26
39044 , x_transaction_coa_id => l_adr_transaction_coa_id
39045 , x_accounting_coa_id => l_adr_accounting_coa_id
39046 , x_value_type_code => l_adr_value_type_code
39047 , p_side => 'NA'
39048 );
39049
39050 xla_ae_lines_pkg.set_ccid(
39051 p_code_combination_id => l_ccid
39052 , p_value_type_code => l_adr_value_type_code
39053 , p_transaction_coa_id => l_adr_transaction_coa_id
39054 , p_accounting_coa_id => l_adr_accounting_coa_id
39055 , p_adr_code => 'TRX_DIST_CCID'
39056 , p_adr_type_code => 'S'
39057 , p_component_type => l_component_type
39058 , p_component_code => l_component_code
39059 , p_component_type_code => l_component_type_code
39060 , p_component_appl_id => l_component_appl_id
39061 , p_amb_context_code => l_amb_context_code
39062 , p_side => 'NA'
39063 );
39064
39065
39066 --
39067 --
39068 END IF;
39069
39070 --
39071 -- Update the line information that should be overwritten
39072 --
39073 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39074 p_header_num => 1);
39075 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39076
39077 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39078
39079 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39080 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39081 END IF;
39082
39083 --
39084 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39085 --
39086 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39087 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39088 ELSE
39089 ---------------------------------------------------------------------------------------------------
39090 -- 4262811a Switch Sign
39091 ---------------------------------------------------------------------------------------------------
39092 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39093 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39094 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39095 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39096 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39097 -- 5132302
39098 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39099 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39100
39101 END IF;
39102
39103 -- 4955764
39104 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39105 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39106
39107
39111 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39108 XLA_AE_LINES_PKG.ValidateCurrentLine;
39109 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39110
39112 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39113 ,p_balance_type_code => l_balance_type_code);
39114
39115 END IF;
39116
39117 -----------------------------------------------------------------------------------------
39118 -- 4262811 Multiperiod Accounting
39119 -----------------------------------------------------------------------------------------
39120 -- No MPA option is assigned.
39121
39122
39123 END IF;
39124 END IF;
39125 --
39126
39127 --
39128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39129 trace
39130 (p_msg => 'END of AcctLineType_86'
39131 ,p_level => C_LEVEL_PROCEDURE
39132 ,p_module => l_log_module);
39133 END IF;
39134 --
39135 EXCEPTION
39136 WHEN xla_exceptions_pkg.application_exception THEN
39137 RAISE;
39138 WHEN OTHERS THEN
39139 xla_exceptions_pkg.raise_message
39140 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_86');
39141 END AcctLineType_86;
39142 --
39143
39144 ---------------------------------------
39145 --
39146 -- PRIVATE FUNCTION
39147 -- AcctLineType_87
39148 --
39149 ---------------------------------------
39150 PROCEDURE AcctLineType_87 (
39151 p_application_id IN NUMBER
39152 ,p_event_id IN NUMBER
39153 ,p_calculate_acctd_flag IN VARCHAR2
39154 ,p_calculate_g_l_flag IN VARCHAR2
39155 ,p_actual_flag IN OUT VARCHAR2
39156 ,p_balance_type_code OUT VARCHAR2
39157 ,p_gain_or_loss_ref OUT VARCHAR2
39158
39159 --Transaction Distribution GL Account
39160 , p_source_26 IN NUMBER
39161 --Bill To Customer Account Identifier
39162 , p_source_37 IN NUMBER
39163 --Bill To Customer Site Use Identifier
39164 , p_source_38 IN NUMBER
39165 --SLA Party Type
39166 , p_source_39 IN VARCHAR2
39167 --Transaction Distribution Account Class
39168 , p_source_43 IN VARCHAR2
39169 --Transaction Distribution Identifier
39170 , p_source_44 IN NUMBER
39171 --Transaction Distribution Type
39172 , p_source_45 IN VARCHAR2
39173 --Transaction Distribution Entered Amount
39174 , p_source_46 IN NUMBER
39175 --Transaction Currency Code
39176 , p_source_47 IN VARCHAR2
39177 --Transaction Exchange Date
39178 , p_source_48 IN DATE
39179 --Transaction Exchange Rate
39180 , p_source_49 IN NUMBER
39181 --Transaction Exchange Rate Type
39182 , p_source_50 IN VARCHAR2
39183 --Transaction Accounting Amount
39184 , p_source_51 IN NUMBER
39185 --Transaction Tax Line Identifier
39186 , p_source_86 IN NUMBER
39187 --Rounding Correction Flag
39188 , p_source_87 IN VARCHAR2
39189 )
39190 IS
39191
39192 l_component_type VARCHAR2(80);
39193 l_component_code VARCHAR2(30);
39194 l_component_type_code VARCHAR2(1);
39195 l_component_appl_id INTEGER;
39196 l_amb_context_code VARCHAR2(30);
39197 l_entity_code VARCHAR2(30);
39198 l_event_class_code VARCHAR2(30);
39199 l_ae_header_id NUMBER;
39200 l_event_type_code VARCHAR2(30);
39201 l_line_definition_code VARCHAR2(30);
39202 l_line_definition_owner_code VARCHAR2(1);
39203 --
39204 -- adr variables
39205 l_segment VARCHAR2(30);
39206 l_ccid NUMBER;
39207 l_adr_transaction_coa_id NUMBER;
39208 l_adr_accounting_coa_id NUMBER;
39209 l_adr_flexfield_segment_code VARCHAR2(30);
39210 l_adr_flex_value_set_id NUMBER;
39211 l_adr_value_type_code VARCHAR2(30);
39212 l_adr_value_combination_id NUMBER;
39213 l_adr_value_segment_code VARCHAR2(30);
39214
39215 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39216 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39217 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39218 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39219
39220 -- 4262811 Variables ------------------------------------------------------------------------------------------
39221 l_entered_amt_idx NUMBER;
39222 l_accted_amt_idx NUMBER;
39223 l_acc_rev_flag VARCHAR2(1);
39224 l_accrual_line_num NUMBER;
39225 l_tmp_amt NUMBER;
39226 l_acc_rev_natural_side_code VARCHAR2(1);
39227
39228 l_num_entries NUMBER;
39229 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39230 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39231 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39232 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39233 l_recog_line_1 NUMBER;
39234 l_recog_line_2 NUMBER;
39235
39236 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39237 l_bflow_applied_to_amt NUMBER; -- 5132302
39238 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39239
39240 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39241
39242 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39243 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39244
39248 --
39245 ---------------------------------------------------------------------------------------------------------------
39246
39247
39249 -- bulk performance
39250 --
39251 l_balance_type_code VARCHAR2(1);
39252 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39253 l_log_module VARCHAR2(240);
39254
39255 --
39256 -- Upgrade strategy
39257 --
39258 l_actual_upg_option VARCHAR2(1);
39259 l_enc_upg_option VARCHAR2(1);
39260
39261 --
39262 BEGIN
39263 --
39264 IF g_log_enabled THEN
39265 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
39266 END IF;
39267 --
39268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39269
39270 trace
39271 (p_msg => 'BEGIN of AcctLineType_87'
39272 ,p_level => C_LEVEL_PROCEDURE
39273 ,p_module => l_log_module);
39274
39275 END IF;
39276 --
39277 l_component_type := 'AMB_JLT';
39278 l_component_code := 'INV_UNBILL_ROUND';
39279 l_component_type_code := 'S';
39280 l_component_appl_id := 222;
39281 l_amb_context_code := 'DEFAULT';
39282 l_entity_code := 'TRANSACTIONS';
39283 l_event_class_code := 'INVOICE';
39284 l_event_type_code := 'INVOICE_ALL';
39285 l_line_definition_owner_code := 'S';
39286 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
39287 --
39288 l_balance_type_code := 'A';
39289 l_segment := NULL;
39290 l_ccid := NULL;
39291 l_adr_transaction_coa_id := NULL;
39292 l_adr_accounting_coa_id := NULL;
39293 l_adr_flexfield_segment_code := NULL;
39294 l_adr_flex_value_set_id := NULL;
39295 l_adr_value_type_code := NULL;
39296 l_adr_value_combination_id := NULL;
39297 l_adr_value_segment_code := NULL;
39298
39299 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39300 l_bflow_class_code := ''; -- 4219869 Business Flow
39301 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39302 l_budgetary_control_flag := 'N';
39303
39304 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39305 l_bflow_applied_to_amt := NULL; -- 5132302
39306 l_entered_amt_idx := NULL; -- 4262811
39307 l_accted_amt_idx := NULL; -- 4262811
39308 l_acc_rev_flag := NULL; -- 4262811
39309 l_accrual_line_num := NULL; -- 4262811
39310 l_tmp_amt := NULL; -- 4262811
39311 --
39312
39313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39314 l_balance_type_code <> 'B' THEN
39315 IF NVL(p_source_43,'
39316 ') = 'UNBILL' AND
39317 NVL(p_source_87,'
39318 ') = 'Y'
39319 THEN
39320
39321 --
39322 XLA_AE_LINES_PKG.SetNewLine;
39323
39324 p_balance_type_code := l_balance_type_code;
39325 -- set the flag so later we will know whether the gain loss line needs to be created
39326
39327 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39328 p_actual_flag :='A';
39329 END IF;
39330
39331 --
39332 -- bulk performance
39333 --
39334 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39335 p_header_num => 0); -- 4262811
39336 --
39337 -- set accounting line options
39338 --
39339 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39340 p_natural_side_code => 'C'
39341 , p_gain_or_loss_flag => 'N'
39342 , p_gl_transfer_mode_code => 'S'
39343 , p_acct_entry_type_code => 'A'
39344 , p_switch_side_flag => 'Y'
39345 , p_merge_duplicate_code => 'N'
39346 );
39347 --
39348 l_acc_rev_natural_side_code := 'D'; -- 4262811
39349 --
39350 --
39351 -- set accounting line type info
39352 --
39353 xla_ae_lines_pkg.SetAcctLineType
39354 (p_component_type => l_component_type
39355 ,p_event_type_code => l_event_type_code
39356 ,p_line_definition_owner_code => l_line_definition_owner_code
39357 ,p_line_definition_code => l_line_definition_code
39358 ,p_accounting_line_code => l_component_code
39359 ,p_accounting_line_type_code => l_component_type_code
39360 ,p_accounting_line_appl_id => l_component_appl_id
39361 ,p_amb_context_code => l_amb_context_code
39362 ,p_entity_code => l_entity_code
39363 ,p_event_class_code => l_event_class_code);
39364 --
39365 -- set accounting class
39366 --
39367 xla_ae_lines_pkg.SetAcctClass(
39368 p_accounting_class_code => 'UNBILL'
39369 , p_ae_header_id => l_ae_header_id
39370 );
39371
39372 --
39373 -- set rounding class
39374 --
39375 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39376 'UNBILL';
39377
39378 --
39379 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39380 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39381 --
39382 -- bulk performance
39383 --
39384 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39385
39386 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39390 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39387 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39388
39389 -- 4955764
39391 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39392
39393 -- 4458381 Public Sector Enh
39394
39395 --
39396 -- set accounting attributes for the line type
39397 --
39398 l_entered_amt_idx := 3;
39399 l_accted_amt_idx := 8;
39400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39401 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39402 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
39403 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
39404 l_rec_acct_attrs.array_char_value(2) := p_source_45;
39405 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
39406 l_rec_acct_attrs.array_num_value(3) := p_source_46;
39407 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
39408 l_rec_acct_attrs.array_char_value(4) := p_source_47;
39409 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
39410 l_rec_acct_attrs.array_date_value(5) := p_source_48;
39411 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
39412 l_rec_acct_attrs.array_num_value(6) := p_source_49;
39413 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
39414 l_rec_acct_attrs.array_char_value(7) := p_source_50;
39415 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
39416 l_rec_acct_attrs.array_num_value(8) := p_source_51;
39417 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
39418 l_rec_acct_attrs.array_num_value(9) := p_source_37;
39419 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
39420 l_rec_acct_attrs.array_num_value(10) := p_source_38;
39421 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
39422 l_rec_acct_attrs.array_char_value(11) := p_source_39;
39423 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
39424 l_rec_acct_attrs.array_num_value(12) := p_source_86;
39425
39426 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39427 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39428
39429 ---------------------------------------------------------------------------------------------------------------
39430 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39431 ---------------------------------------------------------------------------------------------------------------
39432 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39433
39434 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39435 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39436
39437 IF xla_accounting_cache_pkg.GetValueChar
39438 (p_source_code => 'LEDGER_CATEGORY_CODE'
39439 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39440 AND l_bflow_method_code = 'PRIOR_ENTRY'
39441 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39442 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39443 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39444 )
39445 THEN
39446 xla_ae_lines_pkg.BflowUpgEntry
39447 (p_business_method_code => l_bflow_method_code
39448 ,p_business_class_code => l_bflow_class_code
39449 ,p_balance_type => l_balance_type_code);
39450 ELSE
39451 NULL;
39452 -- No business flow processing for business flow method of NONE.
39453 END IF;
39454
39455 --
39456 -- call analytical criteria
39457 --
39458
39459 --
39460 -- call description
39461 --
39462 -- No description or it is inherited.
39463 --
39464 -- call ADRs
39465 -- Bug 4922099
39466 --
39467 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39468 (NVL(l_actual_upg_option, 'N') = 'O') OR
39469 (NVL(l_enc_upg_option, 'N') = 'O')
39470 )
39471 THEN
39472 NULL;
39473 --
39474 --
39475
39476 l_ccid := AcctDerRule_24(
39477 p_application_id => p_application_id
39478 , p_ae_header_id => l_ae_header_id
39479 , p_source_26 => p_source_26
39480 , x_transaction_coa_id => l_adr_transaction_coa_id
39481 , x_accounting_coa_id => l_adr_accounting_coa_id
39482 , x_value_type_code => l_adr_value_type_code
39483 , p_side => 'NA'
39484 );
39485
39486 xla_ae_lines_pkg.set_ccid(
39487 p_code_combination_id => l_ccid
39488 , p_value_type_code => l_adr_value_type_code
39489 , p_transaction_coa_id => l_adr_transaction_coa_id
39490 , p_accounting_coa_id => l_adr_accounting_coa_id
39491 , p_adr_code => 'TRX_DIST_CCID'
39492 , p_adr_type_code => 'S'
39493 , p_component_type => l_component_type
39494 , p_component_code => l_component_code
39495 , p_component_type_code => l_component_type_code
39496 , p_component_appl_id => l_component_appl_id
39497 , p_amb_context_code => l_amb_context_code
39498 , p_side => 'NA'
39499 );
39500
39501
39502 --
39503 --
39504 END IF;
39505 --
39506 -- Bug 4922099
39507 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39508 (NVL(l_enc_upg_option, 'N') = 'O')
39512 THEN
39509 ) AND
39510 (l_bflow_method_code = 'PRIOR_ENTRY')
39511 )
39513 IF
39514 --
39515 1 = 2
39516 --
39517 THEN
39518 xla_accounting_err_pkg.build_message
39519 (p_appli_s_name => 'XLA'
39520 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39521 ,p_token_1 => 'LINE_NUMBER'
39522 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39523 ,p_token_2 => 'LINE_TYPE_NAME'
39524 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39525 l_component_type
39526 ,l_component_code
39527 ,l_component_type_code
39528 ,l_component_appl_id
39529 ,l_amb_context_code
39530 ,l_entity_code
39531 ,l_event_class_code
39532 )
39533 ,p_token_3 => 'OWNER'
39534 ,p_value_3 => xla_lookups_pkg.get_meaning(
39535 p_lookup_type => 'XLA_OWNER_TYPE'
39536 ,p_lookup_code => l_component_type_code
39537 )
39538 ,p_token_4 => 'PRODUCT_NAME'
39539 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39540 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39541 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39542 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39543 ,p_ae_header_id => NULL
39544 );
39545
39546 IF (C_LEVEL_ERROR>= g_log_level) THEN
39547 trace
39548 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39549 ,p_level => C_LEVEL_ERROR
39550 ,p_module => l_log_module);
39551 END IF;
39552 END IF;
39553 END IF;
39554 --
39555 --
39556 ------------------------------------------------------------------------------------------------
39557 -- 4219869 Business Flow
39558 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39559 -- Prior Entry. Currently, the following code is always generated.
39560 ------------------------------------------------------------------------------------------------
39561 XLA_AE_LINES_PKG.ValidateCurrentLine;
39562
39563 ------------------------------------------------------------------------------------
39564 -- 4219869 Business Flow
39565 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39566 ------------------------------------------------------------------------------------
39567 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39568
39569 ----------------------------------------------------------------------------------
39570 -- 4219869 Business Flow
39571 -- Update journal entry status -- Need to generate this within IF <condition>
39572 ----------------------------------------------------------------------------------
39573 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39574 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39575 ,p_balance_type_code => l_balance_type_code
39576 );
39577
39578 -------------------------------------------------------------------------------------------
39579 -- 4262811 - Generate the Accrual Reversal lines
39580 -------------------------------------------------------------------------------------------
39581 BEGIN
39582 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39583 (g_array_event(p_event_id).array_value_num('header_index'));
39584 IF l_acc_rev_flag IS NULL THEN
39585 l_acc_rev_flag := 'N';
39586 END IF;
39587 EXCEPTION
39588 WHEN OTHERS THEN
39589 l_acc_rev_flag := 'N';
39590 END;
39591 --
39592 IF (l_acc_rev_flag = 'Y') THEN
39593
39594 -- 4645092 ------------------------------------------------------------------------------
39595 -- To allow MPA report to determine if it should generate report process
39596 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39597 ------------------------------------------------------------------------------------------
39598
39599 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39600 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39601 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39602 -- call ADRs
39603 -- Bug 4922099
39604 --
39605 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39606 (NVL(l_actual_upg_option, 'N') = 'O') OR
39607 (NVL(l_enc_upg_option, 'N') = 'O')
39608 )
39609 THEN
39610 NULL;
39611 --
39612 --
39613
39614 l_ccid := AcctDerRule_24(
39615 p_application_id => p_application_id
39616 , p_ae_header_id => l_ae_header_id
39617 , p_source_26 => p_source_26
39618 , x_transaction_coa_id => l_adr_transaction_coa_id
39619 , x_accounting_coa_id => l_adr_accounting_coa_id
39620 , x_value_type_code => l_adr_value_type_code
39621 , p_side => 'NA'
39622 );
39623
39624 xla_ae_lines_pkg.set_ccid(
39625 p_code_combination_id => l_ccid
39626 , p_value_type_code => l_adr_value_type_code
39627 , p_transaction_coa_id => l_adr_transaction_coa_id
39628 , p_accounting_coa_id => l_adr_accounting_coa_id
39629 , p_adr_code => 'TRX_DIST_CCID'
39630 , p_adr_type_code => 'S'
39631 , p_component_type => l_component_type
39632 , p_component_code => l_component_code
39633 , p_component_type_code => l_component_type_code
39634 , p_component_appl_id => l_component_appl_id
39635 , p_amb_context_code => l_amb_context_code
39636 , p_side => 'NA'
39637 );
39638
39639
39640 --
39641 --
39642 END IF;
39643
39644 --
39645 -- Update the line information that should be overwritten
39646 --
39647 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39648 p_header_num => 1);
39649 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39650
39651 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39652
39653 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39654 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39655 END IF;
39656
39657 --
39658 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39659 --
39660 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39661 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39662 ELSE
39663 ---------------------------------------------------------------------------------------------------
39664 -- 4262811a Switch Sign
39665 ---------------------------------------------------------------------------------------------------
39666 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39667 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39668 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39669 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39670 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39671 -- 5132302
39672 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39673 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39674
39675 END IF;
39676
39677 -- 4955764
39678 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39679 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39680
39681
39682 XLA_AE_LINES_PKG.ValidateCurrentLine;
39683 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39684
39685 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39686 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39687 ,p_balance_type_code => l_balance_type_code);
39688
39689 END IF;
39690
39691 -----------------------------------------------------------------------------------------
39692 -- 4262811 Multiperiod Accounting
39693 -----------------------------------------------------------------------------------------
39694 -- No MPA option is assigned.
39695
39696
39697 END IF;
39698 END IF;
39699 --
39700
39701 --
39702 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39703 trace
39704 (p_msg => 'END of AcctLineType_87'
39705 ,p_level => C_LEVEL_PROCEDURE
39706 ,p_module => l_log_module);
39707 END IF;
39708 --
39709 EXCEPTION
39710 WHEN xla_exceptions_pkg.application_exception THEN
39711 RAISE;
39712 WHEN OTHERS THEN
39713 xla_exceptions_pkg.raise_message
39714 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_87');
39715 END AcctLineType_87;
39716 --
39717
39718 ---------------------------------------
39719 --
39720 -- PRIVATE FUNCTION
39721 -- AcctLineType_88
39722 --
39723 ---------------------------------------
39724 PROCEDURE AcctLineType_88 (
39725 p_application_id IN NUMBER
39726 ,p_event_id IN NUMBER
39727 ,p_calculate_acctd_flag IN VARCHAR2
39728 ,p_calculate_g_l_flag IN VARCHAR2
39729 ,p_actual_flag IN OUT VARCHAR2
39730 ,p_balance_type_code OUT VARCHAR2
39734 , p_source_26 IN NUMBER
39731 ,p_gain_or_loss_ref OUT VARCHAR2
39732
39733 --Transaction Distribution GL Account
39735 --Bill To Customer Account Identifier
39736 , p_source_37 IN NUMBER
39737 --Bill To Customer Site Use Identifier
39738 , p_source_38 IN NUMBER
39739 --SLA Party Type
39740 , p_source_39 IN VARCHAR2
39741 --Transaction Distribution Account Class
39742 , p_source_43 IN VARCHAR2
39743 --Transaction Distribution Identifier
39744 , p_source_44 IN NUMBER
39745 --Transaction Distribution Type
39746 , p_source_45 IN VARCHAR2
39747 --Transaction Distribution Entered Amount
39748 , p_source_46 IN NUMBER
39749 --Transaction Currency Code
39750 , p_source_47 IN VARCHAR2
39751 --Transaction Exchange Date
39752 , p_source_48 IN DATE
39753 --Transaction Exchange Rate
39754 , p_source_49 IN NUMBER
39755 --Transaction Exchange Rate Type
39756 , p_source_50 IN VARCHAR2
39757 --Transaction Accounting Amount
39758 , p_source_51 IN NUMBER
39759 --Transaction Tax Line Identifier
39760 , p_source_86 IN NUMBER
39761 --Rounding Correction Flag
39762 , p_source_87 IN VARCHAR2
39763 )
39764 IS
39765
39766 l_component_type VARCHAR2(80);
39767 l_component_code VARCHAR2(30);
39768 l_component_type_code VARCHAR2(1);
39769 l_component_appl_id INTEGER;
39770 l_amb_context_code VARCHAR2(30);
39771 l_entity_code VARCHAR2(30);
39772 l_event_class_code VARCHAR2(30);
39773 l_ae_header_id NUMBER;
39774 l_event_type_code VARCHAR2(30);
39775 l_line_definition_code VARCHAR2(30);
39776 l_line_definition_owner_code VARCHAR2(1);
39777 --
39778 -- adr variables
39779 l_segment VARCHAR2(30);
39780 l_ccid NUMBER;
39781 l_adr_transaction_coa_id NUMBER;
39782 l_adr_accounting_coa_id NUMBER;
39783 l_adr_flexfield_segment_code VARCHAR2(30);
39784 l_adr_flex_value_set_id NUMBER;
39785 l_adr_value_type_code VARCHAR2(30);
39786 l_adr_value_combination_id NUMBER;
39787 l_adr_value_segment_code VARCHAR2(30);
39788
39789 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39790 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39791 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39792 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39793
39794 -- 4262811 Variables ------------------------------------------------------------------------------------------
39795 l_entered_amt_idx NUMBER;
39796 l_accted_amt_idx NUMBER;
39797 l_acc_rev_flag VARCHAR2(1);
39798 l_accrual_line_num NUMBER;
39799 l_tmp_amt NUMBER;
39800 l_acc_rev_natural_side_code VARCHAR2(1);
39801
39802 l_num_entries NUMBER;
39803 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39804 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39805 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39806 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39807 l_recog_line_1 NUMBER;
39808 l_recog_line_2 NUMBER;
39809
39810 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39811 l_bflow_applied_to_amt NUMBER; -- 5132302
39812 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39813
39814 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39815
39816 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39817 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39818
39819 ---------------------------------------------------------------------------------------------------------------
39820
39821
39822 --
39823 -- bulk performance
39824 --
39825 l_balance_type_code VARCHAR2(1);
39826 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39827 l_log_module VARCHAR2(240);
39828
39829 --
39830 -- Upgrade strategy
39831 --
39832 l_actual_upg_option VARCHAR2(1);
39833 l_enc_upg_option VARCHAR2(1);
39834
39835 --
39836 BEGIN
39837 --
39838 IF g_log_enabled THEN
39839 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
39840 END IF;
39841 --
39842 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39843
39844 trace
39845 (p_msg => 'BEGIN of AcctLineType_88'
39846 ,p_level => C_LEVEL_PROCEDURE
39847 ,p_module => l_log_module);
39848
39849 END IF;
39850 --
39851 l_component_type := 'AMB_JLT';
39852 l_component_code := 'INV_UNEARN';
39853 l_component_type_code := 'S';
39854 l_component_appl_id := 222;
39855 l_amb_context_code := 'DEFAULT';
39856 l_entity_code := 'TRANSACTIONS';
39857 l_event_class_code := 'INVOICE';
39858 l_event_type_code := 'INVOICE_ALL';
39859 l_line_definition_owner_code := 'S';
39860 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
39861 --
39862 l_balance_type_code := 'A';
39863 l_segment := NULL;
39865 l_adr_transaction_coa_id := NULL;
39866 l_adr_accounting_coa_id := NULL;
39867 l_adr_flexfield_segment_code := NULL;
39868 l_adr_flex_value_set_id := NULL;
39869 l_adr_value_type_code := NULL;
39870 l_adr_value_combination_id := NULL;
39871 l_adr_value_segment_code := NULL;
39872
39873 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39874 l_bflow_class_code := ''; -- 4219869 Business Flow
39875 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39876 l_budgetary_control_flag := 'N';
39877
39878 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39879 l_bflow_applied_to_amt := NULL; -- 5132302
39880 l_entered_amt_idx := NULL; -- 4262811
39881 l_accted_amt_idx := NULL; -- 4262811
39882 l_acc_rev_flag := NULL; -- 4262811
39883 l_accrual_line_num := NULL; -- 4262811
39884 l_tmp_amt := NULL; -- 4262811
39885 --
39886
39887 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39888 l_balance_type_code <> 'B' THEN
39889 IF NVL(p_source_43,'
39890 ') = 'UNEARN' AND
39891 p_source_87 IS NULL
39892 THEN
39893
39894 --
39895 XLA_AE_LINES_PKG.SetNewLine;
39896
39897 p_balance_type_code := l_balance_type_code;
39898 -- set the flag so later we will know whether the gain loss line needs to be created
39899
39900 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39901 p_actual_flag :='A';
39902 END IF;
39903
39904 --
39905 -- bulk performance
39906 --
39907 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39908 p_header_num => 0); -- 4262811
39909 --
39910 -- set accounting line options
39911 --
39912 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39913 p_natural_side_code => 'C'
39914 , p_gain_or_loss_flag => 'N'
39915 , p_gl_transfer_mode_code => 'S'
39916 , p_acct_entry_type_code => 'A'
39917 , p_switch_side_flag => 'Y'
39918 , p_merge_duplicate_code => 'A'
39919 );
39920 --
39921 l_acc_rev_natural_side_code := 'D'; -- 4262811
39922 --
39923 --
39924 -- set accounting line type info
39925 --
39926 xla_ae_lines_pkg.SetAcctLineType
39927 (p_component_type => l_component_type
39928 ,p_event_type_code => l_event_type_code
39929 ,p_line_definition_owner_code => l_line_definition_owner_code
39930 ,p_line_definition_code => l_line_definition_code
39931 ,p_accounting_line_code => l_component_code
39932 ,p_accounting_line_type_code => l_component_type_code
39933 ,p_accounting_line_appl_id => l_component_appl_id
39934 ,p_amb_context_code => l_amb_context_code
39935 ,p_entity_code => l_entity_code
39936 ,p_event_class_code => l_event_class_code);
39937 --
39938 -- set accounting class
39939 --
39940 xla_ae_lines_pkg.SetAcctClass(
39941 p_accounting_class_code => 'UNEARNED_REVENUE'
39942 , p_ae_header_id => l_ae_header_id
39943 );
39944
39945 --
39946 -- set rounding class
39947 --
39948 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39949 'RECEIVABLE';
39950
39951 --
39952 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39953 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39954 --
39955 -- bulk performance
39956 --
39957 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39958
39959 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39960 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39961
39962 -- 4955764
39963 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39964 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39965
39966 -- 4458381 Public Sector Enh
39967
39968 --
39969 -- set accounting attributes for the line type
39970 --
39971 l_entered_amt_idx := 3;
39972 l_accted_amt_idx := 8;
39973 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39974 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39975 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
39976 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
39977 l_rec_acct_attrs.array_char_value(2) := p_source_45;
39978 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
39979 l_rec_acct_attrs.array_num_value(3) := p_source_46;
39980 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
39981 l_rec_acct_attrs.array_char_value(4) := p_source_47;
39982 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
39983 l_rec_acct_attrs.array_date_value(5) := p_source_48;
39984 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
39985 l_rec_acct_attrs.array_num_value(6) := p_source_49;
39986 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
39987 l_rec_acct_attrs.array_char_value(7) := p_source_50;
39988 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
39989 l_rec_acct_attrs.array_num_value(8) := p_source_51;
39990 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
39991 l_rec_acct_attrs.array_num_value(9) := p_source_37;
39992 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
39993 l_rec_acct_attrs.array_num_value(10) := p_source_38;
39994 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
39995 l_rec_acct_attrs.array_char_value(11) := p_source_39;
39996 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
39997 l_rec_acct_attrs.array_num_value(12) := p_source_86;
39998
39999 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40000 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40001
40002 ---------------------------------------------------------------------------------------------------------------
40003 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40004 ---------------------------------------------------------------------------------------------------------------
40009
39864 l_ccid := NULL;
40005 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40006
40007 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40008 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40010 IF xla_accounting_cache_pkg.GetValueChar
40011 (p_source_code => 'LEDGER_CATEGORY_CODE'
40015 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40012 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40013 AND l_bflow_method_code = 'PRIOR_ENTRY'
40014 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40016 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40017 )
40018 THEN
40019 xla_ae_lines_pkg.BflowUpgEntry
40020 (p_business_method_code => l_bflow_method_code
40021 ,p_business_class_code => l_bflow_class_code
40022 ,p_balance_type => l_balance_type_code);
40023 ELSE
40024 NULL;
40025 -- No business flow processing for business flow method of NONE.
40026 END IF;
40027
40028 --
40029 -- call analytical criteria
40030 --
40031
40032 --
40033 -- call description
40034 --
40035 -- No description or it is inherited.
40036 --
40037 -- call ADRs
40038 -- Bug 4922099
40039 --
40040 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40041 (NVL(l_actual_upg_option, 'N') = 'O') OR
40042 (NVL(l_enc_upg_option, 'N') = 'O')
40043 )
40044 THEN
40045 NULL;
40046 --
40047 --
40048
40049 l_ccid := AcctDerRule_24(
40050 p_application_id => p_application_id
40051 , p_ae_header_id => l_ae_header_id
40052 , p_source_26 => p_source_26
40053 , x_transaction_coa_id => l_adr_transaction_coa_id
40054 , x_accounting_coa_id => l_adr_accounting_coa_id
40055 , x_value_type_code => l_adr_value_type_code
40056 , p_side => 'NA'
40057 );
40058
40059 xla_ae_lines_pkg.set_ccid(
40060 p_code_combination_id => l_ccid
40061 , p_value_type_code => l_adr_value_type_code
40062 , p_transaction_coa_id => l_adr_transaction_coa_id
40063 , p_accounting_coa_id => l_adr_accounting_coa_id
40064 , p_adr_code => 'TRX_DIST_CCID'
40065 , p_adr_type_code => 'S'
40066 , p_component_type => l_component_type
40067 , p_component_code => l_component_code
40068 , p_component_type_code => l_component_type_code
40069 , p_component_appl_id => l_component_appl_id
40070 , p_amb_context_code => l_amb_context_code
40071 , p_side => 'NA'
40072 );
40073
40074
40075 --
40076 --
40077 END IF;
40078 --
40079 -- Bug 4922099
40080 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40081 (NVL(l_enc_upg_option, 'N') = 'O')
40082 ) AND
40083 (l_bflow_method_code = 'PRIOR_ENTRY')
40084 )
40085 THEN
40086 IF
40087 --
40088 1 = 2
40089 --
40090 THEN
40091 xla_accounting_err_pkg.build_message
40092 (p_appli_s_name => 'XLA'
40093 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40094 ,p_token_1 => 'LINE_NUMBER'
40095 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40096 ,p_token_2 => 'LINE_TYPE_NAME'
40097 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40098 l_component_type
40099 ,l_component_code
40100 ,l_component_type_code
40101 ,l_component_appl_id
40102 ,l_amb_context_code
40103 ,l_entity_code
40104 ,l_event_class_code
40105 )
40106 ,p_token_3 => 'OWNER'
40107 ,p_value_3 => xla_lookups_pkg.get_meaning(
40108 p_lookup_type => 'XLA_OWNER_TYPE'
40109 ,p_lookup_code => l_component_type_code
40110 )
40111 ,p_token_4 => 'PRODUCT_NAME'
40112 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40113 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40114 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40115 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40116 ,p_ae_header_id => NULL
40117 );
40118
40119 IF (C_LEVEL_ERROR>= g_log_level) THEN
40120 trace
40121 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40122 ,p_level => C_LEVEL_ERROR
40123 ,p_module => l_log_module);
40127 --
40124 END IF;
40125 END IF;
40126 END IF;
40128 --
40129 ------------------------------------------------------------------------------------------------
40130 -- 4219869 Business Flow
40131 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40132 -- Prior Entry. Currently, the following code is always generated.
40133 ------------------------------------------------------------------------------------------------
40134 XLA_AE_LINES_PKG.ValidateCurrentLine;
40135
40136 ------------------------------------------------------------------------------------
40137 -- 4219869 Business Flow
40141
40138 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40139 ------------------------------------------------------------------------------------
40140 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40142 ----------------------------------------------------------------------------------
40143 -- 4219869 Business Flow
40144 -- Update journal entry status -- Need to generate this within IF <condition>
40145 ----------------------------------------------------------------------------------
40146 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40147 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40148 ,p_balance_type_code => l_balance_type_code
40149 );
40150
40151 -------------------------------------------------------------------------------------------
40152 -- 4262811 - Generate the Accrual Reversal lines
40153 -------------------------------------------------------------------------------------------
40154 BEGIN
40155 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40156 (g_array_event(p_event_id).array_value_num('header_index'));
40157 IF l_acc_rev_flag IS NULL THEN
40158 l_acc_rev_flag := 'N';
40159 END IF;
40160 EXCEPTION
40161 WHEN OTHERS THEN
40162 l_acc_rev_flag := 'N';
40163 END;
40164 --
40165 IF (l_acc_rev_flag = 'Y') THEN
40166
40167 -- 4645092 ------------------------------------------------------------------------------
40168 -- To allow MPA report to determine if it should generate report process
40169 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40170 ------------------------------------------------------------------------------------------
40171
40172 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40173 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40174 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
40175 -- call ADRs
40176 -- Bug 4922099
40177 --
40178 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40179 (NVL(l_actual_upg_option, 'N') = 'O') OR
40180 (NVL(l_enc_upg_option, 'N') = 'O')
40181 )
40182 THEN
40183 NULL;
40184 --
40185 --
40186
40187 l_ccid := AcctDerRule_24(
40188 p_application_id => p_application_id
40189 , p_ae_header_id => l_ae_header_id
40190 , p_source_26 => p_source_26
40191 , x_transaction_coa_id => l_adr_transaction_coa_id
40192 , x_accounting_coa_id => l_adr_accounting_coa_id
40193 , x_value_type_code => l_adr_value_type_code
40194 , p_side => 'NA'
40195 );
40196
40197 xla_ae_lines_pkg.set_ccid(
40198 p_code_combination_id => l_ccid
40199 , p_value_type_code => l_adr_value_type_code
40200 , p_transaction_coa_id => l_adr_transaction_coa_id
40201 , p_accounting_coa_id => l_adr_accounting_coa_id
40202 , p_adr_code => 'TRX_DIST_CCID'
40203 , p_adr_type_code => 'S'
40204 , p_component_type => l_component_type
40205 , p_component_code => l_component_code
40206 , p_component_type_code => l_component_type_code
40207 , p_component_appl_id => l_component_appl_id
40208 , p_amb_context_code => l_amb_context_code
40209 , p_side => 'NA'
40210 );
40211
40212
40213 --
40214 --
40215 END IF;
40216
40217 --
40218 -- Update the line information that should be overwritten
40219 --
40220 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40221 p_header_num => 1);
40222 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40223
40224 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40225
40226 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40230 --
40227 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40228 END IF;
40229
40231 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40232 --
40233 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40234 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40235 ELSE
40236 ---------------------------------------------------------------------------------------------------
40237 -- 4262811a Switch Sign
40238 ---------------------------------------------------------------------------------------------------
40239 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40240 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40241 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40242 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40243 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40244 -- 5132302
40245 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40246 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40247
40248 END IF;
40249
40250 -- 4955764
40251 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40252 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40253
40254
40255 XLA_AE_LINES_PKG.ValidateCurrentLine;
40256 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40257
40258 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40259 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40260 ,p_balance_type_code => l_balance_type_code);
40261
40262 END IF;
40263
40264 -----------------------------------------------------------------------------------------
40265 -- 4262811 Multiperiod Accounting
40266 -----------------------------------------------------------------------------------------
40267 -- No MPA option is assigned.
40268
40269
40270 END IF;
40271 END IF;
40272 --
40273
40274 --
40275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40276 trace
40277 (p_msg => 'END of AcctLineType_88'
40278 ,p_level => C_LEVEL_PROCEDURE
40279 ,p_module => l_log_module);
40280 END IF;
40281 --
40282 EXCEPTION
40283 WHEN xla_exceptions_pkg.application_exception THEN
40284 RAISE;
40285 WHEN OTHERS THEN
40286 xla_exceptions_pkg.raise_message
40287 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_88');
40288 END AcctLineType_88;
40289 --
40290
40291 ---------------------------------------
40292 --
40293 -- PRIVATE FUNCTION
40294 -- AcctLineType_89
40295 --
40296 ---------------------------------------
40297 PROCEDURE AcctLineType_89 (
40298 p_application_id IN NUMBER
40299 ,p_event_id IN NUMBER
40300 ,p_calculate_acctd_flag IN VARCHAR2
40301 ,p_calculate_g_l_flag IN VARCHAR2
40302 ,p_actual_flag IN OUT VARCHAR2
40303 ,p_balance_type_code OUT VARCHAR2
40304 ,p_gain_or_loss_ref OUT VARCHAR2
40305
40306 --Transaction Distribution GL Account
40307 , p_source_26 IN NUMBER
40308 --Bill To Customer Account Identifier
40309 , p_source_37 IN NUMBER
40310 --Bill To Customer Site Use Identifier
40311 , p_source_38 IN NUMBER
40312 --SLA Party Type
40313 , p_source_39 IN VARCHAR2
40314 --Transaction Distribution Account Class
40315 , p_source_43 IN VARCHAR2
40316 --Transaction Distribution Identifier
40317 , p_source_44 IN NUMBER
40318 --Transaction Distribution Type
40319 , p_source_45 IN VARCHAR2
40320 --Transaction Distribution Entered Amount
40321 , p_source_46 IN NUMBER
40322 --Transaction Currency Code
40323 , p_source_47 IN VARCHAR2
40324 --Transaction Exchange Date
40325 , p_source_48 IN DATE
40326 --Transaction Exchange Rate
40327 , p_source_49 IN NUMBER
40328 --Transaction Exchange Rate Type
40329 , p_source_50 IN VARCHAR2
40330 --Transaction Accounting Amount
40331 , p_source_51 IN NUMBER
40332 --Transaction Tax Line Identifier
40333 , p_source_86 IN NUMBER
40334 --Rounding Correction Flag
40335 , p_source_87 IN VARCHAR2
40336 )
40337 IS
40338
40339 l_component_type VARCHAR2(80);
40340 l_component_code VARCHAR2(30);
40341 l_component_type_code VARCHAR2(1);
40342 l_component_appl_id INTEGER;
40343 l_amb_context_code VARCHAR2(30);
40344 l_entity_code VARCHAR2(30);
40345 l_event_class_code VARCHAR2(30);
40346 l_ae_header_id NUMBER;
40347 l_event_type_code VARCHAR2(30);
40348 l_line_definition_code VARCHAR2(30);
40349 l_line_definition_owner_code VARCHAR2(1);
40350 --
40351 -- adr variables
40352 l_segment VARCHAR2(30);
40353 l_ccid NUMBER;
40354 l_adr_transaction_coa_id NUMBER;
40355 l_adr_accounting_coa_id NUMBER;
40356 l_adr_flexfield_segment_code VARCHAR2(30);
40360 l_adr_value_segment_code VARCHAR2(30);
40357 l_adr_flex_value_set_id NUMBER;
40358 l_adr_value_type_code VARCHAR2(30);
40359 l_adr_value_combination_id NUMBER;
40361
40362 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40363 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40364 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40365 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40366
40367 -- 4262811 Variables ------------------------------------------------------------------------------------------
40368 l_entered_amt_idx NUMBER;
40369 l_accted_amt_idx NUMBER;
40370 l_acc_rev_flag VARCHAR2(1);
40371 l_accrual_line_num NUMBER;
40372 l_tmp_amt NUMBER;
40373 l_acc_rev_natural_side_code VARCHAR2(1);
40374
40375 l_num_entries NUMBER;
40376 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40377 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40378 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40379 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40380 l_recog_line_1 NUMBER;
40381 l_recog_line_2 NUMBER;
40382
40383 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40384 l_bflow_applied_to_amt NUMBER; -- 5132302
40385 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40386
40387 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40388
40389 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40390 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40391
40392 ---------------------------------------------------------------------------------------------------------------
40393
40394
40395 --
40396 -- bulk performance
40397 --
40398 l_balance_type_code VARCHAR2(1);
40399 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40400 l_log_module VARCHAR2(240);
40401
40402 --
40403 -- Upgrade strategy
40404 --
40405 l_actual_upg_option VARCHAR2(1);
40406 l_enc_upg_option VARCHAR2(1);
40407
40408 --
40409 BEGIN
40410 --
40411 IF g_log_enabled THEN
40412 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
40413 END IF;
40414 --
40415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40416
40417 trace
40418 (p_msg => 'BEGIN of AcctLineType_89'
40419 ,p_level => C_LEVEL_PROCEDURE
40420 ,p_module => l_log_module);
40421
40422 END IF;
40423 --
40424 l_component_type := 'AMB_JLT';
40425 l_component_code := 'INV_UNEARN_ROUND';
40426 l_component_type_code := 'S';
40427 l_component_appl_id := 222;
40428 l_amb_context_code := 'DEFAULT';
40429 l_entity_code := 'TRANSACTIONS';
40430 l_event_class_code := 'INVOICE';
40431 l_event_type_code := 'INVOICE_ALL';
40432 l_line_definition_owner_code := 'S';
40433 l_line_definition_code := 'JA_CN_AR_INV_DEFAULT_ACCRUAL';
40434 --
40435 l_balance_type_code := 'A';
40436 l_segment := NULL;
40437 l_ccid := NULL;
40438 l_adr_transaction_coa_id := NULL;
40439 l_adr_accounting_coa_id := NULL;
40440 l_adr_flexfield_segment_code := NULL;
40441 l_adr_flex_value_set_id := NULL;
40442 l_adr_value_type_code := NULL;
40443 l_adr_value_combination_id := NULL;
40444 l_adr_value_segment_code := NULL;
40445
40446 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40447 l_bflow_class_code := ''; -- 4219869 Business Flow
40448 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40449 l_budgetary_control_flag := 'N';
40450
40451 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40452 l_bflow_applied_to_amt := NULL; -- 5132302
40453 l_entered_amt_idx := NULL; -- 4262811
40454 l_accted_amt_idx := NULL; -- 4262811
40455 l_acc_rev_flag := NULL; -- 4262811
40456 l_accrual_line_num := NULL; -- 4262811
40457 l_tmp_amt := NULL; -- 4262811
40458 --
40459
40460 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40461 l_balance_type_code <> 'B' THEN
40462 IF NVL(p_source_43,'
40463 ') = 'UNEARN' AND
40464 NVL(p_source_87,'
40465 ') = 'Y'
40466 THEN
40467
40468 --
40469 XLA_AE_LINES_PKG.SetNewLine;
40470
40471 p_balance_type_code := l_balance_type_code;
40472 -- set the flag so later we will know whether the gain loss line needs to be created
40473
40474 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40475 p_actual_flag :='A';
40476 END IF;
40477
40478 --
40479 -- bulk performance
40480 --
40481 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40482 p_header_num => 0); -- 4262811
40483 --
40484 -- set accounting line options
40485 --
40486 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40487 p_natural_side_code => 'C'
40488 , p_gain_or_loss_flag => 'N'
40489 , p_gl_transfer_mode_code => 'S'
40490 , p_acct_entry_type_code => 'A'
40494 --
40491 , p_switch_side_flag => 'Y'
40492 , p_merge_duplicate_code => 'N'
40493 );
40495 l_acc_rev_natural_side_code := 'D'; -- 4262811
40496 --
40497 --
40498 -- set accounting line type info
40499 --
40500 xla_ae_lines_pkg.SetAcctLineType
40501 (p_component_type => l_component_type
40502 ,p_event_type_code => l_event_type_code
40503 ,p_line_definition_owner_code => l_line_definition_owner_code
40504 ,p_line_definition_code => l_line_definition_code
40505 ,p_accounting_line_code => l_component_code
40506 ,p_accounting_line_type_code => l_component_type_code
40507 ,p_accounting_line_appl_id => l_component_appl_id
40508 ,p_amb_context_code => l_amb_context_code
40509 ,p_entity_code => l_entity_code
40510 ,p_event_class_code => l_event_class_code);
40511 --
40512 -- set accounting class
40513 --
40514 xla_ae_lines_pkg.SetAcctClass(
40515 p_accounting_class_code => 'UNEARNED_REVENUE'
40516 , p_ae_header_id => l_ae_header_id
40517 );
40518
40519 --
40520 -- set rounding class
40521 --
40522 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40523 'RECEIVABLE';
40524
40525 --
40526 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40527 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40528 --
40529 -- bulk performance
40530 --
40531 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40532
40533 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40534 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40535
40536 -- 4955764
40537 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40538 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40539
40540 -- 4458381 Public Sector Enh
40541
40542 --
40543 -- set accounting attributes for the line type
40544 --
40545 l_entered_amt_idx := 3;
40546 l_accted_amt_idx := 8;
40547 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40548 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
40549 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_44);
40550 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
40551 l_rec_acct_attrs.array_char_value(2) := p_source_45;
40552 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
40553 l_rec_acct_attrs.array_num_value(3) := p_source_46;
40554 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
40555 l_rec_acct_attrs.array_char_value(4) := p_source_47;
40556 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
40557 l_rec_acct_attrs.array_date_value(5) := p_source_48;
40558 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
40559 l_rec_acct_attrs.array_num_value(6) := p_source_49;
40560 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
40561 l_rec_acct_attrs.array_char_value(7) := p_source_50;
40562 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
40563 l_rec_acct_attrs.array_num_value(8) := p_source_51;
40564 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
40565 l_rec_acct_attrs.array_num_value(9) := p_source_37;
40566 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
40567 l_rec_acct_attrs.array_num_value(10) := p_source_38;
40568 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
40569 l_rec_acct_attrs.array_char_value(11) := p_source_39;
40570 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
40571 l_rec_acct_attrs.array_num_value(12) := p_source_86;
40572
40573 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40574 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40575
40576 ---------------------------------------------------------------------------------------------------------------
40577 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40578 ---------------------------------------------------------------------------------------------------------------
40579 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40583
40580
40581 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40582 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40584 IF xla_accounting_cache_pkg.GetValueChar
40585 (p_source_code => 'LEDGER_CATEGORY_CODE'
40586 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40587 AND l_bflow_method_code = 'PRIOR_ENTRY'
40588 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40589 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40590 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40591 )
40592 THEN
40593 xla_ae_lines_pkg.BflowUpgEntry
40594 (p_business_method_code => l_bflow_method_code
40595 ,p_business_class_code => l_bflow_class_code
40596 ,p_balance_type => l_balance_type_code);
40597 ELSE
40598 NULL;
40599 -- No business flow processing for business flow method of NONE.
40600 END IF;
40601
40602 --
40603 -- call analytical criteria
40604 --
40605
40606 --
40607 -- call description
40608 --
40609 -- No description or it is inherited.
40610 --
40611 -- call ADRs
40612 -- Bug 4922099
40613 --
40614 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40615 (NVL(l_actual_upg_option, 'N') = 'O') OR
40616 (NVL(l_enc_upg_option, 'N') = 'O')
40617 )
40618 THEN
40619 NULL;
40620 --
40621 --
40622
40623 l_ccid := AcctDerRule_24(
40624 p_application_id => p_application_id
40625 , p_ae_header_id => l_ae_header_id
40626 , p_source_26 => p_source_26
40627 , x_transaction_coa_id => l_adr_transaction_coa_id
40628 , x_accounting_coa_id => l_adr_accounting_coa_id
40629 , x_value_type_code => l_adr_value_type_code
40630 , p_side => 'NA'
40631 );
40632
40633 xla_ae_lines_pkg.set_ccid(
40634 p_code_combination_id => l_ccid
40635 , p_value_type_code => l_adr_value_type_code
40636 , p_transaction_coa_id => l_adr_transaction_coa_id
40637 , p_accounting_coa_id => l_adr_accounting_coa_id
40638 , p_adr_code => 'TRX_DIST_CCID'
40639 , p_adr_type_code => 'S'
40640 , p_component_type => l_component_type
40641 , p_component_code => l_component_code
40642 , p_component_type_code => l_component_type_code
40643 , p_component_appl_id => l_component_appl_id
40644 , p_amb_context_code => l_amb_context_code
40645 , p_side => 'NA'
40646 );
40647
40648
40649 --
40650 --
40651 END IF;
40652 --
40653 -- Bug 4922099
40654 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40655 (NVL(l_enc_upg_option, 'N') = 'O')
40656 ) AND
40657 (l_bflow_method_code = 'PRIOR_ENTRY')
40658 )
40659 THEN
40660 IF
40661 --
40662 1 = 2
40663 --
40664 THEN
40665 xla_accounting_err_pkg.build_message
40666 (p_appli_s_name => 'XLA'
40667 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40668 ,p_token_1 => 'LINE_NUMBER'
40669 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40670 ,p_token_2 => 'LINE_TYPE_NAME'
40671 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40672 l_component_type
40673 ,l_component_code
40674 ,l_component_type_code
40675 ,l_component_appl_id
40676 ,l_amb_context_code
40677 ,l_entity_code
40678 ,l_event_class_code
40679 )
40680 ,p_token_3 => 'OWNER'
40681 ,p_value_3 => xla_lookups_pkg.get_meaning(
40682 p_lookup_type => 'XLA_OWNER_TYPE'
40683 ,p_lookup_code => l_component_type_code
40684 )
40685 ,p_token_4 => 'PRODUCT_NAME'
40686 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40687 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40688 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40689 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40690 ,p_ae_header_id => NULL
40691 );
40692
40693 IF (C_LEVEL_ERROR>= g_log_level) THEN
40694 trace
40695 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40696 ,p_level => C_LEVEL_ERROR
40697 ,p_module => l_log_module);
40698 END IF;
40699 END IF;
40700 END IF;
40701 --
40702 --
40703 ------------------------------------------------------------------------------------------------
40704 -- 4219869 Business Flow
40705 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40706 -- Prior Entry. Currently, the following code is always generated.
40707 ------------------------------------------------------------------------------------------------
40708 XLA_AE_LINES_PKG.ValidateCurrentLine;
40709
40710 ------------------------------------------------------------------------------------
40711 -- 4219869 Business Flow
40712 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40713 ------------------------------------------------------------------------------------
40714 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40715
40716 ----------------------------------------------------------------------------------
40717 -- 4219869 Business Flow
40718 -- Update journal entry status -- Need to generate this within IF <condition>
40719 ----------------------------------------------------------------------------------
40720 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40721 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40722 ,p_balance_type_code => l_balance_type_code
40723 );
40724
40725 -------------------------------------------------------------------------------------------
40726 -- 4262811 - Generate the Accrual Reversal lines
40727 -------------------------------------------------------------------------------------------
40728 BEGIN
40729 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40730 (g_array_event(p_event_id).array_value_num('header_index'));
40731 IF l_acc_rev_flag IS NULL THEN
40732 l_acc_rev_flag := 'N';
40733 END IF;
40734 EXCEPTION
40735 WHEN OTHERS THEN
40736 l_acc_rev_flag := 'N';
40737 END;
40738 --
40739 IF (l_acc_rev_flag = 'Y') THEN
40740
40741 -- 4645092 ------------------------------------------------------------------------------
40742 -- To allow MPA report to determine if it should generate report process
40743 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40744 ------------------------------------------------------------------------------------------
40745
40746 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40747 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40748 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
40749 -- call ADRs
40750 -- Bug 4922099
40751 --
40752 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40753 (NVL(l_actual_upg_option, 'N') = 'O') OR
40754 (NVL(l_enc_upg_option, 'N') = 'O')
40755 )
40756 THEN
40757 NULL;
40758 --
40759 --
40763 , p_ae_header_id => l_ae_header_id
40760
40761 l_ccid := AcctDerRule_24(
40762 p_application_id => p_application_id
40764 , p_source_26 => p_source_26
40765 , x_transaction_coa_id => l_adr_transaction_coa_id
40766 , x_accounting_coa_id => l_adr_accounting_coa_id
40767 , x_value_type_code => l_adr_value_type_code
40768 , p_side => 'NA'
40769 );
40770
40771 xla_ae_lines_pkg.set_ccid(
40772 p_code_combination_id => l_ccid
40773 , p_value_type_code => l_adr_value_type_code
40774 , p_transaction_coa_id => l_adr_transaction_coa_id
40775 , p_accounting_coa_id => l_adr_accounting_coa_id
40776 , p_adr_code => 'TRX_DIST_CCID'
40777 , p_adr_type_code => 'S'
40778 , p_component_type => l_component_type
40779 , p_component_code => l_component_code
40780 , p_component_type_code => l_component_type_code
40781 , p_component_appl_id => l_component_appl_id
40782 , p_amb_context_code => l_amb_context_code
40783 , p_side => 'NA'
40784 );
40785
40786
40787 --
40788 --
40789 END IF;
40790
40791 --
40792 -- Update the line information that should be overwritten
40793 --
40794 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40795 p_header_num => 1);
40796 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40797
40798 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40799
40800 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40801 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40802 END IF;
40803
40804 --
40805 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40806 --
40807 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40808 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40809 ELSE
40810 ---------------------------------------------------------------------------------------------------
40811 -- 4262811a Switch Sign
40812 ---------------------------------------------------------------------------------------------------
40813 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40816 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40817 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40818 -- 5132302
40819 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40820 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40821
40822 END IF;
40823
40824 -- 4955764
40825 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40826 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40827
40828
40829 XLA_AE_LINES_PKG.ValidateCurrentLine;
40830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40831
40832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40834 ,p_balance_type_code => l_balance_type_code);
40835
40836 END IF;
40837
40838 -----------------------------------------------------------------------------------------
40839 -- 4262811 Multiperiod Accounting
40840 -----------------------------------------------------------------------------------------
40841 -- No MPA option is assigned.
40842
40843
40844 END IF;
40845 END IF;
40846 --
40847
40848 --
40849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40850 trace
40851 (p_msg => 'END of AcctLineType_89'
40852 ,p_level => C_LEVEL_PROCEDURE
40853 ,p_module => l_log_module);
40854 END IF;
40855 --
40856 EXCEPTION
40857 WHEN xla_exceptions_pkg.application_exception THEN
40858 RAISE;
40859 WHEN OTHERS THEN
40860 xla_exceptions_pkg.raise_message
40861 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_89');
40862 END AcctLineType_89;
40863 --
40864
40865 ---------------------------------------
40866 --
40867 -- PRIVATE FUNCTION
40868 -- AcctLineType_90
40869 --
40870 ---------------------------------------
40871 PROCEDURE AcctLineType_90 (
40872 p_application_id IN NUMBER
40873 ,p_event_id IN NUMBER
40874 ,p_calculate_acctd_flag IN VARCHAR2
40875 ,p_calculate_g_l_flag IN VARCHAR2
40876 ,p_actual_flag IN OUT VARCHAR2
40877 ,p_balance_type_code OUT VARCHAR2
40878 ,p_gain_or_loss_ref OUT VARCHAR2
40879
40880 --Distribution GL Account
40881 , p_source_22 IN NUMBER
40882 --Distribution Source Type
40883 , p_source_27 IN VARCHAR2
40884 --Distribution Line Identifier
40885 , p_source_29 IN NUMBER
40886 --Distribution Type
40887 , p_source_30 IN VARCHAR2
40888 --Entered Amount
40889 , p_source_31 IN NUMBER
40890 --Currency Code
40891 , p_source_32 IN VARCHAR2
40892 --Exchange Rate
40893 , p_source_34 IN NUMBER
40894 --Exchange Rate Type
40895 , p_source_35 IN VARCHAR2
40896 --Applied To Document Accounting Amount
40897 , p_source_36 IN NUMBER
40898 --Distribution Multi Fund Additional Entry
40899 , p_source_88 IN VARCHAR2
40900 --Applied To Document Exchange Date
40901 , p_source_89 IN DATE
40902 --Cash Receipt Identifier
40903 , p_source_90 IN NUMBER
40904 )
40905 IS
40906
40907 l_component_type VARCHAR2(80);
40908 l_component_code VARCHAR2(30);
40909 l_component_type_code VARCHAR2(1);
40910 l_component_appl_id INTEGER;
40911 l_amb_context_code VARCHAR2(30);
40912 l_entity_code VARCHAR2(30);
40913 l_event_class_code VARCHAR2(30);
40914 l_ae_header_id NUMBER;
40915 l_event_type_code VARCHAR2(30);
40916 l_line_definition_code VARCHAR2(30);
40917 l_line_definition_owner_code VARCHAR2(1);
40918 --
40919 -- adr variables
40920 l_segment VARCHAR2(30);
40921 l_ccid NUMBER;
40922 l_adr_transaction_coa_id NUMBER;
40923 l_adr_accounting_coa_id NUMBER;
40924 l_adr_flexfield_segment_code VARCHAR2(30);
40925 l_adr_flex_value_set_id NUMBER;
40926 l_adr_value_type_code VARCHAR2(30);
40927 l_adr_value_combination_id NUMBER;
40928 l_adr_value_segment_code VARCHAR2(30);
40929
40930 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40931 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40932 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40933 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40934
40935 -- 4262811 Variables ------------------------------------------------------------------------------------------
40936 l_entered_amt_idx NUMBER;
40937 l_accted_amt_idx NUMBER;
40938 l_acc_rev_flag VARCHAR2(1);
40939 l_accrual_line_num NUMBER;
40940 l_tmp_amt NUMBER;
40941 l_acc_rev_natural_side_code VARCHAR2(1);
40942
40943 l_num_entries NUMBER;
40944 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40945 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40946 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40947 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40948 l_recog_line_1 NUMBER;
40949 l_recog_line_2 NUMBER;
40950
40951 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40952 l_bflow_applied_to_amt NUMBER; -- 5132302
40953 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40954
40955 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40956
40957 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40958 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40959
40960 ---------------------------------------------------------------------------------------------------------------
40961
40962
40963 --
40964 -- bulk performance
40965 --
40966 l_balance_type_code VARCHAR2(1);
40967 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40968 l_log_module VARCHAR2(240);
40969
40970 --
40971 -- Upgrade strategy
40972 --
40973 l_actual_upg_option VARCHAR2(1);
40974 l_enc_upg_option VARCHAR2(1);
40975
40976 --
40977 BEGIN
40978 --
40979 IF g_log_enabled THEN
40980 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
40981 END IF;
40982 --
40983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40984
40985 trace
40986 (p_msg => 'BEGIN of AcctLineType_90'
40987 ,p_level => C_LEVEL_PROCEDURE
40988 ,p_module => l_log_module);
40989
40990 END IF;
40991 --
40992 l_component_type := 'AMB_JLT';
40993 l_component_code := 'MISC_RCT_BNK_CHG';
40994 l_component_type_code := 'S';
40995 l_component_appl_id := 222;
40996 l_amb_context_code := 'DEFAULT';
40997 l_entity_code := 'RECEIPTS';
40998 l_event_class_code := 'MISC_RECEIPT';
40999 l_event_type_code := 'MISC_RECEIPT_ALL';
41000 l_line_definition_owner_code := 'S';
41001 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
41002 --
41003 l_balance_type_code := 'A';
41004 l_segment := NULL;
41005 l_ccid := NULL;
41006 l_adr_transaction_coa_id := NULL;
41007 l_adr_accounting_coa_id := NULL;
41008 l_adr_flexfield_segment_code := NULL;
41009 l_adr_flex_value_set_id := NULL;
41010 l_adr_value_type_code := NULL;
41011 l_adr_value_combination_id := NULL;
41012 l_adr_value_segment_code := NULL;
41013
41014 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41015 l_bflow_class_code := ''; -- 4219869 Business Flow
41016 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41017 l_budgetary_control_flag := 'N';
41018
41019 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41020 l_bflow_applied_to_amt := NULL; -- 5132302
41021 l_entered_amt_idx := NULL; -- 4262811
41022 l_accted_amt_idx := NULL; -- 4262811
41023 l_acc_rev_flag := NULL; -- 4262811
41024 l_accrual_line_num := NULL; -- 4262811
41025 l_tmp_amt := NULL; -- 4262811
41026 --
41027
41028 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41029 l_balance_type_code <> 'B' THEN
41030 IF NVL(p_source_27,'
41031 ') = 'BANK_CHARGES' AND
41032 NVL(p_source_88,'
41033 ') = 'N'
41034 THEN
41035
41036 --
41037 XLA_AE_LINES_PKG.SetNewLine;
41038
41039 p_balance_type_code := l_balance_type_code;
41040 -- set the flag so later we will know whether the gain loss line needs to be created
41041
41042 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41043 p_actual_flag :='A';
41044 END IF;
41045
41046 --
41047 -- bulk performance
41048 --
41049 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41050 p_header_num => 0); -- 4262811
41051 --
41052 -- set accounting line options
41053 --
41054 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41055 p_natural_side_code => 'C'
41056 , p_gain_or_loss_flag => 'N'
41057 , p_gl_transfer_mode_code => 'S'
41058 , p_acct_entry_type_code => 'A'
41059 , p_switch_side_flag => 'Y'
41060 , p_merge_duplicate_code => 'A'
41061 );
41062 --
41063 l_acc_rev_natural_side_code := 'D'; -- 4262811
41064 --
41065 --
41066 -- set accounting line type info
41067 --
41068 xla_ae_lines_pkg.SetAcctLineType
41069 (p_component_type => l_component_type
41070 ,p_event_type_code => l_event_type_code
41071 ,p_line_definition_owner_code => l_line_definition_owner_code
41072 ,p_line_definition_code => l_line_definition_code
41073 ,p_accounting_line_code => l_component_code
41074 ,p_accounting_line_type_code => l_component_type_code
41075 ,p_accounting_line_appl_id => l_component_appl_id
41076 ,p_amb_context_code => l_amb_context_code
41077 ,p_entity_code => l_entity_code
41078 ,p_event_class_code => l_event_class_code);
41079 --
41080 -- set accounting class
41081 --
41082 xla_ae_lines_pkg.SetAcctClass(
41083 p_accounting_class_code => 'BANK_CHG'
41084 , p_ae_header_id => l_ae_header_id
41085 );
41086
41087 --
41088 -- set rounding class
41089 --
41090 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41091 'RECEIVABLE';
41092
41093 --
41094 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41095 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41096 --
41097 -- bulk performance
41098 --
41099 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41100
41101 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41102 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41103
41104 -- 4955764
41105 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41106 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41107
41108 -- 4458381 Public Sector Enh
41109
41110 --
41111 -- set accounting attributes for the line type
41112 --
41113 l_entered_amt_idx := 3;
41114 l_accted_amt_idx := 8;
41115 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41116 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41117 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
41118 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
41119 l_rec_acct_attrs.array_char_value(2) := p_source_30;
41120 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
41121 l_rec_acct_attrs.array_num_value(3) := p_source_31;
41122 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
41123 l_rec_acct_attrs.array_char_value(4) := p_source_32;
41124 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
41125 l_rec_acct_attrs.array_date_value(5) := p_source_89;
41126 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
41127 l_rec_acct_attrs.array_num_value(6) := p_source_34;
41128 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
41129 l_rec_acct_attrs.array_char_value(7) := p_source_35;
41130 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
41131 l_rec_acct_attrs.array_num_value(8) := p_source_36;
41132
41133 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41134 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41135
41136 ---------------------------------------------------------------------------------------------------------------
41137 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41138 ---------------------------------------------------------------------------------------------------------------
41139 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41140
41141 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41142 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41143
41144 IF xla_accounting_cache_pkg.GetValueChar
41145 (p_source_code => 'LEDGER_CATEGORY_CODE'
41146 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41147 AND l_bflow_method_code = 'PRIOR_ENTRY'
41148 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41149 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41150 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41151 )
41152 THEN
41153 xla_ae_lines_pkg.BflowUpgEntry
41154 (p_business_method_code => l_bflow_method_code
41155 ,p_business_class_code => l_bflow_class_code
41156 ,p_balance_type => l_balance_type_code);
41157 ELSE
41158 NULL;
41159 -- No business flow processing for business flow method of NONE.
41160 END IF;
41161
41162 --
41163 -- call analytical criteria
41164 --
41165
41166
41167 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
41168 xla_ae_lines_pkg.SetAnalyticalCriteria(
41169 p_analytical_criterion_name => 'Check Id'
41170 , p_analytical_criterion_owner => 'S'
41171 , p_analytical_criterion_code => 'CHECK_ID'
41172 , p_amb_context_code => 'DEFAULT'
41173 , p_balancing_flag => 'N'
41174
41175 , p_analytical_detail_char_1 => NULL
41176 , p_analytical_detail_num_1 => p_source_90
41177 , p_analytical_detail_date_1 => NULL
41178
41179 , p_ae_header_id => l_ae_header_id
41180 )
41181 ;
41182 --
41183
41184 --
41185 -- call description
41186 --
41187 -- No description or it is inherited.
41188 --
41189 -- call ADRs
41190 -- Bug 4922099
41191 --
41192 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41193 (NVL(l_actual_upg_option, 'N') = 'O') OR
41194 (NVL(l_enc_upg_option, 'N') = 'O')
41195 )
41196 THEN
41197 NULL;
41198 --
41199 --
41200
41201 l_ccid := AcctDerRule_20(
41202 p_application_id => p_application_id
41203 , p_ae_header_id => l_ae_header_id
41204 , p_source_22 => p_source_22
41205 , x_transaction_coa_id => l_adr_transaction_coa_id
41206 , x_accounting_coa_id => l_adr_accounting_coa_id
41207 , x_value_type_code => l_adr_value_type_code
41208 , p_side => 'NA'
41209 );
41210
41211 xla_ae_lines_pkg.set_ccid(
41212 p_code_combination_id => l_ccid
41213 , p_value_type_code => l_adr_value_type_code
41214 , p_transaction_coa_id => l_adr_transaction_coa_id
41215 , p_accounting_coa_id => l_adr_accounting_coa_id
41216 , p_adr_code => 'DIST_CCID'
41217 , p_adr_type_code => 'S'
41218 , p_component_type => l_component_type
41219 , p_component_code => l_component_code
41220 , p_component_type_code => l_component_type_code
41221 , p_component_appl_id => l_component_appl_id
41222 , p_amb_context_code => l_amb_context_code
41223 , p_side => 'NA'
41224 );
41225
41226
41227 --
41228 --
41229 END IF;
41230 --
41231 -- Bug 4922099
41232 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41233 (NVL(l_enc_upg_option, 'N') = 'O')
41234 ) AND
41235 (l_bflow_method_code = 'PRIOR_ENTRY')
41236 )
41237 THEN
41238 IF
41239 --
41240 1 = 2
41241 --
41242 THEN
41243 xla_accounting_err_pkg.build_message
41244 (p_appli_s_name => 'XLA'
41245 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41246 ,p_token_1 => 'LINE_NUMBER'
41247 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41248 ,p_token_2 => 'LINE_TYPE_NAME'
41249 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41250 l_component_type
41251 ,l_component_code
41252 ,l_component_type_code
41253 ,l_component_appl_id
41254 ,l_amb_context_code
41255 ,l_entity_code
41256 ,l_event_class_code
41257 )
41258 ,p_token_3 => 'OWNER'
41259 ,p_value_3 => xla_lookups_pkg.get_meaning(
41260 p_lookup_type => 'XLA_OWNER_TYPE'
41261 ,p_lookup_code => l_component_type_code
41262 )
41263 ,p_token_4 => 'PRODUCT_NAME'
41264 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41265 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41266 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41267 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41268 ,p_ae_header_id => NULL
41269 );
41270
41271 IF (C_LEVEL_ERROR>= g_log_level) THEN
41272 trace
41273 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41274 ,p_level => C_LEVEL_ERROR
41275 ,p_module => l_log_module);
41276 END IF;
41277 END IF;
41278 END IF;
41279 --
41280 --
41281 ------------------------------------------------------------------------------------------------
41282 -- 4219869 Business Flow
41283 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41284 -- Prior Entry. Currently, the following code is always generated.
41285 ------------------------------------------------------------------------------------------------
41286 XLA_AE_LINES_PKG.ValidateCurrentLine;
41287
41288 ------------------------------------------------------------------------------------
41289 -- 4219869 Business Flow
41290 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41291 ------------------------------------------------------------------------------------
41292 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41293
41294 ----------------------------------------------------------------------------------
41295 -- 4219869 Business Flow
41296 -- Update journal entry status -- Need to generate this within IF <condition>
41297 ----------------------------------------------------------------------------------
41298 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41299 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41300 ,p_balance_type_code => l_balance_type_code
41301 );
41302
41303 -------------------------------------------------------------------------------------------
41304 -- 4262811 - Generate the Accrual Reversal lines
41305 -------------------------------------------------------------------------------------------
41306 BEGIN
41307 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41308 (g_array_event(p_event_id).array_value_num('header_index'));
41309 IF l_acc_rev_flag IS NULL THEN
41310 l_acc_rev_flag := 'N';
41311 END IF;
41312 EXCEPTION
41313 WHEN OTHERS THEN
41314 l_acc_rev_flag := 'N';
41315 END;
41316 --
41317 IF (l_acc_rev_flag = 'Y') THEN
41318
41319 -- 4645092 ------------------------------------------------------------------------------
41320 -- To allow MPA report to determine if it should generate report process
41321 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41322 ------------------------------------------------------------------------------------------
41323
41324 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41325 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41326 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41327 -- call ADRs
41328 -- Bug 4922099
41329 --
41330 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41331 (NVL(l_actual_upg_option, 'N') = 'O') OR
41332 (NVL(l_enc_upg_option, 'N') = 'O')
41333 )
41334 THEN
41335 NULL;
41336 --
41337 --
41338
41339 l_ccid := AcctDerRule_20(
41340 p_application_id => p_application_id
41341 , p_ae_header_id => l_ae_header_id
41342 , p_source_22 => p_source_22
41343 , x_transaction_coa_id => l_adr_transaction_coa_id
41344 , x_accounting_coa_id => l_adr_accounting_coa_id
41345 , x_value_type_code => l_adr_value_type_code
41346 , p_side => 'NA'
41347 );
41348
41349 xla_ae_lines_pkg.set_ccid(
41350 p_code_combination_id => l_ccid
41351 , p_value_type_code => l_adr_value_type_code
41352 , p_transaction_coa_id => l_adr_transaction_coa_id
41353 , p_accounting_coa_id => l_adr_accounting_coa_id
41354 , p_adr_code => 'DIST_CCID'
41355 , p_adr_type_code => 'S'
41356 , p_component_type => l_component_type
41357 , p_component_code => l_component_code
41358 , p_component_type_code => l_component_type_code
41359 , p_component_appl_id => l_component_appl_id
41360 , p_amb_context_code => l_amb_context_code
41361 , p_side => 'NA'
41362 );
41363
41364
41365 --
41366 --
41367 END IF;
41368
41369 --
41370 -- Update the line information that should be overwritten
41371 --
41372 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41373 p_header_num => 1);
41374 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41375
41376 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41377
41378 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41379 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41380 END IF;
41381
41382 --
41383 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41384 --
41385 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41386 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41387 ELSE
41388 ---------------------------------------------------------------------------------------------------
41389 -- 4262811a Switch Sign
41390 ---------------------------------------------------------------------------------------------------
41391 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41392 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41393 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41394 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41395 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41396 -- 5132302
41397 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41398 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41399
41400 END IF;
41401
41402 -- 4955764
41403 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41404 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41405
41406
41407 XLA_AE_LINES_PKG.ValidateCurrentLine;
41408 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41409
41410 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41411 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41412 ,p_balance_type_code => l_balance_type_code);
41413
41414 END IF;
41415
41416 -----------------------------------------------------------------------------------------
41417 -- 4262811 Multiperiod Accounting
41418 -----------------------------------------------------------------------------------------
41419 -- No MPA option is assigned.
41420
41421
41422 END IF;
41423 END IF;
41424 --
41425
41426 --
41427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41428 trace
41429 (p_msg => 'END of AcctLineType_90'
41430 ,p_level => C_LEVEL_PROCEDURE
41431 ,p_module => l_log_module);
41432 END IF;
41433 --
41434 EXCEPTION
41435 WHEN xla_exceptions_pkg.application_exception THEN
41436 RAISE;
41437 WHEN OTHERS THEN
41438 xla_exceptions_pkg.raise_message
41439 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_90');
41440 END AcctLineType_90;
41441 --
41442
41443 ---------------------------------------
41444 --
41445 -- PRIVATE FUNCTION
41446 -- AcctLineType_91
41447 --
41448 ---------------------------------------
41449 PROCEDURE AcctLineType_91 (
41450 p_application_id IN NUMBER
41451 ,p_event_id IN NUMBER
41452 ,p_calculate_acctd_flag IN VARCHAR2
41453 ,p_calculate_g_l_flag IN VARCHAR2
41454 ,p_actual_flag IN OUT VARCHAR2
41455 ,p_balance_type_code OUT VARCHAR2
41456 ,p_gain_or_loss_ref OUT VARCHAR2
41457
41458 --Distribution GL Account
41459 , p_source_22 IN NUMBER
41460 --Distribution Source Type
41461 , p_source_27 IN VARCHAR2
41462 --Distribution Line Identifier
41463 , p_source_29 IN NUMBER
41464 --Distribution Type
41465 , p_source_30 IN VARCHAR2
41466 --Entered Amount
41467 , p_source_31 IN NUMBER
41468 --Currency Code
41469 , p_source_32 IN VARCHAR2
41470 --Exchange Rate
41471 , p_source_34 IN NUMBER
41472 --Exchange Rate Type
41473 , p_source_35 IN VARCHAR2
41474 --Applied To Document Accounting Amount
41475 , p_source_36 IN NUMBER
41476 --Distribution Multi Fund Additional Entry
41477 , p_source_88 IN VARCHAR2
41478 --Applied To Document Exchange Date
41479 , p_source_89 IN DATE
41480 --Cash Receipt Identifier
41481 , p_source_90 IN NUMBER
41482 )
41483 IS
41484
41485 l_component_type VARCHAR2(80);
41486 l_component_code VARCHAR2(30);
41487 l_component_type_code VARCHAR2(1);
41488 l_component_appl_id INTEGER;
41489 l_amb_context_code VARCHAR2(30);
41490 l_entity_code VARCHAR2(30);
41491 l_event_class_code VARCHAR2(30);
41492 l_ae_header_id NUMBER;
41493 l_event_type_code VARCHAR2(30);
41494 l_line_definition_code VARCHAR2(30);
41495 l_line_definition_owner_code VARCHAR2(1);
41496 --
41497 -- adr variables
41498 l_segment VARCHAR2(30);
41499 l_ccid NUMBER;
41500 l_adr_transaction_coa_id NUMBER;
41501 l_adr_accounting_coa_id NUMBER;
41502 l_adr_flexfield_segment_code VARCHAR2(30);
41503 l_adr_flex_value_set_id NUMBER;
41504 l_adr_value_type_code VARCHAR2(30);
41505 l_adr_value_combination_id NUMBER;
41506 l_adr_value_segment_code VARCHAR2(30);
41507
41508 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41509 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41510 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41511 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41512
41513 -- 4262811 Variables ------------------------------------------------------------------------------------------
41514 l_entered_amt_idx NUMBER;
41515 l_accted_amt_idx NUMBER;
41516 l_acc_rev_flag VARCHAR2(1);
41517 l_accrual_line_num NUMBER;
41518 l_tmp_amt NUMBER;
41519 l_acc_rev_natural_side_code VARCHAR2(1);
41520
41521 l_num_entries NUMBER;
41522 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41523 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41524 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41525 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41526 l_recog_line_1 NUMBER;
41527 l_recog_line_2 NUMBER;
41528
41529 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41530 l_bflow_applied_to_amt NUMBER; -- 5132302
41531 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41532
41533 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41534
41535 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41536 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41537
41538 ---------------------------------------------------------------------------------------------------------------
41539
41540
41541 --
41542 -- bulk performance
41543 --
41544 l_balance_type_code VARCHAR2(1);
41545 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41546 l_log_module VARCHAR2(240);
41547
41548 --
41549 -- Upgrade strategy
41550 --
41551 l_actual_upg_option VARCHAR2(1);
41552 l_enc_upg_option VARCHAR2(1);
41553
41554 --
41555 BEGIN
41556 --
41557 IF g_log_enabled THEN
41558 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
41559 END IF;
41560 --
41561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41562
41563 trace
41564 (p_msg => 'BEGIN of AcctLineType_91'
41565 ,p_level => C_LEVEL_PROCEDURE
41566 ,p_module => l_log_module);
41567
41568 END IF;
41569 --
41570 l_component_type := 'AMB_JLT';
41571 l_component_code := 'MISC_RCT_CASH';
41572 l_component_type_code := 'S';
41573 l_component_appl_id := 222;
41574 l_amb_context_code := 'DEFAULT';
41575 l_entity_code := 'RECEIPTS';
41576 l_event_class_code := 'MISC_RECEIPT';
41577 l_event_type_code := 'MISC_RECEIPT_ALL';
41578 l_line_definition_owner_code := 'S';
41579 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
41580 --
41581 l_balance_type_code := 'A';
41582 l_segment := NULL;
41583 l_ccid := NULL;
41584 l_adr_transaction_coa_id := NULL;
41585 l_adr_accounting_coa_id := NULL;
41586 l_adr_flexfield_segment_code := NULL;
41587 l_adr_flex_value_set_id := NULL;
41588 l_adr_value_type_code := NULL;
41589 l_adr_value_combination_id := NULL;
41590 l_adr_value_segment_code := NULL;
41591
41592 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41593 l_bflow_class_code := ''; -- 4219869 Business Flow
41594 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41595 l_budgetary_control_flag := 'N';
41596
41597 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41598 l_bflow_applied_to_amt := NULL; -- 5132302
41599 l_entered_amt_idx := NULL; -- 4262811
41600 l_accted_amt_idx := NULL; -- 4262811
41601 l_acc_rev_flag := NULL; -- 4262811
41602 l_accrual_line_num := NULL; -- 4262811
41603 l_tmp_amt := NULL; -- 4262811
41604 --
41605
41606 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41607 l_balance_type_code <> 'B' THEN
41608 IF NVL(p_source_27,'
41609 ') = 'CASH' AND
41610 NVL(p_source_88,'
41611 ') = 'N'
41612 THEN
41613
41614 --
41615 XLA_AE_LINES_PKG.SetNewLine;
41616
41617 p_balance_type_code := l_balance_type_code;
41618 -- set the flag so later we will know whether the gain loss line needs to be created
41619
41620 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41621 p_actual_flag :='A';
41622 END IF;
41623
41624 --
41625 -- bulk performance
41626 --
41630 -- set accounting line options
41627 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41628 p_header_num => 0); -- 4262811
41629 --
41631 --
41632 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41633 p_natural_side_code => 'C'
41634 , p_gain_or_loss_flag => 'N'
41635 , p_gl_transfer_mode_code => 'S'
41636 , p_acct_entry_type_code => 'A'
41637 , p_switch_side_flag => 'Y'
41638 , p_merge_duplicate_code => 'A'
41639 );
41640 --
41641 l_acc_rev_natural_side_code := 'D'; -- 4262811
41642 --
41643 --
41644 -- set accounting line type info
41645 --
41646 xla_ae_lines_pkg.SetAcctLineType
41647 (p_component_type => l_component_type
41648 ,p_event_type_code => l_event_type_code
41649 ,p_line_definition_owner_code => l_line_definition_owner_code
41650 ,p_line_definition_code => l_line_definition_code
41651 ,p_accounting_line_code => l_component_code
41652 ,p_accounting_line_type_code => l_component_type_code
41653 ,p_accounting_line_appl_id => l_component_appl_id
41654 ,p_amb_context_code => l_amb_context_code
41655 ,p_entity_code => l_entity_code
41656 ,p_event_class_code => l_event_class_code);
41657 --
41658 -- set accounting class
41659 --
41660 xla_ae_lines_pkg.SetAcctClass(
41661 p_accounting_class_code => 'CASH'
41662 , p_ae_header_id => l_ae_header_id
41663 );
41664
41665 --
41666 -- set rounding class
41667 --
41668 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41669 'RECEIVABLE';
41670
41671 --
41672 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41673 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41674 --
41675 -- bulk performance
41676 --
41677 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41678
41679 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41680 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41681
41682 -- 4955764
41683 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41684 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41685
41686 -- 4458381 Public Sector Enh
41687
41688 --
41689 -- set accounting attributes for the line type
41690 --
41691 l_entered_amt_idx := 3;
41692 l_accted_amt_idx := 8;
41693 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41694 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41695 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
41696 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
41697 l_rec_acct_attrs.array_char_value(2) := p_source_30;
41698 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
41699 l_rec_acct_attrs.array_num_value(3) := p_source_31;
41700 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
41701 l_rec_acct_attrs.array_char_value(4) := p_source_32;
41702 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
41703 l_rec_acct_attrs.array_date_value(5) := p_source_89;
41704 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
41705 l_rec_acct_attrs.array_num_value(6) := p_source_34;
41706 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
41707 l_rec_acct_attrs.array_char_value(7) := p_source_35;
41708 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
41709 l_rec_acct_attrs.array_num_value(8) := p_source_36;
41710
41711 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41712 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41713
41714 ---------------------------------------------------------------------------------------------------------------
41715 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41716 ---------------------------------------------------------------------------------------------------------------
41717 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41718
41719 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41720 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41721
41722 IF xla_accounting_cache_pkg.GetValueChar
41723 (p_source_code => 'LEDGER_CATEGORY_CODE'
41724 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41725 AND l_bflow_method_code = 'PRIOR_ENTRY'
41726 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41727 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41728 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41729 )
41730 THEN
41731 xla_ae_lines_pkg.BflowUpgEntry
41732 (p_business_method_code => l_bflow_method_code
41733 ,p_business_class_code => l_bflow_class_code
41734 ,p_balance_type => l_balance_type_code);
41735 ELSE
41736 NULL;
41737 -- No business flow processing for business flow method of NONE.
41738 END IF;
41739
41740 --
41741 -- call analytical criteria
41742 --
41743
41744
41748 , p_analytical_criterion_owner => 'S'
41745 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
41746 xla_ae_lines_pkg.SetAnalyticalCriteria(
41747 p_analytical_criterion_name => 'Check Id'
41749 , p_analytical_criterion_code => 'CHECK_ID'
41750 , p_amb_context_code => 'DEFAULT'
41751 , p_balancing_flag => 'N'
41752
41753 , p_analytical_detail_char_1 => NULL
41754 , p_analytical_detail_num_1 => p_source_90
41755 , p_analytical_detail_date_1 => NULL
41756
41757 , p_ae_header_id => l_ae_header_id
41758 )
41759 ;
41760 --
41761
41762 --
41763 -- call description
41764 --
41765 -- No description or it is inherited.
41766 --
41767 -- call ADRs
41768 -- Bug 4922099
41769 --
41770 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41771 (NVL(l_actual_upg_option, 'N') = 'O') OR
41772 (NVL(l_enc_upg_option, 'N') = 'O')
41773 )
41774 THEN
41775 NULL;
41776 --
41777 --
41778
41779 l_ccid := AcctDerRule_20(
41780 p_application_id => p_application_id
41781 , p_ae_header_id => l_ae_header_id
41782 , p_source_22 => p_source_22
41783 , x_transaction_coa_id => l_adr_transaction_coa_id
41784 , x_accounting_coa_id => l_adr_accounting_coa_id
41785 , x_value_type_code => l_adr_value_type_code
41786 , p_side => 'NA'
41787 );
41788
41789 xla_ae_lines_pkg.set_ccid(
41790 p_code_combination_id => l_ccid
41791 , p_value_type_code => l_adr_value_type_code
41792 , p_transaction_coa_id => l_adr_transaction_coa_id
41793 , p_accounting_coa_id => l_adr_accounting_coa_id
41794 , p_adr_code => 'DIST_CCID'
41795 , p_adr_type_code => 'S'
41796 , p_component_type => l_component_type
41797 , p_component_code => l_component_code
41798 , p_component_type_code => l_component_type_code
41799 , p_component_appl_id => l_component_appl_id
41800 , p_amb_context_code => l_amb_context_code
41801 , p_side => 'NA'
41802 );
41803
41804
41805 --
41806 --
41807 END IF;
41808 --
41809 -- Bug 4922099
41810 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41811 (NVL(l_enc_upg_option, 'N') = 'O')
41812 ) AND
41813 (l_bflow_method_code = 'PRIOR_ENTRY')
41814 )
41815 THEN
41816 IF
41817 --
41818 1 = 2
41819 --
41820 THEN
41821 xla_accounting_err_pkg.build_message
41822 (p_appli_s_name => 'XLA'
41823 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41824 ,p_token_1 => 'LINE_NUMBER'
41825 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41826 ,p_token_2 => 'LINE_TYPE_NAME'
41827 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41828 l_component_type
41829 ,l_component_code
41830 ,l_component_type_code
41831 ,l_component_appl_id
41832 ,l_amb_context_code
41833 ,l_entity_code
41834 ,l_event_class_code
41835 )
41836 ,p_token_3 => 'OWNER'
41837 ,p_value_3 => xla_lookups_pkg.get_meaning(
41838 p_lookup_type => 'XLA_OWNER_TYPE'
41839 ,p_lookup_code => l_component_type_code
41840 )
41841 ,p_token_4 => 'PRODUCT_NAME'
41842 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41843 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41844 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41845 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41846 ,p_ae_header_id => NULL
41847 );
41848
41849 IF (C_LEVEL_ERROR>= g_log_level) THEN
41850 trace
41851 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41852 ,p_level => C_LEVEL_ERROR
41853 ,p_module => l_log_module);
41854 END IF;
41855 END IF;
41856 END IF;
41857 --
41858 --
41859 ------------------------------------------------------------------------------------------------
41860 -- 4219869 Business Flow
41861 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41862 -- Prior Entry. Currently, the following code is always generated.
41866 ------------------------------------------------------------------------------------
41863 ------------------------------------------------------------------------------------------------
41864 XLA_AE_LINES_PKG.ValidateCurrentLine;
41865
41867 -- 4219869 Business Flow
41868 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41869 ------------------------------------------------------------------------------------
41870 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41871
41872 ----------------------------------------------------------------------------------
41873 -- 4219869 Business Flow
41874 -- Update journal entry status -- Need to generate this within IF <condition>
41875 ----------------------------------------------------------------------------------
41876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41878 ,p_balance_type_code => l_balance_type_code
41879 );
41880
41881 -------------------------------------------------------------------------------------------
41882 -- 4262811 - Generate the Accrual Reversal lines
41883 -------------------------------------------------------------------------------------------
41884 BEGIN
41885 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41886 (g_array_event(p_event_id).array_value_num('header_index'));
41887 IF l_acc_rev_flag IS NULL THEN
41888 l_acc_rev_flag := 'N';
41889 END IF;
41890 EXCEPTION
41891 WHEN OTHERS THEN
41892 l_acc_rev_flag := 'N';
41893 END;
41894 --
41895 IF (l_acc_rev_flag = 'Y') THEN
41896
41897 -- 4645092 ------------------------------------------------------------------------------
41898 -- To allow MPA report to determine if it should generate report process
41899 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41900 ------------------------------------------------------------------------------------------
41901
41902 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41903 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41904 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41905 -- call ADRs
41906 -- Bug 4922099
41907 --
41908 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41909 (NVL(l_actual_upg_option, 'N') = 'O') OR
41910 (NVL(l_enc_upg_option, 'N') = 'O')
41911 )
41912 THEN
41913 NULL;
41914 --
41915 --
41916
41917 l_ccid := AcctDerRule_20(
41918 p_application_id => p_application_id
41919 , p_ae_header_id => l_ae_header_id
41920 , p_source_22 => p_source_22
41921 , x_transaction_coa_id => l_adr_transaction_coa_id
41922 , x_accounting_coa_id => l_adr_accounting_coa_id
41923 , x_value_type_code => l_adr_value_type_code
41924 , p_side => 'NA'
41925 );
41926
41927 xla_ae_lines_pkg.set_ccid(
41928 p_code_combination_id => l_ccid
41929 , p_value_type_code => l_adr_value_type_code
41930 , p_transaction_coa_id => l_adr_transaction_coa_id
41931 , p_accounting_coa_id => l_adr_accounting_coa_id
41932 , p_adr_code => 'DIST_CCID'
41933 , p_adr_type_code => 'S'
41934 , p_component_type => l_component_type
41935 , p_component_code => l_component_code
41936 , p_component_type_code => l_component_type_code
41937 , p_component_appl_id => l_component_appl_id
41938 , p_amb_context_code => l_amb_context_code
41939 , p_side => 'NA'
41940 );
41941
41942
41943 --
41944 --
41945 END IF;
41946
41947 --
41948 -- Update the line information that should be overwritten
41949 --
41950 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41951 p_header_num => 1);
41952 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41953
41954 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41955
41956 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41957 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41958 END IF;
41959
41960 --
41961 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41962 --
41963 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41964 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41965 ELSE
41966 ---------------------------------------------------------------------------------------------------
41967 -- 4262811a Switch Sign
41968 ---------------------------------------------------------------------------------------------------
41969 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41970 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41971 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41972 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41973 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41974 -- 5132302
41978 END IF;
41975 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41976 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41977
41979
41980 -- 4955764
41981 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41982 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41983
41984
41985 XLA_AE_LINES_PKG.ValidateCurrentLine;
41986 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41987
41988 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41989 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41990 ,p_balance_type_code => l_balance_type_code);
41991
41992 END IF;
41993
41994 -----------------------------------------------------------------------------------------
41995 -- 4262811 Multiperiod Accounting
41996 -----------------------------------------------------------------------------------------
41997 -- No MPA option is assigned.
41998
41999
42000 END IF;
42001 END IF;
42002 --
42003
42004 --
42005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42006 trace
42007 (p_msg => 'END of AcctLineType_91'
42008 ,p_level => C_LEVEL_PROCEDURE
42009 ,p_module => l_log_module);
42010 END IF;
42011 --
42012 EXCEPTION
42013 WHEN xla_exceptions_pkg.application_exception THEN
42014 RAISE;
42015 WHEN OTHERS THEN
42016 xla_exceptions_pkg.raise_message
42017 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_91');
42018 END AcctLineType_91;
42019 --
42020
42021 ---------------------------------------
42022 --
42023 -- PRIVATE FUNCTION
42024 -- AcctLineType_92
42025 --
42026 ---------------------------------------
42027 PROCEDURE AcctLineType_92 (
42028 p_application_id IN NUMBER
42029 ,p_event_id IN NUMBER
42030 ,p_calculate_acctd_flag IN VARCHAR2
42031 ,p_calculate_g_l_flag IN VARCHAR2
42032 ,p_actual_flag IN OUT VARCHAR2
42033 ,p_balance_type_code OUT VARCHAR2
42034 ,p_gain_or_loss_ref OUT VARCHAR2
42035
42036 --Distribution GL Account
42037 , p_source_22 IN NUMBER
42038 --Distribution Source Type
42039 , p_source_27 IN VARCHAR2
42040 --Distribution Line Identifier
42041 , p_source_29 IN NUMBER
42042 --Distribution Type
42043 , p_source_30 IN VARCHAR2
42044 --Entered Amount
42045 , p_source_31 IN NUMBER
42046 --Currency Code
42047 , p_source_32 IN VARCHAR2
42048 --Exchange Rate
42049 , p_source_34 IN NUMBER
42050 --Exchange Rate Type
42051 , p_source_35 IN VARCHAR2
42052 --Applied To Document Accounting Amount
42053 , p_source_36 IN NUMBER
42054 --Distribution Multi Fund Additional Entry
42055 , p_source_88 IN VARCHAR2
42056 --Applied To Document Exchange Date
42057 , p_source_89 IN DATE
42058 --Cash Receipt Identifier
42059 , p_source_90 IN NUMBER
42060 )
42061 IS
42062
42063 l_component_type VARCHAR2(80);
42064 l_component_code VARCHAR2(30);
42065 l_component_type_code VARCHAR2(1);
42066 l_component_appl_id INTEGER;
42067 l_amb_context_code VARCHAR2(30);
42068 l_entity_code VARCHAR2(30);
42069 l_event_class_code VARCHAR2(30);
42070 l_ae_header_id NUMBER;
42071 l_event_type_code VARCHAR2(30);
42072 l_line_definition_code VARCHAR2(30);
42073 l_line_definition_owner_code VARCHAR2(1);
42074 --
42075 -- adr variables
42076 l_segment VARCHAR2(30);
42077 l_ccid NUMBER;
42078 l_adr_transaction_coa_id NUMBER;
42079 l_adr_accounting_coa_id NUMBER;
42080 l_adr_flexfield_segment_code VARCHAR2(30);
42081 l_adr_flex_value_set_id NUMBER;
42082 l_adr_value_type_code VARCHAR2(30);
42083 l_adr_value_combination_id NUMBER;
42084 l_adr_value_segment_code VARCHAR2(30);
42085
42086 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42087 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42088 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42089 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42090
42091 -- 4262811 Variables ------------------------------------------------------------------------------------------
42092 l_entered_amt_idx NUMBER;
42093 l_accted_amt_idx NUMBER;
42094 l_acc_rev_flag VARCHAR2(1);
42095 l_accrual_line_num NUMBER;
42096 l_tmp_amt NUMBER;
42097 l_acc_rev_natural_side_code VARCHAR2(1);
42098
42099 l_num_entries NUMBER;
42100 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42101 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42102 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42103 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42104 l_recog_line_1 NUMBER;
42105 l_recog_line_2 NUMBER;
42106
42107 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42108 l_bflow_applied_to_amt NUMBER; -- 5132302
42109 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42110
42111 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42112
42113 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42114 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42115
42116 ---------------------------------------------------------------------------------------------------------------
42117
42118
42119 --
42120 -- bulk performance
42121 --
42122 l_balance_type_code VARCHAR2(1);
42123 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42124 l_log_module VARCHAR2(240);
42125
42126 --
42127 -- Upgrade strategy
42128 --
42129 l_actual_upg_option VARCHAR2(1);
42130 l_enc_upg_option VARCHAR2(1);
42131
42132 --
42133 BEGIN
42134 --
42135 IF g_log_enabled THEN
42136 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
42137 END IF;
42138 --
42139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42140
42141 trace
42142 (p_msg => 'BEGIN of AcctLineType_92'
42143 ,p_level => C_LEVEL_PROCEDURE
42144 ,p_module => l_log_module);
42145
42146 END IF;
42147 --
42148 l_component_type := 'AMB_JLT';
42149 l_component_code := 'MISC_RCT_CONFIRM';
42150 l_component_type_code := 'S';
42151 l_component_appl_id := 222;
42152 l_amb_context_code := 'DEFAULT';
42153 l_entity_code := 'RECEIPTS';
42154 l_event_class_code := 'MISC_RECEIPT';
42155 l_event_type_code := 'MISC_RECEIPT_ALL';
42156 l_line_definition_owner_code := 'S';
42157 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
42158 --
42159 l_balance_type_code := 'A';
42160 l_segment := NULL;
42161 l_ccid := NULL;
42162 l_adr_transaction_coa_id := NULL;
42163 l_adr_accounting_coa_id := NULL;
42164 l_adr_flexfield_segment_code := NULL;
42165 l_adr_flex_value_set_id := NULL;
42166 l_adr_value_type_code := NULL;
42167 l_adr_value_combination_id := NULL;
42168 l_adr_value_segment_code := NULL;
42169
42170 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42171 l_bflow_class_code := ''; -- 4219869 Business Flow
42172 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42173 l_budgetary_control_flag := 'N';
42174
42175 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42176 l_bflow_applied_to_amt := NULL; -- 5132302
42177 l_entered_amt_idx := NULL; -- 4262811
42178 l_accted_amt_idx := NULL; -- 4262811
42179 l_acc_rev_flag := NULL; -- 4262811
42180 l_accrual_line_num := NULL; -- 4262811
42181 l_tmp_amt := NULL; -- 4262811
42182 --
42183
42187 ') = 'CONFIRMATION' AND
42184 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42185 l_balance_type_code <> 'B' THEN
42186 IF NVL(p_source_27,'
42188 NVL(p_source_88,'
42189 ') = 'N'
42190 THEN
42191
42192 --
42193 XLA_AE_LINES_PKG.SetNewLine;
42194
42195 p_balance_type_code := l_balance_type_code;
42196 -- set the flag so later we will know whether the gain loss line needs to be created
42197
42198 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42199 p_actual_flag :='A';
42200 END IF;
42201
42202 --
42203 -- bulk performance
42204 --
42205 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42206 p_header_num => 0); -- 4262811
42207 --
42208 -- set accounting line options
42209 --
42210 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42211 p_natural_side_code => 'C'
42212 , p_gain_or_loss_flag => 'N'
42213 , p_gl_transfer_mode_code => 'S'
42214 , p_acct_entry_type_code => 'A'
42215 , p_switch_side_flag => 'Y'
42216 , p_merge_duplicate_code => 'A'
42217 );
42218 --
42219 l_acc_rev_natural_side_code := 'D'; -- 4262811
42220 --
42221 --
42222 -- set accounting line type info
42223 --
42224 xla_ae_lines_pkg.SetAcctLineType
42225 (p_component_type => l_component_type
42226 ,p_event_type_code => l_event_type_code
42227 ,p_line_definition_owner_code => l_line_definition_owner_code
42228 ,p_line_definition_code => l_line_definition_code
42229 ,p_accounting_line_code => l_component_code
42230 ,p_accounting_line_type_code => l_component_type_code
42231 ,p_accounting_line_appl_id => l_component_appl_id
42232 ,p_amb_context_code => l_amb_context_code
42233 ,p_entity_code => l_entity_code
42234 ,p_event_class_code => l_event_class_code);
42235 --
42236 -- set accounting class
42237 --
42238 xla_ae_lines_pkg.SetAcctClass(
42239 p_accounting_class_code => 'CONFIRMATION'
42240 , p_ae_header_id => l_ae_header_id
42241 );
42242
42243 --
42244 -- set rounding class
42245 --
42246 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42247 'RECEIVABLE';
42248
42249 --
42250 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42251 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42252 --
42253 -- bulk performance
42254 --
42255 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42256
42257 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42258 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42259
42260 -- 4955764
42261 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42262 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42263
42264 -- 4458381 Public Sector Enh
42265
42266 --
42267 -- set accounting attributes for the line type
42268 --
42269 l_entered_amt_idx := 3;
42270 l_accted_amt_idx := 8;
42271 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42272 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
42273 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
42274 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
42275 l_rec_acct_attrs.array_char_value(2) := p_source_30;
42276 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
42277 l_rec_acct_attrs.array_num_value(3) := p_source_31;
42278 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
42279 l_rec_acct_attrs.array_char_value(4) := p_source_32;
42280 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
42281 l_rec_acct_attrs.array_date_value(5) := p_source_89;
42282 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
42283 l_rec_acct_attrs.array_num_value(6) := p_source_34;
42284 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
42288
42285 l_rec_acct_attrs.array_char_value(7) := p_source_35;
42286 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
42287 l_rec_acct_attrs.array_num_value(8) := p_source_36;
42289 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42290 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42291
42292 ---------------------------------------------------------------------------------------------------------------
42293 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42294 ---------------------------------------------------------------------------------------------------------------
42295 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42296
42297 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42298 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42299
42300 IF xla_accounting_cache_pkg.GetValueChar
42301 (p_source_code => 'LEDGER_CATEGORY_CODE'
42302 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42303 AND l_bflow_method_code = 'PRIOR_ENTRY'
42304 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42305 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42306 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42307 )
42308 THEN
42309 xla_ae_lines_pkg.BflowUpgEntry
42310 (p_business_method_code => l_bflow_method_code
42311 ,p_business_class_code => l_bflow_class_code
42312 ,p_balance_type => l_balance_type_code);
42313 ELSE
42314 NULL;
42315 -- No business flow processing for business flow method of NONE.
42316 END IF;
42317
42318 --
42319 -- call analytical criteria
42320 --
42321
42322
42323 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
42324 xla_ae_lines_pkg.SetAnalyticalCriteria(
42325 p_analytical_criterion_name => 'Check Id'
42326 , p_analytical_criterion_owner => 'S'
42327 , p_analytical_criterion_code => 'CHECK_ID'
42328 , p_amb_context_code => 'DEFAULT'
42329 , p_balancing_flag => 'N'
42330
42331 , p_analytical_detail_char_1 => NULL
42332 , p_analytical_detail_num_1 => p_source_90
42333 , p_analytical_detail_date_1 => NULL
42334
42335 , p_ae_header_id => l_ae_header_id
42336 )
42337 ;
42338 --
42339
42340 --
42341 -- call description
42342 --
42343 -- No description or it is inherited.
42344 --
42345 -- call ADRs
42346 -- Bug 4922099
42347 --
42348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42352 THEN
42349 (NVL(l_actual_upg_option, 'N') = 'O') OR
42350 (NVL(l_enc_upg_option, 'N') = 'O')
42351 )
42353 NULL;
42354 --
42355 --
42356
42357 l_ccid := AcctDerRule_20(
42358 p_application_id => p_application_id
42359 , p_ae_header_id => l_ae_header_id
42360 , p_source_22 => p_source_22
42361 , x_transaction_coa_id => l_adr_transaction_coa_id
42362 , x_accounting_coa_id => l_adr_accounting_coa_id
42363 , x_value_type_code => l_adr_value_type_code
42364 , p_side => 'NA'
42365 );
42366
42367 xla_ae_lines_pkg.set_ccid(
42368 p_code_combination_id => l_ccid
42369 , p_value_type_code => l_adr_value_type_code
42370 , p_transaction_coa_id => l_adr_transaction_coa_id
42371 , p_accounting_coa_id => l_adr_accounting_coa_id
42372 , p_adr_code => 'DIST_CCID'
42373 , p_adr_type_code => 'S'
42374 , p_component_type => l_component_type
42375 , p_component_code => l_component_code
42376 , p_component_type_code => l_component_type_code
42377 , p_component_appl_id => l_component_appl_id
42378 , p_amb_context_code => l_amb_context_code
42379 , p_side => 'NA'
42380 );
42381
42382
42383 --
42384 --
42385 END IF;
42386 --
42387 -- Bug 4922099
42388 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42389 (NVL(l_enc_upg_option, 'N') = 'O')
42390 ) AND
42391 (l_bflow_method_code = 'PRIOR_ENTRY')
42392 )
42393 THEN
42394 IF
42395 --
42396 1 = 2
42397 --
42398 THEN
42399 xla_accounting_err_pkg.build_message
42400 (p_appli_s_name => 'XLA'
42401 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42402 ,p_token_1 => 'LINE_NUMBER'
42403 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42404 ,p_token_2 => 'LINE_TYPE_NAME'
42405 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42406 l_component_type
42407 ,l_component_code
42408 ,l_component_type_code
42409 ,l_component_appl_id
42410 ,l_amb_context_code
42411 ,l_entity_code
42412 ,l_event_class_code
42413 )
42414 ,p_token_3 => 'OWNER'
42415 ,p_value_3 => xla_lookups_pkg.get_meaning(
42416 p_lookup_type => 'XLA_OWNER_TYPE'
42417 ,p_lookup_code => l_component_type_code
42418 )
42419 ,p_token_4 => 'PRODUCT_NAME'
42420 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42421 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42422 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42423 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42424 ,p_ae_header_id => NULL
42425 );
42426
42427 IF (C_LEVEL_ERROR>= g_log_level) THEN
42428 trace
42429 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42430 ,p_level => C_LEVEL_ERROR
42431 ,p_module => l_log_module);
42432 END IF;
42433 END IF;
42434 END IF;
42435 --
42436 --
42437 ------------------------------------------------------------------------------------------------
42438 -- 4219869 Business Flow
42439 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42440 -- Prior Entry. Currently, the following code is always generated.
42441 ------------------------------------------------------------------------------------------------
42442 XLA_AE_LINES_PKG.ValidateCurrentLine;
42443
42444 ------------------------------------------------------------------------------------
42445 -- 4219869 Business Flow
42446 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42447 ------------------------------------------------------------------------------------
42448 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42449
42450 ----------------------------------------------------------------------------------
42451 -- 4219869 Business Flow
42452 -- Update journal entry status -- Need to generate this within IF <condition>
42453 ----------------------------------------------------------------------------------
42454 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42458
42455 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42456 ,p_balance_type_code => l_balance_type_code
42457 );
42459 -------------------------------------------------------------------------------------------
42463 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42460 -- 4262811 - Generate the Accrual Reversal lines
42461 -------------------------------------------------------------------------------------------
42462 BEGIN
42464 (g_array_event(p_event_id).array_value_num('header_index'));
42465 IF l_acc_rev_flag IS NULL THEN
42466 l_acc_rev_flag := 'N';
42467 END IF;
42468 EXCEPTION
42469 WHEN OTHERS THEN
42470 l_acc_rev_flag := 'N';
42471 END;
42472 --
42473 IF (l_acc_rev_flag = 'Y') THEN
42474
42475 -- 4645092 ------------------------------------------------------------------------------
42476 -- To allow MPA report to determine if it should generate report process
42477 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42478 ------------------------------------------------------------------------------------------
42479
42480 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42481 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42482 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42483 -- call ADRs
42484 -- Bug 4922099
42485 --
42486 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42487 (NVL(l_actual_upg_option, 'N') = 'O') OR
42488 (NVL(l_enc_upg_option, 'N') = 'O')
42489 )
42490 THEN
42491 NULL;
42492 --
42493 --
42494
42495 l_ccid := AcctDerRule_20(
42496 p_application_id => p_application_id
42497 , p_ae_header_id => l_ae_header_id
42498 , p_source_22 => p_source_22
42499 , x_transaction_coa_id => l_adr_transaction_coa_id
42500 , x_accounting_coa_id => l_adr_accounting_coa_id
42501 , x_value_type_code => l_adr_value_type_code
42502 , p_side => 'NA'
42503 );
42504
42505 xla_ae_lines_pkg.set_ccid(
42506 p_code_combination_id => l_ccid
42507 , p_value_type_code => l_adr_value_type_code
42508 , p_transaction_coa_id => l_adr_transaction_coa_id
42509 , p_accounting_coa_id => l_adr_accounting_coa_id
42510 , p_adr_code => 'DIST_CCID'
42511 , p_adr_type_code => 'S'
42512 , p_component_type => l_component_type
42513 , p_component_code => l_component_code
42514 , p_component_type_code => l_component_type_code
42515 , p_component_appl_id => l_component_appl_id
42516 , p_amb_context_code => l_amb_context_code
42517 , p_side => 'NA'
42518 );
42519
42520
42521 --
42522 --
42523 END IF;
42524
42525 --
42526 -- Update the line information that should be overwritten
42527 --
42528 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42529 p_header_num => 1);
42530 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42531
42532 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42533
42534 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42535 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42536 END IF;
42537
42538 --
42539 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42540 --
42541 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42542 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42543 ELSE
42544 ---------------------------------------------------------------------------------------------------
42545 -- 4262811a Switch Sign
42546 ---------------------------------------------------------------------------------------------------
42547 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42548 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42550 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42552 -- 5132302
42556 END IF;
42553 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42555
42557
42558 -- 4955764
42559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42561
42562
42563 XLA_AE_LINES_PKG.ValidateCurrentLine;
42564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42565
42566 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42567 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42568 ,p_balance_type_code => l_balance_type_code);
42569
42570 END IF;
42571
42572 -----------------------------------------------------------------------------------------
42573 -- 4262811 Multiperiod Accounting
42574 -----------------------------------------------------------------------------------------
42575 -- No MPA option is assigned.
42576
42577
42578 END IF;
42579 END IF;
42580 --
42581
42582 --
42583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42584 trace
42585 (p_msg => 'END of AcctLineType_92'
42586 ,p_level => C_LEVEL_PROCEDURE
42587 ,p_module => l_log_module);
42588 END IF;
42589 --
42590 EXCEPTION
42591 WHEN xla_exceptions_pkg.application_exception THEN
42592 RAISE;
42593 WHEN OTHERS THEN
42594 xla_exceptions_pkg.raise_message
42595 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_92');
42596 END AcctLineType_92;
42597 --
42598
42599 ---------------------------------------
42600 --
42601 -- PRIVATE FUNCTION
42602 -- AcctLineType_93
42603 --
42604 ---------------------------------------
42605 PROCEDURE AcctLineType_93 (
42606 p_application_id IN NUMBER
42607 ,p_event_id IN NUMBER
42611 ,p_balance_type_code OUT VARCHAR2
42608 ,p_calculate_acctd_flag IN VARCHAR2
42609 ,p_calculate_g_l_flag IN VARCHAR2
42610 ,p_actual_flag IN OUT VARCHAR2
42612 ,p_gain_or_loss_ref OUT VARCHAR2
42613
42614 --Distribution GL Account
42615 , p_source_22 IN NUMBER
42616 --Distribution Source Type
42617 , p_source_27 IN VARCHAR2
42618 --Distribution Line Identifier
42619 , p_source_29 IN NUMBER
42620 --Distribution Type
42621 , p_source_30 IN VARCHAR2
42622 --Entered Amount
42623 , p_source_31 IN NUMBER
42624 --Currency Code
42625 , p_source_32 IN VARCHAR2
42626 --Exchange Rate
42627 , p_source_34 IN NUMBER
42628 --Exchange Rate Type
42629 , p_source_35 IN VARCHAR2
42630 --Applied To Document Accounting Amount
42631 , p_source_36 IN NUMBER
42632 --Distribution Multi Fund Additional Entry
42633 , p_source_88 IN VARCHAR2
42634 --Applied To Document Exchange Date
42635 , p_source_89 IN DATE
42636 --Cash Receipt Identifier
42637 , p_source_90 IN NUMBER
42638 )
42639 IS
42640
42641 l_component_type VARCHAR2(80);
42642 l_component_code VARCHAR2(30);
42643 l_component_type_code VARCHAR2(1);
42644 l_component_appl_id INTEGER;
42645 l_amb_context_code VARCHAR2(30);
42646 l_entity_code VARCHAR2(30);
42647 l_event_class_code VARCHAR2(30);
42648 l_ae_header_id NUMBER;
42649 l_event_type_code VARCHAR2(30);
42650 l_line_definition_code VARCHAR2(30);
42651 l_line_definition_owner_code VARCHAR2(1);
42652 --
42656 l_adr_transaction_coa_id NUMBER;
42653 -- adr variables
42654 l_segment VARCHAR2(30);
42655 l_ccid NUMBER;
42657 l_adr_accounting_coa_id NUMBER;
42658 l_adr_flexfield_segment_code VARCHAR2(30);
42659 l_adr_flex_value_set_id NUMBER;
42660 l_adr_value_type_code VARCHAR2(30);
42661 l_adr_value_combination_id NUMBER;
42662 l_adr_value_segment_code VARCHAR2(30);
42663
42664 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42665 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42666 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42667 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42668
42669 -- 4262811 Variables ------------------------------------------------------------------------------------------
42670 l_entered_amt_idx NUMBER;
42671 l_accted_amt_idx NUMBER;
42672 l_acc_rev_flag VARCHAR2(1);
42673 l_accrual_line_num NUMBER;
42674 l_tmp_amt NUMBER;
42675 l_acc_rev_natural_side_code VARCHAR2(1);
42676
42677 l_num_entries NUMBER;
42678 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42679 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42680 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42681 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42682 l_recog_line_1 NUMBER;
42683 l_recog_line_2 NUMBER;
42684
42685 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42686 l_bflow_applied_to_amt NUMBER; -- 5132302
42687 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42688
42689 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42690
42691 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42692 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42693
42694 ---------------------------------------------------------------------------------------------------------------
42695
42696
42697 --
42698 -- bulk performance
42699 --
42700 l_balance_type_code VARCHAR2(1);
42701 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42702 l_log_module VARCHAR2(240);
42703
42704 --
42705 -- Upgrade strategy
42706 --
42707 l_actual_upg_option VARCHAR2(1);
42708 l_enc_upg_option VARCHAR2(1);
42709
42710 --
42711 BEGIN
42712 --
42713 IF g_log_enabled THEN
42714 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
42715 END IF;
42716 --
42717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42718
42719 trace
42720 (p_msg => 'BEGIN of AcctLineType_93'
42721 ,p_level => C_LEVEL_PROCEDURE
42722 ,p_module => l_log_module);
42723
42724 END IF;
42725 --
42726 l_component_type := 'AMB_JLT';
42727 l_component_code := 'MISC_RCT_DEBT';
42728 l_component_type_code := 'S';
42729 l_component_appl_id := 222;
42730 l_amb_context_code := 'DEFAULT';
42731 l_entity_code := 'RECEIPTS';
42732 l_event_class_code := 'MISC_RECEIPT';
42733 l_event_type_code := 'MISC_RECEIPT_ALL';
42734 l_line_definition_owner_code := 'S';
42735 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
42736 --
42737 l_balance_type_code := 'A';
42738 l_segment := NULL;
42739 l_ccid := NULL;
42740 l_adr_transaction_coa_id := NULL;
42741 l_adr_accounting_coa_id := NULL;
42742 l_adr_flexfield_segment_code := NULL;
42743 l_adr_flex_value_set_id := NULL;
42744 l_adr_value_type_code := NULL;
42745 l_adr_value_combination_id := NULL;
42746 l_adr_value_segment_code := NULL;
42747
42748 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42749 l_bflow_class_code := ''; -- 4219869 Business Flow
42750 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42751 l_budgetary_control_flag := 'N';
42752
42753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42754 l_bflow_applied_to_amt := NULL; -- 5132302
42755 l_entered_amt_idx := NULL; -- 4262811
42756 l_accted_amt_idx := NULL; -- 4262811
42757 l_acc_rev_flag := NULL; -- 4262811
42758 l_accrual_line_num := NULL; -- 4262811
42759 l_tmp_amt := NULL; -- 4262811
42760 --
42761
42762 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42763 l_balance_type_code <> 'B' THEN
42764 IF NVL(p_source_27,'
42765 ') = 'SHORT_TERM_DEBT' AND
42766 NVL(p_source_88,'
42767 ') = 'N'
42768 THEN
42769
42770 --
42771 XLA_AE_LINES_PKG.SetNewLine;
42772
42773 p_balance_type_code := l_balance_type_code;
42774 -- set the flag so later we will know whether the gain loss line needs to be created
42775
42776 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42777 p_actual_flag :='A';
42778 END IF;
42779
42780 --
42781 -- bulk performance
42782 --
42783 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42784 p_header_num => 0); -- 4262811
42785 --
42786 -- set accounting line options
42787 --
42788 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42792 , p_acct_entry_type_code => 'A'
42789 p_natural_side_code => 'C'
42790 , p_gain_or_loss_flag => 'N'
42791 , p_gl_transfer_mode_code => 'S'
42793 , p_switch_side_flag => 'Y'
42794 , p_merge_duplicate_code => 'A'
42795 );
42796 --
42797 l_acc_rev_natural_side_code := 'D'; -- 4262811
42798 --
42799 --
42800 -- set accounting line type info
42801 --
42802 xla_ae_lines_pkg.SetAcctLineType
42803 (p_component_type => l_component_type
42804 ,p_event_type_code => l_event_type_code
42805 ,p_line_definition_owner_code => l_line_definition_owner_code
42806 ,p_line_definition_code => l_line_definition_code
42807 ,p_accounting_line_code => l_component_code
42808 ,p_accounting_line_type_code => l_component_type_code
42809 ,p_accounting_line_appl_id => l_component_appl_id
42810 ,p_amb_context_code => l_amb_context_code
42811 ,p_entity_code => l_entity_code
42812 ,p_event_class_code => l_event_class_code);
42813 --
42814 -- set accounting class
42815 --
42816 xla_ae_lines_pkg.SetAcctClass(
42817 p_accounting_class_code => 'SHORT_TERM_DEBT'
42818 , p_ae_header_id => l_ae_header_id
42819 );
42820
42821 --
42822 -- set rounding class
42823 --
42824 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42825 'RECEIVABLE';
42826
42827 --
42828 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42829 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42830 --
42831 -- bulk performance
42832 --
42833 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42834
42835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42836 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42837
42838 -- 4955764
42839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42841
42842 -- 4458381 Public Sector Enh
42843
42844 --
42845 -- set accounting attributes for the line type
42846 --
42847 l_entered_amt_idx := 3;
42848 l_accted_amt_idx := 8;
42849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42850 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
42851 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
42852 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
42853 l_rec_acct_attrs.array_char_value(2) := p_source_30;
42854 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
42855 l_rec_acct_attrs.array_num_value(3) := p_source_31;
42856 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
42857 l_rec_acct_attrs.array_char_value(4) := p_source_32;
42858 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
42859 l_rec_acct_attrs.array_date_value(5) := p_source_89;
42860 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
42861 l_rec_acct_attrs.array_num_value(6) := p_source_34;
42862 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
42863 l_rec_acct_attrs.array_char_value(7) := p_source_35;
42864 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
42865 l_rec_acct_attrs.array_num_value(8) := p_source_36;
42866
42867 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42868 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42869
42870 ---------------------------------------------------------------------------------------------------------------
42871 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42872 ---------------------------------------------------------------------------------------------------------------
42873 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42874
42875 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42876 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42877
42878 IF xla_accounting_cache_pkg.GetValueChar
42879 (p_source_code => 'LEDGER_CATEGORY_CODE'
42880 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42881 AND l_bflow_method_code = 'PRIOR_ENTRY'
42882 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42883 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42884 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42885 )
42886 THEN
42887 xla_ae_lines_pkg.BflowUpgEntry
42888 (p_business_method_code => l_bflow_method_code
42889 ,p_business_class_code => l_bflow_class_code
42890 ,p_balance_type => l_balance_type_code);
42891 ELSE
42892 NULL;
42893 -- No business flow processing for business flow method of NONE.
42894 END IF;
42895
42896 --
42897 -- call analytical criteria
42898 --
42899
42900
42901 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
42902 xla_ae_lines_pkg.SetAnalyticalCriteria(
42903 p_analytical_criterion_name => 'Check Id'
42904 , p_analytical_criterion_owner => 'S'
42905 , p_analytical_criterion_code => 'CHECK_ID'
42906 , p_amb_context_code => 'DEFAULT'
42907 , p_balancing_flag => 'N'
42908
42909 , p_analytical_detail_char_1 => NULL
42910 , p_analytical_detail_num_1 => p_source_90
42911 , p_analytical_detail_date_1 => NULL
42912
42913 , p_ae_header_id => l_ae_header_id
42914 )
42915 ;
42916 --
42917
42918 --
42919 -- call description
42920 --
42921 -- No description or it is inherited.
42922 --
42923 -- call ADRs
42924 -- Bug 4922099
42925 --
42926 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42927 (NVL(l_actual_upg_option, 'N') = 'O') OR
42928 (NVL(l_enc_upg_option, 'N') = 'O')
42929 )
42930 THEN
42931 NULL;
42932 --
42933 --
42934
42935 l_ccid := AcctDerRule_20(
42936 p_application_id => p_application_id
42937 , p_ae_header_id => l_ae_header_id
42938 , p_source_22 => p_source_22
42939 , x_transaction_coa_id => l_adr_transaction_coa_id
42940 , x_accounting_coa_id => l_adr_accounting_coa_id
42941 , x_value_type_code => l_adr_value_type_code
42942 , p_side => 'NA'
42943 );
42944
42945 xla_ae_lines_pkg.set_ccid(
42946 p_code_combination_id => l_ccid
42947 , p_value_type_code => l_adr_value_type_code
42948 , p_transaction_coa_id => l_adr_transaction_coa_id
42949 , p_accounting_coa_id => l_adr_accounting_coa_id
42950 , p_adr_code => 'DIST_CCID'
42951 , p_adr_type_code => 'S'
42952 , p_component_type => l_component_type
42953 , p_component_code => l_component_code
42954 , p_component_type_code => l_component_type_code
42955 , p_component_appl_id => l_component_appl_id
42956 , p_amb_context_code => l_amb_context_code
42957 , p_side => 'NA'
42958 );
42959
42960
42961 --
42962 --
42963 END IF;
42964 --
42965 -- Bug 4922099
42966 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42967 (NVL(l_enc_upg_option, 'N') = 'O')
42968 ) AND
42969 (l_bflow_method_code = 'PRIOR_ENTRY')
42970 )
42971 THEN
42972 IF
42973 --
42974 1 = 2
42975 --
42976 THEN
42977 xla_accounting_err_pkg.build_message
42978 (p_appli_s_name => 'XLA'
42979 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42980 ,p_token_1 => 'LINE_NUMBER'
42981 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42982 ,p_token_2 => 'LINE_TYPE_NAME'
42983 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42984 l_component_type
42985 ,l_component_code
42986 ,l_component_type_code
42987 ,l_component_appl_id
42988 ,l_amb_context_code
42989 ,l_entity_code
42990 ,l_event_class_code
42991 )
42992 ,p_token_3 => 'OWNER'
42993 ,p_value_3 => xla_lookups_pkg.get_meaning(
42994 p_lookup_type => 'XLA_OWNER_TYPE'
42995 ,p_lookup_code => l_component_type_code
42996 )
42997 ,p_token_4 => 'PRODUCT_NAME'
42998 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42999 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43000 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43001 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43002 ,p_ae_header_id => NULL
43003 );
43004
43005 IF (C_LEVEL_ERROR>= g_log_level) THEN
43006 trace
43007 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43008 ,p_level => C_LEVEL_ERROR
43009 ,p_module => l_log_module);
43010 END IF;
43011 END IF;
43012 END IF;
43013 --
43014 --
43015 ------------------------------------------------------------------------------------------------
43016 -- 4219869 Business Flow
43017 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43018 -- Prior Entry. Currently, the following code is always generated.
43019 ------------------------------------------------------------------------------------------------
43020 XLA_AE_LINES_PKG.ValidateCurrentLine;
43021
43022 ------------------------------------------------------------------------------------
43023 -- 4219869 Business Flow
43024 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43025 ------------------------------------------------------------------------------------
43026 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43027
43028 ----------------------------------------------------------------------------------
43029 -- 4219869 Business Flow
43030 -- Update journal entry status -- Need to generate this within IF <condition>
43031 ----------------------------------------------------------------------------------
43032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43034 ,p_balance_type_code => l_balance_type_code
43035 );
43036
43037 -------------------------------------------------------------------------------------------
43038 -- 4262811 - Generate the Accrual Reversal lines
43039 -------------------------------------------------------------------------------------------
43040 BEGIN
43041 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43047 WHEN OTHERS THEN
43042 (g_array_event(p_event_id).array_value_num('header_index'));
43043 IF l_acc_rev_flag IS NULL THEN
43044 l_acc_rev_flag := 'N';
43045 END IF;
43046 EXCEPTION
43048 l_acc_rev_flag := 'N';
43049 END;
43050 --
43051 IF (l_acc_rev_flag = 'Y') THEN
43052
43053 -- 4645092 ------------------------------------------------------------------------------
43054 -- To allow MPA report to determine if it should generate report process
43055 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43056 ------------------------------------------------------------------------------------------
43057
43058 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43059 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43060 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43061 -- call ADRs
43062 -- Bug 4922099
43063 --
43064 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43065 (NVL(l_actual_upg_option, 'N') = 'O') OR
43066 (NVL(l_enc_upg_option, 'N') = 'O')
43067 )
43068 THEN
43069 NULL;
43070 --
43071 --
43072
43073 l_ccid := AcctDerRule_20(
43074 p_application_id => p_application_id
43075 , p_ae_header_id => l_ae_header_id
43076 , p_source_22 => p_source_22
43077 , x_transaction_coa_id => l_adr_transaction_coa_id
43078 , x_accounting_coa_id => l_adr_accounting_coa_id
43079 , x_value_type_code => l_adr_value_type_code
43080 , p_side => 'NA'
43081 );
43082
43083 xla_ae_lines_pkg.set_ccid(
43084 p_code_combination_id => l_ccid
43085 , p_value_type_code => l_adr_value_type_code
43086 , p_transaction_coa_id => l_adr_transaction_coa_id
43087 , p_accounting_coa_id => l_adr_accounting_coa_id
43088 , p_adr_code => 'DIST_CCID'
43089 , p_adr_type_code => 'S'
43090 , p_component_type => l_component_type
43091 , p_component_code => l_component_code
43092 , p_component_type_code => l_component_type_code
43093 , p_component_appl_id => l_component_appl_id
43094 , p_amb_context_code => l_amb_context_code
43095 , p_side => 'NA'
43096 );
43097
43098
43099 --
43100 --
43101 END IF;
43102
43103 --
43104 -- Update the line information that should be overwritten
43105 --
43106 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43107 p_header_num => 1);
43108 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43109
43110 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43111
43112 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43113 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43114 END IF;
43115
43116 --
43117 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43118 --
43119 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43120 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43121 ELSE
43122 ---------------------------------------------------------------------------------------------------
43123 -- 4262811a Switch Sign
43124 ---------------------------------------------------------------------------------------------------
43125 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43126 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43127 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43128 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43129 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43130 -- 5132302
43131 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43132 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43133
43134 END IF;
43135
43136 -- 4955764
43137 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43138 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43139
43140
43141 XLA_AE_LINES_PKG.ValidateCurrentLine;
43142 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43143
43144 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43145 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43146 ,p_balance_type_code => l_balance_type_code);
43147
43148 END IF;
43149
43150 -----------------------------------------------------------------------------------------
43151 -- 4262811 Multiperiod Accounting
43152 -----------------------------------------------------------------------------------------
43153 -- No MPA option is assigned.
43154
43155
43156 END IF;
43157 END IF;
43158 --
43159
43160 --
43161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43162 trace
43163 (p_msg => 'END of AcctLineType_93'
43164 ,p_level => C_LEVEL_PROCEDURE
43168 EXCEPTION
43165 ,p_module => l_log_module);
43166 END IF;
43167 --
43169 WHEN xla_exceptions_pkg.application_exception THEN
43170 RAISE;
43171 WHEN OTHERS THEN
43172 xla_exceptions_pkg.raise_message
43173 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_93');
43174 END AcctLineType_93;
43175 --
43176
43177 ---------------------------------------
43178 --
43179 -- PRIVATE FUNCTION
43180 -- AcctLineType_94
43181 --
43182 ---------------------------------------
43183 PROCEDURE AcctLineType_94 (
43184 p_application_id IN NUMBER
43185 ,p_event_id IN NUMBER
43186 ,p_calculate_acctd_flag IN VARCHAR2
43187 ,p_calculate_g_l_flag IN VARCHAR2
43188 ,p_actual_flag IN OUT VARCHAR2
43189 ,p_balance_type_code OUT VARCHAR2
43190 ,p_gain_or_loss_ref OUT VARCHAR2
43191
43192 --Distribution GL Account
43193 , p_source_22 IN NUMBER
43194 --Distribution Source Type
43195 , p_source_27 IN VARCHAR2
43196 --Distribution Line Identifier
43197 , p_source_29 IN NUMBER
43198 --Distribution Type
43199 , p_source_30 IN VARCHAR2
43200 --Entered Amount
43201 , p_source_31 IN NUMBER
43202 --Currency Code
43203 , p_source_32 IN VARCHAR2
43204 --Exchange Rate
43205 , p_source_34 IN NUMBER
43206 --Exchange Rate Type
43207 , p_source_35 IN VARCHAR2
43208 --Applied To Document Accounting Amount
43209 , p_source_36 IN NUMBER
43210 --Distribution Multi Fund Additional Entry
43211 , p_source_88 IN VARCHAR2
43212 --Applied To Document Exchange Date
43213 , p_source_89 IN DATE
43214 --Cash Receipt Identifier
43215 , p_source_90 IN NUMBER
43216 )
43217 IS
43218
43219 l_component_type VARCHAR2(80);
43220 l_component_code VARCHAR2(30);
43221 l_component_type_code VARCHAR2(1);
43222 l_component_appl_id INTEGER;
43223 l_amb_context_code VARCHAR2(30);
43224 l_entity_code VARCHAR2(30);
43225 l_event_class_code VARCHAR2(30);
43226 l_ae_header_id NUMBER;
43227 l_event_type_code VARCHAR2(30);
43228 l_line_definition_code VARCHAR2(30);
43229 l_line_definition_owner_code VARCHAR2(1);
43230 --
43231 -- adr variables
43232 l_segment VARCHAR2(30);
43233 l_ccid NUMBER;
43234 l_adr_transaction_coa_id NUMBER;
43235 l_adr_accounting_coa_id NUMBER;
43236 l_adr_flexfield_segment_code VARCHAR2(30);
43237 l_adr_flex_value_set_id NUMBER;
43238 l_adr_value_type_code VARCHAR2(30);
43239 l_adr_value_combination_id NUMBER;
43240 l_adr_value_segment_code VARCHAR2(30);
43241
43242 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43243 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43244 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43245 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43246
43247 -- 4262811 Variables ------------------------------------------------------------------------------------------
43248 l_entered_amt_idx NUMBER;
43249 l_accted_amt_idx NUMBER;
43250 l_acc_rev_flag VARCHAR2(1);
43251 l_accrual_line_num NUMBER;
43252 l_tmp_amt NUMBER;
43253 l_acc_rev_natural_side_code VARCHAR2(1);
43254
43255 l_num_entries NUMBER;
43256 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43257 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43258 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43259 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43260 l_recog_line_1 NUMBER;
43261 l_recog_line_2 NUMBER;
43262
43263 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43264 l_bflow_applied_to_amt NUMBER; -- 5132302
43265 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43266
43267 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43268
43269 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43270 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43271
43272 ---------------------------------------------------------------------------------------------------------------
43273
43274
43275 --
43276 -- bulk performance
43277 --
43278 l_balance_type_code VARCHAR2(1);
43279 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43280 l_log_module VARCHAR2(240);
43281
43282 --
43283 -- Upgrade strategy
43284 --
43285 l_actual_upg_option VARCHAR2(1);
43286 l_enc_upg_option VARCHAR2(1);
43287
43288 --
43289 BEGIN
43290 --
43291 IF g_log_enabled THEN
43292 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
43293 END IF;
43294 --
43295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43296
43297 trace
43298 (p_msg => 'BEGIN of AcctLineType_94'
43299 ,p_level => C_LEVEL_PROCEDURE
43300 ,p_module => l_log_module);
43301
43302 END IF;
43303 --
43304 l_component_type := 'AMB_JLT';
43305 l_component_code := 'MISC_RCT_FACTOR';
43306 l_component_type_code := 'S';
43307 l_component_appl_id := 222;
43308 l_amb_context_code := 'DEFAULT';
43312 l_line_definition_owner_code := 'S';
43309 l_entity_code := 'RECEIPTS';
43310 l_event_class_code := 'MISC_RECEIPT';
43311 l_event_type_code := 'MISC_RECEIPT_ALL';
43313 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
43314 --
43315 l_balance_type_code := 'A';
43316 l_segment := NULL;
43317 l_ccid := NULL;
43318 l_adr_transaction_coa_id := NULL;
43319 l_adr_accounting_coa_id := NULL;
43320 l_adr_flexfield_segment_code := NULL;
43321 l_adr_flex_value_set_id := NULL;
43322 l_adr_value_type_code := NULL;
43323 l_adr_value_combination_id := NULL;
43324 l_adr_value_segment_code := NULL;
43325
43326 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43327 l_bflow_class_code := ''; -- 4219869 Business Flow
43328 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43329 l_budgetary_control_flag := 'N';
43330
43331 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43332 l_bflow_applied_to_amt := NULL; -- 5132302
43333 l_entered_amt_idx := NULL; -- 4262811
43334 l_accted_amt_idx := NULL; -- 4262811
43335 l_acc_rev_flag := NULL; -- 4262811
43336 l_accrual_line_num := NULL; -- 4262811
43337 l_tmp_amt := NULL; -- 4262811
43338 --
43339
43340 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43341 l_balance_type_code <> 'B' THEN
43342 IF NVL(p_source_27,'
43343 ') = 'FACTOR' AND
43344 NVL(p_source_88,'
43345 ') = 'N'
43346 THEN
43347
43348 --
43349 XLA_AE_LINES_PKG.SetNewLine;
43350
43351 p_balance_type_code := l_balance_type_code;
43352 -- set the flag so later we will know whether the gain loss line needs to be created
43353
43354 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43355 p_actual_flag :='A';
43356 END IF;
43357
43358 --
43359 -- bulk performance
43360 --
43361 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43362 p_header_num => 0); -- 4262811
43363 --
43364 -- set accounting line options
43365 --
43366 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43367 p_natural_side_code => 'C'
43368 , p_gain_or_loss_flag => 'N'
43369 , p_gl_transfer_mode_code => 'S'
43370 , p_acct_entry_type_code => 'A'
43371 , p_switch_side_flag => 'Y'
43372 , p_merge_duplicate_code => 'A'
43373 );
43374 --
43375 l_acc_rev_natural_side_code := 'D'; -- 4262811
43376 --
43377 --
43378 -- set accounting line type info
43379 --
43380 xla_ae_lines_pkg.SetAcctLineType
43381 (p_component_type => l_component_type
43382 ,p_event_type_code => l_event_type_code
43383 ,p_line_definition_owner_code => l_line_definition_owner_code
43384 ,p_line_definition_code => l_line_definition_code
43385 ,p_accounting_line_code => l_component_code
43386 ,p_accounting_line_type_code => l_component_type_code
43387 ,p_accounting_line_appl_id => l_component_appl_id
43388 ,p_amb_context_code => l_amb_context_code
43389 ,p_entity_code => l_entity_code
43390 ,p_event_class_code => l_event_class_code);
43391 --
43392 -- set accounting class
43393 --
43394 xla_ae_lines_pkg.SetAcctClass(
43395 p_accounting_class_code => 'FACTOR'
43396 , p_ae_header_id => l_ae_header_id
43397 );
43398
43399 --
43400 -- set rounding class
43401 --
43402 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43403 'RECEIVABLE';
43404
43405 --
43406 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43407 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43408 --
43409 -- bulk performance
43410 --
43411 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43412
43413 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43414 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43415
43416 -- 4955764
43417 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43418 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43419
43420 -- 4458381 Public Sector Enh
43421
43422 --
43423 -- set accounting attributes for the line type
43424 --
43425 l_entered_amt_idx := 3;
43426 l_accted_amt_idx := 8;
43427 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43428 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
43429 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
43430 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
43431 l_rec_acct_attrs.array_char_value(2) := p_source_30;
43432 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
43433 l_rec_acct_attrs.array_num_value(3) := p_source_31;
43434 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
43435 l_rec_acct_attrs.array_char_value(4) := p_source_32;
43436 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
43437 l_rec_acct_attrs.array_date_value(5) := p_source_89;
43438 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
43439 l_rec_acct_attrs.array_num_value(6) := p_source_34;
43440 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
43441 l_rec_acct_attrs.array_char_value(7) := p_source_35;
43442 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
43443 l_rec_acct_attrs.array_num_value(8) := p_source_36;
43444
43445 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43446 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43447
43448 ---------------------------------------------------------------------------------------------------------------
43449 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43450 ---------------------------------------------------------------------------------------------------------------
43451 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43452
43453 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43454 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43455
43456 IF xla_accounting_cache_pkg.GetValueChar
43457 (p_source_code => 'LEDGER_CATEGORY_CODE'
43458 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43459 AND l_bflow_method_code = 'PRIOR_ENTRY'
43460 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43461 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43462 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43463 )
43464 THEN
43465 xla_ae_lines_pkg.BflowUpgEntry
43466 (p_business_method_code => l_bflow_method_code
43467 ,p_business_class_code => l_bflow_class_code
43468 ,p_balance_type => l_balance_type_code);
43469 ELSE
43470 NULL;
43471 -- No business flow processing for business flow method of NONE.
43472 END IF;
43473
43474 --
43475 -- call analytical criteria
43476 --
43477
43478
43479 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
43480 xla_ae_lines_pkg.SetAnalyticalCriteria(
43481 p_analytical_criterion_name => 'Check Id'
43482 , p_analytical_criterion_owner => 'S'
43483 , p_analytical_criterion_code => 'CHECK_ID'
43484 , p_amb_context_code => 'DEFAULT'
43485 , p_balancing_flag => 'N'
43486
43487 , p_analytical_detail_char_1 => NULL
43488 , p_analytical_detail_num_1 => p_source_90
43489 , p_analytical_detail_date_1 => NULL
43490
43491 , p_ae_header_id => l_ae_header_id
43492 )
43493 ;
43494 --
43495
43496 --
43497 -- call description
43498 --
43499 -- No description or it is inherited.
43500 --
43501 -- call ADRs
43502 -- Bug 4922099
43503 --
43504 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43505 (NVL(l_actual_upg_option, 'N') = 'O') OR
43506 (NVL(l_enc_upg_option, 'N') = 'O')
43507 )
43508 THEN
43509 NULL;
43510 --
43511 --
43512
43513 l_ccid := AcctDerRule_20(
43514 p_application_id => p_application_id
43515 , p_ae_header_id => l_ae_header_id
43516 , p_source_22 => p_source_22
43517 , x_transaction_coa_id => l_adr_transaction_coa_id
43518 , x_accounting_coa_id => l_adr_accounting_coa_id
43519 , x_value_type_code => l_adr_value_type_code
43520 , p_side => 'NA'
43521 );
43522
43523 xla_ae_lines_pkg.set_ccid(
43524 p_code_combination_id => l_ccid
43525 , p_value_type_code => l_adr_value_type_code
43526 , p_transaction_coa_id => l_adr_transaction_coa_id
43527 , p_accounting_coa_id => l_adr_accounting_coa_id
43528 , p_adr_code => 'DIST_CCID'
43529 , p_adr_type_code => 'S'
43530 , p_component_type => l_component_type
43531 , p_component_code => l_component_code
43532 , p_component_type_code => l_component_type_code
43533 , p_component_appl_id => l_component_appl_id
43534 , p_amb_context_code => l_amb_context_code
43535 , p_side => 'NA'
43536 );
43537
43538
43539 --
43540 --
43541 END IF;
43542 --
43543 -- Bug 4922099
43544 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43545 (NVL(l_enc_upg_option, 'N') = 'O')
43546 ) AND
43547 (l_bflow_method_code = 'PRIOR_ENTRY')
43548 )
43549 THEN
43550 IF
43551 --
43552 1 = 2
43553 --
43554 THEN
43555 xla_accounting_err_pkg.build_message
43556 (p_appli_s_name => 'XLA'
43557 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43558 ,p_token_1 => 'LINE_NUMBER'
43559 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43560 ,p_token_2 => 'LINE_TYPE_NAME'
43561 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43562 l_component_type
43563 ,l_component_code
43564 ,l_component_type_code
43565 ,l_component_appl_id
43566 ,l_amb_context_code
43567 ,l_entity_code
43568 ,l_event_class_code
43569 )
43570 ,p_token_3 => 'OWNER'
43571 ,p_value_3 => xla_lookups_pkg.get_meaning(
43572 p_lookup_type => 'XLA_OWNER_TYPE'
43573 ,p_lookup_code => l_component_type_code
43574 )
43575 ,p_token_4 => 'PRODUCT_NAME'
43576 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43577 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43578 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43579 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43580 ,p_ae_header_id => NULL
43581 );
43582
43583 IF (C_LEVEL_ERROR>= g_log_level) THEN
43584 trace
43585 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43586 ,p_level => C_LEVEL_ERROR
43587 ,p_module => l_log_module);
43588 END IF;
43589 END IF;
43590 END IF;
43591 --
43592 --
43593 ------------------------------------------------------------------------------------------------
43594 -- 4219869 Business Flow
43595 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43596 -- Prior Entry. Currently, the following code is always generated.
43597 ------------------------------------------------------------------------------------------------
43598 XLA_AE_LINES_PKG.ValidateCurrentLine;
43602 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43599
43600 ------------------------------------------------------------------------------------
43601 -- 4219869 Business Flow
43603 ------------------------------------------------------------------------------------
43604 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43605
43606 ----------------------------------------------------------------------------------
43607 -- 4219869 Business Flow
43608 -- Update journal entry status -- Need to generate this within IF <condition>
43609 ----------------------------------------------------------------------------------
43610 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43611 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43612 ,p_balance_type_code => l_balance_type_code
43613 );
43614
43615 -------------------------------------------------------------------------------------------
43616 -- 4262811 - Generate the Accrual Reversal lines
43617 -------------------------------------------------------------------------------------------
43618 BEGIN
43619 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43620 (g_array_event(p_event_id).array_value_num('header_index'));
43621 IF l_acc_rev_flag IS NULL THEN
43622 l_acc_rev_flag := 'N';
43623 END IF;
43624 EXCEPTION
43625 WHEN OTHERS THEN
43626 l_acc_rev_flag := 'N';
43627 END;
43628 --
43629 IF (l_acc_rev_flag = 'Y') THEN
43630
43631 -- 4645092 ------------------------------------------------------------------------------
43632 -- To allow MPA report to determine if it should generate report process
43633 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43634 ------------------------------------------------------------------------------------------
43635
43636 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43637 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43638 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43639 -- call ADRs
43640 -- Bug 4922099
43641 --
43642 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43643 (NVL(l_actual_upg_option, 'N') = 'O') OR
43644 (NVL(l_enc_upg_option, 'N') = 'O')
43645 )
43646 THEN
43647 NULL;
43648 --
43649 --
43650
43651 l_ccid := AcctDerRule_20(
43652 p_application_id => p_application_id
43653 , p_ae_header_id => l_ae_header_id
43654 , p_source_22 => p_source_22
43655 , x_transaction_coa_id => l_adr_transaction_coa_id
43656 , x_accounting_coa_id => l_adr_accounting_coa_id
43657 , x_value_type_code => l_adr_value_type_code
43658 , p_side => 'NA'
43659 );
43660
43661 xla_ae_lines_pkg.set_ccid(
43662 p_code_combination_id => l_ccid
43663 , p_value_type_code => l_adr_value_type_code
43664 , p_transaction_coa_id => l_adr_transaction_coa_id
43665 , p_accounting_coa_id => l_adr_accounting_coa_id
43666 , p_adr_code => 'DIST_CCID'
43667 , p_adr_type_code => 'S'
43668 , p_component_type => l_component_type
43669 , p_component_code => l_component_code
43670 , p_component_type_code => l_component_type_code
43671 , p_component_appl_id => l_component_appl_id
43672 , p_amb_context_code => l_amb_context_code
43673 , p_side => 'NA'
43674 );
43675
43676
43677 --
43678 --
43679 END IF;
43680
43681 --
43682 -- Update the line information that should be overwritten
43683 --
43684 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43685 p_header_num => 1);
43686 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43687
43688 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43689
43690 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43691 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43692 END IF;
43693
43694 --
43695 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43696 --
43697 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43698 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43699 ELSE
43700 ---------------------------------------------------------------------------------------------------
43701 -- 4262811a Switch Sign
43702 ---------------------------------------------------------------------------------------------------
43703 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43704 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43706 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43707 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43708 -- 5132302
43709 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43710 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43711
43715 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43712 END IF;
43713
43714 -- 4955764
43716 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43717
43718
43719 XLA_AE_LINES_PKG.ValidateCurrentLine;
43720 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43721
43722 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43723 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43724 ,p_balance_type_code => l_balance_type_code);
43725
43726 END IF;
43727
43728 -----------------------------------------------------------------------------------------
43729 -- 4262811 Multiperiod Accounting
43730 -----------------------------------------------------------------------------------------
43731 -- No MPA option is assigned.
43732
43733
43734 END IF;
43735 END IF;
43736 --
43737
43738 --
43739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43740 trace
43741 (p_msg => 'END of AcctLineType_94'
43742 ,p_level => C_LEVEL_PROCEDURE
43743 ,p_module => l_log_module);
43744 END IF;
43745 --
43746 EXCEPTION
43747 WHEN xla_exceptions_pkg.application_exception THEN
43748 RAISE;
43749 WHEN OTHERS THEN
43750 xla_exceptions_pkg.raise_message
43751 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_94');
43752 END AcctLineType_94;
43753 --
43754
43755 ---------------------------------------
43756 --
43757 -- PRIVATE FUNCTION
43758 -- AcctLineType_95
43759 --
43760 ---------------------------------------
43761 PROCEDURE AcctLineType_95 (
43762 p_application_id IN NUMBER
43763 ,p_event_id IN NUMBER
43764 ,p_calculate_acctd_flag IN VARCHAR2
43765 ,p_calculate_g_l_flag IN VARCHAR2
43766 ,p_actual_flag IN OUT VARCHAR2
43767 ,p_balance_type_code OUT VARCHAR2
43768 ,p_gain_or_loss_ref OUT VARCHAR2
43769
43770 --Distribution GL Account
43771 , p_source_22 IN NUMBER
43772 --Distribution Source Type
43773 , p_source_27 IN VARCHAR2
43774 --Distribution Line Identifier
43775 , p_source_29 IN NUMBER
43776 --Distribution Type
43777 , p_source_30 IN VARCHAR2
43778 --Entered Amount
43779 , p_source_31 IN NUMBER
43780 --Currency Code
43781 , p_source_32 IN VARCHAR2
43782 --Exchange Rate
43783 , p_source_34 IN NUMBER
43784 --Exchange Rate Type
43785 , p_source_35 IN VARCHAR2
43786 --Applied To Document Accounting Amount
43787 , p_source_36 IN NUMBER
43788 --Distribution Multi Fund Additional Entry
43789 , p_source_88 IN VARCHAR2
43790 --Applied To Document Exchange Date
43791 , p_source_89 IN DATE
43792 --Cash Receipt Identifier
43793 , p_source_90 IN NUMBER
43794 --Miscellaneous Cash Activity Name
43795 , p_source_91 IN VARCHAR2
43796 )
43797 IS
43798
43799 l_component_type VARCHAR2(80);
43800 l_component_code VARCHAR2(30);
43801 l_component_type_code VARCHAR2(1);
43802 l_component_appl_id INTEGER;
43803 l_amb_context_code VARCHAR2(30);
43804 l_entity_code VARCHAR2(30);
43805 l_event_class_code VARCHAR2(30);
43806 l_ae_header_id NUMBER;
43807 l_event_type_code VARCHAR2(30);
43808 l_line_definition_code VARCHAR2(30);
43809 l_line_definition_owner_code VARCHAR2(1);
43810 --
43811 -- adr variables
43812 l_segment VARCHAR2(30);
43813 l_ccid NUMBER;
43814 l_adr_transaction_coa_id NUMBER;
43815 l_adr_accounting_coa_id NUMBER;
43816 l_adr_flexfield_segment_code VARCHAR2(30);
43817 l_adr_flex_value_set_id NUMBER;
43818 l_adr_value_type_code VARCHAR2(30);
43819 l_adr_value_combination_id NUMBER;
43820 l_adr_value_segment_code VARCHAR2(30);
43821
43822 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43823 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43824 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43825 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43826
43827 -- 4262811 Variables ------------------------------------------------------------------------------------------
43828 l_entered_amt_idx NUMBER;
43829 l_accted_amt_idx NUMBER;
43830 l_acc_rev_flag VARCHAR2(1);
43831 l_accrual_line_num NUMBER;
43832 l_tmp_amt NUMBER;
43833 l_acc_rev_natural_side_code VARCHAR2(1);
43834
43835 l_num_entries NUMBER;
43836 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43837 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43838 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43839 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43840 l_recog_line_1 NUMBER;
43841 l_recog_line_2 NUMBER;
43842
43843 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43844 l_bflow_applied_to_amt NUMBER; -- 5132302
43845 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43846
43847 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43848
43852 ---------------------------------------------------------------------------------------------------------------
43849 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43850 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43851
43853
43854
43855 --
43856 -- bulk performance
43857 --
43858 l_balance_type_code VARCHAR2(1);
43859 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43860 l_log_module VARCHAR2(240);
43861
43862 --
43863 -- Upgrade strategy
43864 --
43865 l_actual_upg_option VARCHAR2(1);
43866 l_enc_upg_option VARCHAR2(1);
43867
43868 --
43869 BEGIN
43870 --
43871 IF g_log_enabled THEN
43872 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
43873 END IF;
43874 --
43875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43876
43877 trace
43878 (p_msg => 'BEGIN of AcctLineType_95'
43879 ,p_level => C_LEVEL_PROCEDURE
43880 ,p_module => l_log_module);
43881
43882 END IF;
43883 --
43884 l_component_type := 'AMB_JLT';
43885 l_component_code := 'MISC_RCT_MISCCASH';
43886 l_component_type_code := 'S';
43887 l_component_appl_id := 222;
43888 l_amb_context_code := 'DEFAULT';
43889 l_entity_code := 'RECEIPTS';
43890 l_event_class_code := 'MISC_RECEIPT';
43891 l_event_type_code := 'MISC_RECEIPT_ALL';
43892 l_line_definition_owner_code := 'S';
43893 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
43894 --
43895 l_balance_type_code := 'A';
43896 l_segment := NULL;
43897 l_ccid := NULL;
43898 l_adr_transaction_coa_id := NULL;
43899 l_adr_accounting_coa_id := NULL;
43900 l_adr_flexfield_segment_code := NULL;
43901 l_adr_flex_value_set_id := NULL;
43902 l_adr_value_type_code := NULL;
43903 l_adr_value_combination_id := NULL;
43904 l_adr_value_segment_code := NULL;
43905
43906 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43907 l_bflow_class_code := ''; -- 4219869 Business Flow
43908 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43909 l_budgetary_control_flag := 'N';
43910
43911 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43912 l_bflow_applied_to_amt := NULL; -- 5132302
43913 l_entered_amt_idx := NULL; -- 4262811
43914 l_accted_amt_idx := NULL; -- 4262811
43915 l_acc_rev_flag := NULL; -- 4262811
43916 l_accrual_line_num := NULL; -- 4262811
43917 l_tmp_amt := NULL; -- 4262811
43918 --
43919
43920 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43921 l_balance_type_code <> 'B' THEN
43922 IF NVL(p_source_27,'
43923 ') = 'MISCCASH' AND
43924 NVL(p_source_88,'
43925 ') = 'N'
43926 THEN
43927
43928 --
43929 XLA_AE_LINES_PKG.SetNewLine;
43930
43931 p_balance_type_code := l_balance_type_code;
43932 -- set the flag so later we will know whether the gain loss line needs to be created
43933
43934 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43935 p_actual_flag :='A';
43936 END IF;
43937
43938 --
43939 -- bulk performance
43940 --
43941 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43942 p_header_num => 0); -- 4262811
43943 --
43944 -- set accounting line options
43945 --
43946 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43947 p_natural_side_code => 'C'
43948 , p_gain_or_loss_flag => 'N'
43949 , p_gl_transfer_mode_code => 'S'
43950 , p_acct_entry_type_code => 'A'
43951 , p_switch_side_flag => 'Y'
43952 , p_merge_duplicate_code => 'A'
43953 );
43954 --
43955 l_acc_rev_natural_side_code := 'D'; -- 4262811
43956 --
43957 --
43958 -- set accounting line type info
43959 --
43960 xla_ae_lines_pkg.SetAcctLineType
43961 (p_component_type => l_component_type
43962 ,p_event_type_code => l_event_type_code
43963 ,p_line_definition_owner_code => l_line_definition_owner_code
43964 ,p_line_definition_code => l_line_definition_code
43965 ,p_accounting_line_code => l_component_code
43966 ,p_accounting_line_type_code => l_component_type_code
43967 ,p_accounting_line_appl_id => l_component_appl_id
43968 ,p_amb_context_code => l_amb_context_code
43969 ,p_entity_code => l_entity_code
43970 ,p_event_class_code => l_event_class_code);
43971 --
43972 -- set accounting class
43973 --
43974 xla_ae_lines_pkg.SetAcctClass(
43975 p_accounting_class_code => 'MISC_CASH'
43976 , p_ae_header_id => l_ae_header_id
43977 );
43978
43979 --
43980 -- set rounding class
43981 --
43982 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43983 'RECEIVABLE';
43984
43985 --
43986 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43987 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43988 --
43992
43989 -- bulk performance
43990 --
43991 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43994 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43995
43996 -- 4955764
43997 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43998 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43999
44000 -- 4458381 Public Sector Enh
44001
44002 --
44003 -- set accounting attributes for the line type
44004 --
44005 l_entered_amt_idx := 3;
44006 l_accted_amt_idx := 8;
44007 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44008 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
44009 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
44010 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
44011 l_rec_acct_attrs.array_char_value(2) := p_source_30;
44012 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
44013 l_rec_acct_attrs.array_num_value(3) := p_source_31;
44014 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
44015 l_rec_acct_attrs.array_char_value(4) := p_source_32;
44016 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
44017 l_rec_acct_attrs.array_date_value(5) := p_source_89;
44018 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
44019 l_rec_acct_attrs.array_num_value(6) := p_source_34;
44020 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
44021 l_rec_acct_attrs.array_char_value(7) := p_source_35;
44022 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
44023 l_rec_acct_attrs.array_num_value(8) := p_source_36;
44024
44025 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44026 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44027
44028 ---------------------------------------------------------------------------------------------------------------
44029 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44030 ---------------------------------------------------------------------------------------------------------------
44031 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44032
44033 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44034 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44035
44036 IF xla_accounting_cache_pkg.GetValueChar
44037 (p_source_code => 'LEDGER_CATEGORY_CODE'
44038 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44039 AND l_bflow_method_code = 'PRIOR_ENTRY'
44040 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44041 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44042 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44043 )
44044 THEN
44045 xla_ae_lines_pkg.BflowUpgEntry
44046 (p_business_method_code => l_bflow_method_code
44047 ,p_business_class_code => l_bflow_class_code
44048 ,p_balance_type => l_balance_type_code);
44049 ELSE
44050 NULL;
44051 -- No business flow processing for business flow method of NONE.
44052 END IF;
44053
44054 --
44055 -- call analytical criteria
44056 --
44057
44058
44059 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
44060 xla_ae_lines_pkg.SetAnalyticalCriteria(
44061 p_analytical_criterion_name => 'Check Id'
44062 , p_analytical_criterion_owner => 'S'
44063 , p_analytical_criterion_code => 'CHECK_ID'
44064 , p_amb_context_code => 'DEFAULT'
44065 , p_balancing_flag => 'N'
44066
44067 , p_analytical_detail_char_1 => NULL
44068 , p_analytical_detail_num_1 => p_source_90
44069 , p_analytical_detail_date_1 => NULL
44070
44071 , p_ae_header_id => l_ae_header_id
44072 )
44073 ;
44074 --
44075
44076
44077 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
44078 xla_ae_lines_pkg.SetAnalyticalCriteria(
44079 p_analytical_criterion_name => 'Miscellaneous Cash Activity'
44080 , p_analytical_criterion_owner => 'S'
44081 , p_analytical_criterion_code => 'MISCELLANEOUS_CASH_ACTIVITY'
44082 , p_amb_context_code => 'DEFAULT'
44083 , p_balancing_flag => 'N'
44084
44085 , p_analytical_detail_char_1 => TO_CHAR(p_source_91)
44086 , p_analytical_detail_num_1 => NULL
44087 , p_analytical_detail_date_1 => NULL
44088
44089 , p_ae_header_id => l_ae_header_id
44090 )
44091 ;
44092 --
44093
44094 --
44095 -- call description
44096 --
44097 -- No description or it is inherited.
44098 --
44099 -- call ADRs
44100 -- Bug 4922099
44101 --
44102 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44103 (NVL(l_actual_upg_option, 'N') = 'O') OR
44104 (NVL(l_enc_upg_option, 'N') = 'O')
44105 )
44106 THEN
44107 NULL;
44108 --
44109 --
44110
44111 l_ccid := AcctDerRule_20(
44112 p_application_id => p_application_id
44113 , p_ae_header_id => l_ae_header_id
44117 , x_value_type_code => l_adr_value_type_code
44114 , p_source_22 => p_source_22
44115 , x_transaction_coa_id => l_adr_transaction_coa_id
44116 , x_accounting_coa_id => l_adr_accounting_coa_id
44118 , p_side => 'NA'
44119 );
44120
44121 xla_ae_lines_pkg.set_ccid(
44122 p_code_combination_id => l_ccid
44123 , p_value_type_code => l_adr_value_type_code
44124 , p_transaction_coa_id => l_adr_transaction_coa_id
44125 , p_accounting_coa_id => l_adr_accounting_coa_id
44126 , p_adr_code => 'DIST_CCID'
44127 , p_adr_type_code => 'S'
44128 , p_component_type => l_component_type
44129 , p_component_code => l_component_code
44130 , p_component_type_code => l_component_type_code
44131 , p_component_appl_id => l_component_appl_id
44132 , p_amb_context_code => l_amb_context_code
44133 , p_side => 'NA'
44134 );
44135
44136
44137 --
44138 --
44139 END IF;
44140 --
44141 -- Bug 4922099
44142 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44143 (NVL(l_enc_upg_option, 'N') = 'O')
44144 ) AND
44145 (l_bflow_method_code = 'PRIOR_ENTRY')
44146 )
44147 THEN
44148 IF
44149 --
44150 1 = 2
44151 --
44152 THEN
44153 xla_accounting_err_pkg.build_message
44154 (p_appli_s_name => 'XLA'
44155 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44156 ,p_token_1 => 'LINE_NUMBER'
44157 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44158 ,p_token_2 => 'LINE_TYPE_NAME'
44159 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44160 l_component_type
44161 ,l_component_code
44162 ,l_component_type_code
44163 ,l_component_appl_id
44164 ,l_amb_context_code
44165 ,l_entity_code
44166 ,l_event_class_code
44167 )
44168 ,p_token_3 => 'OWNER'
44169 ,p_value_3 => xla_lookups_pkg.get_meaning(
44170 p_lookup_type => 'XLA_OWNER_TYPE'
44171 ,p_lookup_code => l_component_type_code
44172 )
44173 ,p_token_4 => 'PRODUCT_NAME'
44174 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44175 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44176 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44177 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44178 ,p_ae_header_id => NULL
44179 );
44180
44181 IF (C_LEVEL_ERROR>= g_log_level) THEN
44182 trace
44183 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44184 ,p_level => C_LEVEL_ERROR
44185 ,p_module => l_log_module);
44186 END IF;
44187 END IF;
44188 END IF;
44189 --
44190 --
44191 ------------------------------------------------------------------------------------------------
44192 -- 4219869 Business Flow
44193 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44194 -- Prior Entry. Currently, the following code is always generated.
44195 ------------------------------------------------------------------------------------------------
44196 XLA_AE_LINES_PKG.ValidateCurrentLine;
44197
44198 ------------------------------------------------------------------------------------
44199 -- 4219869 Business Flow
44200 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44201 ------------------------------------------------------------------------------------
44202 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44203
44204 ----------------------------------------------------------------------------------
44205 -- 4219869 Business Flow
44206 -- Update journal entry status -- Need to generate this within IF <condition>
44207 ----------------------------------------------------------------------------------
44208 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44209 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44210 ,p_balance_type_code => l_balance_type_code
44211 );
44212
44213 -------------------------------------------------------------------------------------------
44214 -- 4262811 - Generate the Accrual Reversal lines
44215 -------------------------------------------------------------------------------------------
44216 BEGIN
44220 l_acc_rev_flag := 'N';
44217 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44218 (g_array_event(p_event_id).array_value_num('header_index'));
44219 IF l_acc_rev_flag IS NULL THEN
44221 END IF;
44222 EXCEPTION
44223 WHEN OTHERS THEN
44224 l_acc_rev_flag := 'N';
44225 END;
44226 --
44227 IF (l_acc_rev_flag = 'Y') THEN
44228
44229 -- 4645092 ------------------------------------------------------------------------------
44230 -- To allow MPA report to determine if it should generate report process
44231 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44232 ------------------------------------------------------------------------------------------
44233
44234 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44235 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44236 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44237 -- call ADRs
44238 -- Bug 4922099
44239 --
44240 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44241 (NVL(l_actual_upg_option, 'N') = 'O') OR
44242 (NVL(l_enc_upg_option, 'N') = 'O')
44243 )
44244 THEN
44245 NULL;
44246 --
44247 --
44248
44249 l_ccid := AcctDerRule_20(
44250 p_application_id => p_application_id
44251 , p_ae_header_id => l_ae_header_id
44252 , p_source_22 => p_source_22
44253 , x_transaction_coa_id => l_adr_transaction_coa_id
44254 , x_accounting_coa_id => l_adr_accounting_coa_id
44255 , x_value_type_code => l_adr_value_type_code
44256 , p_side => 'NA'
44257 );
44258
44259 xla_ae_lines_pkg.set_ccid(
44260 p_code_combination_id => l_ccid
44261 , p_value_type_code => l_adr_value_type_code
44262 , p_transaction_coa_id => l_adr_transaction_coa_id
44263 , p_accounting_coa_id => l_adr_accounting_coa_id
44264 , p_adr_code => 'DIST_CCID'
44265 , p_adr_type_code => 'S'
44266 , p_component_type => l_component_type
44267 , p_component_code => l_component_code
44268 , p_component_type_code => l_component_type_code
44269 , p_component_appl_id => l_component_appl_id
44270 , p_amb_context_code => l_amb_context_code
44271 , p_side => 'NA'
44272 );
44273
44274
44275 --
44276 --
44277 END IF;
44278
44279 --
44280 -- Update the line information that should be overwritten
44281 --
44282 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44283 p_header_num => 1);
44284 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44285
44286 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44287
44288 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44289 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44290 END IF;
44291
44292 --
44293 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44294 --
44295 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44296 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44297 ELSE
44298 ---------------------------------------------------------------------------------------------------
44299 -- 4262811a Switch Sign
44300 ---------------------------------------------------------------------------------------------------
44301 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44302 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44303 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44304 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44305 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44306 -- 5132302
44307 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44308 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44309
44310 END IF;
44311
44312 -- 4955764
44313 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44314 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44315
44316
44317 XLA_AE_LINES_PKG.ValidateCurrentLine;
44318 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44319
44320 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44321 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44322 ,p_balance_type_code => l_balance_type_code);
44323
44324 END IF;
44325
44326 -----------------------------------------------------------------------------------------
44327 -- 4262811 Multiperiod Accounting
44328 -----------------------------------------------------------------------------------------
44329 -- No MPA option is assigned.
44330
44334 --
44331
44332 END IF;
44333 END IF;
44335
44336 --
44337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44338 trace
44339 (p_msg => 'END of AcctLineType_95'
44340 ,p_level => C_LEVEL_PROCEDURE
44341 ,p_module => l_log_module);
44342 END IF;
44343 --
44344 EXCEPTION
44345 WHEN xla_exceptions_pkg.application_exception THEN
44346 RAISE;
44347 WHEN OTHERS THEN
44348 xla_exceptions_pkg.raise_message
44349 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_95');
44350 END AcctLineType_95;
44351 --
44352
44353 ---------------------------------------
44354 --
44355 -- PRIVATE FUNCTION
44356 -- AcctLineType_96
44357 --
44358 ---------------------------------------
44359 PROCEDURE AcctLineType_96 (
44360 p_application_id IN NUMBER
44361 ,p_event_id IN NUMBER
44362 ,p_calculate_acctd_flag IN VARCHAR2
44363 ,p_calculate_g_l_flag IN VARCHAR2
44364 ,p_actual_flag IN OUT VARCHAR2
44365 ,p_balance_type_code OUT VARCHAR2
44366 ,p_gain_or_loss_ref OUT VARCHAR2
44367
44368 --Distribution GL Account
44369 , p_source_22 IN NUMBER
44370 --Distribution Source Type
44371 , p_source_27 IN VARCHAR2
44372 --Distribution Line Identifier
44373 , p_source_29 IN NUMBER
44374 --Distribution Type
44375 , p_source_30 IN VARCHAR2
44376 --Entered Amount
44377 , p_source_31 IN NUMBER
44378 --Currency Code
44379 , p_source_32 IN VARCHAR2
44380 --Exchange Rate
44381 , p_source_34 IN NUMBER
44382 --Exchange Rate Type
44383 , p_source_35 IN VARCHAR2
44384 --Applied To Document Accounting Amount
44385 , p_source_36 IN NUMBER
44386 --Distribution Multi Fund Additional Entry
44387 , p_source_88 IN VARCHAR2
44388 --Applied To Document Exchange Date
44389 , p_source_89 IN DATE
44390 --Cash Receipt Identifier
44391 , p_source_90 IN NUMBER
44392 )
44393 IS
44394
44395 l_component_type VARCHAR2(80);
44396 l_component_code VARCHAR2(30);
44397 l_component_type_code VARCHAR2(1);
44398 l_component_appl_id INTEGER;
44399 l_amb_context_code VARCHAR2(30);
44400 l_entity_code VARCHAR2(30);
44401 l_event_class_code VARCHAR2(30);
44402 l_ae_header_id NUMBER;
44403 l_event_type_code VARCHAR2(30);
44404 l_line_definition_code VARCHAR2(30);
44405 l_line_definition_owner_code VARCHAR2(1);
44406 --
44407 -- adr variables
44408 l_segment VARCHAR2(30);
44409 l_ccid NUMBER;
44410 l_adr_transaction_coa_id NUMBER;
44411 l_adr_accounting_coa_id NUMBER;
44412 l_adr_flexfield_segment_code VARCHAR2(30);
44413 l_adr_flex_value_set_id NUMBER;
44414 l_adr_value_type_code VARCHAR2(30);
44415 l_adr_value_combination_id NUMBER;
44416 l_adr_value_segment_code VARCHAR2(30);
44417
44418 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44419 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44420 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44421 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44422
44423 -- 4262811 Variables ------------------------------------------------------------------------------------------
44424 l_entered_amt_idx NUMBER;
44425 l_accted_amt_idx NUMBER;
44426 l_acc_rev_flag VARCHAR2(1);
44427 l_accrual_line_num NUMBER;
44428 l_tmp_amt NUMBER;
44429 l_acc_rev_natural_side_code VARCHAR2(1);
44430
44431 l_num_entries NUMBER;
44432 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44433 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44434 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44435 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44436 l_recog_line_1 NUMBER;
44437 l_recog_line_2 NUMBER;
44438
44439 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44440 l_bflow_applied_to_amt NUMBER; -- 5132302
44441 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44442
44443 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44444
44445 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44446 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44447
44448 ---------------------------------------------------------------------------------------------------------------
44449
44450
44451 --
44452 -- bulk performance
44453 --
44454 l_balance_type_code VARCHAR2(1);
44455 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44456 l_log_module VARCHAR2(240);
44457
44458 --
44459 -- Upgrade strategy
44460 --
44461 l_actual_upg_option VARCHAR2(1);
44462 l_enc_upg_option VARCHAR2(1);
44463
44464 --
44465 BEGIN
44466 --
44467 IF g_log_enabled THEN
44468 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
44469 END IF;
44470 --
44471 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44472
44473 trace
44474 (p_msg => 'BEGIN of AcctLineType_96'
44475 ,p_level => C_LEVEL_PROCEDURE
44476 ,p_module => l_log_module);
44477
44478 END IF;
44479 --
44483 l_component_appl_id := 222;
44480 l_component_type := 'AMB_JLT';
44481 l_component_code := 'MISC_RCT_REMIT';
44482 l_component_type_code := 'S';
44484 l_amb_context_code := 'DEFAULT';
44485 l_entity_code := 'RECEIPTS';
44486 l_event_class_code := 'MISC_RECEIPT';
44487 l_event_type_code := 'MISC_RECEIPT_ALL';
44488 l_line_definition_owner_code := 'S';
44489 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
44490 --
44491 l_balance_type_code := 'A';
44492 l_segment := NULL;
44493 l_ccid := NULL;
44494 l_adr_transaction_coa_id := NULL;
44495 l_adr_accounting_coa_id := NULL;
44496 l_adr_flexfield_segment_code := NULL;
44497 l_adr_flex_value_set_id := NULL;
44498 l_adr_value_type_code := NULL;
44499 l_adr_value_combination_id := NULL;
44500 l_adr_value_segment_code := NULL;
44501
44502 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44503 l_bflow_class_code := ''; -- 4219869 Business Flow
44504 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44505 l_budgetary_control_flag := 'N';
44506
44507 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44508 l_bflow_applied_to_amt := NULL; -- 5132302
44509 l_entered_amt_idx := NULL; -- 4262811
44510 l_accted_amt_idx := NULL; -- 4262811
44511 l_acc_rev_flag := NULL; -- 4262811
44512 l_accrual_line_num := NULL; -- 4262811
44513 l_tmp_amt := NULL; -- 4262811
44514 --
44515
44516 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44517 l_balance_type_code <> 'B' THEN
44518 IF NVL(p_source_27,'
44519 ') = 'REMITTANCE' AND
44520 NVL(p_source_88,'
44521 ') = 'N'
44522 THEN
44523
44524 --
44525 XLA_AE_LINES_PKG.SetNewLine;
44526
44527 p_balance_type_code := l_balance_type_code;
44528 -- set the flag so later we will know whether the gain loss line needs to be created
44529
44530 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44531 p_actual_flag :='A';
44532 END IF;
44533
44534 --
44535 -- bulk performance
44536 --
44537 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44538 p_header_num => 0); -- 4262811
44539 --
44540 -- set accounting line options
44541 --
44542 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44543 p_natural_side_code => 'C'
44544 , p_gain_or_loss_flag => 'N'
44545 , p_gl_transfer_mode_code => 'S'
44546 , p_acct_entry_type_code => 'A'
44547 , p_switch_side_flag => 'Y'
44548 , p_merge_duplicate_code => 'A'
44549 );
44550 --
44551 l_acc_rev_natural_side_code := 'D'; -- 4262811
44552 --
44553 --
44554 -- set accounting line type info
44555 --
44556 xla_ae_lines_pkg.SetAcctLineType
44557 (p_component_type => l_component_type
44558 ,p_event_type_code => l_event_type_code
44559 ,p_line_definition_owner_code => l_line_definition_owner_code
44560 ,p_line_definition_code => l_line_definition_code
44561 ,p_accounting_line_code => l_component_code
44562 ,p_accounting_line_type_code => l_component_type_code
44563 ,p_accounting_line_appl_id => l_component_appl_id
44564 ,p_amb_context_code => l_amb_context_code
44565 ,p_entity_code => l_entity_code
44566 ,p_event_class_code => l_event_class_code);
44567 --
44568 -- set accounting class
44569 --
44570 xla_ae_lines_pkg.SetAcctClass(
44571 p_accounting_class_code => 'REMITTANCE'
44572 , p_ae_header_id => l_ae_header_id
44573 );
44574
44575 --
44576 -- set rounding class
44577 --
44578 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44579 'RECEIVABLE';
44580
44581 --
44582 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44583 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44584 --
44585 -- bulk performance
44586 --
44587 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44588
44589 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44590 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44591
44592 -- 4955764
44593 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44594 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44595
44596 -- 4458381 Public Sector Enh
44597
44598 --
44599 -- set accounting attributes for the line type
44600 --
44601 l_entered_amt_idx := 3;
44602 l_accted_amt_idx := 8;
44603 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44604 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
44605 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
44606 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
44607 l_rec_acct_attrs.array_char_value(2) := p_source_30;
44608 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
44609 l_rec_acct_attrs.array_num_value(3) := p_source_31;
44613 l_rec_acct_attrs.array_date_value(5) := p_source_89;
44610 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
44611 l_rec_acct_attrs.array_char_value(4) := p_source_32;
44612 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
44614 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
44615 l_rec_acct_attrs.array_num_value(6) := p_source_34;
44616 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
44617 l_rec_acct_attrs.array_char_value(7) := p_source_35;
44618 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
44619 l_rec_acct_attrs.array_num_value(8) := p_source_36;
44620
44621 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44622 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44623
44624 ---------------------------------------------------------------------------------------------------------------
44625 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44626 ---------------------------------------------------------------------------------------------------------------
44627 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44628
44629 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44630 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44631
44632 IF xla_accounting_cache_pkg.GetValueChar
44633 (p_source_code => 'LEDGER_CATEGORY_CODE'
44634 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44635 AND l_bflow_method_code = 'PRIOR_ENTRY'
44636 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44637 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44638 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44639 )
44640 THEN
44641 xla_ae_lines_pkg.BflowUpgEntry
44642 (p_business_method_code => l_bflow_method_code
44643 ,p_business_class_code => l_bflow_class_code
44644 ,p_balance_type => l_balance_type_code);
44645 ELSE
44646 NULL;
44647 -- No business flow processing for business flow method of NONE.
44648 END IF;
44649
44650 --
44651 -- call analytical criteria
44652 --
44653
44654
44655 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
44656 xla_ae_lines_pkg.SetAnalyticalCriteria(
44657 p_analytical_criterion_name => 'Check Id'
44658 , p_analytical_criterion_owner => 'S'
44659 , p_analytical_criterion_code => 'CHECK_ID'
44660 , p_amb_context_code => 'DEFAULT'
44661 , p_balancing_flag => 'N'
44662
44663 , p_analytical_detail_char_1 => NULL
44664 , p_analytical_detail_num_1 => p_source_90
44665 , p_analytical_detail_date_1 => NULL
44666
44667 , p_ae_header_id => l_ae_header_id
44668 )
44669 ;
44670 --
44671
44672 --
44673 -- call description
44674 --
44675 -- No description or it is inherited.
44676 --
44677 -- call ADRs
44678 -- Bug 4922099
44679 --
44680 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44681 (NVL(l_actual_upg_option, 'N') = 'O') OR
44682 (NVL(l_enc_upg_option, 'N') = 'O')
44683 )
44684 THEN
44685 NULL;
44686 --
44687 --
44688
44689 l_ccid := AcctDerRule_20(
44690 p_application_id => p_application_id
44691 , p_ae_header_id => l_ae_header_id
44692 , p_source_22 => p_source_22
44693 , x_transaction_coa_id => l_adr_transaction_coa_id
44694 , x_accounting_coa_id => l_adr_accounting_coa_id
44695 , x_value_type_code => l_adr_value_type_code
44696 , p_side => 'NA'
44697 );
44698
44699 xla_ae_lines_pkg.set_ccid(
44700 p_code_combination_id => l_ccid
44701 , p_value_type_code => l_adr_value_type_code
44702 , p_transaction_coa_id => l_adr_transaction_coa_id
44703 , p_accounting_coa_id => l_adr_accounting_coa_id
44704 , p_adr_code => 'DIST_CCID'
44705 , p_adr_type_code => 'S'
44706 , p_component_type => l_component_type
44707 , p_component_code => l_component_code
44708 , p_component_type_code => l_component_type_code
44709 , p_component_appl_id => l_component_appl_id
44710 , p_amb_context_code => l_amb_context_code
44711 , p_side => 'NA'
44712 );
44713
44714
44715 --
44716 --
44717 END IF;
44718 --
44719 -- Bug 4922099
44720 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44721 (NVL(l_enc_upg_option, 'N') = 'O')
44722 ) AND
44723 (l_bflow_method_code = 'PRIOR_ENTRY')
44724 )
44725 THEN
44726 IF
44727 --
44728 1 = 2
44729 --
44730 THEN
44731 xla_accounting_err_pkg.build_message
44732 (p_appli_s_name => 'XLA'
44733 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44734 ,p_token_1 => 'LINE_NUMBER'
44735 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44736 ,p_token_2 => 'LINE_TYPE_NAME'
44737 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44741 ,l_component_appl_id
44738 l_component_type
44739 ,l_component_code
44740 ,l_component_type_code
44742 ,l_amb_context_code
44743 ,l_entity_code
44744 ,l_event_class_code
44745 )
44746 ,p_token_3 => 'OWNER'
44747 ,p_value_3 => xla_lookups_pkg.get_meaning(
44748 p_lookup_type => 'XLA_OWNER_TYPE'
44749 ,p_lookup_code => l_component_type_code
44750 )
44751 ,p_token_4 => 'PRODUCT_NAME'
44752 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44753 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44754 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44755 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44756 ,p_ae_header_id => NULL
44757 );
44758
44759 IF (C_LEVEL_ERROR>= g_log_level) THEN
44760 trace
44761 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44762 ,p_level => C_LEVEL_ERROR
44763 ,p_module => l_log_module);
44764 END IF;
44765 END IF;
44766 END IF;
44767 --
44768 --
44769 ------------------------------------------------------------------------------------------------
44770 -- 4219869 Business Flow
44771 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44772 -- Prior Entry. Currently, the following code is always generated.
44773 ------------------------------------------------------------------------------------------------
44774 XLA_AE_LINES_PKG.ValidateCurrentLine;
44775
44776 ------------------------------------------------------------------------------------
44777 -- 4219869 Business Flow
44778 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44779 ------------------------------------------------------------------------------------
44780 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44781
44782 ----------------------------------------------------------------------------------
44783 -- 4219869 Business Flow
44784 -- Update journal entry status -- Need to generate this within IF <condition>
44785 ----------------------------------------------------------------------------------
44786 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44787 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44788 ,p_balance_type_code => l_balance_type_code
44789 );
44790
44791 -------------------------------------------------------------------------------------------
44792 -- 4262811 - Generate the Accrual Reversal lines
44793 -------------------------------------------------------------------------------------------
44794 BEGIN
44795 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44796 (g_array_event(p_event_id).array_value_num('header_index'));
44797 IF l_acc_rev_flag IS NULL THEN
44798 l_acc_rev_flag := 'N';
44799 END IF;
44800 EXCEPTION
44801 WHEN OTHERS THEN
44802 l_acc_rev_flag := 'N';
44803 END;
44804 --
44805 IF (l_acc_rev_flag = 'Y') THEN
44806
44807 -- 4645092 ------------------------------------------------------------------------------
44808 -- To allow MPA report to determine if it should generate report process
44809 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44810 ------------------------------------------------------------------------------------------
44811
44812 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44813 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44814 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44815 -- call ADRs
44816 -- Bug 4922099
44817 --
44818 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44819 (NVL(l_actual_upg_option, 'N') = 'O') OR
44820 (NVL(l_enc_upg_option, 'N') = 'O')
44821 )
44822 THEN
44823 NULL;
44824 --
44825 --
44826
44827 l_ccid := AcctDerRule_20(
44828 p_application_id => p_application_id
44829 , p_ae_header_id => l_ae_header_id
44830 , p_source_22 => p_source_22
44831 , x_transaction_coa_id => l_adr_transaction_coa_id
44832 , x_accounting_coa_id => l_adr_accounting_coa_id
44833 , x_value_type_code => l_adr_value_type_code
44834 , p_side => 'NA'
44835 );
44836
44837 xla_ae_lines_pkg.set_ccid(
44838 p_code_combination_id => l_ccid
44839 , p_value_type_code => l_adr_value_type_code
44843 , p_adr_type_code => 'S'
44840 , p_transaction_coa_id => l_adr_transaction_coa_id
44841 , p_accounting_coa_id => l_adr_accounting_coa_id
44842 , p_adr_code => 'DIST_CCID'
44844 , p_component_type => l_component_type
44845 , p_component_code => l_component_code
44846 , p_component_type_code => l_component_type_code
44847 , p_component_appl_id => l_component_appl_id
44848 , p_amb_context_code => l_amb_context_code
44849 , p_side => 'NA'
44850 );
44851
44852
44853 --
44854 --
44855 END IF;
44856
44857 --
44858 -- Update the line information that should be overwritten
44859 --
44860 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44861 p_header_num => 1);
44862 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44863
44864 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44865
44866 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44867 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44868 END IF;
44869
44870 --
44871 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44872 --
44873 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44874 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44875 ELSE
44876 ---------------------------------------------------------------------------------------------------
44877 -- 4262811a Switch Sign
44878 ---------------------------------------------------------------------------------------------------
44879 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44880 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44881 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44882 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44883 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44884 -- 5132302
44885 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44886 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44887
44888 END IF;
44889
44890 -- 4955764
44891 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44892 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44893
44894
44895 XLA_AE_LINES_PKG.ValidateCurrentLine;
44896 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44897
44898 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44899 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44900 ,p_balance_type_code => l_balance_type_code);
44901
44902 END IF;
44903
44904 -----------------------------------------------------------------------------------------
44905 -- 4262811 Multiperiod Accounting
44906 -----------------------------------------------------------------------------------------
44907 -- No MPA option is assigned.
44908
44909
44910 END IF;
44911 END IF;
44912 --
44913
44914 --
44915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44916 trace
44917 (p_msg => 'END of AcctLineType_96'
44918 ,p_level => C_LEVEL_PROCEDURE
44919 ,p_module => l_log_module);
44920 END IF;
44921 --
44922 EXCEPTION
44923 WHEN xla_exceptions_pkg.application_exception THEN
44924 RAISE;
44925 WHEN OTHERS THEN
44926 xla_exceptions_pkg.raise_message
44927 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_96');
44928 END AcctLineType_96;
44929 --
44930
44931 ---------------------------------------
44932 --
44933 -- PRIVATE FUNCTION
44934 -- AcctLineType_97
44935 --
44936 ---------------------------------------
44937 PROCEDURE AcctLineType_97 (
44938 p_application_id IN NUMBER
44939 ,p_event_id IN NUMBER
44940 ,p_calculate_acctd_flag IN VARCHAR2
44941 ,p_calculate_g_l_flag IN VARCHAR2
44942 ,p_actual_flag IN OUT VARCHAR2
44943 ,p_balance_type_code OUT VARCHAR2
44944 ,p_gain_or_loss_ref OUT VARCHAR2
44945
44946 --Distribution GL Account
44947 , p_source_22 IN NUMBER
44948 --Distribution Source Type
44949 , p_source_27 IN VARCHAR2
44950 --Distribution Line Identifier
44951 , p_source_29 IN NUMBER
44952 --Distribution Type
44953 , p_source_30 IN VARCHAR2
44954 --Entered Amount
44955 , p_source_31 IN NUMBER
44956 --Currency Code
44957 , p_source_32 IN VARCHAR2
44958 --Exchange Rate
44959 , p_source_34 IN NUMBER
44960 --Exchange Rate Type
44961 , p_source_35 IN VARCHAR2
44962 --Applied To Document Accounting Amount
44963 , p_source_36 IN NUMBER
44964 --Distribution Multi Fund Additional Entry
44965 , p_source_88 IN VARCHAR2
44966 --Applied To Document Exchange Date
44967 , p_source_89 IN DATE
44971 IS
44968 --Cash Receipt Identifier
44969 , p_source_90 IN NUMBER
44970 )
44972
44973 l_component_type VARCHAR2(80);
44974 l_component_code VARCHAR2(30);
44975 l_component_type_code VARCHAR2(1);
44976 l_component_appl_id INTEGER;
44977 l_amb_context_code VARCHAR2(30);
44978 l_entity_code VARCHAR2(30);
44979 l_event_class_code VARCHAR2(30);
44980 l_ae_header_id NUMBER;
44981 l_event_type_code VARCHAR2(30);
44982 l_line_definition_code VARCHAR2(30);
44983 l_line_definition_owner_code VARCHAR2(1);
44984 --
44985 -- adr variables
44986 l_segment VARCHAR2(30);
44987 l_ccid NUMBER;
44988 l_adr_transaction_coa_id NUMBER;
44989 l_adr_accounting_coa_id NUMBER;
44990 l_adr_flexfield_segment_code VARCHAR2(30);
44991 l_adr_flex_value_set_id NUMBER;
44992 l_adr_value_type_code VARCHAR2(30);
44993 l_adr_value_combination_id NUMBER;
44994 l_adr_value_segment_code VARCHAR2(30);
44995
44996 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44997 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44998 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44999 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45000
45001 -- 4262811 Variables ------------------------------------------------------------------------------------------
45002 l_entered_amt_idx NUMBER;
45003 l_accted_amt_idx NUMBER;
45004 l_acc_rev_flag VARCHAR2(1);
45005 l_accrual_line_num NUMBER;
45006 l_tmp_amt NUMBER;
45007 l_acc_rev_natural_side_code VARCHAR2(1);
45008
45009 l_num_entries NUMBER;
45010 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45011 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45012 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45013 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45014 l_recog_line_1 NUMBER;
45015 l_recog_line_2 NUMBER;
45016
45017 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45018 l_bflow_applied_to_amt NUMBER; -- 5132302
45019 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45020
45021 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45022
45023 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45024 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45025
45026 ---------------------------------------------------------------------------------------------------------------
45027
45028
45029 --
45030 -- bulk performance
45031 --
45032 l_balance_type_code VARCHAR2(1);
45033 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45034 l_log_module VARCHAR2(240);
45035
45036 --
45037 -- Upgrade strategy
45038 --
45039 l_actual_upg_option VARCHAR2(1);
45040 l_enc_upg_option VARCHAR2(1);
45041
45042 --
45043 BEGIN
45044 --
45045 IF g_log_enabled THEN
45046 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
45047 END IF;
45048 --
45049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45050
45051 trace
45052 (p_msg => 'BEGIN of AcctLineType_97'
45053 ,p_level => C_LEVEL_PROCEDURE
45054 ,p_module => l_log_module);
45055
45056 END IF;
45057 --
45058 l_component_type := 'AMB_JLT';
45059 l_component_code := 'MISC_RCT_TAX';
45060 l_component_type_code := 'S';
45061 l_component_appl_id := 222;
45062 l_amb_context_code := 'DEFAULT';
45063 l_entity_code := 'RECEIPTS';
45064 l_event_class_code := 'MISC_RECEIPT';
45065 l_event_type_code := 'MISC_RECEIPT_ALL';
45066 l_line_definition_owner_code := 'S';
45067 l_line_definition_code := 'JA_CN_AR_MISC_RECEIPTS';
45068 --
45069 l_balance_type_code := 'A';
45070 l_segment := NULL;
45071 l_ccid := NULL;
45072 l_adr_transaction_coa_id := NULL;
45073 l_adr_accounting_coa_id := NULL;
45074 l_adr_flexfield_segment_code := NULL;
45075 l_adr_flex_value_set_id := NULL;
45076 l_adr_value_type_code := NULL;
45077 l_adr_value_combination_id := NULL;
45078 l_adr_value_segment_code := NULL;
45079
45080 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45081 l_bflow_class_code := ''; -- 4219869 Business Flow
45082 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45083 l_budgetary_control_flag := 'N';
45084
45085 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45086 l_bflow_applied_to_amt := NULL; -- 5132302
45087 l_entered_amt_idx := NULL; -- 4262811
45088 l_accted_amt_idx := NULL; -- 4262811
45089 l_acc_rev_flag := NULL; -- 4262811
45090 l_accrual_line_num := NULL; -- 4262811
45091 l_tmp_amt := NULL; -- 4262811
45092 --
45093
45094 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45095 l_balance_type_code <> 'B' THEN
45096 IF NVL(p_source_27,'
45097 ') = 'TAX' AND
45098 NVL(p_source_88,'
45099 ') = 'N'
45100 THEN
45101
45102 --
45103 XLA_AE_LINES_PKG.SetNewLine;
45104
45108 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45105 p_balance_type_code := l_balance_type_code;
45106 -- set the flag so later we will know whether the gain loss line needs to be created
45107
45109 p_actual_flag :='A';
45110 END IF;
45111
45112 --
45113 -- bulk performance
45114 --
45115 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45116 p_header_num => 0); -- 4262811
45117 --
45118 -- set accounting line options
45119 --
45120 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45121 p_natural_side_code => 'C'
45122 , p_gain_or_loss_flag => 'N'
45123 , p_gl_transfer_mode_code => 'S'
45124 , p_acct_entry_type_code => 'A'
45125 , p_switch_side_flag => 'Y'
45126 , p_merge_duplicate_code => 'A'
45127 );
45128 --
45129 l_acc_rev_natural_side_code := 'D'; -- 4262811
45130 --
45131 --
45132 -- set accounting line type info
45133 --
45134 xla_ae_lines_pkg.SetAcctLineType
45135 (p_component_type => l_component_type
45136 ,p_event_type_code => l_event_type_code
45137 ,p_line_definition_owner_code => l_line_definition_owner_code
45138 ,p_line_definition_code => l_line_definition_code
45139 ,p_accounting_line_code => l_component_code
45140 ,p_accounting_line_type_code => l_component_type_code
45141 ,p_accounting_line_appl_id => l_component_appl_id
45142 ,p_amb_context_code => l_amb_context_code
45143 ,p_entity_code => l_entity_code
45144 ,p_event_class_code => l_event_class_code);
45145 --
45146 -- set accounting class
45147 --
45148 xla_ae_lines_pkg.SetAcctClass(
45149 p_accounting_class_code => 'TAX'
45150 , p_ae_header_id => l_ae_header_id
45151 );
45152
45153 --
45154 -- set rounding class
45155 --
45156 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45157 'RECEIVABLE';
45158
45159 --
45160 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45161 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45162 --
45163 -- bulk performance
45164 --
45165 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45166
45167 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45168 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45169
45170 -- 4955764
45171 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45172 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45173
45174 -- 4458381 Public Sector Enh
45175
45176 --
45177 -- set accounting attributes for the line type
45178 --
45179 l_entered_amt_idx := 3;
45180 l_accted_amt_idx := 8;
45181 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45182 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
45183 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
45184 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
45185 l_rec_acct_attrs.array_char_value(2) := p_source_30;
45186 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
45187 l_rec_acct_attrs.array_num_value(3) := p_source_31;
45188 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
45189 l_rec_acct_attrs.array_char_value(4) := p_source_32;
45190 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
45191 l_rec_acct_attrs.array_date_value(5) := p_source_89;
45192 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
45193 l_rec_acct_attrs.array_num_value(6) := p_source_34;
45194 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
45195 l_rec_acct_attrs.array_char_value(7) := p_source_35;
45196 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
45197 l_rec_acct_attrs.array_num_value(8) := p_source_36;
45198
45199 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45200 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45201
45202 ---------------------------------------------------------------------------------------------------------------
45203 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45204 ---------------------------------------------------------------------------------------------------------------
45205 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45206
45207 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45208 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45209
45210 IF xla_accounting_cache_pkg.GetValueChar
45211 (p_source_code => 'LEDGER_CATEGORY_CODE'
45212 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45213 AND l_bflow_method_code = 'PRIOR_ENTRY'
45214 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45215 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45216 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45217 )
45218 THEN
45219 xla_ae_lines_pkg.BflowUpgEntry
45220 (p_business_method_code => l_bflow_method_code
45224 NULL;
45221 ,p_business_class_code => l_bflow_class_code
45222 ,p_balance_type => l_balance_type_code);
45223 ELSE
45225 -- No business flow processing for business flow method of NONE.
45226 END IF;
45227
45228 --
45229 -- call analytical criteria
45230 --
45231
45232
45233 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
45234 xla_ae_lines_pkg.SetAnalyticalCriteria(
45235 p_analytical_criterion_name => 'Check Id'
45236 , p_analytical_criterion_owner => 'S'
45237 , p_analytical_criterion_code => 'CHECK_ID'
45238 , p_amb_context_code => 'DEFAULT'
45239 , p_balancing_flag => 'N'
45240
45241 , p_analytical_detail_char_1 => NULL
45242 , p_analytical_detail_num_1 => p_source_90
45243 , p_analytical_detail_date_1 => NULL
45244
45245 , p_ae_header_id => l_ae_header_id
45246 )
45247 ;
45248 --
45249
45250 --
45251 -- call description
45252 --
45253 -- No description or it is inherited.
45254 --
45255 -- call ADRs
45256 -- Bug 4922099
45257 --
45258 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45259 (NVL(l_actual_upg_option, 'N') = 'O') OR
45260 (NVL(l_enc_upg_option, 'N') = 'O')
45261 )
45262 THEN
45263 NULL;
45264 --
45265 --
45266
45267 l_ccid := AcctDerRule_20(
45268 p_application_id => p_application_id
45269 , p_ae_header_id => l_ae_header_id
45270 , p_source_22 => p_source_22
45271 , x_transaction_coa_id => l_adr_transaction_coa_id
45272 , x_accounting_coa_id => l_adr_accounting_coa_id
45273 , x_value_type_code => l_adr_value_type_code
45274 , p_side => 'NA'
45275 );
45276
45277 xla_ae_lines_pkg.set_ccid(
45278 p_code_combination_id => l_ccid
45279 , p_value_type_code => l_adr_value_type_code
45280 , p_transaction_coa_id => l_adr_transaction_coa_id
45281 , p_accounting_coa_id => l_adr_accounting_coa_id
45282 , p_adr_code => 'DIST_CCID'
45283 , p_adr_type_code => 'S'
45284 , p_component_type => l_component_type
45285 , p_component_code => l_component_code
45286 , p_component_type_code => l_component_type_code
45287 , p_component_appl_id => l_component_appl_id
45288 , p_amb_context_code => l_amb_context_code
45289 , p_side => 'NA'
45290 );
45291
45292
45293 --
45294 --
45295 END IF;
45296 --
45297 -- Bug 4922099
45298 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45299 (NVL(l_enc_upg_option, 'N') = 'O')
45300 ) AND
45301 (l_bflow_method_code = 'PRIOR_ENTRY')
45302 )
45303 THEN
45304 IF
45305 --
45306 1 = 2
45307 --
45308 THEN
45309 xla_accounting_err_pkg.build_message
45310 (p_appli_s_name => 'XLA'
45311 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45312 ,p_token_1 => 'LINE_NUMBER'
45313 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45314 ,p_token_2 => 'LINE_TYPE_NAME'
45315 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45316 l_component_type
45317 ,l_component_code
45318 ,l_component_type_code
45319 ,l_component_appl_id
45320 ,l_amb_context_code
45321 ,l_entity_code
45322 ,l_event_class_code
45323 )
45324 ,p_token_3 => 'OWNER'
45325 ,p_value_3 => xla_lookups_pkg.get_meaning(
45326 p_lookup_type => 'XLA_OWNER_TYPE'
45327 ,p_lookup_code => l_component_type_code
45328 )
45329 ,p_token_4 => 'PRODUCT_NAME'
45330 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45331 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45332 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45333 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45334 ,p_ae_header_id => NULL
45335 );
45336
45337 IF (C_LEVEL_ERROR>= g_log_level) THEN
45338 trace
45339 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45340 ,p_level => C_LEVEL_ERROR
45341 ,p_module => l_log_module);
45345 --
45342 END IF;
45343 END IF;
45344 END IF;
45346 --
45347 ------------------------------------------------------------------------------------------------
45348 -- 4219869 Business Flow
45349 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45350 -- Prior Entry. Currently, the following code is always generated.
45351 ------------------------------------------------------------------------------------------------
45352 XLA_AE_LINES_PKG.ValidateCurrentLine;
45353
45354 ------------------------------------------------------------------------------------
45355 -- 4219869 Business Flow
45356 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45357 ------------------------------------------------------------------------------------
45358 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45359
45360 ----------------------------------------------------------------------------------
45361 -- 4219869 Business Flow
45362 -- Update journal entry status -- Need to generate this within IF <condition>
45363 ----------------------------------------------------------------------------------
45364 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45365 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45366 ,p_balance_type_code => l_balance_type_code
45367 );
45368
45369 -------------------------------------------------------------------------------------------
45370 -- 4262811 - Generate the Accrual Reversal lines
45371 -------------------------------------------------------------------------------------------
45372 BEGIN
45373 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45374 (g_array_event(p_event_id).array_value_num('header_index'));
45375 IF l_acc_rev_flag IS NULL THEN
45376 l_acc_rev_flag := 'N';
45377 END IF;
45378 EXCEPTION
45379 WHEN OTHERS THEN
45380 l_acc_rev_flag := 'N';
45381 END;
45382 --
45383 IF (l_acc_rev_flag = 'Y') THEN
45384
45385 -- 4645092 ------------------------------------------------------------------------------
45386 -- To allow MPA report to determine if it should generate report process
45387 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45388 ------------------------------------------------------------------------------------------
45389
45390 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45391 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45392 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
45393 -- call ADRs
45394 -- Bug 4922099
45395 --
45396 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45397 (NVL(l_actual_upg_option, 'N') = 'O') OR
45398 (NVL(l_enc_upg_option, 'N') = 'O')
45399 )
45400 THEN
45401 NULL;
45402 --
45403 --
45404
45405 l_ccid := AcctDerRule_20(
45406 p_application_id => p_application_id
45407 , p_ae_header_id => l_ae_header_id
45408 , p_source_22 => p_source_22
45409 , x_transaction_coa_id => l_adr_transaction_coa_id
45410 , x_accounting_coa_id => l_adr_accounting_coa_id
45411 , x_value_type_code => l_adr_value_type_code
45412 , p_side => 'NA'
45413 );
45414
45415 xla_ae_lines_pkg.set_ccid(
45416 p_code_combination_id => l_ccid
45417 , p_value_type_code => l_adr_value_type_code
45418 , p_transaction_coa_id => l_adr_transaction_coa_id
45419 , p_accounting_coa_id => l_adr_accounting_coa_id
45420 , p_adr_code => 'DIST_CCID'
45421 , p_adr_type_code => 'S'
45422 , p_component_type => l_component_type
45423 , p_component_code => l_component_code
45424 , p_component_type_code => l_component_type_code
45425 , p_component_appl_id => l_component_appl_id
45426 , p_amb_context_code => l_amb_context_code
45427 , p_side => 'NA'
45428 );
45429
45430
45431 --
45432 --
45433 END IF;
45434
45435 --
45436 -- Update the line information that should be overwritten
45437 --
45438 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45439 p_header_num => 1);
45440 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45441
45442 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45443
45444 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45445 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45446 END IF;
45447
45448 --
45449 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45450 --
45451 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45452 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45453 ELSE
45454 ---------------------------------------------------------------------------------------------------
45455 -- 4262811a Switch Sign
45456 ---------------------------------------------------------------------------------------------------
45457 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45462 -- 5132302
45459 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45461 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45464 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45465
45466 END IF;
45467
45468 -- 4955764
45469 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45470 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45471
45472
45473 XLA_AE_LINES_PKG.ValidateCurrentLine;
45474 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45475
45476 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45477 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45478 ,p_balance_type_code => l_balance_type_code);
45479
45480 END IF;
45481
45482 -----------------------------------------------------------------------------------------
45483 -- 4262811 Multiperiod Accounting
45484 -----------------------------------------------------------------------------------------
45485 -- No MPA option is assigned.
45486
45487
45488 END IF;
45489 END IF;
45490 --
45491
45492 --
45493 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45494 trace
45495 (p_msg => 'END of AcctLineType_97'
45496 ,p_level => C_LEVEL_PROCEDURE
45497 ,p_module => l_log_module);
45498 END IF;
45499 --
45500 EXCEPTION
45501 WHEN xla_exceptions_pkg.application_exception THEN
45502 RAISE;
45503 WHEN OTHERS THEN
45504 xla_exceptions_pkg.raise_message
45505 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_97');
45506 END AcctLineType_97;
45507 --
45508
45509 ---------------------------------------
45510 --
45511 -- PRIVATE FUNCTION
45512 -- AcctLineType_98
45513 --
45514 ---------------------------------------
45515 PROCEDURE AcctLineType_98 (
45516 p_application_id IN NUMBER
45517 ,p_event_id IN NUMBER
45518 ,p_calculate_acctd_flag IN VARCHAR2
45519 ,p_calculate_g_l_flag IN VARCHAR2
45520 ,p_actual_flag IN OUT VARCHAR2
45521 ,p_balance_type_code OUT VARCHAR2
45522 ,p_gain_or_loss_ref OUT VARCHAR2
45523
45524 --Distribution GL Account
45525 , p_source_22 IN NUMBER
45526 --Distribution Source Type
45527 , p_source_27 IN VARCHAR2
45528 --Distribution Line Identifier
45529 , p_source_29 IN NUMBER
45530 --Distribution Type
45531 , p_source_30 IN VARCHAR2
45532 --Exchange Date
45533 , p_source_33 IN DATE
45534 --Exchange Rate
45535 , p_source_34 IN NUMBER
45536 --Exchange Rate Type
45537 , p_source_35 IN VARCHAR2
45538 --Accounting Amount
45539 , p_source_40 IN NUMBER
45540 --Transaction Distribution Identifier
45541 , p_source_44 IN NUMBER
45542 --Transaction Distribution Type
45543 , p_source_45 IN VARCHAR2
45544 --Distribution Multi Fund Additional Entry
45545 , p_source_88 IN VARCHAR2
45546 --Cash Receipt Identifier
45547 , p_source_90 IN NUMBER
45548 --Receipt Applied To Application Identifier
45549 , p_source_92 IN NUMBER
45550 --Transaction Entity Code
45551 , p_source_93 IN VARCHAR2
45552 --Transaction Identifier
45553 , p_source_94 IN NUMBER
45554 --DIST_ENT_AMT_FROM
45555 , p_source_95 IN NUMBER
45556 --Applying Document Currency Code
45557 , p_source_96 IN VARCHAR2
45558 --Distribution Party Identifier
45559 , p_source_97 IN NUMBER
45560 --Distribution Party Site Id
45561 , p_source_98 IN NUMBER
45562 --Distribution Party Type
45563 , p_source_99 IN VARCHAR2
45564 )
45565 IS
45566
45567 l_component_type VARCHAR2(80);
45568 l_component_code VARCHAR2(30);
45569 l_component_type_code VARCHAR2(1);
45570 l_component_appl_id INTEGER;
45571 l_amb_context_code VARCHAR2(30);
45572 l_entity_code VARCHAR2(30);
45573 l_event_class_code VARCHAR2(30);
45574 l_ae_header_id NUMBER;
45575 l_event_type_code VARCHAR2(30);
45576 l_line_definition_code VARCHAR2(30);
45577 l_line_definition_owner_code VARCHAR2(1);
45578 --
45579 -- adr variables
45580 l_segment VARCHAR2(30);
45581 l_ccid NUMBER;
45582 l_adr_transaction_coa_id NUMBER;
45583 l_adr_accounting_coa_id NUMBER;
45584 l_adr_flexfield_segment_code VARCHAR2(30);
45585 l_adr_flex_value_set_id NUMBER;
45586 l_adr_value_type_code VARCHAR2(30);
45587 l_adr_value_combination_id NUMBER;
45588 l_adr_value_segment_code VARCHAR2(30);
45589
45590 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45591 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45592 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45593 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45594
45595 -- 4262811 Variables ------------------------------------------------------------------------------------------
45596 l_entered_amt_idx NUMBER;
45597 l_accted_amt_idx NUMBER;
45601 l_acc_rev_natural_side_code VARCHAR2(1);
45598 l_acc_rev_flag VARCHAR2(1);
45599 l_accrual_line_num NUMBER;
45600 l_tmp_amt NUMBER;
45602
45603 l_num_entries NUMBER;
45604 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45605 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45606 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45607 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45608 l_recog_line_1 NUMBER;
45609 l_recog_line_2 NUMBER;
45610
45611 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45612 l_bflow_applied_to_amt NUMBER; -- 5132302
45613 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45614
45615 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45616
45617 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45618 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45619
45620 ---------------------------------------------------------------------------------------------------------------
45621
45622
45623 --
45624 -- bulk performance
45625 --
45626 l_balance_type_code VARCHAR2(1);
45627 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45628 l_log_module VARCHAR2(240);
45629
45630 --
45631 -- Upgrade strategy
45632 --
45633 l_actual_upg_option VARCHAR2(1);
45634 l_enc_upg_option VARCHAR2(1);
45635
45636 --
45637 BEGIN
45638 --
45639 IF g_log_enabled THEN
45640 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
45641 END IF;
45642 --
45643 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45644
45645 trace
45646 (p_msg => 'BEGIN of AcctLineType_98'
45647 ,p_level => C_LEVEL_PROCEDURE
45648 ,p_module => l_log_module);
45649
45650 END IF;
45651 --
45652 l_component_type := 'AMB_JLT';
45653 l_component_code := 'RCT_ACC';
45654 l_component_type_code := 'S';
45655 l_component_appl_id := 222;
45656 l_amb_context_code := 'DEFAULT';
45657 l_entity_code := 'RECEIPTS';
45658 l_event_class_code := 'RECEIPT';
45659 l_event_type_code := 'RECEIPT_ALL';
45660 l_line_definition_owner_code := 'S';
45661 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
45662 --
45663 l_balance_type_code := 'A';
45664 l_segment := NULL;
45665 l_ccid := NULL;
45666 l_adr_transaction_coa_id := NULL;
45667 l_adr_accounting_coa_id := NULL;
45668 l_adr_flexfield_segment_code := NULL;
45669 l_adr_flex_value_set_id := NULL;
45670 l_adr_value_type_code := NULL;
45671 l_adr_value_combination_id := NULL;
45672 l_adr_value_segment_code := NULL;
45673
45674 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45675 l_bflow_class_code := ''; -- 4219869 Business Flow
45676 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45677 l_budgetary_control_flag := 'N';
45678
45679 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45680 l_bflow_applied_to_amt := NULL; -- 5132302
45681 l_entered_amt_idx := NULL; -- 4262811
45682 l_accted_amt_idx := NULL; -- 4262811
45683 l_acc_rev_flag := NULL; -- 4262811
45684 l_accrual_line_num := NULL; -- 4262811
45685 l_tmp_amt := NULL; -- 4262811
45686 --
45687
45688 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45689 l_balance_type_code <> 'B' THEN
45690 IF NVL(p_source_27,'
45691 ') = 'ACC' AND
45692 NVL(p_source_88,'
45693 ') = 'N'
45694 THEN
45695
45696 --
45697 XLA_AE_LINES_PKG.SetNewLine;
45698
45699 p_balance_type_code := l_balance_type_code;
45700 -- set the flag so later we will know whether the gain loss line needs to be created
45701
45702 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45703 p_actual_flag :='A';
45704 END IF;
45705
45706 --
45707 -- bulk performance
45708 --
45709 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45710 p_header_num => 0); -- 4262811
45711 --
45712 -- set accounting line options
45713 --
45714 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45715 p_natural_side_code => 'C'
45716 , p_gain_or_loss_flag => 'N'
45717 , p_gl_transfer_mode_code => 'S'
45718 , p_acct_entry_type_code => 'A'
45719 , p_switch_side_flag => 'Y'
45720 , p_merge_duplicate_code => 'A'
45721 );
45722 --
45723 l_acc_rev_natural_side_code := 'D'; -- 4262811
45724 --
45725 --
45726 -- set accounting line type info
45727 --
45728 xla_ae_lines_pkg.SetAcctLineType
45729 (p_component_type => l_component_type
45730 ,p_event_type_code => l_event_type_code
45731 ,p_line_definition_owner_code => l_line_definition_owner_code
45732 ,p_line_definition_code => l_line_definition_code
45733 ,p_accounting_line_code => l_component_code
45734 ,p_accounting_line_type_code => l_component_type_code
45738 ,p_event_class_code => l_event_class_code);
45735 ,p_accounting_line_appl_id => l_component_appl_id
45736 ,p_amb_context_code => l_amb_context_code
45737 ,p_entity_code => l_entity_code
45739 --
45740 -- set accounting class
45741 --
45742 xla_ae_lines_pkg.SetAcctClass(
45743 p_accounting_class_code => 'ACC'
45744 , p_ae_header_id => l_ae_header_id
45745 );
45746
45747 --
45748 -- set rounding class
45749 --
45750 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45751 'RECEIVABLE';
45752
45753 --
45754 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45755 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45756 --
45757 -- bulk performance
45758 --
45759 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45760
45761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45762 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45763
45764 -- 4955764
45765 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45766 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45767
45768 -- 4458381 Public Sector Enh
45769
45770 --
45771 -- set accounting attributes for the line type
45772 --
45773 l_entered_amt_idx := 8;
45774 l_accted_amt_idx := 13;
45775 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45776 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
45777 l_rec_acct_attrs.array_num_value(1) := p_source_92;
45778 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45779 l_rec_acct_attrs.array_char_value(2) := p_source_45;
45780 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
45781 l_rec_acct_attrs.array_char_value(3) := p_source_93;
45782 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
45783 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
45784 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45785 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
45786 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
45787 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
45788 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
45789 l_rec_acct_attrs.array_char_value(7) := p_source_30;
45790 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
45791 l_rec_acct_attrs.array_num_value(8) := p_source_95;
45792 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
45793 l_rec_acct_attrs.array_char_value(9) := p_source_96;
45794 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
45795 l_rec_acct_attrs.array_date_value(10) := p_source_33;
45796 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
45797 l_rec_acct_attrs.array_num_value(11) := p_source_34;
45798 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
45799 l_rec_acct_attrs.array_char_value(12) := p_source_35;
45800 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
45801 l_rec_acct_attrs.array_num_value(13) := p_source_40;
45802 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
45803 l_rec_acct_attrs.array_num_value(14) := p_source_97;
45804 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
45805 l_rec_acct_attrs.array_num_value(15) := p_source_98;
45806 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
45807 l_rec_acct_attrs.array_char_value(16) := p_source_99;
45808
45809 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45810 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45811
45812 ---------------------------------------------------------------------------------------------------------------
45813 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45814 ---------------------------------------------------------------------------------------------------------------
45815 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45816
45817 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45818 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45819
45820 IF xla_accounting_cache_pkg.GetValueChar
45821 (p_source_code => 'LEDGER_CATEGORY_CODE'
45822 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45823 AND l_bflow_method_code = 'PRIOR_ENTRY'
45824 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45825 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45826 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45827 )
45828 THEN
45829 xla_ae_lines_pkg.BflowUpgEntry
45830 (p_business_method_code => l_bflow_method_code
45831 ,p_business_class_code => l_bflow_class_code
45832 ,p_balance_type => l_balance_type_code);
45833 ELSE
45834 NULL;
45835 -- No business flow processing for business flow method of NONE.
45836 END IF;
45837
45838 --
45839 -- call analytical criteria
45840 --
45841
45842
45843 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
45847 , p_analytical_criterion_code => 'CHECK_ID'
45844 xla_ae_lines_pkg.SetAnalyticalCriteria(
45845 p_analytical_criterion_name => 'Check Id'
45846 , p_analytical_criterion_owner => 'S'
45848 , p_amb_context_code => 'DEFAULT'
45849 , p_balancing_flag => 'N'
45850
45851 , p_analytical_detail_char_1 => NULL
45852 , p_analytical_detail_num_1 => p_source_90
45853 , p_analytical_detail_date_1 => NULL
45854
45855 , p_ae_header_id => l_ae_header_id
45856 )
45857 ;
45858 --
45859
45860
45861 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
45862 xla_ae_lines_pkg.SetAnalyticalCriteria(
45863 p_analytical_criterion_name => 'Distribution Source Type'
45864 , p_analytical_criterion_owner => 'S'
45865 , p_analytical_criterion_code => 'DISTRIBUTION_SOURCE_TYPE'
45866 , p_amb_context_code => 'DEFAULT'
45867 , p_balancing_flag => 'N'
45868
45869 , p_analytical_detail_char_1 => TO_CHAR(p_source_27)
45870 , p_analytical_detail_num_1 => NULL
45871 , p_analytical_detail_date_1 => NULL
45872
45873 , p_ae_header_id => l_ae_header_id
45874 )
45875 ;
45876 --
45877
45878 --
45879 -- call description
45880 --
45881 -- No description or it is inherited.
45882 --
45883 -- call ADRs
45884 -- Bug 4922099
45885 --
45886 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45887 (NVL(l_actual_upg_option, 'N') = 'O') OR
45888 (NVL(l_enc_upg_option, 'N') = 'O')
45889 )
45890 THEN
45891 NULL;
45892 --
45893 --
45894
45895 l_ccid := AcctDerRule_20(
45896 p_application_id => p_application_id
45897 , p_ae_header_id => l_ae_header_id
45898 , p_source_22 => p_source_22
45899 , x_transaction_coa_id => l_adr_transaction_coa_id
45900 , x_accounting_coa_id => l_adr_accounting_coa_id
45901 , x_value_type_code => l_adr_value_type_code
45902 , p_side => 'NA'
45903 );
45904
45905 xla_ae_lines_pkg.set_ccid(
45906 p_code_combination_id => l_ccid
45907 , p_value_type_code => l_adr_value_type_code
45908 , p_transaction_coa_id => l_adr_transaction_coa_id
45909 , p_accounting_coa_id => l_adr_accounting_coa_id
45910 , p_adr_code => 'DIST_CCID'
45911 , p_adr_type_code => 'S'
45912 , p_component_type => l_component_type
45913 , p_component_code => l_component_code
45914 , p_component_type_code => l_component_type_code
45915 , p_component_appl_id => l_component_appl_id
45916 , p_amb_context_code => l_amb_context_code
45917 , p_side => 'NA'
45918 );
45919
45920
45921 --
45922 --
45923 END IF;
45924 --
45925 -- Bug 4922099
45926 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45927 (NVL(l_enc_upg_option, 'N') = 'O')
45928 ) AND
45929 (l_bflow_method_code = 'PRIOR_ENTRY')
45930 )
45931 THEN
45932 IF
45933 --
45934 1 = 2
45935 --
45936 THEN
45937 xla_accounting_err_pkg.build_message
45938 (p_appli_s_name => 'XLA'
45939 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45940 ,p_token_1 => 'LINE_NUMBER'
45941 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45942 ,p_token_2 => 'LINE_TYPE_NAME'
45943 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45944 l_component_type
45945 ,l_component_code
45946 ,l_component_type_code
45947 ,l_component_appl_id
45948 ,l_amb_context_code
45949 ,l_entity_code
45950 ,l_event_class_code
45951 )
45952 ,p_token_3 => 'OWNER'
45953 ,p_value_3 => xla_lookups_pkg.get_meaning(
45954 p_lookup_type => 'XLA_OWNER_TYPE'
45955 ,p_lookup_code => l_component_type_code
45956 )
45957 ,p_token_4 => 'PRODUCT_NAME'
45958 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45959 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45960 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45961 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45962 ,p_ae_header_id => NULL
45963 );
45964
45968 ,p_level => C_LEVEL_ERROR
45965 IF (C_LEVEL_ERROR>= g_log_level) THEN
45966 trace
45967 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45969 ,p_module => l_log_module);
45970 END IF;
45971 END IF;
45972 END IF;
45973 --
45974 --
45975 ------------------------------------------------------------------------------------------------
45976 -- 4219869 Business Flow
45977 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45978 -- Prior Entry. Currently, the following code is always generated.
45979 ------------------------------------------------------------------------------------------------
45980 XLA_AE_LINES_PKG.ValidateCurrentLine;
45981
45982 ------------------------------------------------------------------------------------
45983 -- 4219869 Business Flow
45984 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45985 ------------------------------------------------------------------------------------
45986 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45987
45988 ----------------------------------------------------------------------------------
45989 -- 4219869 Business Flow
45990 -- Update journal entry status -- Need to generate this within IF <condition>
45991 ----------------------------------------------------------------------------------
45992 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45993 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45994 ,p_balance_type_code => l_balance_type_code
45995 );
45996
45997 -------------------------------------------------------------------------------------------
45998 -- 4262811 - Generate the Accrual Reversal lines
45999 -------------------------------------------------------------------------------------------
46000 BEGIN
46001 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46002 (g_array_event(p_event_id).array_value_num('header_index'));
46003 IF l_acc_rev_flag IS NULL THEN
46004 l_acc_rev_flag := 'N';
46005 END IF;
46006 EXCEPTION
46007 WHEN OTHERS THEN
46008 l_acc_rev_flag := 'N';
46009 END;
46010 --
46011 IF (l_acc_rev_flag = 'Y') THEN
46012
46013 -- 4645092 ------------------------------------------------------------------------------
46014 -- To allow MPA report to determine if it should generate report process
46015 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46016 ------------------------------------------------------------------------------------------
46017
46018 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46019 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46020 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46021 -- call ADRs
46022 -- Bug 4922099
46023 --
46024 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46025 (NVL(l_actual_upg_option, 'N') = 'O') OR
46026 (NVL(l_enc_upg_option, 'N') = 'O')
46027 )
46028 THEN
46029 NULL;
46030 --
46031 --
46032
46033 l_ccid := AcctDerRule_20(
46034 p_application_id => p_application_id
46035 , p_ae_header_id => l_ae_header_id
46036 , p_source_22 => p_source_22
46037 , x_transaction_coa_id => l_adr_transaction_coa_id
46038 , x_accounting_coa_id => l_adr_accounting_coa_id
46039 , x_value_type_code => l_adr_value_type_code
46040 , p_side => 'NA'
46041 );
46042
46043 xla_ae_lines_pkg.set_ccid(
46044 p_code_combination_id => l_ccid
46045 , p_value_type_code => l_adr_value_type_code
46046 , p_transaction_coa_id => l_adr_transaction_coa_id
46047 , p_accounting_coa_id => l_adr_accounting_coa_id
46048 , p_adr_code => 'DIST_CCID'
46049 , p_adr_type_code => 'S'
46050 , p_component_type => l_component_type
46051 , p_component_code => l_component_code
46052 , p_component_type_code => l_component_type_code
46053 , p_component_appl_id => l_component_appl_id
46054 , p_amb_context_code => l_amb_context_code
46055 , p_side => 'NA'
46056 );
46057
46058
46059 --
46060 --
46061 END IF;
46062
46063 --
46064 -- Update the line information that should be overwritten
46065 --
46066 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46067 p_header_num => 1);
46068 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46069
46070 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46071
46072 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46073 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46074 END IF;
46075
46076 --
46077 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46078 --
46079 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46080 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46081 ELSE
46082 ---------------------------------------------------------------------------------------------------
46086 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46083 -- 4262811a Switch Sign
46084 ---------------------------------------------------------------------------------------------------
46085 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46087 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46088 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46089 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46090 -- 5132302
46091 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46092 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46093
46094 END IF;
46095
46096 -- 4955764
46097 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46098 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46099
46100
46101 XLA_AE_LINES_PKG.ValidateCurrentLine;
46102 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46103
46104 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46105 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46106 ,p_balance_type_code => l_balance_type_code);
46107
46108 END IF;
46109
46110 -----------------------------------------------------------------------------------------
46111 -- 4262811 Multiperiod Accounting
46112 -----------------------------------------------------------------------------------------
46113 -- No MPA option is assigned.
46114
46115
46116 END IF;
46117 END IF;
46118 --
46119
46120 --
46121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46122 trace
46123 (p_msg => 'END of AcctLineType_98'
46124 ,p_level => C_LEVEL_PROCEDURE
46125 ,p_module => l_log_module);
46126 END IF;
46127 --
46128 EXCEPTION
46129 WHEN xla_exceptions_pkg.application_exception THEN
46130 RAISE;
46131 WHEN OTHERS THEN
46132 xla_exceptions_pkg.raise_message
46133 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_98');
46134 END AcctLineType_98;
46135 --
46136
46137 ---------------------------------------
46138 --
46139 -- PRIVATE FUNCTION
46140 -- AcctLineType_99
46141 --
46142 ---------------------------------------
46143 PROCEDURE AcctLineType_99 (
46144 p_application_id IN NUMBER
46145 ,p_event_id IN NUMBER
46146 ,p_calculate_acctd_flag IN VARCHAR2
46147 ,p_calculate_g_l_flag IN VARCHAR2
46148 ,p_actual_flag IN OUT VARCHAR2
46149 ,p_balance_type_code OUT VARCHAR2
46150 ,p_gain_or_loss_ref OUT VARCHAR2
46151
46152 --Distribution GL Account
46153 , p_source_22 IN NUMBER
46154 --Distribution Source Type
46155 , p_source_27 IN VARCHAR2
46156 --Distribution Line Identifier
46157 , p_source_29 IN NUMBER
46158 --Distribution Type
46159 , p_source_30 IN VARCHAR2
46160 --Exchange Date
46161 , p_source_33 IN DATE
46162 --Exchange Rate
46163 , p_source_34 IN NUMBER
46164 --Exchange Rate Type
46165 , p_source_35 IN VARCHAR2
46166 --Accounting Amount
46167 , p_source_40 IN NUMBER
46168 --Transaction Distribution Identifier
46169 , p_source_44 IN NUMBER
46170 --Transaction Distribution Type
46171 , p_source_45 IN VARCHAR2
46172 --Distribution Multi Fund Additional Entry
46173 , p_source_88 IN VARCHAR2
46174 --Cash Receipt Identifier
46175 , p_source_90 IN NUMBER
46176 --Receipt Applied To Application Identifier
46177 , p_source_92 IN NUMBER
46178 --Transaction Entity Code
46179 , p_source_93 IN VARCHAR2
46180 --Transaction Identifier
46181 , p_source_94 IN NUMBER
46182 --DIST_ENT_AMT_FROM
46183 , p_source_95 IN NUMBER
46184 --Applying Document Currency Code
46185 , p_source_96 IN VARCHAR2
46186 --Distribution Party Identifier
46187 , p_source_97 IN NUMBER
46188 --Distribution Party Site Id
46189 , p_source_98 IN NUMBER
46190 --Distribution Party Type
46191 , p_source_99 IN VARCHAR2
46192 )
46193 IS
46194
46195 l_component_type VARCHAR2(80);
46196 l_component_code VARCHAR2(30);
46197 l_component_type_code VARCHAR2(1);
46198 l_component_appl_id INTEGER;
46199 l_amb_context_code VARCHAR2(30);
46200 l_entity_code VARCHAR2(30);
46201 l_event_class_code VARCHAR2(30);
46202 l_ae_header_id NUMBER;
46203 l_event_type_code VARCHAR2(30);
46204 l_line_definition_code VARCHAR2(30);
46205 l_line_definition_owner_code VARCHAR2(1);
46206 --
46207 -- adr variables
46208 l_segment VARCHAR2(30);
46209 l_ccid NUMBER;
46210 l_adr_transaction_coa_id NUMBER;
46211 l_adr_accounting_coa_id NUMBER;
46212 l_adr_flexfield_segment_code VARCHAR2(30);
46213 l_adr_flex_value_set_id NUMBER;
46214 l_adr_value_type_code VARCHAR2(30);
46215 l_adr_value_combination_id NUMBER;
46216 l_adr_value_segment_code VARCHAR2(30);
46217
46218 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46219 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46223 -- 4262811 Variables ------------------------------------------------------------------------------------------
46220 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46221 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46222
46224 l_entered_amt_idx NUMBER;
46225 l_accted_amt_idx NUMBER;
46226 l_acc_rev_flag VARCHAR2(1);
46227 l_accrual_line_num NUMBER;
46228 l_tmp_amt NUMBER;
46229 l_acc_rev_natural_side_code VARCHAR2(1);
46230
46231 l_num_entries NUMBER;
46232 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46233 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46234 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46235 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46236 l_recog_line_1 NUMBER;
46237 l_recog_line_2 NUMBER;
46238
46239 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46240 l_bflow_applied_to_amt NUMBER; -- 5132302
46241 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46242
46243 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46244
46245 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46246 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46247
46248 ---------------------------------------------------------------------------------------------------------------
46249
46250
46251 --
46252 -- bulk performance
46253 --
46254 l_balance_type_code VARCHAR2(1);
46255 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46256 l_log_module VARCHAR2(240);
46257
46258 --
46259 -- Upgrade strategy
46260 --
46261 l_actual_upg_option VARCHAR2(1);
46262 l_enc_upg_option VARCHAR2(1);
46263
46264 --
46265 BEGIN
46266 --
46267 IF g_log_enabled THEN
46268 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
46269 END IF;
46270 --
46271 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46272
46273 trace
46274 (p_msg => 'BEGIN of AcctLineType_99'
46275 ,p_level => C_LEVEL_PROCEDURE
46276 ,p_module => l_log_module);
46277
46278 END IF;
46279 --
46280 l_component_type := 'AMB_JLT';
46281 l_component_code := 'RCT_BNK_CHG';
46282 l_component_type_code := 'S';
46283 l_component_appl_id := 222;
46284 l_amb_context_code := 'DEFAULT';
46285 l_entity_code := 'RECEIPTS';
46286 l_event_class_code := 'RECEIPT';
46287 l_event_type_code := 'RECEIPT_ALL';
46288 l_line_definition_owner_code := 'S';
46289 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
46290 --
46291 l_balance_type_code := 'A';
46292 l_segment := NULL;
46293 l_ccid := NULL;
46294 l_adr_transaction_coa_id := NULL;
46295 l_adr_accounting_coa_id := NULL;
46296 l_adr_flexfield_segment_code := NULL;
46297 l_adr_flex_value_set_id := NULL;
46298 l_adr_value_type_code := NULL;
46299 l_adr_value_combination_id := NULL;
46300 l_adr_value_segment_code := NULL;
46301
46302 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46303 l_bflow_class_code := ''; -- 4219869 Business Flow
46304 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46305 l_budgetary_control_flag := 'N';
46306
46307 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46308 l_bflow_applied_to_amt := NULL; -- 5132302
46309 l_entered_amt_idx := NULL; -- 4262811
46310 l_accted_amt_idx := NULL; -- 4262811
46311 l_acc_rev_flag := NULL; -- 4262811
46312 l_accrual_line_num := NULL; -- 4262811
46313 l_tmp_amt := NULL; -- 4262811
46314 --
46315
46316 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46317 l_balance_type_code <> 'B' THEN
46318 IF NVL(p_source_27,'
46319 ') = 'BANK_CHARGES' AND
46320 NVL(p_source_88,'
46321 ') = 'N'
46322 THEN
46323
46324 --
46325 XLA_AE_LINES_PKG.SetNewLine;
46326
46327 p_balance_type_code := l_balance_type_code;
46328 -- set the flag so later we will know whether the gain loss line needs to be created
46329
46330 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46331 p_actual_flag :='A';
46332 END IF;
46333
46334 --
46335 -- bulk performance
46336 --
46337 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46338 p_header_num => 0); -- 4262811
46339 --
46340 -- set accounting line options
46341 --
46342 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46343 p_natural_side_code => 'C'
46344 , p_gain_or_loss_flag => 'N'
46345 , p_gl_transfer_mode_code => 'S'
46346 , p_acct_entry_type_code => 'A'
46347 , p_switch_side_flag => 'Y'
46348 , p_merge_duplicate_code => 'A'
46349 );
46350 --
46351 l_acc_rev_natural_side_code := 'D'; -- 4262811
46352 --
46353 --
46354 -- set accounting line type info
46355 --
46356 xla_ae_lines_pkg.SetAcctLineType
46357 (p_component_type => l_component_type
46361 ,p_accounting_line_code => l_component_code
46358 ,p_event_type_code => l_event_type_code
46359 ,p_line_definition_owner_code => l_line_definition_owner_code
46360 ,p_line_definition_code => l_line_definition_code
46362 ,p_accounting_line_type_code => l_component_type_code
46363 ,p_accounting_line_appl_id => l_component_appl_id
46364 ,p_amb_context_code => l_amb_context_code
46365 ,p_entity_code => l_entity_code
46366 ,p_event_class_code => l_event_class_code);
46367 --
46368 -- set accounting class
46369 --
46370 xla_ae_lines_pkg.SetAcctClass(
46371 p_accounting_class_code => 'BANK_CHG'
46372 , p_ae_header_id => l_ae_header_id
46373 );
46374
46375 --
46376 -- set rounding class
46377 --
46378 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46379 'RECEIVABLE';
46380
46381 --
46382 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46383 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46384 --
46385 -- bulk performance
46386 --
46387 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46388
46389 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46390 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46391
46392 -- 4955764
46393 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46394 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46395
46396 -- 4458381 Public Sector Enh
46397
46398 --
46399 -- set accounting attributes for the line type
46400 --
46401 l_entered_amt_idx := 8;
46402 l_accted_amt_idx := 13;
46403 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46404 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
46405 l_rec_acct_attrs.array_num_value(1) := p_source_92;
46406 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46407 l_rec_acct_attrs.array_char_value(2) := p_source_45;
46408 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
46409 l_rec_acct_attrs.array_char_value(3) := p_source_93;
46410 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
46411 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
46412 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46413 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
46414 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
46415 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
46416 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
46417 l_rec_acct_attrs.array_char_value(7) := p_source_30;
46418 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
46419 l_rec_acct_attrs.array_num_value(8) := p_source_95;
46420 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
46421 l_rec_acct_attrs.array_char_value(9) := p_source_96;
46422 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
46423 l_rec_acct_attrs.array_date_value(10) := p_source_33;
46424 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
46425 l_rec_acct_attrs.array_num_value(11) := p_source_34;
46426 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
46427 l_rec_acct_attrs.array_char_value(12) := p_source_35;
46428 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
46429 l_rec_acct_attrs.array_num_value(13) := p_source_40;
46430 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
46431 l_rec_acct_attrs.array_num_value(14) := p_source_97;
46432 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
46433 l_rec_acct_attrs.array_num_value(15) := p_source_98;
46434 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
46435 l_rec_acct_attrs.array_char_value(16) := p_source_99;
46436
46437 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46438 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46439
46440 ---------------------------------------------------------------------------------------------------------------
46441 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46442 ---------------------------------------------------------------------------------------------------------------
46443 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46444
46445 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46446 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46447
46448 IF xla_accounting_cache_pkg.GetValueChar
46449 (p_source_code => 'LEDGER_CATEGORY_CODE'
46450 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46451 AND l_bflow_method_code = 'PRIOR_ENTRY'
46452 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46453 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46454 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46455 )
46456 THEN
46457 xla_ae_lines_pkg.BflowUpgEntry
46458 (p_business_method_code => l_bflow_method_code
46459 ,p_business_class_code => l_bflow_class_code
46460 ,p_balance_type => l_balance_type_code);
46461 ELSE
46462 NULL;
46466 --
46463 -- No business flow processing for business flow method of NONE.
46464 END IF;
46465
46467 -- call analytical criteria
46468 --
46469
46470
46471 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
46472 xla_ae_lines_pkg.SetAnalyticalCriteria(
46473 p_analytical_criterion_name => 'Check Id'
46474 , p_analytical_criterion_owner => 'S'
46475 , p_analytical_criterion_code => 'CHECK_ID'
46476 , p_amb_context_code => 'DEFAULT'
46477 , p_balancing_flag => 'N'
46478
46479 , p_analytical_detail_char_1 => NULL
46480 , p_analytical_detail_num_1 => p_source_90
46481 , p_analytical_detail_date_1 => NULL
46482
46483 , p_ae_header_id => l_ae_header_id
46484 )
46485 ;
46486 --
46487
46488
46489 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
46490 xla_ae_lines_pkg.SetAnalyticalCriteria(
46491 p_analytical_criterion_name => 'Distribution Source Type'
46492 , p_analytical_criterion_owner => 'S'
46493 , p_analytical_criterion_code => 'DISTRIBUTION_SOURCE_TYPE'
46494 , p_amb_context_code => 'DEFAULT'
46495 , p_balancing_flag => 'N'
46496
46497 , p_analytical_detail_char_1 => TO_CHAR(p_source_27)
46498 , p_analytical_detail_num_1 => NULL
46499 , p_analytical_detail_date_1 => NULL
46500
46501 , p_ae_header_id => l_ae_header_id
46502 )
46503 ;
46504 --
46505
46506 --
46507 -- call description
46508 --
46509 -- No description or it is inherited.
46510 --
46511 -- call ADRs
46512 -- Bug 4922099
46513 --
46514 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46515 (NVL(l_actual_upg_option, 'N') = 'O') OR
46516 (NVL(l_enc_upg_option, 'N') = 'O')
46517 )
46518 THEN
46519 NULL;
46520 --
46521 --
46522
46523 l_ccid := AcctDerRule_20(
46524 p_application_id => p_application_id
46525 , p_ae_header_id => l_ae_header_id
46526 , p_source_22 => p_source_22
46527 , x_transaction_coa_id => l_adr_transaction_coa_id
46528 , x_accounting_coa_id => l_adr_accounting_coa_id
46529 , x_value_type_code => l_adr_value_type_code
46530 , p_side => 'NA'
46531 );
46532
46533 xla_ae_lines_pkg.set_ccid(
46534 p_code_combination_id => l_ccid
46535 , p_value_type_code => l_adr_value_type_code
46536 , p_transaction_coa_id => l_adr_transaction_coa_id
46537 , p_accounting_coa_id => l_adr_accounting_coa_id
46538 , p_adr_code => 'DIST_CCID'
46539 , p_adr_type_code => 'S'
46540 , p_component_type => l_component_type
46541 , p_component_code => l_component_code
46542 , p_component_type_code => l_component_type_code
46543 , p_component_appl_id => l_component_appl_id
46544 , p_amb_context_code => l_amb_context_code
46545 , p_side => 'NA'
46546 );
46547
46548
46549 --
46550 --
46551 END IF;
46552 --
46553 -- Bug 4922099
46554 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46555 (NVL(l_enc_upg_option, 'N') = 'O')
46556 ) AND
46557 (l_bflow_method_code = 'PRIOR_ENTRY')
46558 )
46559 THEN
46560 IF
46561 --
46562 1 = 2
46563 --
46564 THEN
46565 xla_accounting_err_pkg.build_message
46566 (p_appli_s_name => 'XLA'
46567 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46568 ,p_token_1 => 'LINE_NUMBER'
46569 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46573 ,l_component_code
46570 ,p_token_2 => 'LINE_TYPE_NAME'
46571 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46572 l_component_type
46574 ,l_component_type_code
46575 ,l_component_appl_id
46579 )
46576 ,l_amb_context_code
46577 ,l_entity_code
46578 ,l_event_class_code
46580 ,p_token_3 => 'OWNER'
46581 ,p_value_3 => xla_lookups_pkg.get_meaning(
46582 p_lookup_type => 'XLA_OWNER_TYPE'
46583 ,p_lookup_code => l_component_type_code
46584 )
46585 ,p_token_4 => 'PRODUCT_NAME'
46586 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46587 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46588 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46589 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46590 ,p_ae_header_id => NULL
46591 );
46592
46593 IF (C_LEVEL_ERROR>= g_log_level) THEN
46594 trace
46595 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46596 ,p_level => C_LEVEL_ERROR
46597 ,p_module => l_log_module);
46598 END IF;
46599 END IF;
46600 END IF;
46601 --
46602 --
46603 ------------------------------------------------------------------------------------------------
46604 -- 4219869 Business Flow
46605 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46606 -- Prior Entry. Currently, the following code is always generated.
46607 ------------------------------------------------------------------------------------------------
46608 XLA_AE_LINES_PKG.ValidateCurrentLine;
46609
46610 ------------------------------------------------------------------------------------
46611 -- 4219869 Business Flow
46612 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46613 ------------------------------------------------------------------------------------
46614 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46615
46616 ----------------------------------------------------------------------------------
46617 -- 4219869 Business Flow
46618 -- Update journal entry status -- Need to generate this within IF <condition>
46619 ----------------------------------------------------------------------------------
46620 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46621 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46622 ,p_balance_type_code => l_balance_type_code
46623 );
46624
46625 -------------------------------------------------------------------------------------------
46626 -- 4262811 - Generate the Accrual Reversal lines
46627 -------------------------------------------------------------------------------------------
46628 BEGIN
46629 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46630 (g_array_event(p_event_id).array_value_num('header_index'));
46631 IF l_acc_rev_flag IS NULL THEN
46632 l_acc_rev_flag := 'N';
46633 END IF;
46634 EXCEPTION
46635 WHEN OTHERS THEN
46636 l_acc_rev_flag := 'N';
46637 END;
46638 --
46639 IF (l_acc_rev_flag = 'Y') THEN
46640
46641 -- 4645092 ------------------------------------------------------------------------------
46642 -- To allow MPA report to determine if it should generate report process
46643 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46644 ------------------------------------------------------------------------------------------
46645
46646 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46647 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46648 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46649 -- call ADRs
46650 -- Bug 4922099
46651 --
46652 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46653 (NVL(l_actual_upg_option, 'N') = 'O') OR
46654 (NVL(l_enc_upg_option, 'N') = 'O')
46655 )
46656 THEN
46657 NULL;
46658 --
46659 --
46660
46661 l_ccid := AcctDerRule_20(
46662 p_application_id => p_application_id
46663 , p_ae_header_id => l_ae_header_id
46664 , p_source_22 => p_source_22
46665 , x_transaction_coa_id => l_adr_transaction_coa_id
46666 , x_accounting_coa_id => l_adr_accounting_coa_id
46667 , x_value_type_code => l_adr_value_type_code
46668 , p_side => 'NA'
46669 );
46670
46671 xla_ae_lines_pkg.set_ccid(
46672 p_code_combination_id => l_ccid
46673 , p_value_type_code => l_adr_value_type_code
46674 , p_transaction_coa_id => l_adr_transaction_coa_id
46675 , p_accounting_coa_id => l_adr_accounting_coa_id
46676 , p_adr_code => 'DIST_CCID'
46677 , p_adr_type_code => 'S'
46681 , p_component_appl_id => l_component_appl_id
46678 , p_component_type => l_component_type
46679 , p_component_code => l_component_code
46680 , p_component_type_code => l_component_type_code
46682 , p_amb_context_code => l_amb_context_code
46683 , p_side => 'NA'
46684 );
46685
46686
46687 --
46688 --
46689 END IF;
46690
46691 --
46692 -- Update the line information that should be overwritten
46693 --
46697
46694 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46695 p_header_num => 1);
46696 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46698 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46699
46700 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46701 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46702 END IF;
46703
46704 --
46705 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46706 --
46707 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46708 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46709 ELSE
46710 ---------------------------------------------------------------------------------------------------
46711 -- 4262811a Switch Sign
46712 ---------------------------------------------------------------------------------------------------
46713 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46714 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46715 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46716 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46717 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46718 -- 5132302
46719 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46720 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46721
46722 END IF;
46723
46724 -- 4955764
46725 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46726 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46727
46728
46729 XLA_AE_LINES_PKG.ValidateCurrentLine;
46730 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46731
46732 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46733 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46734 ,p_balance_type_code => l_balance_type_code);
46735
46736 END IF;
46737
46738 -----------------------------------------------------------------------------------------
46739 -- 4262811 Multiperiod Accounting
46740 -----------------------------------------------------------------------------------------
46741 -- No MPA option is assigned.
46742
46743
46744 END IF;
46745 END IF;
46746 --
46747
46748 --
46749 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46750 trace
46751 (p_msg => 'END of AcctLineType_99'
46752 ,p_level => C_LEVEL_PROCEDURE
46753 ,p_module => l_log_module);
46754 END IF;
46755 --
46756 EXCEPTION
46757 WHEN xla_exceptions_pkg.application_exception THEN
46758 RAISE;
46759 WHEN OTHERS THEN
46760 xla_exceptions_pkg.raise_message
46761 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_99');
46762 END AcctLineType_99;
46763 --
46764
46765 ---------------------------------------
46766 --
46767 -- PRIVATE FUNCTION
46768 -- AcctLineType_100
46769 --
46770 ---------------------------------------
46771 PROCEDURE AcctLineType_100 (
46772 p_application_id IN NUMBER
46773 ,p_event_id IN NUMBER
46774 ,p_calculate_acctd_flag IN VARCHAR2
46775 ,p_calculate_g_l_flag IN VARCHAR2
46776 ,p_actual_flag IN OUT VARCHAR2
46777 ,p_balance_type_code OUT VARCHAR2
46778 ,p_gain_or_loss_ref OUT VARCHAR2
46779
46780 --Distribution GL Account
46781 , p_source_22 IN NUMBER
46782 --Distribution Source Type
46783 , p_source_27 IN VARCHAR2
46784 --Distribution Line Identifier
46785 , p_source_29 IN NUMBER
46786 --Distribution Type
46790 --Exchange Rate
46787 , p_source_30 IN VARCHAR2
46788 --Exchange Date
46789 , p_source_33 IN DATE
46791 , p_source_34 IN NUMBER
46792 --Exchange Rate Type
46793 , p_source_35 IN VARCHAR2
46794 --Accounting Amount
46795 , p_source_40 IN NUMBER
46796 --Transaction Distribution Identifier
46797 , p_source_44 IN NUMBER
46798 --Transaction Distribution Type
46799 , p_source_45 IN VARCHAR2
46800 --Distribution Multi Fund Additional Entry
46801 , p_source_88 IN VARCHAR2
46802 --Cash Receipt Identifier
46803 , p_source_90 IN NUMBER
46804 --Receipt Applied To Application Identifier
46805 , p_source_92 IN NUMBER
46806 --Transaction Entity Code
46807 , p_source_93 IN VARCHAR2
46808 --Transaction Identifier
46809 , p_source_94 IN NUMBER
46810 --DIST_ENT_AMT_FROM
46811 , p_source_95 IN NUMBER
46812 --Applying Document Currency Code
46813 , p_source_96 IN VARCHAR2
46814 --Distribution Party Identifier
46815 , p_source_97 IN NUMBER
46816 --Distribution Party Site Id
46817 , p_source_98 IN NUMBER
46818 --Distribution Party Type
46819 , p_source_99 IN VARCHAR2
46820 )
46821 IS
46822
46823 l_component_type VARCHAR2(80);
46824 l_component_code VARCHAR2(30);
46825 l_component_type_code VARCHAR2(1);
46826 l_component_appl_id INTEGER;
46827 l_amb_context_code VARCHAR2(30);
46828 l_entity_code VARCHAR2(30);
46829 l_event_class_code VARCHAR2(30);
46830 l_ae_header_id NUMBER;
46831 l_event_type_code VARCHAR2(30);
46832 l_line_definition_code VARCHAR2(30);
46833 l_line_definition_owner_code VARCHAR2(1);
46834 --
46835 -- adr variables
46836 l_segment VARCHAR2(30);
46837 l_ccid NUMBER;
46838 l_adr_transaction_coa_id NUMBER;
46839 l_adr_accounting_coa_id NUMBER;
46840 l_adr_flexfield_segment_code VARCHAR2(30);
46841 l_adr_flex_value_set_id NUMBER;
46842 l_adr_value_type_code VARCHAR2(30);
46843 l_adr_value_combination_id NUMBER;
46844 l_adr_value_segment_code VARCHAR2(30);
46845
46846 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46847 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46848 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46849 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46850
46851 -- 4262811 Variables ------------------------------------------------------------------------------------------
46852 l_entered_amt_idx NUMBER;
46853 l_accted_amt_idx NUMBER;
46854 l_acc_rev_flag VARCHAR2(1);
46855 l_accrual_line_num NUMBER;
46856 l_tmp_amt NUMBER;
46857 l_acc_rev_natural_side_code VARCHAR2(1);
46858
46859 l_num_entries NUMBER;
46860 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46861 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46862 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46863 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46864 l_recog_line_1 NUMBER;
46865 l_recog_line_2 NUMBER;
46866
46867 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46868 l_bflow_applied_to_amt NUMBER; -- 5132302
46869 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46870
46871 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46872
46873 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46874 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46875
46876 ---------------------------------------------------------------------------------------------------------------
46877
46878
46879 --
46880 -- bulk performance
46881 --
46882 l_balance_type_code VARCHAR2(1);
46883 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46884 l_log_module VARCHAR2(240);
46885
46886 --
46887 -- Upgrade strategy
46888 --
46889 l_actual_upg_option VARCHAR2(1);
46890 l_enc_upg_option VARCHAR2(1);
46891
46892 --
46893 BEGIN
46894 --
46895 IF g_log_enabled THEN
46896 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
46897 END IF;
46898 --
46899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46900
46901 trace
46902 (p_msg => 'BEGIN of AcctLineType_100'
46903 ,p_level => C_LEVEL_PROCEDURE
46904 ,p_module => l_log_module);
46905
46906 END IF;
46907 --
46908 l_component_type := 'AMB_JLT';
46909 l_component_code := 'RCT_CASH';
46910 l_component_type_code := 'S';
46911 l_component_appl_id := 222;
46912 l_amb_context_code := 'DEFAULT';
46913 l_entity_code := 'RECEIPTS';
46914 l_event_class_code := 'RECEIPT';
46915 l_event_type_code := 'RECEIPT_ALL';
46916 l_line_definition_owner_code := 'S';
46917 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
46918 --
46919 l_balance_type_code := 'A';
46920 l_segment := NULL;
46921 l_ccid := NULL;
46922 l_adr_transaction_coa_id := NULL;
46923 l_adr_accounting_coa_id := NULL;
46924 l_adr_flexfield_segment_code := NULL;
46928 l_adr_value_segment_code := NULL;
46925 l_adr_flex_value_set_id := NULL;
46926 l_adr_value_type_code := NULL;
46927 l_adr_value_combination_id := NULL;
46929
46930 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46931 l_bflow_class_code := ''; -- 4219869 Business Flow
46932 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46933 l_budgetary_control_flag := 'N';
46934
46935 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46936 l_bflow_applied_to_amt := NULL; -- 5132302
46937 l_entered_amt_idx := NULL; -- 4262811
46938 l_accted_amt_idx := NULL; -- 4262811
46939 l_acc_rev_flag := NULL; -- 4262811
46940 l_accrual_line_num := NULL; -- 4262811
46941 l_tmp_amt := NULL; -- 4262811
46942 --
46943
46944 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46945 l_balance_type_code <> 'B' THEN
46946 IF NVL(p_source_27,'
46947 ') = 'CASH' AND
46948 NVL(p_source_88,'
46949 ') = 'N'
46950 THEN
46951
46952 --
46953 XLA_AE_LINES_PKG.SetNewLine;
46954
46955 p_balance_type_code := l_balance_type_code;
46956 -- set the flag so later we will know whether the gain loss line needs to be created
46957
46958 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46959 p_actual_flag :='A';
46960 END IF;
46961
46962 --
46963 -- bulk performance
46964 --
46965 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46966 p_header_num => 0); -- 4262811
46967 --
46968 -- set accounting line options
46969 --
46970 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46971 p_natural_side_code => 'C'
46972 , p_gain_or_loss_flag => 'N'
46973 , p_gl_transfer_mode_code => 'S'
46974 , p_acct_entry_type_code => 'A'
46975 , p_switch_side_flag => 'Y'
46976 , p_merge_duplicate_code => 'A'
46977 );
46978 --
46979 l_acc_rev_natural_side_code := 'D'; -- 4262811
46980 --
46981 --
46982 -- set accounting line type info
46983 --
46984 xla_ae_lines_pkg.SetAcctLineType
46985 (p_component_type => l_component_type
46986 ,p_event_type_code => l_event_type_code
46987 ,p_line_definition_owner_code => l_line_definition_owner_code
46988 ,p_line_definition_code => l_line_definition_code
46989 ,p_accounting_line_code => l_component_code
46990 ,p_accounting_line_type_code => l_component_type_code
46991 ,p_accounting_line_appl_id => l_component_appl_id
46992 ,p_amb_context_code => l_amb_context_code
46993 ,p_entity_code => l_entity_code
46994 ,p_event_class_code => l_event_class_code);
46995 --
46996 -- set accounting class
46997 --
46998 xla_ae_lines_pkg.SetAcctClass(
46999 p_accounting_class_code => 'CASH'
47000 , p_ae_header_id => l_ae_header_id
47001 );
47002
47003 --
47004 -- set rounding class
47005 --
47009 --
47006 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47007 'RECEIVABLE';
47008
47010 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47011 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47012 --
47013 -- bulk performance
47014 --
47015 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47016
47017 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47018 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47019
47020 -- 4955764
47021 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47022 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47023
47024 -- 4458381 Public Sector Enh
47025
47026 --
47027 -- set accounting attributes for the line type
47028 --
47029 l_entered_amt_idx := 8;
47030 l_accted_amt_idx := 13;
47031 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47032 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
47033 l_rec_acct_attrs.array_num_value(1) := p_source_92;
47034 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47038 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
47035 l_rec_acct_attrs.array_char_value(2) := p_source_45;
47036 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
47037 l_rec_acct_attrs.array_char_value(3) := p_source_93;
47039 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
47040 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47041 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
47042 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
47043 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
47044 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
47045 l_rec_acct_attrs.array_char_value(7) := p_source_30;
47046 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
47047 l_rec_acct_attrs.array_num_value(8) := p_source_95;
47048 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
47049 l_rec_acct_attrs.array_char_value(9) := p_source_96;
47050 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
47051 l_rec_acct_attrs.array_date_value(10) := p_source_33;
47052 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
47053 l_rec_acct_attrs.array_num_value(11) := p_source_34;
47054 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
47055 l_rec_acct_attrs.array_char_value(12) := p_source_35;
47056 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
47057 l_rec_acct_attrs.array_num_value(13) := p_source_40;
47058 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
47059 l_rec_acct_attrs.array_num_value(14) := p_source_97;
47060 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
47061 l_rec_acct_attrs.array_num_value(15) := p_source_98;
47062 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
47063 l_rec_acct_attrs.array_char_value(16) := p_source_99;
47064
47065 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47066 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47067
47068 ---------------------------------------------------------------------------------------------------------------
47069 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47070 ---------------------------------------------------------------------------------------------------------------
47071 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47072
47073 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47074 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47075
47076 IF xla_accounting_cache_pkg.GetValueChar
47077 (p_source_code => 'LEDGER_CATEGORY_CODE'
47078 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47079 AND l_bflow_method_code = 'PRIOR_ENTRY'
47080 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47081 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47082 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47083 )
47084 THEN
47085 xla_ae_lines_pkg.BflowUpgEntry
47086 (p_business_method_code => l_bflow_method_code
47087 ,p_business_class_code => l_bflow_class_code
47088 ,p_balance_type => l_balance_type_code);
47089 ELSE
47090 NULL;
47091 -- No business flow processing for business flow method of NONE.
47092 END IF;
47093
47094 --
47095 -- call analytical criteria
47096 --
47097
47098
47099 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
47100 xla_ae_lines_pkg.SetAnalyticalCriteria(
47101 p_analytical_criterion_name => 'Check Id'
47102 , p_analytical_criterion_owner => 'S'
47103 , p_analytical_criterion_code => 'CHECK_ID'
47104 , p_amb_context_code => 'DEFAULT'
47105 , p_balancing_flag => 'N'
47106
47107 , p_analytical_detail_char_1 => NULL
47108 , p_analytical_detail_num_1 => p_source_90
47109 , p_analytical_detail_date_1 => NULL
47110
47111 , p_ae_header_id => l_ae_header_id
47112 )
47113 ;
47114 --
47115
47116 --
47117 -- call description
47118 --
47119 -- No description or it is inherited.
47120 --
47121 -- call ADRs
47122 -- Bug 4922099
47123 --
47124 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47125 (NVL(l_actual_upg_option, 'N') = 'O') OR
47126 (NVL(l_enc_upg_option, 'N') = 'O')
47127 )
47128 THEN
47129 NULL;
47130 --
47131 --
47132
47133 l_ccid := AcctDerRule_20(
47134 p_application_id => p_application_id
47135 , p_ae_header_id => l_ae_header_id
47136 , p_source_22 => p_source_22
47137 , x_transaction_coa_id => l_adr_transaction_coa_id
47138 , x_accounting_coa_id => l_adr_accounting_coa_id
47139 , x_value_type_code => l_adr_value_type_code
47140 , p_side => 'NA'
47141 );
47142
47143 xla_ae_lines_pkg.set_ccid(
47147 , p_accounting_coa_id => l_adr_accounting_coa_id
47144 p_code_combination_id => l_ccid
47145 , p_value_type_code => l_adr_value_type_code
47146 , p_transaction_coa_id => l_adr_transaction_coa_id
47148 , p_adr_code => 'DIST_CCID'
47149 , p_adr_type_code => 'S'
47150 , p_component_type => l_component_type
47151 , p_component_code => l_component_code
47152 , p_component_type_code => l_component_type_code
47153 , p_component_appl_id => l_component_appl_id
47154 , p_amb_context_code => l_amb_context_code
47155 , p_side => 'NA'
47156 );
47157
47158
47159 --
47160 --
47161 END IF;
47162 --
47163 -- Bug 4922099
47164 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47165 (NVL(l_enc_upg_option, 'N') = 'O')
47166 ) AND
47167 (l_bflow_method_code = 'PRIOR_ENTRY')
47168 )
47169 THEN
47170 IF
47171 --
47172 1 = 2
47173 --
47174 THEN
47175 xla_accounting_err_pkg.build_message
47176 (p_appli_s_name => 'XLA'
47177 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47178 ,p_token_1 => 'LINE_NUMBER'
47179 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47180 ,p_token_2 => 'LINE_TYPE_NAME'
47181 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47182 l_component_type
47183 ,l_component_code
47184 ,l_component_type_code
47185 ,l_component_appl_id
47186 ,l_amb_context_code
47187 ,l_entity_code
47188 ,l_event_class_code
47189 )
47190 ,p_token_3 => 'OWNER'
47191 ,p_value_3 => xla_lookups_pkg.get_meaning(
47192 p_lookup_type => 'XLA_OWNER_TYPE'
47193 ,p_lookup_code => l_component_type_code
47194 )
47195 ,p_token_4 => 'PRODUCT_NAME'
47196 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47197 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47198 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47199 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47200 ,p_ae_header_id => NULL
47201 );
47202
47203 IF (C_LEVEL_ERROR>= g_log_level) THEN
47204 trace
47205 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47206 ,p_level => C_LEVEL_ERROR
47207 ,p_module => l_log_module);
47208 END IF;
47209 END IF;
47210 END IF;
47211 --
47212 --
47213 ------------------------------------------------------------------------------------------------
47214 -- 4219869 Business Flow
47215 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47216 -- Prior Entry. Currently, the following code is always generated.
47217 ------------------------------------------------------------------------------------------------
47218 XLA_AE_LINES_PKG.ValidateCurrentLine;
47219
47220 ------------------------------------------------------------------------------------
47221 -- 4219869 Business Flow
47222 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47223 ------------------------------------------------------------------------------------
47224 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47225
47226 ----------------------------------------------------------------------------------
47227 -- 4219869 Business Flow
47228 -- Update journal entry status -- Need to generate this within IF <condition>
47229 ----------------------------------------------------------------------------------
47230 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47234
47231 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47232 ,p_balance_type_code => l_balance_type_code
47233 );
47235 -------------------------------------------------------------------------------------------
47236 -- 4262811 - Generate the Accrual Reversal lines
47237 -------------------------------------------------------------------------------------------
47238 BEGIN
47239 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47240 (g_array_event(p_event_id).array_value_num('header_index'));
47241 IF l_acc_rev_flag IS NULL THEN
47242 l_acc_rev_flag := 'N';
47243 END IF;
47244 EXCEPTION
47245 WHEN OTHERS THEN
47246 l_acc_rev_flag := 'N';
47247 END;
47248 --
47249 IF (l_acc_rev_flag = 'Y') THEN
47250
47251 -- 4645092 ------------------------------------------------------------------------------
47252 -- To allow MPA report to determine if it should generate report process
47253 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47254 ------------------------------------------------------------------------------------------
47255
47256 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47257 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47258 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47259 -- call ADRs
47260 -- Bug 4922099
47261 --
47262 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47263 (NVL(l_actual_upg_option, 'N') = 'O') OR
47264 (NVL(l_enc_upg_option, 'N') = 'O')
47265 )
47266 THEN
47270
47267 NULL;
47268 --
47269 --
47271 l_ccid := AcctDerRule_20(
47272 p_application_id => p_application_id
47273 , p_ae_header_id => l_ae_header_id
47274 , p_source_22 => p_source_22
47275 , x_transaction_coa_id => l_adr_transaction_coa_id
47276 , x_accounting_coa_id => l_adr_accounting_coa_id
47277 , x_value_type_code => l_adr_value_type_code
47278 , p_side => 'NA'
47279 );
47280
47281 xla_ae_lines_pkg.set_ccid(
47282 p_code_combination_id => l_ccid
47283 , p_value_type_code => l_adr_value_type_code
47284 , p_transaction_coa_id => l_adr_transaction_coa_id
47285 , p_accounting_coa_id => l_adr_accounting_coa_id
47286 , p_adr_code => 'DIST_CCID'
47287 , p_adr_type_code => 'S'
47288 , p_component_type => l_component_type
47289 , p_component_code => l_component_code
47290 , p_component_type_code => l_component_type_code
47291 , p_component_appl_id => l_component_appl_id
47292 , p_amb_context_code => l_amb_context_code
47293 , p_side => 'NA'
47294 );
47295
47296
47297 --
47298 --
47299 END IF;
47300
47301 --
47302 -- Update the line information that should be overwritten
47303 --
47304 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47305 p_header_num => 1);
47306 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47307
47308 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47309
47310 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47311 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47312 END IF;
47313
47314 --
47315 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47316 --
47320 ---------------------------------------------------------------------------------------------------
47317 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47318 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47319 ELSE
47321 -- 4262811a Switch Sign
47322 ---------------------------------------------------------------------------------------------------
47323 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47324 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47325 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47326 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47327 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47328 -- 5132302
47329 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47330 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47331
47332 END IF;
47333
47334 -- 4955764
47335 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47336 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47337
47338
47339 XLA_AE_LINES_PKG.ValidateCurrentLine;
47340 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47341
47342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47343 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47344 ,p_balance_type_code => l_balance_type_code);
47345
47346 END IF;
47347
47348 -----------------------------------------------------------------------------------------
47349 -- 4262811 Multiperiod Accounting
47350 -----------------------------------------------------------------------------------------
47351 -- No MPA option is assigned.
47352
47353
47354 END IF;
47355 END IF;
47356 --
47357
47358 --
47359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47360 trace
47361 (p_msg => 'END of AcctLineType_100'
47362 ,p_level => C_LEVEL_PROCEDURE
47363 ,p_module => l_log_module);
47364 END IF;
47365 --
47366 EXCEPTION
47367 WHEN xla_exceptions_pkg.application_exception THEN
47368 RAISE;
47369 WHEN OTHERS THEN
47370 xla_exceptions_pkg.raise_message
47371 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_100');
47372 END AcctLineType_100;
47373 --
47374
47375 ---------------------------------------
47376 --
47377 -- PRIVATE FUNCTION
47378 -- AcctLineType_101
47379 --
47380 ---------------------------------------
47381 PROCEDURE AcctLineType_101 (
47382 p_application_id IN NUMBER
47383 ,p_event_id IN NUMBER
47384 ,p_calculate_acctd_flag IN VARCHAR2
47385 ,p_calculate_g_l_flag IN VARCHAR2
47386 ,p_actual_flag IN OUT VARCHAR2
47387 ,p_balance_type_code OUT VARCHAR2
47388 ,p_gain_or_loss_ref OUT VARCHAR2
47389
47390 --Distribution GL Account
47391 , p_source_22 IN NUMBER
47392 --Distribution Source Type
47393 , p_source_27 IN VARCHAR2
47394 --Receivable Activity Type
47395 , p_source_28 IN VARCHAR2
47396 --Distribution Line Identifier
47397 , p_source_29 IN NUMBER
47398 --Distribution Type
47399 , p_source_30 IN VARCHAR2
47400 --Exchange Date
47401 , p_source_33 IN DATE
47402 --Exchange Rate
47403 , p_source_34 IN NUMBER
47404 --Accounting Amount
47405 , p_source_40 IN NUMBER
47406 --Transaction Distribution Identifier
47407 , p_source_44 IN NUMBER
47408 --Transaction Distribution Type
47409 , p_source_45 IN VARCHAR2
47410 --Distribution Multi Fund Additional Entry
47411 , p_source_88 IN VARCHAR2
47412 --Cash Receipt Identifier
47413 , p_source_90 IN NUMBER
47414 --Receipt Applied To Application Identifier
47415 , p_source_92 IN NUMBER
47416 --Transaction Entity Code
47417 , p_source_93 IN VARCHAR2
47418 --Transaction Identifier
47419 , p_source_94 IN NUMBER
47420 --DIST_ENT_AMT_FROM
47421 , p_source_95 IN NUMBER
47425 , p_source_97 IN NUMBER
47422 --Applying Document Currency Code
47423 , p_source_96 IN VARCHAR2
47424 --Distribution Party Identifier
47426 --Distribution Party Site Id
47427 , p_source_98 IN NUMBER
47428 --Distribution Party Type
47432 )
47429 , p_source_99 IN VARCHAR2
47430 --Applied To Document Exchange Rate Type
47431 , p_source_100 IN VARCHAR2
47433 IS
47434
47435 l_component_type VARCHAR2(80);
47436 l_component_code VARCHAR2(30);
47437 l_component_type_code VARCHAR2(1);
47438 l_component_appl_id INTEGER;
47439 l_amb_context_code VARCHAR2(30);
47440 l_entity_code VARCHAR2(30);
47441 l_event_class_code VARCHAR2(30);
47442 l_ae_header_id NUMBER;
47443 l_event_type_code VARCHAR2(30);
47444 l_line_definition_code VARCHAR2(30);
47445 l_line_definition_owner_code VARCHAR2(1);
47446 --
47447 -- adr variables
47448 l_segment VARCHAR2(30);
47449 l_ccid NUMBER;
47450 l_adr_transaction_coa_id NUMBER;
47451 l_adr_accounting_coa_id NUMBER;
47452 l_adr_flexfield_segment_code VARCHAR2(30);
47453 l_adr_flex_value_set_id NUMBER;
47454 l_adr_value_type_code VARCHAR2(30);
47455 l_adr_value_combination_id NUMBER;
47456 l_adr_value_segment_code VARCHAR2(30);
47457
47458 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47459 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47460 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47461 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47462
47463 -- 4262811 Variables ------------------------------------------------------------------------------------------
47464 l_entered_amt_idx NUMBER;
47465 l_accted_amt_idx NUMBER;
47466 l_acc_rev_flag VARCHAR2(1);
47467 l_accrual_line_num NUMBER;
47468 l_tmp_amt NUMBER;
47469 l_acc_rev_natural_side_code VARCHAR2(1);
47470
47471 l_num_entries NUMBER;
47472 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47473 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47474 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47475 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47476 l_recog_line_1 NUMBER;
47477 l_recog_line_2 NUMBER;
47478
47479 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47480 l_bflow_applied_to_amt NUMBER; -- 5132302
47481 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47482
47483 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47484
47485 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47486 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47487
47488 ---------------------------------------------------------------------------------------------------------------
47489
47490
47491 --
47492 -- bulk performance
47493 --
47494 l_balance_type_code VARCHAR2(1);
47495 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47496 l_log_module VARCHAR2(240);
47497
47498 --
47499 -- Upgrade strategy
47500 --
47501 l_actual_upg_option VARCHAR2(1);
47502 l_enc_upg_option VARCHAR2(1);
47503
47504 --
47505 BEGIN
47506 --
47507 IF g_log_enabled THEN
47508 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
47509 END IF;
47510 --
47511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47512
47513 trace
47514 (p_msg => 'BEGIN of AcctLineType_101'
47515 ,p_level => C_LEVEL_PROCEDURE
47516 ,p_module => l_log_module);
47517
47518 END IF;
47519 --
47520 l_component_type := 'AMB_JLT';
47521 l_component_code := 'RCT_CC_CHARGEBACK';
47522 l_component_type_code := 'S';
47523 l_component_appl_id := 222;
47524 l_amb_context_code := 'DEFAULT';
47525 l_entity_code := 'RECEIPTS';
47526 l_event_class_code := 'RECEIPT';
47527 l_event_type_code := 'RECEIPT_ALL';
47528 l_line_definition_owner_code := 'S';
47529 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
47530 --
47531 l_balance_type_code := 'A';
47532 l_segment := NULL;
47533 l_ccid := NULL;
47534 l_adr_transaction_coa_id := NULL;
47535 l_adr_accounting_coa_id := NULL;
47536 l_adr_flexfield_segment_code := NULL;
47537 l_adr_flex_value_set_id := NULL;
47538 l_adr_value_type_code := NULL;
47539 l_adr_value_combination_id := NULL;
47540 l_adr_value_segment_code := NULL;
47541
47542 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47543 l_bflow_class_code := ''; -- 4219869 Business Flow
47544 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47545 l_budgetary_control_flag := 'N';
47546
47547 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47548 l_bflow_applied_to_amt := NULL; -- 5132302
47549 l_entered_amt_idx := NULL; -- 4262811
47550 l_accted_amt_idx := NULL; -- 4262811
47551 l_acc_rev_flag := NULL; -- 4262811
47552 l_accrual_line_num := NULL; -- 4262811
47553 l_tmp_amt := NULL; -- 4262811
47554 --
47555
47556 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47560 NVL(p_source_28,'
47557 l_balance_type_code <> 'B' THEN
47558 IF NVL(p_source_27,'
47559 ') = 'ACTIVITY' AND
47561 ') = 'CC_CHARGEBACK' AND
47562 NVL(p_source_88,'
47563 ') = 'N'
47564 THEN
47565
47566 --
47567 XLA_AE_LINES_PKG.SetNewLine;
47568
47569 p_balance_type_code := l_balance_type_code;
47570 -- set the flag so later we will know whether the gain loss line needs to be created
47571
47572 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47573 p_actual_flag :='A';
47574 END IF;
47575
47576 --
47577 -- bulk performance
47578 --
47579 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47580 p_header_num => 0); -- 4262811
47581 --
47585 p_natural_side_code => 'C'
47582 -- set accounting line options
47583 --
47584 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47586 , p_gain_or_loss_flag => 'N'
47587 , p_gl_transfer_mode_code => 'S'
47588 , p_acct_entry_type_code => 'A'
47589 , p_switch_side_flag => 'Y'
47590 , p_merge_duplicate_code => 'A'
47591 );
47592 --
47593 l_acc_rev_natural_side_code := 'D'; -- 4262811
47594 --
47595 --
47596 -- set accounting line type info
47597 --
47598 xla_ae_lines_pkg.SetAcctLineType
47599 (p_component_type => l_component_type
47600 ,p_event_type_code => l_event_type_code
47601 ,p_line_definition_owner_code => l_line_definition_owner_code
47602 ,p_line_definition_code => l_line_definition_code
47603 ,p_accounting_line_code => l_component_code
47604 ,p_accounting_line_type_code => l_component_type_code
47605 ,p_accounting_line_appl_id => l_component_appl_id
47606 ,p_amb_context_code => l_amb_context_code
47607 ,p_entity_code => l_entity_code
47608 ,p_event_class_code => l_event_class_code);
47609 --
47610 -- set accounting class
47611 --
47612 xla_ae_lines_pkg.SetAcctClass(
47613 p_accounting_class_code => 'CLAIM'
47614 , p_ae_header_id => l_ae_header_id
47615 );
47616
47617 --
47618 -- set rounding class
47619 --
47620 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47621 'RECEIVABLE';
47622
47623 --
47624 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47625 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47626 --
47627 -- bulk performance
47628 --
47629 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47630
47631 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47632 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47633
47634 -- 4955764
47635 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47636 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47637
47638 -- 4458381 Public Sector Enh
47639
47640 --
47641 -- set accounting attributes for the line type
47642 --
47643 l_entered_amt_idx := 8;
47644 l_accted_amt_idx := 13;
47645 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47646 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
47647 l_rec_acct_attrs.array_num_value(1) := p_source_92;
47648 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47649 l_rec_acct_attrs.array_char_value(2) := p_source_45;
47650 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
47651 l_rec_acct_attrs.array_char_value(3) := p_source_93;
47652 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
47653 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
47654 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47655 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
47656 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
47657 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
47658 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
47659 l_rec_acct_attrs.array_char_value(7) := p_source_30;
47660 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
47661 l_rec_acct_attrs.array_num_value(8) := p_source_95;
47662 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
47663 l_rec_acct_attrs.array_char_value(9) := p_source_96;
47664 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
47665 l_rec_acct_attrs.array_date_value(10) := p_source_33;
47666 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
47667 l_rec_acct_attrs.array_num_value(11) := p_source_34;
47668 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
47669 l_rec_acct_attrs.array_char_value(12) := p_source_100;
47670 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
47671 l_rec_acct_attrs.array_num_value(13) := p_source_40;
47672 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
47673 l_rec_acct_attrs.array_num_value(14) := p_source_97;
47674 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
47675 l_rec_acct_attrs.array_num_value(15) := p_source_98;
47676 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
47677 l_rec_acct_attrs.array_char_value(16) := p_source_99;
47678
47679 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47680 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47681
47682 ---------------------------------------------------------------------------------------------------------------
47683 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47684 ---------------------------------------------------------------------------------------------------------------
47685 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47686
47687 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47688 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47689
47690 IF xla_accounting_cache_pkg.GetValueChar
47694 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47691 (p_source_code => 'LEDGER_CATEGORY_CODE'
47692 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47693 AND l_bflow_method_code = 'PRIOR_ENTRY'
47695 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47696 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47697 )
47698 THEN
47699 xla_ae_lines_pkg.BflowUpgEntry
47700 (p_business_method_code => l_bflow_method_code
47701 ,p_business_class_code => l_bflow_class_code
47702 ,p_balance_type => l_balance_type_code);
47703 ELSE
47704 NULL;
47705 -- No business flow processing for business flow method of NONE.
47706 END IF;
47707
47708 --
47709 -- call analytical criteria
47710 --
47711
47712
47713 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
47714 xla_ae_lines_pkg.SetAnalyticalCriteria(
47715 p_analytical_criterion_name => 'Check Id'
47716 , p_analytical_criterion_owner => 'S'
47717 , p_analytical_criterion_code => 'CHECK_ID'
47718 , p_amb_context_code => 'DEFAULT'
47719 , p_balancing_flag => 'N'
47720
47721 , p_analytical_detail_char_1 => NULL
47722 , p_analytical_detail_num_1 => p_source_90
47723 , p_analytical_detail_date_1 => NULL
47724
47725 , p_ae_header_id => l_ae_header_id
47726 )
47727 ;
47728 --
47729
47730 --
47731 -- call description
47732 --
47733 -- No description or it is inherited.
47734 --
47735 -- call ADRs
47736 -- Bug 4922099
47737 --
47738 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47739 (NVL(l_actual_upg_option, 'N') = 'O') OR
47740 (NVL(l_enc_upg_option, 'N') = 'O')
47741 )
47742 THEN
47743 NULL;
47744 --
47745 --
47746
47747 l_ccid := AcctDerRule_20(
47748 p_application_id => p_application_id
47749 , p_ae_header_id => l_ae_header_id
47750 , p_source_22 => p_source_22
47751 , x_transaction_coa_id => l_adr_transaction_coa_id
47752 , x_accounting_coa_id => l_adr_accounting_coa_id
47753 , x_value_type_code => l_adr_value_type_code
47754 , p_side => 'NA'
47755 );
47756
47757 xla_ae_lines_pkg.set_ccid(
47758 p_code_combination_id => l_ccid
47759 , p_value_type_code => l_adr_value_type_code
47760 , p_transaction_coa_id => l_adr_transaction_coa_id
47761 , p_accounting_coa_id => l_adr_accounting_coa_id
47762 , p_adr_code => 'DIST_CCID'
47763 , p_adr_type_code => 'S'
47764 , p_component_type => l_component_type
47765 , p_component_code => l_component_code
47766 , p_component_type_code => l_component_type_code
47767 , p_component_appl_id => l_component_appl_id
47768 , p_amb_context_code => l_amb_context_code
47769 , p_side => 'NA'
47770 );
47771
47772
47773 --
47774 --
47775 END IF;
47776 --
47777 -- Bug 4922099
47778 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47779 (NVL(l_enc_upg_option, 'N') = 'O')
47780 ) AND
47781 (l_bflow_method_code = 'PRIOR_ENTRY')
47782 )
47783 THEN
47784 IF
47785 --
47786 1 = 2
47787 --
47788 THEN
47789 xla_accounting_err_pkg.build_message
47790 (p_appli_s_name => 'XLA'
47791 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47792 ,p_token_1 => 'LINE_NUMBER'
47793 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47794 ,p_token_2 => 'LINE_TYPE_NAME'
47795 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47796 l_component_type
47797 ,l_component_code
47798 ,l_component_type_code
47799 ,l_component_appl_id
47800 ,l_amb_context_code
47801 ,l_entity_code
47802 ,l_event_class_code
47803 )
47804 ,p_token_3 => 'OWNER'
47805 ,p_value_3 => xla_lookups_pkg.get_meaning(
47806 p_lookup_type => 'XLA_OWNER_TYPE'
47807 ,p_lookup_code => l_component_type_code
47808 )
47809 ,p_token_4 => 'PRODUCT_NAME'
47810 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47811 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47815 );
47812 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47813 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47814 ,p_ae_header_id => NULL
47816
47817 IF (C_LEVEL_ERROR>= g_log_level) THEN
47818 trace
47819 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47820 ,p_level => C_LEVEL_ERROR
47821 ,p_module => l_log_module);
47822 END IF;
47823 END IF;
47824 END IF;
47825 --
47826 --
47827 ------------------------------------------------------------------------------------------------
47828 -- 4219869 Business Flow
47829 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47830 -- Prior Entry. Currently, the following code is always generated.
47831 ------------------------------------------------------------------------------------------------
47832 XLA_AE_LINES_PKG.ValidateCurrentLine;
47833
47834 ------------------------------------------------------------------------------------
47835 -- 4219869 Business Flow
47836 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47837 ------------------------------------------------------------------------------------
47838 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47839
47840 ----------------------------------------------------------------------------------
47841 -- 4219869 Business Flow
47842 -- Update journal entry status -- Need to generate this within IF <condition>
47843 ----------------------------------------------------------------------------------
47844 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47848
47845 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47846 ,p_balance_type_code => l_balance_type_code
47847 );
47849 -------------------------------------------------------------------------------------------
47850 -- 4262811 - Generate the Accrual Reversal lines
47851 -------------------------------------------------------------------------------------------
47852 BEGIN
47853 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47854 (g_array_event(p_event_id).array_value_num('header_index'));
47855 IF l_acc_rev_flag IS NULL THEN
47856 l_acc_rev_flag := 'N';
47857 END IF;
47858 EXCEPTION
47859 WHEN OTHERS THEN
47860 l_acc_rev_flag := 'N';
47861 END;
47862 --
47863 IF (l_acc_rev_flag = 'Y') THEN
47864
47865 -- 4645092 ------------------------------------------------------------------------------
47866 -- To allow MPA report to determine if it should generate report process
47867 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47868 ------------------------------------------------------------------------------------------
47869
47870 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47871 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47872 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47873 -- call ADRs
47874 -- Bug 4922099
47875 --
47876 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47877 (NVL(l_actual_upg_option, 'N') = 'O') OR
47878 (NVL(l_enc_upg_option, 'N') = 'O')
47879 )
47880 THEN
47881 NULL;
47882 --
47883 --
47884
47885 l_ccid := AcctDerRule_20(
47886 p_application_id => p_application_id
47887 , p_ae_header_id => l_ae_header_id
47888 , p_source_22 => p_source_22
47889 , x_transaction_coa_id => l_adr_transaction_coa_id
47890 , x_accounting_coa_id => l_adr_accounting_coa_id
47891 , x_value_type_code => l_adr_value_type_code
47892 , p_side => 'NA'
47893 );
47894
47895 xla_ae_lines_pkg.set_ccid(
47896 p_code_combination_id => l_ccid
47897 , p_value_type_code => l_adr_value_type_code
47898 , p_transaction_coa_id => l_adr_transaction_coa_id
47899 , p_accounting_coa_id => l_adr_accounting_coa_id
47900 , p_adr_code => 'DIST_CCID'
47901 , p_adr_type_code => 'S'
47902 , p_component_type => l_component_type
47903 , p_component_code => l_component_code
47904 , p_component_type_code => l_component_type_code
47905 , p_component_appl_id => l_component_appl_id
47909
47906 , p_amb_context_code => l_amb_context_code
47907 , p_side => 'NA'
47908 );
47910
47911 --
47912 --
47913 END IF;
47914
47915 --
47916 -- Update the line information that should be overwritten
47917 --
47918 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47919 p_header_num => 1);
47920 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47921
47922 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47923
47924 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47925 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47926 END IF;
47927
47928 --
47929 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47930 --
47931 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47932 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47933 ELSE
47934 ---------------------------------------------------------------------------------------------------
47935 -- 4262811a Switch Sign
47936 ---------------------------------------------------------------------------------------------------
47937 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47939 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47941 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47942 -- 5132302
47943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47944 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47945
47946 END IF;
47947
47948 -- 4955764
47949 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47950 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47951
47952
47953 XLA_AE_LINES_PKG.ValidateCurrentLine;
47954 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47955
47956 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47957 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47958 ,p_balance_type_code => l_balance_type_code);
47959
47960 END IF;
47961
47962 -----------------------------------------------------------------------------------------
47963 -- 4262811 Multiperiod Accounting
47964 -----------------------------------------------------------------------------------------
47965 -- No MPA option is assigned.
47966
47967
47968 END IF;
47969 END IF;
47970 --
47971
47972 --
47973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47974 trace
47975 (p_msg => 'END of AcctLineType_101'
47976 ,p_level => C_LEVEL_PROCEDURE
47977 ,p_module => l_log_module);
47978 END IF;
47979 --
47980 EXCEPTION
47981 WHEN xla_exceptions_pkg.application_exception THEN
47982 RAISE;
47983 WHEN OTHERS THEN
47984 xla_exceptions_pkg.raise_message
47985 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_101');
47986 END AcctLineType_101;
47987 --
47988
47989 ---------------------------------------
47990 --
47994 ---------------------------------------
47991 -- PRIVATE FUNCTION
47992 -- AcctLineType_102
47993 --
47995 PROCEDURE AcctLineType_102 (
47996 p_application_id IN NUMBER
47997 ,p_event_id IN NUMBER
47998 ,p_calculate_acctd_flag IN VARCHAR2
47999 ,p_calculate_g_l_flag IN VARCHAR2
48000 ,p_actual_flag IN OUT VARCHAR2
48001 ,p_balance_type_code OUT VARCHAR2
48002 ,p_gain_or_loss_ref OUT VARCHAR2
48003
48004 --Distribution GL Account
48005 , p_source_22 IN NUMBER
48006 --Distribution Source Type
48007 , p_source_27 IN VARCHAR2
48008 --Receivable Activity Type
48012 --Distribution Type
48009 , p_source_28 IN VARCHAR2
48010 --Distribution Line Identifier
48011 , p_source_29 IN NUMBER
48013 , p_source_30 IN VARCHAR2
48014 --Exchange Date
48015 , p_source_33 IN DATE
48016 --Exchange Rate
48017 , p_source_34 IN NUMBER
48018 --Accounting Amount
48019 , p_source_40 IN NUMBER
48020 --Transaction Distribution Identifier
48021 , p_source_44 IN NUMBER
48022 --Transaction Distribution Type
48023 , p_source_45 IN VARCHAR2
48024 --Distribution Multi Fund Additional Entry
48025 , p_source_88 IN VARCHAR2
48026 --Cash Receipt Identifier
48027 , p_source_90 IN NUMBER
48028 --Receipt Applied To Application Identifier
48029 , p_source_92 IN NUMBER
48030 --Transaction Entity Code
48031 , p_source_93 IN VARCHAR2
48032 --Transaction Identifier
48033 , p_source_94 IN NUMBER
48034 --DIST_ENT_AMT_FROM
48035 , p_source_95 IN NUMBER
48036 --Applying Document Currency Code
48037 , p_source_96 IN VARCHAR2
48038 --Distribution Party Identifier
48039 , p_source_97 IN NUMBER
48040 --Distribution Party Site Id
48041 , p_source_98 IN NUMBER
48042 --Distribution Party Type
48043 , p_source_99 IN VARCHAR2
48044 --Applied To Document Exchange Rate Type
48045 , p_source_100 IN VARCHAR2
48046 )
48047 IS
48048
48049 l_component_type VARCHAR2(80);
48050 l_component_code VARCHAR2(30);
48051 l_component_type_code VARCHAR2(1);
48052 l_component_appl_id INTEGER;
48053 l_amb_context_code VARCHAR2(30);
48054 l_entity_code VARCHAR2(30);
48055 l_event_class_code VARCHAR2(30);
48056 l_ae_header_id NUMBER;
48057 l_event_type_code VARCHAR2(30);
48058 l_line_definition_code VARCHAR2(30);
48059 l_line_definition_owner_code VARCHAR2(1);
48060 --
48061 -- adr variables
48062 l_segment VARCHAR2(30);
48063 l_ccid NUMBER;
48064 l_adr_transaction_coa_id NUMBER;
48065 l_adr_accounting_coa_id NUMBER;
48066 l_adr_flexfield_segment_code VARCHAR2(30);
48067 l_adr_flex_value_set_id NUMBER;
48068 l_adr_value_type_code VARCHAR2(30);
48069 l_adr_value_combination_id NUMBER;
48070 l_adr_value_segment_code VARCHAR2(30);
48071
48072 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48073 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48074 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48075 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48076
48077 -- 4262811 Variables ------------------------------------------------------------------------------------------
48078 l_entered_amt_idx NUMBER;
48079 l_accted_amt_idx NUMBER;
48080 l_acc_rev_flag VARCHAR2(1);
48081 l_accrual_line_num NUMBER;
48082 l_tmp_amt NUMBER;
48083 l_acc_rev_natural_side_code VARCHAR2(1);
48084
48085 l_num_entries NUMBER;
48086 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48087 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48088 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48089 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48090 l_recog_line_1 NUMBER;
48091 l_recog_line_2 NUMBER;
48092
48093 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48094 l_bflow_applied_to_amt NUMBER; -- 5132302
48095 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48096
48097 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48098
48099 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48100 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48101
48102 ---------------------------------------------------------------------------------------------------------------
48103
48104
48105 --
48106 -- bulk performance
48107 --
48108 l_balance_type_code VARCHAR2(1);
48109 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48110 l_log_module VARCHAR2(240);
48111
48112 --
48113 -- Upgrade strategy
48114 --
48115 l_actual_upg_option VARCHAR2(1);
48116 l_enc_upg_option VARCHAR2(1);
48117
48118 --
48119 BEGIN
48120 --
48121 IF g_log_enabled THEN
48122 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
48123 END IF;
48124 --
48125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48126
48127 trace
48128 (p_msg => 'BEGIN of AcctLineType_102'
48129 ,p_level => C_LEVEL_PROCEDURE
48130 ,p_module => l_log_module);
48131
48132 END IF;
48133 --
48134 l_component_type := 'AMB_JLT';
48135 l_component_code := 'RCT_CHARGEBACK';
48136 l_component_type_code := 'S';
48137 l_component_appl_id := 222;
48138 l_amb_context_code := 'DEFAULT';
48139 l_entity_code := 'RECEIPTS';
48140 l_event_class_code := 'RECEIPT';
48141 l_event_type_code := 'RECEIPT_ALL';
48142 l_line_definition_owner_code := 'S';
48143 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
48147 l_ccid := NULL;
48144 --
48145 l_balance_type_code := 'A';
48146 l_segment := NULL;
48148 l_adr_transaction_coa_id := NULL;
48149 l_adr_accounting_coa_id := NULL;
48150 l_adr_flexfield_segment_code := NULL;
48151 l_adr_flex_value_set_id := NULL;
48152 l_adr_value_type_code := NULL;
48153 l_adr_value_combination_id := NULL;
48154 l_adr_value_segment_code := NULL;
48155
48156 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48157 l_bflow_class_code := ''; -- 4219869 Business Flow
48158 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48159 l_budgetary_control_flag := 'N';
48160
48161 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48162 l_bflow_applied_to_amt := NULL; -- 5132302
48163 l_entered_amt_idx := NULL; -- 4262811
48164 l_accted_amt_idx := NULL; -- 4262811
48165 l_acc_rev_flag := NULL; -- 4262811
48166 l_accrual_line_num := NULL; -- 4262811
48167 l_tmp_amt := NULL; -- 4262811
48168 --
48169
48170 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48171 l_balance_type_code <> 'B' THEN
48172 IF NVL(p_source_27,'
48173 ') = 'ACTIVITY' AND
48174 NVL(p_source_28,'
48175 ') = 'ADJUST' AND
48176 NVL(p_source_88,'
48177 ') = 'N'
48178 THEN
48179
48180 --
48181 XLA_AE_LINES_PKG.SetNewLine;
48182
48183 p_balance_type_code := l_balance_type_code;
48184 -- set the flag so later we will know whether the gain loss line needs to be created
48185
48186 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48187 p_actual_flag :='A';
48188 END IF;
48189
48190 --
48191 -- bulk performance
48192 --
48193 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48194 p_header_num => 0); -- 4262811
48195 --
48196 -- set accounting line options
48197 --
48198 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48199 p_natural_side_code => 'C'
48200 , p_gain_or_loss_flag => 'N'
48201 , p_gl_transfer_mode_code => 'S'
48202 , p_acct_entry_type_code => 'A'
48203 , p_switch_side_flag => 'Y'
48204 , p_merge_duplicate_code => 'A'
48205 );
48206 --
48207 l_acc_rev_natural_side_code := 'D'; -- 4262811
48208 --
48209 --
48210 -- set accounting line type info
48211 --
48212 xla_ae_lines_pkg.SetAcctLineType
48213 (p_component_type => l_component_type
48214 ,p_event_type_code => l_event_type_code
48215 ,p_line_definition_owner_code => l_line_definition_owner_code
48216 ,p_line_definition_code => l_line_definition_code
48217 ,p_accounting_line_code => l_component_code
48218 ,p_accounting_line_type_code => l_component_type_code
48219 ,p_accounting_line_appl_id => l_component_appl_id
48220 ,p_amb_context_code => l_amb_context_code
48221 ,p_entity_code => l_entity_code
48222 ,p_event_class_code => l_event_class_code);
48223 --
48224 -- set accounting class
48225 --
48226 xla_ae_lines_pkg.SetAcctClass(
48227 p_accounting_class_code => 'CLAIM'
48228 , p_ae_header_id => l_ae_header_id
48229 );
48230
48231 --
48232 -- set rounding class
48233 --
48234 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48235 'RECEIVABLE';
48236
48237 --
48238 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48239 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48240 --
48241 -- bulk performance
48242 --
48243 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48244
48245 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48246 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48247
48248 -- 4955764
48249 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48250 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48251
48252 -- 4458381 Public Sector Enh
48253
48254 --
48255 -- set accounting attributes for the line type
48256 --
48257 l_entered_amt_idx := 8;
48258 l_accted_amt_idx := 13;
48259 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48260 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
48261 l_rec_acct_attrs.array_num_value(1) := p_source_92;
48262 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48263 l_rec_acct_attrs.array_char_value(2) := p_source_45;
48264 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
48265 l_rec_acct_attrs.array_char_value(3) := p_source_93;
48266 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
48267 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
48268 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48269 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
48270 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
48271 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
48272 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
48276 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
48273 l_rec_acct_attrs.array_char_value(7) := p_source_30;
48274 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
48275 l_rec_acct_attrs.array_num_value(8) := p_source_95;
48277 l_rec_acct_attrs.array_char_value(9) := p_source_96;
48278 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
48279 l_rec_acct_attrs.array_date_value(10) := p_source_33;
48280 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
48281 l_rec_acct_attrs.array_num_value(11) := p_source_34;
48282 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
48283 l_rec_acct_attrs.array_char_value(12) := p_source_100;
48284 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
48285 l_rec_acct_attrs.array_num_value(13) := p_source_40;
48286 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
48287 l_rec_acct_attrs.array_num_value(14) := p_source_97;
48288 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
48289 l_rec_acct_attrs.array_num_value(15) := p_source_98;
48290 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
48291 l_rec_acct_attrs.array_char_value(16) := p_source_99;
48292
48293 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48294 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48295
48299 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48296 ---------------------------------------------------------------------------------------------------------------
48297 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48298 ---------------------------------------------------------------------------------------------------------------
48300
48301 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48302 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48303
48304 IF xla_accounting_cache_pkg.GetValueChar
48305 (p_source_code => 'LEDGER_CATEGORY_CODE'
48306 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48307 AND l_bflow_method_code = 'PRIOR_ENTRY'
48308 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48309 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48310 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48311 )
48312 THEN
48313 xla_ae_lines_pkg.BflowUpgEntry
48314 (p_business_method_code => l_bflow_method_code
48315 ,p_business_class_code => l_bflow_class_code
48316 ,p_balance_type => l_balance_type_code);
48317 ELSE
48318 NULL;
48319 -- No business flow processing for business flow method of NONE.
48320 END IF;
48321
48322 --
48323 -- call analytical criteria
48324 --
48325
48326
48327 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
48328 xla_ae_lines_pkg.SetAnalyticalCriteria(
48329 p_analytical_criterion_name => 'Check Id'
48330 , p_analytical_criterion_owner => 'S'
48331 , p_analytical_criterion_code => 'CHECK_ID'
48332 , p_amb_context_code => 'DEFAULT'
48333 , p_balancing_flag => 'N'
48334
48335 , p_analytical_detail_char_1 => NULL
48336 , p_analytical_detail_num_1 => p_source_90
48337 , p_analytical_detail_date_1 => NULL
48338
48339 , p_ae_header_id => l_ae_header_id
48340 )
48341 ;
48342 --
48343
48344 --
48345 -- call description
48346 --
48347 -- No description or it is inherited.
48348 --
48349 -- call ADRs
48350 -- Bug 4922099
48351 --
48352 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48353 (NVL(l_actual_upg_option, 'N') = 'O') OR
48354 (NVL(l_enc_upg_option, 'N') = 'O')
48355 )
48356 THEN
48357 NULL;
48358 --
48359 --
48360
48361 l_ccid := AcctDerRule_20(
48362 p_application_id => p_application_id
48363 , p_ae_header_id => l_ae_header_id
48364 , p_source_22 => p_source_22
48365 , x_transaction_coa_id => l_adr_transaction_coa_id
48366 , x_accounting_coa_id => l_adr_accounting_coa_id
48367 , x_value_type_code => l_adr_value_type_code
48368 , p_side => 'NA'
48369 );
48370
48371 xla_ae_lines_pkg.set_ccid(
48372 p_code_combination_id => l_ccid
48373 , p_value_type_code => l_adr_value_type_code
48374 , p_transaction_coa_id => l_adr_transaction_coa_id
48375 , p_accounting_coa_id => l_adr_accounting_coa_id
48376 , p_adr_code => 'DIST_CCID'
48377 , p_adr_type_code => 'S'
48378 , p_component_type => l_component_type
48379 , p_component_code => l_component_code
48380 , p_component_type_code => l_component_type_code
48381 , p_component_appl_id => l_component_appl_id
48382 , p_amb_context_code => l_amb_context_code
48383 , p_side => 'NA'
48384 );
48385
48386
48387 --
48388 --
48389 END IF;
48390 --
48391 -- Bug 4922099
48392 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48393 (NVL(l_enc_upg_option, 'N') = 'O')
48394 ) AND
48395 (l_bflow_method_code = 'PRIOR_ENTRY')
48396 )
48397 THEN
48398 IF
48399 --
48400 1 = 2
48401 --
48402 THEN
48403 xla_accounting_err_pkg.build_message
48404 (p_appli_s_name => 'XLA'
48405 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48406 ,p_token_1 => 'LINE_NUMBER'
48407 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48408 ,p_token_2 => 'LINE_TYPE_NAME'
48409 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48410 l_component_type
48414 ,l_amb_context_code
48411 ,l_component_code
48412 ,l_component_type_code
48413 ,l_component_appl_id
48415 ,l_entity_code
48416 ,l_event_class_code
48417 )
48418 ,p_token_3 => 'OWNER'
48419 ,p_value_3 => xla_lookups_pkg.get_meaning(
48420 p_lookup_type => 'XLA_OWNER_TYPE'
48421 ,p_lookup_code => l_component_type_code
48422 )
48423 ,p_token_4 => 'PRODUCT_NAME'
48424 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48425 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48426 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48427 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48428 ,p_ae_header_id => NULL
48429 );
48430
48431 IF (C_LEVEL_ERROR>= g_log_level) THEN
48432 trace
48433 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48434 ,p_level => C_LEVEL_ERROR
48435 ,p_module => l_log_module);
48436 END IF;
48437 END IF;
48438 END IF;
48439 --
48440 --
48441 ------------------------------------------------------------------------------------------------
48442 -- 4219869 Business Flow
48443 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48444 -- Prior Entry. Currently, the following code is always generated.
48445 ------------------------------------------------------------------------------------------------
48446 XLA_AE_LINES_PKG.ValidateCurrentLine;
48447
48448 ------------------------------------------------------------------------------------
48449 -- 4219869 Business Flow
48450 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48451 ------------------------------------------------------------------------------------
48452 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48453
48454 ----------------------------------------------------------------------------------
48455 -- 4219869 Business Flow
48456 -- Update journal entry status -- Need to generate this within IF <condition>
48457 ----------------------------------------------------------------------------------
48458 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48459 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48460 ,p_balance_type_code => l_balance_type_code
48461 );
48462
48463 -------------------------------------------------------------------------------------------
48464 -- 4262811 - Generate the Accrual Reversal lines
48465 -------------------------------------------------------------------------------------------
48466 BEGIN
48467 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48468 (g_array_event(p_event_id).array_value_num('header_index'));
48469 IF l_acc_rev_flag IS NULL THEN
48470 l_acc_rev_flag := 'N';
48471 END IF;
48472 EXCEPTION
48473 WHEN OTHERS THEN
48474 l_acc_rev_flag := 'N';
48475 END;
48476 --
48477 IF (l_acc_rev_flag = 'Y') THEN
48478
48479 -- 4645092 ------------------------------------------------------------------------------
48480 -- To allow MPA report to determine if it should generate report process
48481 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48482 ------------------------------------------------------------------------------------------
48483
48484 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48485 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48486 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
48487 -- call ADRs
48488 -- Bug 4922099
48489 --
48490 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48491 (NVL(l_actual_upg_option, 'N') = 'O') OR
48492 (NVL(l_enc_upg_option, 'N') = 'O')
48493 )
48494 THEN
48495 NULL;
48496 --
48497 --
48498
48499 l_ccid := AcctDerRule_20(
48500 p_application_id => p_application_id
48501 , p_ae_header_id => l_ae_header_id
48502 , p_source_22 => p_source_22
48503 , x_transaction_coa_id => l_adr_transaction_coa_id
48504 , x_accounting_coa_id => l_adr_accounting_coa_id
48505 , x_value_type_code => l_adr_value_type_code
48506 , p_side => 'NA'
48507 );
48508
48509 xla_ae_lines_pkg.set_ccid(
48510 p_code_combination_id => l_ccid
48511 , p_value_type_code => l_adr_value_type_code
48512 , p_transaction_coa_id => l_adr_transaction_coa_id
48513 , p_accounting_coa_id => l_adr_accounting_coa_id
48517 , p_component_code => l_component_code
48514 , p_adr_code => 'DIST_CCID'
48515 , p_adr_type_code => 'S'
48516 , p_component_type => l_component_type
48518 , p_component_type_code => l_component_type_code
48519 , p_component_appl_id => l_component_appl_id
48520 , p_amb_context_code => l_amb_context_code
48521 , p_side => 'NA'
48522 );
48523
48524
48525 --
48526 --
48527 END IF;
48528
48529 --
48530 -- Update the line information that should be overwritten
48531 --
48532 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48533 p_header_num => 1);
48534 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48535
48536 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48537
48538 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48539 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48540 END IF;
48541
48542 --
48543 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48544 --
48545 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48546 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48547 ELSE
48548 ---------------------------------------------------------------------------------------------------
48549 -- 4262811a Switch Sign
48550 ---------------------------------------------------------------------------------------------------
48551 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48552 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48553 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48554 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48555 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48556 -- 5132302
48557 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48558 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48559
48560 END IF;
48561
48562 -- 4955764
48563 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48564 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48565
48566
48567 XLA_AE_LINES_PKG.ValidateCurrentLine;
48568 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48569
48570 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48571 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48572 ,p_balance_type_code => l_balance_type_code);
48573
48574 END IF;
48575
48576 -----------------------------------------------------------------------------------------
48577 -- 4262811 Multiperiod Accounting
48578 -----------------------------------------------------------------------------------------
48579 -- No MPA option is assigned.
48580
48581
48582 END IF;
48583 END IF;
48584 --
48585
48586 --
48587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48588 trace
48589 (p_msg => 'END of AcctLineType_102'
48590 ,p_level => C_LEVEL_PROCEDURE
48591 ,p_module => l_log_module);
48592 END IF;
48593 --
48594 EXCEPTION
48595 WHEN xla_exceptions_pkg.application_exception THEN
48596 RAISE;
48597 WHEN OTHERS THEN
48598 xla_exceptions_pkg.raise_message
48599 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_102');
48600 END AcctLineType_102;
48601 --
48602
48603 ---------------------------------------
48604 --
48605 -- PRIVATE FUNCTION
48606 -- AcctLineType_103
48607 --
48608 ---------------------------------------
48609 PROCEDURE AcctLineType_103 (
48610 p_application_id IN NUMBER
48611 ,p_event_id IN NUMBER
48612 ,p_calculate_acctd_flag IN VARCHAR2
48613 ,p_calculate_g_l_flag IN VARCHAR2
48614 ,p_actual_flag IN OUT VARCHAR2
48615 ,p_balance_type_code OUT VARCHAR2
48616 ,p_gain_or_loss_ref OUT VARCHAR2
48617
48618 --Distribution GL Account
48619 , p_source_22 IN NUMBER
48620 --Distribution Source Type
48621 , p_source_27 IN VARCHAR2
48622 --Receivable Activity Type
48623 , p_source_28 IN VARCHAR2
48624 --Distribution Line Identifier
48625 , p_source_29 IN NUMBER
48626 --Distribution Type
48627 , p_source_30 IN VARCHAR2
48628 --Exchange Date
48629 , p_source_33 IN DATE
48630 --Exchange Rate
48631 , p_source_34 IN NUMBER
48632 --Accounting Amount
48633 , p_source_40 IN NUMBER
48634 --Transaction Distribution Identifier
48635 , p_source_44 IN NUMBER
48636 --Transaction Distribution Type
48637 , p_source_45 IN VARCHAR2
48638 --Distribution Multi Fund Additional Entry
48639 , p_source_88 IN VARCHAR2
48640 --Cash Receipt Identifier
48641 , p_source_90 IN NUMBER
48642 --Receipt Applied To Application Identifier
48643 , p_source_92 IN NUMBER
48647 , p_source_94 IN NUMBER
48644 --Transaction Entity Code
48645 , p_source_93 IN VARCHAR2
48646 --Transaction Identifier
48648 --DIST_ENT_AMT_FROM
48649 , p_source_95 IN NUMBER
48650 --Applying Document Currency Code
48651 , p_source_96 IN VARCHAR2
48652 --Distribution Party Identifier
48653 , p_source_97 IN NUMBER
48654 --Distribution Party Site Id
48655 , p_source_98 IN NUMBER
48656 --Distribution Party Type
48657 , p_source_99 IN VARCHAR2
48658 --Applied To Document Exchange Rate Type
48659 , p_source_100 IN VARCHAR2
48660 )
48661 IS
48662
48663 l_component_type VARCHAR2(80);
48664 l_component_code VARCHAR2(30);
48665 l_component_type_code VARCHAR2(1);
48666 l_component_appl_id INTEGER;
48667 l_amb_context_code VARCHAR2(30);
48668 l_entity_code VARCHAR2(30);
48669 l_event_class_code VARCHAR2(30);
48670 l_ae_header_id NUMBER;
48671 l_event_type_code VARCHAR2(30);
48672 l_line_definition_code VARCHAR2(30);
48673 l_line_definition_owner_code VARCHAR2(1);
48674 --
48675 -- adr variables
48676 l_segment VARCHAR2(30);
48677 l_ccid NUMBER;
48678 l_adr_transaction_coa_id NUMBER;
48679 l_adr_accounting_coa_id NUMBER;
48680 l_adr_flexfield_segment_code VARCHAR2(30);
48681 l_adr_flex_value_set_id NUMBER;
48682 l_adr_value_type_code VARCHAR2(30);
48683 l_adr_value_combination_id NUMBER;
48684 l_adr_value_segment_code VARCHAR2(30);
48685
48686 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48687 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48688 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48689 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48690
48691 -- 4262811 Variables ------------------------------------------------------------------------------------------
48692 l_entered_amt_idx NUMBER;
48693 l_accted_amt_idx NUMBER;
48694 l_acc_rev_flag VARCHAR2(1);
48695 l_accrual_line_num NUMBER;
48696 l_tmp_amt NUMBER;
48697 l_acc_rev_natural_side_code VARCHAR2(1);
48698
48699 l_num_entries NUMBER;
48700 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48701 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48702 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48703 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48704 l_recog_line_1 NUMBER;
48705 l_recog_line_2 NUMBER;
48706
48707 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48708 l_bflow_applied_to_amt NUMBER; -- 5132302
48709 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48710
48711 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48712
48713 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48714 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48715
48716 ---------------------------------------------------------------------------------------------------------------
48717
48718
48719 --
48720 -- bulk performance
48721 --
48722 l_balance_type_code VARCHAR2(1);
48723 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48724 l_log_module VARCHAR2(240);
48725
48726 --
48727 -- Upgrade strategy
48728 --
48729 l_actual_upg_option VARCHAR2(1);
48730 l_enc_upg_option VARCHAR2(1);
48731
48732 --
48733 BEGIN
48734 --
48735 IF g_log_enabled THEN
48736 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
48737 END IF;
48738 --
48739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48740
48741 trace
48742 (p_msg => 'BEGIN of AcctLineType_103'
48743 ,p_level => C_LEVEL_PROCEDURE
48744 ,p_module => l_log_module);
48745
48746 END IF;
48747 --
48748 l_component_type := 'AMB_JLT';
48749 l_component_code := 'RCT_CLAIM';
48750 l_component_type_code := 'S';
48751 l_component_appl_id := 222;
48752 l_amb_context_code := 'DEFAULT';
48753 l_entity_code := 'RECEIPTS';
48754 l_event_class_code := 'RECEIPT';
48755 l_event_type_code := 'RECEIPT_ALL';
48756 l_line_definition_owner_code := 'S';
48757 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
48758 --
48759 l_balance_type_code := 'A';
48760 l_segment := NULL;
48761 l_ccid := NULL;
48762 l_adr_transaction_coa_id := NULL;
48763 l_adr_accounting_coa_id := NULL;
48764 l_adr_flexfield_segment_code := NULL;
48765 l_adr_flex_value_set_id := NULL;
48766 l_adr_value_type_code := NULL;
48767 l_adr_value_combination_id := NULL;
48768 l_adr_value_segment_code := NULL;
48769
48770 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48771 l_bflow_class_code := ''; -- 4219869 Business Flow
48772 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48773 l_budgetary_control_flag := 'N';
48774
48775 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48776 l_bflow_applied_to_amt := NULL; -- 5132302
48777 l_entered_amt_idx := NULL; -- 4262811
48781 l_tmp_amt := NULL; -- 4262811
48778 l_accted_amt_idx := NULL; -- 4262811
48779 l_acc_rev_flag := NULL; -- 4262811
48780 l_accrual_line_num := NULL; -- 4262811
48782 --
48783
48784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48785 l_balance_type_code <> 'B' THEN
48786 IF NVL(p_source_27,'
48787 ') = 'OTHER ACC' AND
48788 NVL(p_source_28,'
48789 ') = 'CLAIM_INVESTIGATION' AND
48790 NVL(p_source_88,'
48791 ') = 'N'
48792 THEN
48793
48794 --
48795 XLA_AE_LINES_PKG.SetNewLine;
48796
48797 p_balance_type_code := l_balance_type_code;
48798 -- set the flag so later we will know whether the gain loss line needs to be created
48799
48800 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48801 p_actual_flag :='A';
48802 END IF;
48803
48804 --
48805 -- bulk performance
48806 --
48807 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48808 p_header_num => 0); -- 4262811
48809 --
48810 -- set accounting line options
48811 --
48812 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48813 p_natural_side_code => 'C'
48814 , p_gain_or_loss_flag => 'N'
48815 , p_gl_transfer_mode_code => 'S'
48816 , p_acct_entry_type_code => 'A'
48817 , p_switch_side_flag => 'Y'
48818 , p_merge_duplicate_code => 'A'
48819 );
48820 --
48821 l_acc_rev_natural_side_code := 'D'; -- 4262811
48822 --
48823 --
48824 -- set accounting line type info
48825 --
48826 xla_ae_lines_pkg.SetAcctLineType
48827 (p_component_type => l_component_type
48828 ,p_event_type_code => l_event_type_code
48829 ,p_line_definition_owner_code => l_line_definition_owner_code
48830 ,p_line_definition_code => l_line_definition_code
48831 ,p_accounting_line_code => l_component_code
48832 ,p_accounting_line_type_code => l_component_type_code
48833 ,p_accounting_line_appl_id => l_component_appl_id
48834 ,p_amb_context_code => l_amb_context_code
48835 ,p_entity_code => l_entity_code
48836 ,p_event_class_code => l_event_class_code);
48837 --
48838 -- set accounting class
48839 --
48840 xla_ae_lines_pkg.SetAcctClass(
48841 p_accounting_class_code => 'CLAIM'
48842 , p_ae_header_id => l_ae_header_id
48843 );
48844
48845 --
48846 -- set rounding class
48847 --
48848 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48849 'RECEIVABLE';
48850
48851 --
48852 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48853 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48854 --
48855 -- bulk performance
48856 --
48857 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48858
48859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48860 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48861
48862 -- 4955764
48863 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48864 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48865
48866 -- 4458381 Public Sector Enh
48867
48868 --
48869 -- set accounting attributes for the line type
48870 --
48871 l_entered_amt_idx := 8;
48872 l_accted_amt_idx := 13;
48873 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48874 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
48875 l_rec_acct_attrs.array_num_value(1) := p_source_92;
48876 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48877 l_rec_acct_attrs.array_char_value(2) := p_source_45;
48878 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
48879 l_rec_acct_attrs.array_char_value(3) := p_source_93;
48880 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
48881 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
48882 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48883 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
48884 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
48885 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
48886 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
48887 l_rec_acct_attrs.array_char_value(7) := p_source_30;
48888 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
48889 l_rec_acct_attrs.array_num_value(8) := p_source_95;
48890 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
48891 l_rec_acct_attrs.array_char_value(9) := p_source_96;
48892 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
48893 l_rec_acct_attrs.array_date_value(10) := p_source_33;
48894 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
48895 l_rec_acct_attrs.array_num_value(11) := p_source_34;
48896 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
48897 l_rec_acct_attrs.array_char_value(12) := p_source_100;
48901 l_rec_acct_attrs.array_num_value(14) := p_source_97;
48898 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
48899 l_rec_acct_attrs.array_num_value(13) := p_source_40;
48900 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
48902 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
48903 l_rec_acct_attrs.array_num_value(15) := p_source_98;
48904 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
48905 l_rec_acct_attrs.array_char_value(16) := p_source_99;
48906
48907 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48908 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48909
48910 ---------------------------------------------------------------------------------------------------------------
48911 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48912 ---------------------------------------------------------------------------------------------------------------
48913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48914
48915 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48916 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48917
48918 IF xla_accounting_cache_pkg.GetValueChar
48919 (p_source_code => 'LEDGER_CATEGORY_CODE'
48920 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48921 AND l_bflow_method_code = 'PRIOR_ENTRY'
48922 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48923 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48924 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48925 )
48926 THEN
48927 xla_ae_lines_pkg.BflowUpgEntry
48928 (p_business_method_code => l_bflow_method_code
48929 ,p_business_class_code => l_bflow_class_code
48930 ,p_balance_type => l_balance_type_code);
48931 ELSE
48932 NULL;
48933 -- No business flow processing for business flow method of NONE.
48934 END IF;
48935
48936 --
48937 -- call analytical criteria
48938 --
48939
48940
48941 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
48942 xla_ae_lines_pkg.SetAnalyticalCriteria(
48943 p_analytical_criterion_name => 'Check Id'
48944 , p_analytical_criterion_owner => 'S'
48945 , p_analytical_criterion_code => 'CHECK_ID'
48946 , p_amb_context_code => 'DEFAULT'
48947 , p_balancing_flag => 'N'
48948
48949 , p_analytical_detail_char_1 => NULL
48950 , p_analytical_detail_num_1 => p_source_90
48951 , p_analytical_detail_date_1 => NULL
48952
48953 , p_ae_header_id => l_ae_header_id
48954 )
48955 ;
48956 --
48957
48958 --
48959 -- call description
48960 --
48961 -- No description or it is inherited.
48962 --
48963 -- call ADRs
48964 -- Bug 4922099
48965 --
48966 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48967 (NVL(l_actual_upg_option, 'N') = 'O') OR
48968 (NVL(l_enc_upg_option, 'N') = 'O')
48969 )
48970 THEN
48971 NULL;
48972 --
48973 --
48974
48975 l_ccid := AcctDerRule_20(
48976 p_application_id => p_application_id
48977 , p_ae_header_id => l_ae_header_id
48978 , p_source_22 => p_source_22
48979 , x_transaction_coa_id => l_adr_transaction_coa_id
48980 , x_accounting_coa_id => l_adr_accounting_coa_id
48981 , x_value_type_code => l_adr_value_type_code
48982 , p_side => 'NA'
48983 );
48984
48985 xla_ae_lines_pkg.set_ccid(
48986 p_code_combination_id => l_ccid
48987 , p_value_type_code => l_adr_value_type_code
48988 , p_transaction_coa_id => l_adr_transaction_coa_id
48989 , p_accounting_coa_id => l_adr_accounting_coa_id
48990 , p_adr_code => 'DIST_CCID'
48991 , p_adr_type_code => 'S'
48992 , p_component_type => l_component_type
48993 , p_component_code => l_component_code
48994 , p_component_type_code => l_component_type_code
48995 , p_component_appl_id => l_component_appl_id
48996 , p_amb_context_code => l_amb_context_code
48997 , p_side => 'NA'
48998 );
48999
49000
49001 --
49002 --
49003 END IF;
49004 --
49005 -- Bug 4922099
49006 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49007 (NVL(l_enc_upg_option, 'N') = 'O')
49008 ) AND
49009 (l_bflow_method_code = 'PRIOR_ENTRY')
49010 )
49011 THEN
49012 IF
49013 --
49014 1 = 2
49015 --
49016 THEN
49017 xla_accounting_err_pkg.build_message
49018 (p_appli_s_name => 'XLA'
49019 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49020 ,p_token_1 => 'LINE_NUMBER'
49021 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49022 ,p_token_2 => 'LINE_TYPE_NAME'
49023 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49024 l_component_type
49028 ,l_amb_context_code
49025 ,l_component_code
49026 ,l_component_type_code
49027 ,l_component_appl_id
49029 ,l_entity_code
49030 ,l_event_class_code
49031 )
49032 ,p_token_3 => 'OWNER'
49033 ,p_value_3 => xla_lookups_pkg.get_meaning(
49034 p_lookup_type => 'XLA_OWNER_TYPE'
49035 ,p_lookup_code => l_component_type_code
49036 )
49037 ,p_token_4 => 'PRODUCT_NAME'
49038 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49039 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49040 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49041 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49042 ,p_ae_header_id => NULL
49043 );
49044
49045 IF (C_LEVEL_ERROR>= g_log_level) THEN
49046 trace
49047 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49048 ,p_level => C_LEVEL_ERROR
49049 ,p_module => l_log_module);
49050 END IF;
49051 END IF;
49052 END IF;
49053 --
49054 --
49055 ------------------------------------------------------------------------------------------------
49056 -- 4219869 Business Flow
49057 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49058 -- Prior Entry. Currently, the following code is always generated.
49059 ------------------------------------------------------------------------------------------------
49060 XLA_AE_LINES_PKG.ValidateCurrentLine;
49061
49062 ------------------------------------------------------------------------------------
49063 -- 4219869 Business Flow
49064 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49065 ------------------------------------------------------------------------------------
49066 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49067
49068 ----------------------------------------------------------------------------------
49069 -- 4219869 Business Flow
49070 -- Update journal entry status -- Need to generate this within IF <condition>
49071 ----------------------------------------------------------------------------------
49072 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49073 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49074 ,p_balance_type_code => l_balance_type_code
49075 );
49076
49077 -------------------------------------------------------------------------------------------
49078 -- 4262811 - Generate the Accrual Reversal lines
49079 -------------------------------------------------------------------------------------------
49080 BEGIN
49081 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49082 (g_array_event(p_event_id).array_value_num('header_index'));
49083 IF l_acc_rev_flag IS NULL THEN
49084 l_acc_rev_flag := 'N';
49085 END IF;
49086 EXCEPTION
49087 WHEN OTHERS THEN
49088 l_acc_rev_flag := 'N';
49089 END;
49090 --
49091 IF (l_acc_rev_flag = 'Y') THEN
49092
49093 -- 4645092 ------------------------------------------------------------------------------
49094 -- To allow MPA report to determine if it should generate report process
49095 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49096 ------------------------------------------------------------------------------------------
49097
49098 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49099 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49100 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49101 -- call ADRs
49102 -- Bug 4922099
49103 --
49104 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49105 (NVL(l_actual_upg_option, 'N') = 'O') OR
49106 (NVL(l_enc_upg_option, 'N') = 'O')
49107 )
49108 THEN
49109 NULL;
49110 --
49111 --
49112
49113 l_ccid := AcctDerRule_20(
49114 p_application_id => p_application_id
49115 , p_ae_header_id => l_ae_header_id
49116 , p_source_22 => p_source_22
49117 , x_transaction_coa_id => l_adr_transaction_coa_id
49118 , x_accounting_coa_id => l_adr_accounting_coa_id
49119 , x_value_type_code => l_adr_value_type_code
49120 , p_side => 'NA'
49121 );
49122
49123 xla_ae_lines_pkg.set_ccid(
49124 p_code_combination_id => l_ccid
49125 , p_value_type_code => l_adr_value_type_code
49126 , p_transaction_coa_id => l_adr_transaction_coa_id
49127 , p_accounting_coa_id => l_adr_accounting_coa_id
49131 , p_component_code => l_component_code
49128 , p_adr_code => 'DIST_CCID'
49129 , p_adr_type_code => 'S'
49130 , p_component_type => l_component_type
49132 , p_component_type_code => l_component_type_code
49133 , p_component_appl_id => l_component_appl_id
49134 , p_amb_context_code => l_amb_context_code
49135 , p_side => 'NA'
49136 );
49137
49138
49139 --
49140 --
49141 END IF;
49142
49143 --
49144 -- Update the line information that should be overwritten
49145 --
49146 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49147 p_header_num => 1);
49148 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49149
49150 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49151
49152 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49153 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49154 END IF;
49155
49156 --
49157 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49158 --
49159 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49160 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49161 ELSE
49162 ---------------------------------------------------------------------------------------------------
49163 -- 4262811a Switch Sign
49164 ---------------------------------------------------------------------------------------------------
49165 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49166 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49167 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49168 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49169 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49170 -- 5132302
49171 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49172 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49173
49174 END IF;
49175
49176 -- 4955764
49177 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49178 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49179
49180
49181 XLA_AE_LINES_PKG.ValidateCurrentLine;
49182 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49183
49184 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49185 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49186 ,p_balance_type_code => l_balance_type_code);
49187
49188 END IF;
49189
49190 -----------------------------------------------------------------------------------------
49191 -- 4262811 Multiperiod Accounting
49192 -----------------------------------------------------------------------------------------
49193 -- No MPA option is assigned.
49194
49195
49196 END IF;
49197 END IF;
49198 --
49199
49200 --
49201 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49202 trace
49203 (p_msg => 'END of AcctLineType_103'
49204 ,p_level => C_LEVEL_PROCEDURE
49205 ,p_module => l_log_module);
49206 END IF;
49207 --
49208 EXCEPTION
49209 WHEN xla_exceptions_pkg.application_exception THEN
49210 RAISE;
49211 WHEN OTHERS THEN
49212 xla_exceptions_pkg.raise_message
49213 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_103');
49214 END AcctLineType_103;
49215 --
49216
49217 ---------------------------------------
49218 --
49219 -- PRIVATE FUNCTION
49220 -- AcctLineType_104
49221 --
49222 ---------------------------------------
49223 PROCEDURE AcctLineType_104 (
49224 p_application_id IN NUMBER
49225 ,p_event_id IN NUMBER
49226 ,p_calculate_acctd_flag IN VARCHAR2
49227 ,p_calculate_g_l_flag IN VARCHAR2
49228 ,p_actual_flag IN OUT VARCHAR2
49229 ,p_balance_type_code OUT VARCHAR2
49230 ,p_gain_or_loss_ref OUT VARCHAR2
49231
49232 --Distribution GL Account
49233 , p_source_22 IN NUMBER
49234 --Distribution Source Type
49235 , p_source_27 IN VARCHAR2
49236 --Distribution Line Identifier
49237 , p_source_29 IN NUMBER
49238 --Distribution Type
49239 , p_source_30 IN VARCHAR2
49240 --Exchange Date
49241 , p_source_33 IN DATE
49242 --Exchange Rate
49243 , p_source_34 IN NUMBER
49244 --Exchange Rate Type
49245 , p_source_35 IN VARCHAR2
49246 --Accounting Amount
49247 , p_source_40 IN NUMBER
49248 --Transaction Distribution Identifier
49249 , p_source_44 IN NUMBER
49250 --Transaction Distribution Type
49251 , p_source_45 IN VARCHAR2
49252 --Distribution Multi Fund Additional Entry
49253 , p_source_88 IN VARCHAR2
49254 --Cash Receipt Identifier
49255 , p_source_90 IN NUMBER
49256 --Receipt Applied To Application Identifier
49257 , p_source_92 IN NUMBER
49258 --Transaction Entity Code
49262 --DIST_ENT_AMT_FROM
49259 , p_source_93 IN VARCHAR2
49260 --Transaction Identifier
49261 , p_source_94 IN NUMBER
49263 , p_source_95 IN NUMBER
49264 --Applying Document Currency Code
49265 , p_source_96 IN VARCHAR2
49266 --Distribution Party Identifier
49267 , p_source_97 IN NUMBER
49268 --Distribution Party Site Id
49269 , p_source_98 IN NUMBER
49270 --Distribution Party Type
49271 , p_source_99 IN VARCHAR2
49272 )
49273 IS
49274
49275 l_component_type VARCHAR2(80);
49276 l_component_code VARCHAR2(30);
49277 l_component_type_code VARCHAR2(1);
49278 l_component_appl_id INTEGER;
49279 l_amb_context_code VARCHAR2(30);
49280 l_entity_code VARCHAR2(30);
49281 l_event_class_code VARCHAR2(30);
49282 l_ae_header_id NUMBER;
49283 l_event_type_code VARCHAR2(30);
49284 l_line_definition_code VARCHAR2(30);
49285 l_line_definition_owner_code VARCHAR2(1);
49286 --
49287 -- adr variables
49288 l_segment VARCHAR2(30);
49289 l_ccid NUMBER;
49290 l_adr_transaction_coa_id NUMBER;
49291 l_adr_accounting_coa_id NUMBER;
49292 l_adr_flexfield_segment_code VARCHAR2(30);
49293 l_adr_flex_value_set_id NUMBER;
49294 l_adr_value_type_code VARCHAR2(30);
49295 l_adr_value_combination_id NUMBER;
49296 l_adr_value_segment_code VARCHAR2(30);
49297
49298 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49299 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49300 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49301 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49302
49303 -- 4262811 Variables ------------------------------------------------------------------------------------------
49304 l_entered_amt_idx NUMBER;
49305 l_accted_amt_idx NUMBER;
49306 l_acc_rev_flag VARCHAR2(1);
49307 l_accrual_line_num NUMBER;
49308 l_tmp_amt NUMBER;
49309 l_acc_rev_natural_side_code VARCHAR2(1);
49310
49311 l_num_entries NUMBER;
49312 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49313 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49314 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49315 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49316 l_recog_line_1 NUMBER;
49317 l_recog_line_2 NUMBER;
49318
49319 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49320 l_bflow_applied_to_amt NUMBER; -- 5132302
49321 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49322
49323 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49324
49325 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49326 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49327
49328 ---------------------------------------------------------------------------------------------------------------
49329
49330
49331 --
49332 -- bulk performance
49333 --
49334 l_balance_type_code VARCHAR2(1);
49335 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49336 l_log_module VARCHAR2(240);
49337
49338 --
49339 -- Upgrade strategy
49340 --
49341 l_actual_upg_option VARCHAR2(1);
49342 l_enc_upg_option VARCHAR2(1);
49343
49344 --
49345 BEGIN
49346 --
49347 IF g_log_enabled THEN
49348 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
49349 END IF;
49350 --
49351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49352
49353 trace
49354 (p_msg => 'BEGIN of AcctLineType_104'
49355 ,p_level => C_LEVEL_PROCEDURE
49356 ,p_module => l_log_module);
49357
49358 END IF;
49359 --
49360 l_component_type := 'AMB_JLT';
49361 l_component_code := 'RCT_CONFIRM';
49362 l_component_type_code := 'S';
49363 l_component_appl_id := 222;
49364 l_amb_context_code := 'DEFAULT';
49365 l_entity_code := 'RECEIPTS';
49366 l_event_class_code := 'RECEIPT';
49367 l_event_type_code := 'RECEIPT_ALL';
49368 l_line_definition_owner_code := 'S';
49369 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
49370 --
49371 l_balance_type_code := 'A';
49372 l_segment := NULL;
49373 l_ccid := NULL;
49374 l_adr_transaction_coa_id := NULL;
49375 l_adr_accounting_coa_id := NULL;
49376 l_adr_flexfield_segment_code := NULL;
49377 l_adr_flex_value_set_id := NULL;
49378 l_adr_value_type_code := NULL;
49379 l_adr_value_combination_id := NULL;
49380 l_adr_value_segment_code := NULL;
49381
49382 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49383 l_bflow_class_code := ''; -- 4219869 Business Flow
49384 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49385 l_budgetary_control_flag := 'N';
49386
49387 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49388 l_bflow_applied_to_amt := NULL; -- 5132302
49389 l_entered_amt_idx := NULL; -- 4262811
49390 l_accted_amt_idx := NULL; -- 4262811
49391 l_acc_rev_flag := NULL; -- 4262811
49392 l_accrual_line_num := NULL; -- 4262811
49396 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49393 l_tmp_amt := NULL; -- 4262811
49394 --
49395
49397 l_balance_type_code <> 'B' THEN
49398 IF NVL(p_source_27,'
49399 ') = 'CONFIRMATION' AND
49400 NVL(p_source_88,'
49401 ') = 'N'
49402 THEN
49403
49404 --
49405 XLA_AE_LINES_PKG.SetNewLine;
49406
49407 p_balance_type_code := l_balance_type_code;
49408 -- set the flag so later we will know whether the gain loss line needs to be created
49409
49410 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49411 p_actual_flag :='A';
49412 END IF;
49413
49414 --
49415 -- bulk performance
49416 --
49417 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49418 p_header_num => 0); -- 4262811
49419 --
49420 -- set accounting line options
49421 --
49422 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49423 p_natural_side_code => 'C'
49424 , p_gain_or_loss_flag => 'N'
49425 , p_gl_transfer_mode_code => 'S'
49426 , p_acct_entry_type_code => 'A'
49427 , p_switch_side_flag => 'Y'
49428 , p_merge_duplicate_code => 'A'
49429 );
49430 --
49431 l_acc_rev_natural_side_code := 'D'; -- 4262811
49432 --
49433 --
49434 -- set accounting line type info
49435 --
49436 xla_ae_lines_pkg.SetAcctLineType
49437 (p_component_type => l_component_type
49438 ,p_event_type_code => l_event_type_code
49439 ,p_line_definition_owner_code => l_line_definition_owner_code
49440 ,p_line_definition_code => l_line_definition_code
49441 ,p_accounting_line_code => l_component_code
49442 ,p_accounting_line_type_code => l_component_type_code
49443 ,p_accounting_line_appl_id => l_component_appl_id
49444 ,p_amb_context_code => l_amb_context_code
49445 ,p_entity_code => l_entity_code
49446 ,p_event_class_code => l_event_class_code);
49447 --
49448 -- set accounting class
49449 --
49450 xla_ae_lines_pkg.SetAcctClass(
49451 p_accounting_class_code => 'CONFIRMATION'
49452 , p_ae_header_id => l_ae_header_id
49453 );
49454
49455 --
49456 -- set rounding class
49457 --
49458 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49459 'RECEIVABLE';
49460
49461 --
49462 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49463 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49464 --
49465 -- bulk performance
49466 --
49467 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49468
49469 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49470 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49471
49472 -- 4955764
49473 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49474 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49475
49476 -- 4458381 Public Sector Enh
49477
49478 --
49479 -- set accounting attributes for the line type
49480 --
49481 l_entered_amt_idx := 8;
49482 l_accted_amt_idx := 13;
49483 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49484 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
49485 l_rec_acct_attrs.array_num_value(1) := p_source_92;
49486 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49487 l_rec_acct_attrs.array_char_value(2) := p_source_45;
49488 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
49489 l_rec_acct_attrs.array_char_value(3) := p_source_93;
49490 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
49491 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
49492 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49493 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
49494 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
49495 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
49496 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
49497 l_rec_acct_attrs.array_char_value(7) := p_source_30;
49498 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
49499 l_rec_acct_attrs.array_num_value(8) := p_source_95;
49500 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
49501 l_rec_acct_attrs.array_char_value(9) := p_source_96;
49502 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
49503 l_rec_acct_attrs.array_date_value(10) := p_source_33;
49504 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
49505 l_rec_acct_attrs.array_num_value(11) := p_source_34;
49506 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
49507 l_rec_acct_attrs.array_char_value(12) := p_source_35;
49508 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
49509 l_rec_acct_attrs.array_num_value(13) := p_source_40;
49510 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
49511 l_rec_acct_attrs.array_num_value(14) := p_source_97;
49512 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
49513 l_rec_acct_attrs.array_num_value(15) := p_source_98;
49514 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
49518 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49515 l_rec_acct_attrs.array_char_value(16) := p_source_99;
49516
49517 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49519
49520 ---------------------------------------------------------------------------------------------------------------
49521 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49522 ---------------------------------------------------------------------------------------------------------------
49523 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49524
49525 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49526 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49527
49528 IF xla_accounting_cache_pkg.GetValueChar
49529 (p_source_code => 'LEDGER_CATEGORY_CODE'
49530 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49531 AND l_bflow_method_code = 'PRIOR_ENTRY'
49532 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49533 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49534 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49535 )
49536 THEN
49537 xla_ae_lines_pkg.BflowUpgEntry
49538 (p_business_method_code => l_bflow_method_code
49539 ,p_business_class_code => l_bflow_class_code
49540 ,p_balance_type => l_balance_type_code);
49541 ELSE
49542 NULL;
49543 -- No business flow processing for business flow method of NONE.
49544 END IF;
49545
49546 --
49547 -- call analytical criteria
49548 --
49549
49550
49551 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
49552 xla_ae_lines_pkg.SetAnalyticalCriteria(
49553 p_analytical_criterion_name => 'Check Id'
49554 , p_analytical_criterion_owner => 'S'
49555 , p_analytical_criterion_code => 'CHECK_ID'
49556 , p_amb_context_code => 'DEFAULT'
49557 , p_balancing_flag => 'N'
49558
49559 , p_analytical_detail_char_1 => NULL
49560 , p_analytical_detail_num_1 => p_source_90
49561 , p_analytical_detail_date_1 => NULL
49562
49563 , p_ae_header_id => l_ae_header_id
49564 )
49565 ;
49566 --
49567
49568 --
49569 -- call description
49570 --
49571 -- No description or it is inherited.
49572 --
49573 -- call ADRs
49574 -- Bug 4922099
49575 --
49576 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49577 (NVL(l_actual_upg_option, 'N') = 'O') OR
49578 (NVL(l_enc_upg_option, 'N') = 'O')
49579 )
49580 THEN
49581 NULL;
49582 --
49583 --
49584
49585 l_ccid := AcctDerRule_20(
49586 p_application_id => p_application_id
49587 , p_ae_header_id => l_ae_header_id
49588 , p_source_22 => p_source_22
49589 , x_transaction_coa_id => l_adr_transaction_coa_id
49590 , x_accounting_coa_id => l_adr_accounting_coa_id
49591 , x_value_type_code => l_adr_value_type_code
49592 , p_side => 'NA'
49593 );
49594
49595 xla_ae_lines_pkg.set_ccid(
49596 p_code_combination_id => l_ccid
49597 , p_value_type_code => l_adr_value_type_code
49598 , p_transaction_coa_id => l_adr_transaction_coa_id
49599 , p_accounting_coa_id => l_adr_accounting_coa_id
49600 , p_adr_code => 'DIST_CCID'
49601 , p_adr_type_code => 'S'
49602 , p_component_type => l_component_type
49603 , p_component_code => l_component_code
49604 , p_component_type_code => l_component_type_code
49605 , p_component_appl_id => l_component_appl_id
49606 , p_amb_context_code => l_amb_context_code
49607 , p_side => 'NA'
49608 );
49609
49610
49611 --
49612 --
49613 END IF;
49614 --
49615 -- Bug 4922099
49616 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49617 (NVL(l_enc_upg_option, 'N') = 'O')
49618 ) AND
49619 (l_bflow_method_code = 'PRIOR_ENTRY')
49620 )
49621 THEN
49622 IF
49623 --
49624 1 = 2
49625 --
49626 THEN
49627 xla_accounting_err_pkg.build_message
49628 (p_appli_s_name => 'XLA'
49629 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49630 ,p_token_1 => 'LINE_NUMBER'
49631 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49632 ,p_token_2 => 'LINE_TYPE_NAME'
49633 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49634 l_component_type
49635 ,l_component_code
49636 ,l_component_type_code
49637 ,l_component_appl_id
49638 ,l_amb_context_code
49639 ,l_entity_code
49643 ,p_value_3 => xla_lookups_pkg.get_meaning(
49640 ,l_event_class_code
49641 )
49642 ,p_token_3 => 'OWNER'
49644 p_lookup_type => 'XLA_OWNER_TYPE'
49645 ,p_lookup_code => l_component_type_code
49646 )
49647 ,p_token_4 => 'PRODUCT_NAME'
49648 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49649 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49650 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49651 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49652 ,p_ae_header_id => NULL
49653 );
49654
49655 IF (C_LEVEL_ERROR>= g_log_level) THEN
49656 trace
49657 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49658 ,p_level => C_LEVEL_ERROR
49659 ,p_module => l_log_module);
49660 END IF;
49661 END IF;
49662 END IF;
49663 --
49664 --
49665 ------------------------------------------------------------------------------------------------
49666 -- 4219869 Business Flow
49667 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49668 -- Prior Entry. Currently, the following code is always generated.
49669 ------------------------------------------------------------------------------------------------
49670 XLA_AE_LINES_PKG.ValidateCurrentLine;
49671
49672 ------------------------------------------------------------------------------------
49673 -- 4219869 Business Flow
49674 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49675 ------------------------------------------------------------------------------------
49676 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49677
49678 ----------------------------------------------------------------------------------
49679 -- 4219869 Business Flow
49680 -- Update journal entry status -- Need to generate this within IF <condition>
49681 ----------------------------------------------------------------------------------
49682 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49683 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49684 ,p_balance_type_code => l_balance_type_code
49685 );
49686
49687 -------------------------------------------------------------------------------------------
49688 -- 4262811 - Generate the Accrual Reversal lines
49689 -------------------------------------------------------------------------------------------
49690 BEGIN
49691 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49692 (g_array_event(p_event_id).array_value_num('header_index'));
49693 IF l_acc_rev_flag IS NULL THEN
49694 l_acc_rev_flag := 'N';
49695 END IF;
49696 EXCEPTION
49697 WHEN OTHERS THEN
49698 l_acc_rev_flag := 'N';
49699 END;
49700 --
49701 IF (l_acc_rev_flag = 'Y') THEN
49702
49703 -- 4645092 ------------------------------------------------------------------------------
49704 -- To allow MPA report to determine if it should generate report process
49705 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49706 ------------------------------------------------------------------------------------------
49707
49708 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49709 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49710 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49711 -- call ADRs
49712 -- Bug 4922099
49713 --
49714 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49715 (NVL(l_actual_upg_option, 'N') = 'O') OR
49716 (NVL(l_enc_upg_option, 'N') = 'O')
49717 )
49718 THEN
49719 NULL;
49720 --
49721 --
49722
49723 l_ccid := AcctDerRule_20(
49724 p_application_id => p_application_id
49725 , p_ae_header_id => l_ae_header_id
49726 , p_source_22 => p_source_22
49727 , x_transaction_coa_id => l_adr_transaction_coa_id
49728 , x_accounting_coa_id => l_adr_accounting_coa_id
49729 , x_value_type_code => l_adr_value_type_code
49730 , p_side => 'NA'
49731 );
49732
49733 xla_ae_lines_pkg.set_ccid(
49734 p_code_combination_id => l_ccid
49735 , p_value_type_code => l_adr_value_type_code
49736 , p_transaction_coa_id => l_adr_transaction_coa_id
49737 , p_accounting_coa_id => l_adr_accounting_coa_id
49738 , p_adr_code => 'DIST_CCID'
49739 , p_adr_type_code => 'S'
49740 , p_component_type => l_component_type
49741 , p_component_code => l_component_code
49742 , p_component_type_code => l_component_type_code
49743 , p_component_appl_id => l_component_appl_id
49744 , p_amb_context_code => l_amb_context_code
49745 , p_side => 'NA'
49746 );
49747
49751 END IF;
49748
49749 --
49750 --
49752
49753 --
49754 -- Update the line information that should be overwritten
49755 --
49756 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49757 p_header_num => 1);
49758 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49759
49760 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49761
49762 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49763 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49764 END IF;
49765
49766 --
49767 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49768 --
49769 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49770 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49771 ELSE
49772 ---------------------------------------------------------------------------------------------------
49773 -- 4262811a Switch Sign
49774 ---------------------------------------------------------------------------------------------------
49775 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49776 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49777 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49778 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49779 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49780 -- 5132302
49781 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49782 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49783
49784 END IF;
49785
49786 -- 4955764
49787 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49788 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49789
49790
49791 XLA_AE_LINES_PKG.ValidateCurrentLine;
49792 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49793
49794 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49795 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49796 ,p_balance_type_code => l_balance_type_code);
49797
49798 END IF;
49799
49800 -----------------------------------------------------------------------------------------
49801 -- 4262811 Multiperiod Accounting
49802 -----------------------------------------------------------------------------------------
49803 -- No MPA option is assigned.
49804
49805
49806 END IF;
49807 END IF;
49808 --
49809
49810 --
49811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49812 trace
49813 (p_msg => 'END of AcctLineType_104'
49814 ,p_level => C_LEVEL_PROCEDURE
49815 ,p_module => l_log_module);
49816 END IF;
49817 --
49818 EXCEPTION
49819 WHEN xla_exceptions_pkg.application_exception THEN
49820 RAISE;
49821 WHEN OTHERS THEN
49822 xla_exceptions_pkg.raise_message
49823 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_104');
49824 END AcctLineType_104;
49825 --
49826
49827 ---------------------------------------
49828 --
49829 -- PRIVATE FUNCTION
49830 -- AcctLineType_105
49831 --
49832 ---------------------------------------
49833 PROCEDURE AcctLineType_105 (
49834 p_application_id IN NUMBER
49835 ,p_event_id IN NUMBER
49836 ,p_calculate_acctd_flag IN VARCHAR2
49837 ,p_calculate_g_l_flag IN VARCHAR2
49838 ,p_actual_flag IN OUT VARCHAR2
49839 ,p_balance_type_code OUT VARCHAR2
49840 ,p_gain_or_loss_ref OUT VARCHAR2
49841
49842 --Distribution GL Account
49843 , p_source_22 IN NUMBER
49844 --Distribution Source Type
49845 , p_source_27 IN VARCHAR2
49846 --Distribution Line Identifier
49847 , p_source_29 IN NUMBER
49848 --Distribution Type
49849 , p_source_30 IN VARCHAR2
49850 --Exchange Date
49851 , p_source_33 IN DATE
49852 --Exchange Rate
49853 , p_source_34 IN NUMBER
49854 --Exchange Rate Type
49855 , p_source_35 IN VARCHAR2
49856 --Accounting Amount
49857 , p_source_40 IN NUMBER
49858 --Transaction Distribution Identifier
49859 , p_source_44 IN NUMBER
49860 --Transaction Distribution Type
49861 , p_source_45 IN VARCHAR2
49862 --Distribution Multi Fund Additional Entry
49863 , p_source_88 IN VARCHAR2
49864 --Cash Receipt Identifier
49865 , p_source_90 IN NUMBER
49866 --Receipt Applied To Application Identifier
49867 , p_source_92 IN NUMBER
49868 --Transaction Entity Code
49869 , p_source_93 IN VARCHAR2
49870 --Transaction Identifier
49871 , p_source_94 IN NUMBER
49872 --DIST_ENT_AMT_FROM
49873 , p_source_95 IN NUMBER
49874 --Applying Document Currency Code
49875 , p_source_96 IN VARCHAR2
49876 --Distribution Party Identifier
49877 , p_source_97 IN NUMBER
49878 --Distribution Party Site Id
49879 , p_source_98 IN NUMBER
49880 --Distribution Party Type
49884
49881 , p_source_99 IN VARCHAR2
49882 )
49883 IS
49885 l_component_type VARCHAR2(80);
49886 l_component_code VARCHAR2(30);
49887 l_component_type_code VARCHAR2(1);
49888 l_component_appl_id INTEGER;
49889 l_amb_context_code VARCHAR2(30);
49890 l_entity_code VARCHAR2(30);
49891 l_event_class_code VARCHAR2(30);
49892 l_ae_header_id NUMBER;
49893 l_event_type_code VARCHAR2(30);
49894 l_line_definition_code VARCHAR2(30);
49895 l_line_definition_owner_code VARCHAR2(1);
49896 --
49897 -- adr variables
49898 l_segment VARCHAR2(30);
49899 l_ccid NUMBER;
49900 l_adr_transaction_coa_id NUMBER;
49901 l_adr_accounting_coa_id NUMBER;
49902 l_adr_flexfield_segment_code VARCHAR2(30);
49903 l_adr_flex_value_set_id NUMBER;
49904 l_adr_value_type_code VARCHAR2(30);
49905 l_adr_value_combination_id NUMBER;
49906 l_adr_value_segment_code VARCHAR2(30);
49907
49908 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49909 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49910 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49911 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49912
49913 -- 4262811 Variables ------------------------------------------------------------------------------------------
49914 l_entered_amt_idx NUMBER;
49915 l_accted_amt_idx NUMBER;
49916 l_acc_rev_flag VARCHAR2(1);
49917 l_accrual_line_num NUMBER;
49918 l_tmp_amt NUMBER;
49919 l_acc_rev_natural_side_code VARCHAR2(1);
49920
49921 l_num_entries NUMBER;
49922 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49923 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49924 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49925 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49926 l_recog_line_1 NUMBER;
49927 l_recog_line_2 NUMBER;
49928
49929 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49930 l_bflow_applied_to_amt NUMBER; -- 5132302
49931 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49932
49933 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49934
49935 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49936 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49937
49938 ---------------------------------------------------------------------------------------------------------------
49939
49940
49941 --
49942 -- bulk performance
49943 --
49944 l_balance_type_code VARCHAR2(1);
49945 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49946 l_log_module VARCHAR2(240);
49947
49948 --
49949 -- Upgrade strategy
49950 --
49951 l_actual_upg_option VARCHAR2(1);
49952 l_enc_upg_option VARCHAR2(1);
49953
49954 --
49955 BEGIN
49956 --
49957 IF g_log_enabled THEN
49958 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
49959 END IF;
49960 --
49961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49962
49963 trace
49964 (p_msg => 'BEGIN of AcctLineType_105'
49965 ,p_level => C_LEVEL_PROCEDURE
49966 ,p_module => l_log_module);
49967
49968 END IF;
49969 --
49970 l_component_type := 'AMB_JLT';
49971 l_component_code := 'RCT_CURR_ROUND';
49972 l_component_type_code := 'S';
49973 l_component_appl_id := 222;
49974 l_amb_context_code := 'DEFAULT';
49975 l_entity_code := 'RECEIPTS';
49976 l_event_class_code := 'RECEIPT';
49977 l_event_type_code := 'RECEIPT_ALL';
49978 l_line_definition_owner_code := 'S';
49979 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
49980 --
49981 l_balance_type_code := 'A';
49982 l_segment := NULL;
49983 l_ccid := NULL;
49984 l_adr_transaction_coa_id := NULL;
49985 l_adr_accounting_coa_id := NULL;
49986 l_adr_flexfield_segment_code := NULL;
49987 l_adr_flex_value_set_id := NULL;
49988 l_adr_value_type_code := NULL;
49989 l_adr_value_combination_id := NULL;
49990 l_adr_value_segment_code := NULL;
49991
49992 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49993 l_bflow_class_code := ''; -- 4219869 Business Flow
49994 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49995 l_budgetary_control_flag := 'N';
49996
49997 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49998 l_bflow_applied_to_amt := NULL; -- 5132302
49999 l_entered_amt_idx := NULL; -- 4262811
50000 l_accted_amt_idx := NULL; -- 4262811
50001 l_acc_rev_flag := NULL; -- 4262811
50002 l_accrual_line_num := NULL; -- 4262811
50003 l_tmp_amt := NULL; -- 4262811
50004 --
50005
50006 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50007 l_balance_type_code <> 'B' THEN
50008 IF NVL(p_source_27,'
50009 ') = 'CURR_ROUND' AND
50010 NVL(p_source_88,'
50011 ') = 'N'
50012 THEN
50013
50014 --
50015 XLA_AE_LINES_PKG.SetNewLine;
50016
50020 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50017 p_balance_type_code := l_balance_type_code;
50018 -- set the flag so later we will know whether the gain loss line needs to be created
50019
50021 p_actual_flag :='A';
50022 END IF;
50023
50024 --
50025 -- bulk performance
50026 --
50027 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50028 p_header_num => 0); -- 4262811
50029 --
50030 -- set accounting line options
50031 --
50032 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50033 p_natural_side_code => 'C'
50034 , p_gain_or_loss_flag => 'N'
50035 , p_gl_transfer_mode_code => 'S'
50036 , p_acct_entry_type_code => 'A'
50037 , p_switch_side_flag => 'Y'
50038 , p_merge_duplicate_code => 'A'
50039 );
50040 --
50041 l_acc_rev_natural_side_code := 'D'; -- 4262811
50042 --
50043 --
50044 -- set accounting line type info
50045 --
50046 xla_ae_lines_pkg.SetAcctLineType
50047 (p_component_type => l_component_type
50048 ,p_event_type_code => l_event_type_code
50049 ,p_line_definition_owner_code => l_line_definition_owner_code
50050 ,p_line_definition_code => l_line_definition_code
50051 ,p_accounting_line_code => l_component_code
50052 ,p_accounting_line_type_code => l_component_type_code
50053 ,p_accounting_line_appl_id => l_component_appl_id
50054 ,p_amb_context_code => l_amb_context_code
50055 ,p_entity_code => l_entity_code
50056 ,p_event_class_code => l_event_class_code);
50057 --
50058 -- set accounting class
50059 --
50060 xla_ae_lines_pkg.SetAcctClass(
50061 p_accounting_class_code => 'ROUNDING'
50062 , p_ae_header_id => l_ae_header_id
50063 );
50064
50065 --
50066 -- set rounding class
50067 --
50068 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50069 'RECEIVABLE';
50070
50071 --
50072 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50073 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50074 --
50075 -- bulk performance
50076 --
50077 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50078
50079 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50080 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50081
50082 -- 4955764
50083 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50084 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50085
50086 -- 4458381 Public Sector Enh
50087
50088 --
50089 -- set accounting attributes for the line type
50090 --
50091 l_entered_amt_idx := 8;
50092 l_accted_amt_idx := 13;
50093 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50094 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
50095 l_rec_acct_attrs.array_num_value(1) := p_source_92;
50096 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50097 l_rec_acct_attrs.array_char_value(2) := p_source_45;
50098 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
50099 l_rec_acct_attrs.array_char_value(3) := p_source_93;
50100 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
50101 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
50102 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50103 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
50104 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
50105 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
50106 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
50107 l_rec_acct_attrs.array_char_value(7) := p_source_30;
50108 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
50109 l_rec_acct_attrs.array_num_value(8) := p_source_95;
50110 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
50111 l_rec_acct_attrs.array_char_value(9) := p_source_96;
50112 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
50113 l_rec_acct_attrs.array_date_value(10) := p_source_33;
50114 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
50115 l_rec_acct_attrs.array_num_value(11) := p_source_34;
50116 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
50117 l_rec_acct_attrs.array_char_value(12) := p_source_35;
50118 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
50119 l_rec_acct_attrs.array_num_value(13) := p_source_40;
50120 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
50121 l_rec_acct_attrs.array_num_value(14) := p_source_97;
50122 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
50123 l_rec_acct_attrs.array_num_value(15) := p_source_98;
50124 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
50125 l_rec_acct_attrs.array_char_value(16) := p_source_99;
50126
50127 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50128 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50129
50130 ---------------------------------------------------------------------------------------------------------------
50134
50131 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50132 ---------------------------------------------------------------------------------------------------------------
50133 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50135 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50136 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50137
50138 IF xla_accounting_cache_pkg.GetValueChar
50139 (p_source_code => 'LEDGER_CATEGORY_CODE'
50140 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50141 AND l_bflow_method_code = 'PRIOR_ENTRY'
50142 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50143 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50144 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50145 )
50146 THEN
50147 xla_ae_lines_pkg.BflowUpgEntry
50148 (p_business_method_code => l_bflow_method_code
50149 ,p_business_class_code => l_bflow_class_code
50150 ,p_balance_type => l_balance_type_code);
50151 ELSE
50152 NULL;
50153 -- No business flow processing for business flow method of NONE.
50154 END IF;
50155
50156 --
50157 -- call analytical criteria
50158 --
50159
50160
50161 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
50162 xla_ae_lines_pkg.SetAnalyticalCriteria(
50163 p_analytical_criterion_name => 'Check Id'
50164 , p_analytical_criterion_owner => 'S'
50165 , p_analytical_criterion_code => 'CHECK_ID'
50166 , p_amb_context_code => 'DEFAULT'
50167 , p_balancing_flag => 'N'
50168
50169 , p_analytical_detail_char_1 => NULL
50170 , p_analytical_detail_num_1 => p_source_90
50171 , p_analytical_detail_date_1 => NULL
50172
50173 , p_ae_header_id => l_ae_header_id
50174 )
50175 ;
50176 --
50177
50178 --
50179 -- call description
50180 --
50181 -- No description or it is inherited.
50182 --
50183 -- call ADRs
50184 -- Bug 4922099
50185 --
50186 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50187 (NVL(l_actual_upg_option, 'N') = 'O') OR
50188 (NVL(l_enc_upg_option, 'N') = 'O')
50189 )
50190 THEN
50191 NULL;
50192 --
50193 --
50194
50195 l_ccid := AcctDerRule_20(
50196 p_application_id => p_application_id
50197 , p_ae_header_id => l_ae_header_id
50198 , p_source_22 => p_source_22
50199 , x_transaction_coa_id => l_adr_transaction_coa_id
50200 , x_accounting_coa_id => l_adr_accounting_coa_id
50201 , x_value_type_code => l_adr_value_type_code
50202 , p_side => 'NA'
50203 );
50204
50205 xla_ae_lines_pkg.set_ccid(
50206 p_code_combination_id => l_ccid
50207 , p_value_type_code => l_adr_value_type_code
50208 , p_transaction_coa_id => l_adr_transaction_coa_id
50209 , p_accounting_coa_id => l_adr_accounting_coa_id
50210 , p_adr_code => 'DIST_CCID'
50211 , p_adr_type_code => 'S'
50212 , p_component_type => l_component_type
50213 , p_component_code => l_component_code
50214 , p_component_type_code => l_component_type_code
50215 , p_component_appl_id => l_component_appl_id
50216 , p_amb_context_code => l_amb_context_code
50217 , p_side => 'NA'
50218 );
50219
50220
50221 --
50222 --
50223 END IF;
50224 --
50225 -- Bug 4922099
50226 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50227 (NVL(l_enc_upg_option, 'N') = 'O')
50228 ) AND
50229 (l_bflow_method_code = 'PRIOR_ENTRY')
50230 )
50231 THEN
50232 IF
50233 --
50234 1 = 2
50235 --
50236 THEN
50237 xla_accounting_err_pkg.build_message
50238 (p_appli_s_name => 'XLA'
50239 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50240 ,p_token_1 => 'LINE_NUMBER'
50241 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50242 ,p_token_2 => 'LINE_TYPE_NAME'
50243 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50244 l_component_type
50245 ,l_component_code
50246 ,l_component_type_code
50247 ,l_component_appl_id
50248 ,l_amb_context_code
50249 ,l_entity_code
50250 ,l_event_class_code
50251 )
50252 ,p_token_3 => 'OWNER'
50253 ,p_value_3 => xla_lookups_pkg.get_meaning(
50257 ,p_token_4 => 'PRODUCT_NAME'
50254 p_lookup_type => 'XLA_OWNER_TYPE'
50255 ,p_lookup_code => l_component_type_code
50256 )
50258 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50259 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50260 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50261 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50262 ,p_ae_header_id => NULL
50263 );
50264
50265 IF (C_LEVEL_ERROR>= g_log_level) THEN
50266 trace
50267 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50268 ,p_level => C_LEVEL_ERROR
50269 ,p_module => l_log_module);
50270 END IF;
50271 END IF;
50272 END IF;
50273 --
50274 --
50275 ------------------------------------------------------------------------------------------------
50276 -- 4219869 Business Flow
50277 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50278 -- Prior Entry. Currently, the following code is always generated.
50279 ------------------------------------------------------------------------------------------------
50280 XLA_AE_LINES_PKG.ValidateCurrentLine;
50281
50282 ------------------------------------------------------------------------------------
50283 -- 4219869 Business Flow
50284 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50285 ------------------------------------------------------------------------------------
50286 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50287
50288 ----------------------------------------------------------------------------------
50289 -- 4219869 Business Flow
50290 -- Update journal entry status -- Need to generate this within IF <condition>
50291 ----------------------------------------------------------------------------------
50292 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50293 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50294 ,p_balance_type_code => l_balance_type_code
50295 );
50296
50297 -------------------------------------------------------------------------------------------
50298 -- 4262811 - Generate the Accrual Reversal lines
50299 -------------------------------------------------------------------------------------------
50300 BEGIN
50301 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50302 (g_array_event(p_event_id).array_value_num('header_index'));
50303 IF l_acc_rev_flag IS NULL THEN
50304 l_acc_rev_flag := 'N';
50305 END IF;
50306 EXCEPTION
50307 WHEN OTHERS THEN
50308 l_acc_rev_flag := 'N';
50309 END;
50310 --
50311 IF (l_acc_rev_flag = 'Y') THEN
50312
50313 -- 4645092 ------------------------------------------------------------------------------
50314 -- To allow MPA report to determine if it should generate report process
50315 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50316 ------------------------------------------------------------------------------------------
50317
50318 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50319 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50320 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50321 -- call ADRs
50322 -- Bug 4922099
50323 --
50324 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50325 (NVL(l_actual_upg_option, 'N') = 'O') OR
50326 (NVL(l_enc_upg_option, 'N') = 'O')
50327 )
50328 THEN
50329 NULL;
50330 --
50331 --
50332
50333 l_ccid := AcctDerRule_20(
50334 p_application_id => p_application_id
50335 , p_ae_header_id => l_ae_header_id
50336 , p_source_22 => p_source_22
50337 , x_transaction_coa_id => l_adr_transaction_coa_id
50338 , x_accounting_coa_id => l_adr_accounting_coa_id
50339 , x_value_type_code => l_adr_value_type_code
50340 , p_side => 'NA'
50341 );
50342
50343 xla_ae_lines_pkg.set_ccid(
50344 p_code_combination_id => l_ccid
50345 , p_value_type_code => l_adr_value_type_code
50346 , p_transaction_coa_id => l_adr_transaction_coa_id
50347 , p_accounting_coa_id => l_adr_accounting_coa_id
50348 , p_adr_code => 'DIST_CCID'
50349 , p_adr_type_code => 'S'
50350 , p_component_type => l_component_type
50351 , p_component_code => l_component_code
50352 , p_component_type_code => l_component_type_code
50353 , p_component_appl_id => l_component_appl_id
50354 , p_amb_context_code => l_amb_context_code
50355 , p_side => 'NA'
50356 );
50357
50358
50359 --
50360 --
50361 END IF;
50362
50363 --
50364 -- Update the line information that should be overwritten
50365 --
50366 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50367 p_header_num => 1);
50371
50368 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50369
50370 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50372 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50373 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50374 END IF;
50375
50376 --
50377 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50378 --
50379 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50380 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50381 ELSE
50382 ---------------------------------------------------------------------------------------------------
50383 -- 4262811a Switch Sign
50384 ---------------------------------------------------------------------------------------------------
50385 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50386 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50387 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50388 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50389 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50390 -- 5132302
50391 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50392 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50393
50394 END IF;
50395
50396 -- 4955764
50397 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50398 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50399
50400
50401 XLA_AE_LINES_PKG.ValidateCurrentLine;
50402 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50403
50404 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50405 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50406 ,p_balance_type_code => l_balance_type_code);
50407
50408 END IF;
50409
50410 -----------------------------------------------------------------------------------------
50411 -- 4262811 Multiperiod Accounting
50412 -----------------------------------------------------------------------------------------
50413 -- No MPA option is assigned.
50414
50415
50416 END IF;
50417 END IF;
50418 --
50419
50420 --
50421 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50422 trace
50423 (p_msg => 'END of AcctLineType_105'
50424 ,p_level => C_LEVEL_PROCEDURE
50425 ,p_module => l_log_module);
50426 END IF;
50427 --
50428 EXCEPTION
50429 WHEN xla_exceptions_pkg.application_exception THEN
50430 RAISE;
50431 WHEN OTHERS THEN
50432 xla_exceptions_pkg.raise_message
50433 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_105');
50434 END AcctLineType_105;
50435 --
50436
50437 ---------------------------------------
50438 --
50439 -- PRIVATE FUNCTION
50440 -- AcctLineType_106
50441 --
50442 ---------------------------------------
50443 PROCEDURE AcctLineType_106 (
50444 p_application_id IN NUMBER
50445 ,p_event_id IN NUMBER
50446 ,p_calculate_acctd_flag IN VARCHAR2
50447 ,p_calculate_g_l_flag IN VARCHAR2
50448 ,p_actual_flag IN OUT VARCHAR2
50449 ,p_balance_type_code OUT VARCHAR2
50450 ,p_gain_or_loss_ref OUT VARCHAR2
50454 --Distribution Source Type
50451
50452 --Distribution GL Account
50453 , p_source_22 IN NUMBER
50455 , p_source_27 IN VARCHAR2
50456 --Distribution Line Identifier
50457 , p_source_29 IN NUMBER
50458 --Distribution Type
50459 , p_source_30 IN VARCHAR2
50460 --Exchange Date
50461 , p_source_33 IN DATE
50462 --Exchange Rate
50463 , p_source_34 IN NUMBER
50464 --Exchange Rate Type
50465 , p_source_35 IN VARCHAR2
50466 --Accounting Amount
50467 , p_source_40 IN NUMBER
50468 --Transaction Distribution Identifier
50469 , p_source_44 IN NUMBER
50470 --Transaction Distribution Type
50471 , p_source_45 IN VARCHAR2
50472 --Distribution Multi Fund Additional Entry
50476 --Receipt Applied To Application Identifier
50473 , p_source_88 IN VARCHAR2
50474 --Cash Receipt Identifier
50475 , p_source_90 IN NUMBER
50477 , p_source_92 IN NUMBER
50478 --Transaction Entity Code
50479 , p_source_93 IN VARCHAR2
50480 --Transaction Identifier
50481 , p_source_94 IN NUMBER
50482 --DIST_ENT_AMT_FROM
50483 , p_source_95 IN NUMBER
50484 --Applying Document Currency Code
50485 , p_source_96 IN VARCHAR2
50486 --Distribution Party Identifier
50487 , p_source_97 IN NUMBER
50488 --Distribution Party Site Id
50489 , p_source_98 IN NUMBER
50490 --Distribution Party Type
50491 , p_source_99 IN VARCHAR2
50492 )
50493 IS
50494
50495 l_component_type VARCHAR2(80);
50496 l_component_code VARCHAR2(30);
50497 l_component_type_code VARCHAR2(1);
50498 l_component_appl_id INTEGER;
50499 l_amb_context_code VARCHAR2(30);
50500 l_entity_code VARCHAR2(30);
50501 l_event_class_code VARCHAR2(30);
50502 l_ae_header_id NUMBER;
50503 l_event_type_code VARCHAR2(30);
50504 l_line_definition_code VARCHAR2(30);
50505 l_line_definition_owner_code VARCHAR2(1);
50506 --
50507 -- adr variables
50508 l_segment VARCHAR2(30);
50509 l_ccid NUMBER;
50510 l_adr_transaction_coa_id NUMBER;
50511 l_adr_accounting_coa_id NUMBER;
50512 l_adr_flexfield_segment_code VARCHAR2(30);
50513 l_adr_flex_value_set_id NUMBER;
50514 l_adr_value_type_code VARCHAR2(30);
50515 l_adr_value_combination_id NUMBER;
50516 l_adr_value_segment_code VARCHAR2(30);
50517
50518 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50519 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50520 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50521 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50522
50523 -- 4262811 Variables ------------------------------------------------------------------------------------------
50524 l_entered_amt_idx NUMBER;
50525 l_accted_amt_idx NUMBER;
50526 l_acc_rev_flag VARCHAR2(1);
50527 l_accrual_line_num NUMBER;
50528 l_tmp_amt NUMBER;
50529 l_acc_rev_natural_side_code VARCHAR2(1);
50530
50531 l_num_entries NUMBER;
50532 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50533 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50534 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50535 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50536 l_recog_line_1 NUMBER;
50537 l_recog_line_2 NUMBER;
50538
50539 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50540 l_bflow_applied_to_amt NUMBER; -- 5132302
50541 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50542
50543 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50544
50545 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50546 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50547
50548 ---------------------------------------------------------------------------------------------------------------
50549
50550
50551 --
50552 -- bulk performance
50553 --
50554 l_balance_type_code VARCHAR2(1);
50555 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50556 l_log_module VARCHAR2(240);
50557
50558 --
50559 -- Upgrade strategy
50560 --
50561 l_actual_upg_option VARCHAR2(1);
50562 l_enc_upg_option VARCHAR2(1);
50563
50564 --
50565 BEGIN
50566 --
50567 IF g_log_enabled THEN
50568 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
50569 END IF;
50570 --
50571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50572
50573 trace
50574 (p_msg => 'BEGIN of AcctLineType_106'
50575 ,p_level => C_LEVEL_PROCEDURE
50576 ,p_module => l_log_module);
50577
50578 END IF;
50579 --
50580 l_component_type := 'AMB_JLT';
50581 l_component_code := 'RCT_DEBT';
50582 l_component_type_code := 'S';
50583 l_component_appl_id := 222;
50584 l_amb_context_code := 'DEFAULT';
50585 l_entity_code := 'RECEIPTS';
50586 l_event_class_code := 'RECEIPT';
50587 l_event_type_code := 'RECEIPT_ALL';
50588 l_line_definition_owner_code := 'S';
50589 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
50590 --
50591 l_balance_type_code := 'A';
50592 l_segment := NULL;
50593 l_ccid := NULL;
50594 l_adr_transaction_coa_id := NULL;
50595 l_adr_accounting_coa_id := NULL;
50596 l_adr_flexfield_segment_code := NULL;
50597 l_adr_flex_value_set_id := NULL;
50598 l_adr_value_type_code := NULL;
50599 l_adr_value_combination_id := NULL;
50600 l_adr_value_segment_code := NULL;
50601
50602 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50603 l_bflow_class_code := ''; -- 4219869 Business Flow
50604 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50605 l_budgetary_control_flag := 'N';
50606
50610 l_accted_amt_idx := NULL; -- 4262811
50607 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50608 l_bflow_applied_to_amt := NULL; -- 5132302
50609 l_entered_amt_idx := NULL; -- 4262811
50611 l_acc_rev_flag := NULL; -- 4262811
50612 l_accrual_line_num := NULL; -- 4262811
50613 l_tmp_amt := NULL; -- 4262811
50614 --
50615
50616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50617 l_balance_type_code <> 'B' THEN
50618 IF NVL(p_source_27,'
50619 ') = 'SHORT_TERM_DEBT' AND
50620 NVL(p_source_88,'
50621 ') = 'N'
50622 THEN
50623
50624 --
50625 XLA_AE_LINES_PKG.SetNewLine;
50626
50627 p_balance_type_code := l_balance_type_code;
50628 -- set the flag so later we will know whether the gain loss line needs to be created
50629
50630 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50631 p_actual_flag :='A';
50632 END IF;
50633
50634 --
50635 -- bulk performance
50636 --
50637 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50638 p_header_num => 0); -- 4262811
50639 --
50640 -- set accounting line options
50641 --
50642 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50643 p_natural_side_code => 'C'
50644 , p_gain_or_loss_flag => 'N'
50645 , p_gl_transfer_mode_code => 'S'
50646 , p_acct_entry_type_code => 'A'
50647 , p_switch_side_flag => 'Y'
50648 , p_merge_duplicate_code => 'A'
50649 );
50650 --
50651 l_acc_rev_natural_side_code := 'D'; -- 4262811
50652 --
50653 --
50654 -- set accounting line type info
50655 --
50656 xla_ae_lines_pkg.SetAcctLineType
50657 (p_component_type => l_component_type
50658 ,p_event_type_code => l_event_type_code
50659 ,p_line_definition_owner_code => l_line_definition_owner_code
50660 ,p_line_definition_code => l_line_definition_code
50661 ,p_accounting_line_code => l_component_code
50662 ,p_accounting_line_type_code => l_component_type_code
50663 ,p_accounting_line_appl_id => l_component_appl_id
50664 ,p_amb_context_code => l_amb_context_code
50665 ,p_entity_code => l_entity_code
50666 ,p_event_class_code => l_event_class_code);
50667 --
50668 -- set accounting class
50669 --
50670 xla_ae_lines_pkg.SetAcctClass(
50671 p_accounting_class_code => 'SHORT_TERM_DEBT'
50672 , p_ae_header_id => l_ae_header_id
50673 );
50674
50675 --
50676 -- set rounding class
50677 --
50678 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50679 'RECEIVABLE';
50680
50681 --
50682 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50683 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50684 --
50685 -- bulk performance
50686 --
50687 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50688
50689 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50690 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50691
50692 -- 4955764
50693 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50694 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50695
50696 -- 4458381 Public Sector Enh
50697
50698 --
50699 -- set accounting attributes for the line type
50700 --
50701 l_entered_amt_idx := 8;
50702 l_accted_amt_idx := 13;
50703 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50704 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
50705 l_rec_acct_attrs.array_num_value(1) := p_source_92;
50706 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50707 l_rec_acct_attrs.array_char_value(2) := p_source_45;
50708 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
50709 l_rec_acct_attrs.array_char_value(3) := p_source_93;
50710 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
50711 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
50712 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50713 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
50714 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
50715 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
50716 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
50717 l_rec_acct_attrs.array_char_value(7) := p_source_30;
50718 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
50719 l_rec_acct_attrs.array_num_value(8) := p_source_95;
50720 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
50721 l_rec_acct_attrs.array_char_value(9) := p_source_96;
50722 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
50723 l_rec_acct_attrs.array_date_value(10) := p_source_33;
50724 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
50725 l_rec_acct_attrs.array_num_value(11) := p_source_34;
50726 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
50727 l_rec_acct_attrs.array_char_value(12) := p_source_35;
50728 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
50732 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
50729 l_rec_acct_attrs.array_num_value(13) := p_source_40;
50730 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
50731 l_rec_acct_attrs.array_num_value(14) := p_source_97;
50733 l_rec_acct_attrs.array_num_value(15) := p_source_98;
50734 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
50735 l_rec_acct_attrs.array_char_value(16) := p_source_99;
50736
50737 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50738 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50739
50740 ---------------------------------------------------------------------------------------------------------------
50741 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50742 ---------------------------------------------------------------------------------------------------------------
50743 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50744
50745 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50749 (p_source_code => 'LEDGER_CATEGORY_CODE'
50746 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50747
50748 IF xla_accounting_cache_pkg.GetValueChar
50750 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50751 AND l_bflow_method_code = 'PRIOR_ENTRY'
50752 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50753 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50754 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50755 )
50756 THEN
50757 xla_ae_lines_pkg.BflowUpgEntry
50758 (p_business_method_code => l_bflow_method_code
50759 ,p_business_class_code => l_bflow_class_code
50760 ,p_balance_type => l_balance_type_code);
50761 ELSE
50762 NULL;
50763 -- No business flow processing for business flow method of NONE.
50764 END IF;
50765
50766 --
50767 -- call analytical criteria
50768 --
50769
50770
50771 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
50772 xla_ae_lines_pkg.SetAnalyticalCriteria(
50773 p_analytical_criterion_name => 'Check Id'
50774 , p_analytical_criterion_owner => 'S'
50775 , p_analytical_criterion_code => 'CHECK_ID'
50776 , p_amb_context_code => 'DEFAULT'
50777 , p_balancing_flag => 'N'
50778
50779 , p_analytical_detail_char_1 => NULL
50780 , p_analytical_detail_num_1 => p_source_90
50781 , p_analytical_detail_date_1 => NULL
50782
50783 , p_ae_header_id => l_ae_header_id
50784 )
50785 ;
50786 --
50787
50788 --
50789 -- call description
50790 --
50791 -- No description or it is inherited.
50792 --
50793 -- call ADRs
50794 -- Bug 4922099
50795 --
50796 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50797 (NVL(l_actual_upg_option, 'N') = 'O') OR
50798 (NVL(l_enc_upg_option, 'N') = 'O')
50799 )
50800 THEN
50801 NULL;
50802 --
50803 --
50804
50805 l_ccid := AcctDerRule_20(
50806 p_application_id => p_application_id
50807 , p_ae_header_id => l_ae_header_id
50808 , p_source_22 => p_source_22
50809 , x_transaction_coa_id => l_adr_transaction_coa_id
50810 , x_accounting_coa_id => l_adr_accounting_coa_id
50811 , x_value_type_code => l_adr_value_type_code
50815 xla_ae_lines_pkg.set_ccid(
50812 , p_side => 'NA'
50813 );
50814
50816 p_code_combination_id => l_ccid
50817 , p_value_type_code => l_adr_value_type_code
50818 , p_transaction_coa_id => l_adr_transaction_coa_id
50819 , p_accounting_coa_id => l_adr_accounting_coa_id
50820 , p_adr_code => 'DIST_CCID'
50821 , p_adr_type_code => 'S'
50822 , p_component_type => l_component_type
50823 , p_component_code => l_component_code
50824 , p_component_type_code => l_component_type_code
50825 , p_component_appl_id => l_component_appl_id
50826 , p_amb_context_code => l_amb_context_code
50827 , p_side => 'NA'
50828 );
50829
50830
50831 --
50832 --
50833 END IF;
50834 --
50835 -- Bug 4922099
50836 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50837 (NVL(l_enc_upg_option, 'N') = 'O')
50838 ) AND
50839 (l_bflow_method_code = 'PRIOR_ENTRY')
50840 )
50841 THEN
50842 IF
50843 --
50844 1 = 2
50845 --
50846 THEN
50847 xla_accounting_err_pkg.build_message
50848 (p_appli_s_name => 'XLA'
50849 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50850 ,p_token_1 => 'LINE_NUMBER'
50851 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50852 ,p_token_2 => 'LINE_TYPE_NAME'
50853 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50854 l_component_type
50855 ,l_component_code
50856 ,l_component_type_code
50857 ,l_component_appl_id
50858 ,l_amb_context_code
50859 ,l_entity_code
50860 ,l_event_class_code
50861 )
50862 ,p_token_3 => 'OWNER'
50863 ,p_value_3 => xla_lookups_pkg.get_meaning(
50864 p_lookup_type => 'XLA_OWNER_TYPE'
50865 ,p_lookup_code => l_component_type_code
50866 )
50867 ,p_token_4 => 'PRODUCT_NAME'
50868 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50869 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50870 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50871 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50872 ,p_ae_header_id => NULL
50873 );
50874
50875 IF (C_LEVEL_ERROR>= g_log_level) THEN
50876 trace
50877 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50878 ,p_level => C_LEVEL_ERROR
50879 ,p_module => l_log_module);
50880 END IF;
50881 END IF;
50882 END IF;
50883 --
50884 --
50885 ------------------------------------------------------------------------------------------------
50886 -- 4219869 Business Flow
50887 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50888 -- Prior Entry. Currently, the following code is always generated.
50889 ------------------------------------------------------------------------------------------------
50890 XLA_AE_LINES_PKG.ValidateCurrentLine;
50891
50892 ------------------------------------------------------------------------------------
50893 -- 4219869 Business Flow
50894 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50895 ------------------------------------------------------------------------------------
50896 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50897
50898 ----------------------------------------------------------------------------------
50899 -- 4219869 Business Flow
50900 -- Update journal entry status -- Need to generate this within IF <condition>
50901 ----------------------------------------------------------------------------------
50902 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50903 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50904 ,p_balance_type_code => l_balance_type_code
50905 );
50906
50907 -------------------------------------------------------------------------------------------
50908 -- 4262811 - Generate the Accrual Reversal lines
50909 -------------------------------------------------------------------------------------------
50910 BEGIN
50911 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50912 (g_array_event(p_event_id).array_value_num('header_index'));
50913 IF l_acc_rev_flag IS NULL THEN
50917 WHEN OTHERS THEN
50914 l_acc_rev_flag := 'N';
50915 END IF;
50916 EXCEPTION
50918 l_acc_rev_flag := 'N';
50919 END;
50920 --
50921 IF (l_acc_rev_flag = 'Y') THEN
50922
50923 -- 4645092 ------------------------------------------------------------------------------
50924 -- To allow MPA report to determine if it should generate report process
50925 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50926 ------------------------------------------------------------------------------------------
50927
50928 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50929 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50930 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50931 -- call ADRs
50932 -- Bug 4922099
50933 --
50934 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50935 (NVL(l_actual_upg_option, 'N') = 'O') OR
50936 (NVL(l_enc_upg_option, 'N') = 'O')
50937 )
50938 THEN
50939 NULL;
50940 --
50941 --
50942
50943 l_ccid := AcctDerRule_20(
50944 p_application_id => p_application_id
50945 , p_ae_header_id => l_ae_header_id
50946 , p_source_22 => p_source_22
50947 , x_transaction_coa_id => l_adr_transaction_coa_id
50948 , x_accounting_coa_id => l_adr_accounting_coa_id
50949 , x_value_type_code => l_adr_value_type_code
50950 , p_side => 'NA'
50951 );
50952
50953 xla_ae_lines_pkg.set_ccid(
50954 p_code_combination_id => l_ccid
50955 , p_value_type_code => l_adr_value_type_code
50956 , p_transaction_coa_id => l_adr_transaction_coa_id
50957 , p_accounting_coa_id => l_adr_accounting_coa_id
50958 , p_adr_code => 'DIST_CCID'
50959 , p_adr_type_code => 'S'
50960 , p_component_type => l_component_type
50961 , p_component_code => l_component_code
50962 , p_component_type_code => l_component_type_code
50963 , p_component_appl_id => l_component_appl_id
50964 , p_amb_context_code => l_amb_context_code
50965 , p_side => 'NA'
50966 );
50967
50968
50969 --
50970 --
50971 END IF;
50972
50973 --
50974 -- Update the line information that should be overwritten
50975 --
50976 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50977 p_header_num => 1);
50978 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50979
50980 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50981
50982 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50983 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50984 END IF;
50985
50986 --
50987 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50988 --
50989 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50990 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50991 ELSE
50992 ---------------------------------------------------------------------------------------------------
50993 -- 4262811a Switch Sign
50994 ---------------------------------------------------------------------------------------------------
50995 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50997 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50998 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50999 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51000 -- 5132302
51001 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51002 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51003
51004 END IF;
51005
51006 -- 4955764
51007 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51008 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51009
51010
51011 XLA_AE_LINES_PKG.ValidateCurrentLine;
51012 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51013
51014 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51015 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51016 ,p_balance_type_code => l_balance_type_code);
51017
51018 END IF;
51019
51020 -----------------------------------------------------------------------------------------
51021 -- 4262811 Multiperiod Accounting
51022 -----------------------------------------------------------------------------------------
51023 -- No MPA option is assigned.
51024
51025
51026 END IF;
51027 END IF;
51028 --
51029
51030 --
51031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51032 trace
51033 (p_msg => 'END of AcctLineType_106'
51037 --
51034 ,p_level => C_LEVEL_PROCEDURE
51035 ,p_module => l_log_module);
51036 END IF;
51038 EXCEPTION
51039 WHEN xla_exceptions_pkg.application_exception THEN
51040 RAISE;
51041 WHEN OTHERS THEN
51042 xla_exceptions_pkg.raise_message
51043 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_106');
51044 END AcctLineType_106;
51045 --
51046
51047 ---------------------------------------
51048 --
51049 -- PRIVATE FUNCTION
51050 -- AcctLineType_107
51051 --
51052 ---------------------------------------
51053 PROCEDURE AcctLineType_107 (
51054 p_application_id IN NUMBER
51055 ,p_event_id IN NUMBER
51056 ,p_calculate_acctd_flag IN VARCHAR2
51057 ,p_calculate_g_l_flag IN VARCHAR2
51058 ,p_actual_flag IN OUT VARCHAR2
51059 ,p_balance_type_code OUT VARCHAR2
51060 ,p_gain_or_loss_ref OUT VARCHAR2
51061
51062 --Transaction Type Name
51063 , p_source_1 IN VARCHAR2
51064 --Transaction Number
51065 , p_source_2 IN VARCHAR2
51066 --Transaction Document Sequence Number
51067 , p_source_3 IN NUMBER
51068 --Distribution GL Account
51069 , p_source_22 IN NUMBER
51070 --Distribution Source Type
51071 , p_source_27 IN VARCHAR2
51072 --Distribution Line Identifier
51073 , p_source_29 IN NUMBER
51074 --Distribution Type
51075 , p_source_30 IN VARCHAR2
51076 --Entered Amount
51077 , p_source_31 IN NUMBER
51078 --Currency Code
51079 , p_source_32 IN VARCHAR2
51080 --Applied To Document Accounting Amount
51081 , p_source_36 IN NUMBER
51082 --Transaction Distribution Identifier
51083 , p_source_44 IN NUMBER
51084 --Transaction Distribution Type
51085 , p_source_45 IN VARCHAR2
51086 --Distribution Multi Fund Additional Entry
51087 , p_source_88 IN VARCHAR2
51088 --Applied To Document Exchange Date
51089 , p_source_89 IN DATE
51090 --Cash Receipt Identifier
51091 , p_source_90 IN NUMBER
51092 --Receipt Applied To Application Identifier
51093 , p_source_92 IN NUMBER
51094 --Transaction Entity Code
51095 , p_source_93 IN VARCHAR2
51096 --Transaction Identifier
51097 , p_source_94 IN NUMBER
51098 --Distribution Party Identifier
51099 , p_source_97 IN NUMBER
51100 --Distribution Party Site Id
51101 , p_source_98 IN NUMBER
51102 --Distribution Party Type
51103 , p_source_99 IN VARCHAR2
51104 --Applied To Document Exchange Rate Type
51105 , p_source_100 IN VARCHAR2
51106 --Applied To Document Exchange Rate
51107 , p_source_101 IN NUMBER
51108 )
51109 IS
51110
51111 l_component_type VARCHAR2(80);
51112 l_component_code VARCHAR2(30);
51113 l_component_type_code VARCHAR2(1);
51114 l_component_appl_id INTEGER;
51115 l_amb_context_code VARCHAR2(30);
51116 l_entity_code VARCHAR2(30);
51117 l_event_class_code VARCHAR2(30);
51118 l_ae_header_id NUMBER;
51119 l_event_type_code VARCHAR2(30);
51120 l_line_definition_code VARCHAR2(30);
51121 l_line_definition_owner_code VARCHAR2(1);
51122 --
51123 -- adr variables
51124 l_segment VARCHAR2(30);
51125 l_ccid NUMBER;
51126 l_adr_transaction_coa_id NUMBER;
51127 l_adr_accounting_coa_id NUMBER;
51128 l_adr_flexfield_segment_code VARCHAR2(30);
51129 l_adr_flex_value_set_id NUMBER;
51130 l_adr_value_type_code VARCHAR2(30);
51131 l_adr_value_combination_id NUMBER;
51132 l_adr_value_segment_code VARCHAR2(30);
51133
51134 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51135 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51136 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51137 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51138
51139 -- 4262811 Variables ------------------------------------------------------------------------------------------
51140 l_entered_amt_idx NUMBER;
51141 l_accted_amt_idx NUMBER;
51142 l_acc_rev_flag VARCHAR2(1);
51143 l_accrual_line_num NUMBER;
51144 l_tmp_amt NUMBER;
51145 l_acc_rev_natural_side_code VARCHAR2(1);
51146
51147 l_num_entries NUMBER;
51148 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51149 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51150 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51151 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51152 l_recog_line_1 NUMBER;
51153 l_recog_line_2 NUMBER;
51154
51155 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51156 l_bflow_applied_to_amt NUMBER; -- 5132302
51157 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51158
51159 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51160
51161 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51162 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51163
51164 ---------------------------------------------------------------------------------------------------------------
51165
51166
51167 --
51168 -- bulk performance
51169 --
51170 l_balance_type_code VARCHAR2(1);
51174 --
51171 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51172 l_log_module VARCHAR2(240);
51173
51175 -- Upgrade strategy
51176 --
51177 l_actual_upg_option VARCHAR2(1);
51178 l_enc_upg_option VARCHAR2(1);
51179
51180 --
51181 BEGIN
51182 --
51183 IF g_log_enabled THEN
51184 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
51185 END IF;
51186 --
51190 (p_msg => 'BEGIN of AcctLineType_107'
51187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51188
51189 trace
51191 ,p_level => C_LEVEL_PROCEDURE
51192 ,p_module => l_log_module);
51193
51194 END IF;
51195 --
51196 l_component_type := 'AMB_JLT';
51197 l_component_code := 'RCT_DEFAULT_APP';
51198 l_component_type_code := 'S';
51199 l_component_appl_id := 222;
51200 l_amb_context_code := 'DEFAULT';
51201 l_entity_code := 'RECEIPTS';
51202 l_event_class_code := 'RECEIPT';
51203 l_event_type_code := 'RECEIPT_ALL';
51204 l_line_definition_owner_code := 'S';
51205 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
51206 --
51207 l_balance_type_code := 'A';
51208 l_segment := NULL;
51209 l_ccid := NULL;
51210 l_adr_transaction_coa_id := NULL;
51211 l_adr_accounting_coa_id := NULL;
51212 l_adr_flexfield_segment_code := NULL;
51213 l_adr_flex_value_set_id := NULL;
51214 l_adr_value_type_code := NULL;
51215 l_adr_value_combination_id := NULL;
51216 l_adr_value_segment_code := NULL;
51217
51218 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51219 l_bflow_class_code := ''; -- 4219869 Business Flow
51220 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51221 l_budgetary_control_flag := 'N';
51222
51223 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51224 l_bflow_applied_to_amt := NULL; -- 5132302
51225 l_entered_amt_idx := NULL; -- 4262811
51226 l_accted_amt_idx := NULL; -- 4262811
51227 l_acc_rev_flag := NULL; -- 4262811
51228 l_accrual_line_num := NULL; -- 4262811
51229 l_tmp_amt := NULL; -- 4262811
51230 --
51231
51232 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51233 l_balance_type_code <> 'B' THEN
51234 IF NVL(p_source_27,'
51235 ') = 'REC' AND
51236 NVL(p_source_88,'
51237 ') = 'N'
51238 THEN
51239
51240 --
51241 XLA_AE_LINES_PKG.SetNewLine;
51242
51243 p_balance_type_code := l_balance_type_code;
51244 -- set the flag so later we will know whether the gain loss line needs to be created
51245
51246 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51247 p_actual_flag :='A';
51248 END IF;
51249
51250 --
51251 -- bulk performance
51252 --
51253 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51254 p_header_num => 0); -- 4262811
51255 --
51256 -- set accounting line options
51257 --
51258 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51259 p_natural_side_code => 'C'
51260 , p_gain_or_loss_flag => 'N'
51261 , p_gl_transfer_mode_code => 'S'
51262 , p_acct_entry_type_code => 'A'
51263 , p_switch_side_flag => 'Y'
51264 , p_merge_duplicate_code => 'A'
51265 );
51266 --
51267 l_acc_rev_natural_side_code := 'D'; -- 4262811
51268 --
51269 --
51270 -- set accounting line type info
51271 --
51272 xla_ae_lines_pkg.SetAcctLineType
51273 (p_component_type => l_component_type
51274 ,p_event_type_code => l_event_type_code
51275 ,p_line_definition_owner_code => l_line_definition_owner_code
51276 ,p_line_definition_code => l_line_definition_code
51277 ,p_accounting_line_code => l_component_code
51278 ,p_accounting_line_type_code => l_component_type_code
51279 ,p_accounting_line_appl_id => l_component_appl_id
51280 ,p_amb_context_code => l_amb_context_code
51281 ,p_entity_code => l_entity_code
51282 ,p_event_class_code => l_event_class_code);
51283 --
51284 -- set accounting class
51285 --
51286 xla_ae_lines_pkg.SetAcctClass(
51287 p_accounting_class_code => 'RECEIVABLE'
51291 --
51288 , p_ae_header_id => l_ae_header_id
51289 );
51290
51292 -- set rounding class
51293 --
51294 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51295 'RECEIVABLE';
51296
51297 --
51298 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51299 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51300 --
51301 -- bulk performance
51302 --
51303 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51304
51305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51306 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51307
51308 -- 4955764
51309 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51310 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51311
51312 -- 4458381 Public Sector Enh
51313
51314 --
51315 -- set accounting attributes for the line type
51316 --
51317 l_entered_amt_idx := 8;
51318 l_accted_amt_idx := 13;
51319 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51320 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
51321 l_rec_acct_attrs.array_num_value(1) := p_source_92;
51322 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51323 l_rec_acct_attrs.array_char_value(2) := p_source_45;
51324 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
51325 l_rec_acct_attrs.array_char_value(3) := p_source_93;
51326 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
51327 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
51328 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51329 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
51330 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
51331 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
51332 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
51333 l_rec_acct_attrs.array_char_value(7) := p_source_30;
51334 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
51335 l_rec_acct_attrs.array_num_value(8) := p_source_31;
51339 l_rec_acct_attrs.array_date_value(10) := p_source_89;
51336 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
51337 l_rec_acct_attrs.array_char_value(9) := p_source_32;
51338 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
51340 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
51341 l_rec_acct_attrs.array_num_value(11) := p_source_101;
51342 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
51343 l_rec_acct_attrs.array_char_value(12) := p_source_100;
51344 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
51345 l_rec_acct_attrs.array_num_value(13) := p_source_36;
51346 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
51347 l_rec_acct_attrs.array_num_value(14) := p_source_97;
51348 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
51349 l_rec_acct_attrs.array_num_value(15) := p_source_98;
51350 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
51351 l_rec_acct_attrs.array_char_value(16) := p_source_99;
51352
51353 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51354 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51355
51356 ---------------------------------------------------------------------------------------------------------------
51357 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51358 ---------------------------------------------------------------------------------------------------------------
51359 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51360
51361 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51362 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51363
51364 IF xla_accounting_cache_pkg.GetValueChar
51365 (p_source_code => 'LEDGER_CATEGORY_CODE'
51366 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51367 AND l_bflow_method_code = 'PRIOR_ENTRY'
51368 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51369 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51370 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51371 )
51372 THEN
51373 xla_ae_lines_pkg.BflowUpgEntry
51377 ELSE
51374 (p_business_method_code => l_bflow_method_code
51375 ,p_business_class_code => l_bflow_class_code
51376 ,p_balance_type => l_balance_type_code);
51378 NULL;
51379 -- No business flow processing for business flow method of NONE.
51380 END IF;
51381
51382 --
51383 -- call analytical criteria
51384 --
51385
51386
51387 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
51388 xla_ae_lines_pkg.SetAnalyticalCriteria(
51389 p_analytical_criterion_name => 'Check Id'
51390 , p_analytical_criterion_owner => 'S'
51391 , p_analytical_criterion_code => 'CHECK_ID'
51392 , p_amb_context_code => 'DEFAULT'
51393 , p_balancing_flag => 'N'
51394
51395 , p_analytical_detail_char_1 => NULL
51396 , p_analytical_detail_num_1 => p_source_90
51397 , p_analytical_detail_date_1 => NULL
51398
51399 , p_ae_header_id => l_ae_header_id
51400 )
51401 ;
51402 --
51403
51404
51405 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
51406 xla_ae_lines_pkg.SetAnalyticalCriteria(
51407 p_analytical_criterion_name => 'Transaction Type'
51408 , p_analytical_criterion_owner => 'S'
51409 , p_analytical_criterion_code => 'TRANSACTION_TYPE'
51410 , p_amb_context_code => 'DEFAULT'
51411 , p_balancing_flag => 'N'
51412
51413 , p_analytical_detail_char_1 => TO_CHAR(p_source_1)
51414 , p_analytical_detail_num_1 => NULL
51415 , p_analytical_detail_date_1 => NULL
51416
51417 , p_ae_header_id => l_ae_header_id
51418 )
51419 ;
51420 --
51421
51422 --
51423 -- call description
51424 --
51425
51426 xla_ae_lines_pkg.SetLineDescription(
51427 p_ae_header_id => l_ae_header_id
51428 ,p_description => Description_11 (
51429 p_application_id => p_application_id
51430 , p_ae_header_id => l_ae_header_id
51431 , p_source_1 => p_source_1
51432 , p_source_2 => p_source_2
51433 , p_source_3 => p_source_3
51434 )
51435 );
51436
51437
51438 --
51439 -- call ADRs
51440 -- Bug 4922099
51441 --
51442 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51443 (NVL(l_actual_upg_option, 'N') = 'O') OR
51444 (NVL(l_enc_upg_option, 'N') = 'O')
51445 )
51446 THEN
51447 NULL;
51448 --
51449 --
51450
51451 l_ccid := AcctDerRule_20(
51452 p_application_id => p_application_id
51453 , p_ae_header_id => l_ae_header_id
51454 , p_source_22 => p_source_22
51455 , x_transaction_coa_id => l_adr_transaction_coa_id
51456 , x_accounting_coa_id => l_adr_accounting_coa_id
51457 , x_value_type_code => l_adr_value_type_code
51458 , p_side => 'NA'
51459 );
51460
51461 xla_ae_lines_pkg.set_ccid(
51462 p_code_combination_id => l_ccid
51463 , p_value_type_code => l_adr_value_type_code
51464 , p_transaction_coa_id => l_adr_transaction_coa_id
51465 , p_accounting_coa_id => l_adr_accounting_coa_id
51466 , p_adr_code => 'DIST_CCID'
51467 , p_adr_type_code => 'S'
51468 , p_component_type => l_component_type
51469 , p_component_code => l_component_code
51470 , p_component_type_code => l_component_type_code
51471 , p_component_appl_id => l_component_appl_id
51472 , p_amb_context_code => l_amb_context_code
51473 , p_side => 'NA'
51474 );
51475
51476
51477 --
51478 --
51479 END IF;
51480 --
51481 -- Bug 4922099
51482 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51483 (NVL(l_enc_upg_option, 'N') = 'O')
51484 ) AND
51485 (l_bflow_method_code = 'PRIOR_ENTRY')
51486 )
51487 THEN
51488 IF
51489 --
51490 1 = 2
51491 --
51492 THEN
51493 xla_accounting_err_pkg.build_message
51497 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51494 (p_appli_s_name => 'XLA'
51495 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51496 ,p_token_1 => 'LINE_NUMBER'
51498 ,p_token_2 => 'LINE_TYPE_NAME'
51499 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51500 l_component_type
51501 ,l_component_code
51502 ,l_component_type_code
51503 ,l_component_appl_id
51504 ,l_amb_context_code
51505 ,l_entity_code
51506 ,l_event_class_code
51507 )
51508 ,p_token_3 => 'OWNER'
51509 ,p_value_3 => xla_lookups_pkg.get_meaning(
51510 p_lookup_type => 'XLA_OWNER_TYPE'
51511 ,p_lookup_code => l_component_type_code
51512 )
51513 ,p_token_4 => 'PRODUCT_NAME'
51514 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51515 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51516 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51517 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51518 ,p_ae_header_id => NULL
51519 );
51520
51521 IF (C_LEVEL_ERROR>= g_log_level) THEN
51522 trace
51523 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51524 ,p_level => C_LEVEL_ERROR
51525 ,p_module => l_log_module);
51526 END IF;
51527 END IF;
51528 END IF;
51529 --
51530 --
51531 ------------------------------------------------------------------------------------------------
51532 -- 4219869 Business Flow
51533 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51534 -- Prior Entry. Currently, the following code is always generated.
51535 ------------------------------------------------------------------------------------------------
51536 XLA_AE_LINES_PKG.ValidateCurrentLine;
51537
51538 ------------------------------------------------------------------------------------
51539 -- 4219869 Business Flow
51540 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51541 ------------------------------------------------------------------------------------
51542 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51543
51544 ----------------------------------------------------------------------------------
51545 -- 4219869 Business Flow
51546 -- Update journal entry status -- Need to generate this within IF <condition>
51547 ----------------------------------------------------------------------------------
51548 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51549 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51550 ,p_balance_type_code => l_balance_type_code
51551 );
51552
51553 -------------------------------------------------------------------------------------------
51554 -- 4262811 - Generate the Accrual Reversal lines
51555 -------------------------------------------------------------------------------------------
51556 BEGIN
51557 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51558 (g_array_event(p_event_id).array_value_num('header_index'));
51559 IF l_acc_rev_flag IS NULL THEN
51560 l_acc_rev_flag := 'N';
51561 END IF;
51562 EXCEPTION
51563 WHEN OTHERS THEN
51564 l_acc_rev_flag := 'N';
51565 END;
51566 --
51567 IF (l_acc_rev_flag = 'Y') THEN
51568
51569 -- 4645092 ------------------------------------------------------------------------------
51570 -- To allow MPA report to determine if it should generate report process
51571 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51572 ------------------------------------------------------------------------------------------
51573
51574 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51578 -- Bug 4922099
51575 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51576 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51577 -- call ADRs
51579 --
51580 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51581 (NVL(l_actual_upg_option, 'N') = 'O') OR
51582 (NVL(l_enc_upg_option, 'N') = 'O')
51583 )
51584 THEN
51585 NULL;
51586 --
51587 --
51588
51589 l_ccid := AcctDerRule_20(
51590 p_application_id => p_application_id
51591 , p_ae_header_id => l_ae_header_id
51592 , p_source_22 => p_source_22
51593 , x_transaction_coa_id => l_adr_transaction_coa_id
51594 , x_accounting_coa_id => l_adr_accounting_coa_id
51595 , x_value_type_code => l_adr_value_type_code
51596 , p_side => 'NA'
51597 );
51598
51599 xla_ae_lines_pkg.set_ccid(
51600 p_code_combination_id => l_ccid
51601 , p_value_type_code => l_adr_value_type_code
51602 , p_transaction_coa_id => l_adr_transaction_coa_id
51603 , p_accounting_coa_id => l_adr_accounting_coa_id
51604 , p_adr_code => 'DIST_CCID'
51605 , p_adr_type_code => 'S'
51606 , p_component_type => l_component_type
51607 , p_component_code => l_component_code
51608 , p_component_type_code => l_component_type_code
51609 , p_component_appl_id => l_component_appl_id
51610 , p_amb_context_code => l_amb_context_code
51611 , p_side => 'NA'
51612 );
51613
51614
51615 --
51616 --
51617 END IF;
51618
51619 --
51620 -- Update the line information that should be overwritten
51621 --
51622 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51623 p_header_num => 1);
51624 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51625
51626 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51627
51628 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51629 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51630 END IF;
51631
51632 --
51633 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51634 --
51635 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51636 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51637 ELSE
51638 ---------------------------------------------------------------------------------------------------
51639 -- 4262811a Switch Sign
51640 ---------------------------------------------------------------------------------------------------
51641 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51642 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51643 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51644 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51645 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51646 -- 5132302
51647 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51648 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51649
51650 END IF;
51651
51652 -- 4955764
51653 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51654 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51655
51656
51657 XLA_AE_LINES_PKG.ValidateCurrentLine;
51658 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51659
51660 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51661 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51662 ,p_balance_type_code => l_balance_type_code);
51663
51664 END IF;
51665
51666 -----------------------------------------------------------------------------------------
51667 -- 4262811 Multiperiod Accounting
51668 -----------------------------------------------------------------------------------------
51669 -- No MPA option is assigned.
51670
51671
51672 END IF;
51673 END IF;
51674 --
51675
51676 --
51677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51678 trace
51679 (p_msg => 'END of AcctLineType_107'
51680 ,p_level => C_LEVEL_PROCEDURE
51681 ,p_module => l_log_module);
51682 END IF;
51683 --
51684 EXCEPTION
51685 WHEN xla_exceptions_pkg.application_exception THEN
51686 RAISE;
51687 WHEN OTHERS THEN
51688 xla_exceptions_pkg.raise_message
51689 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_107');
51690 END AcctLineType_107;
51691 --
51692
51693 ---------------------------------------
51694 --
51695 -- PRIVATE FUNCTION
51696 -- AcctLineType_108
51697 --
51698 ---------------------------------------
51699 PROCEDURE AcctLineType_108 (
51700 p_application_id IN NUMBER
51701 ,p_event_id IN NUMBER
51702 ,p_calculate_acctd_flag IN VARCHAR2
51703 ,p_calculate_g_l_flag IN VARCHAR2
51707
51704 ,p_actual_flag IN OUT VARCHAR2
51705 ,p_balance_type_code OUT VARCHAR2
51706 ,p_gain_or_loss_ref OUT VARCHAR2
51708 --Distribution GL Account
51709 , p_source_22 IN NUMBER
51710 --Distribution Source Type
51711 , p_source_27 IN VARCHAR2
51712 --Distribution Line Identifier
51713 , p_source_29 IN NUMBER
51714 --Distribution Type
51715 , p_source_30 IN VARCHAR2
51716 --Entered Amount
51717 , p_source_31 IN NUMBER
51718 --Currency Code
51719 , p_source_32 IN VARCHAR2
51720 --Applied To Document Accounting Amount
51721 , p_source_36 IN NUMBER
51722 --Transaction Distribution Identifier
51723 , p_source_44 IN NUMBER
51724 --Transaction Distribution Type
51725 , p_source_45 IN VARCHAR2
51726 --Distribution Multi Fund Additional Entry
51727 , p_source_88 IN VARCHAR2
51728 --Applied To Document Exchange Date
51729 , p_source_89 IN DATE
51730 --Cash Receipt Identifier
51731 , p_source_90 IN NUMBER
51732 --Receipt Applied To Application Identifier
51733 , p_source_92 IN NUMBER
51734 --Transaction Entity Code
51735 , p_source_93 IN VARCHAR2
51736 --Transaction Identifier
51737 , p_source_94 IN NUMBER
51738 --Distribution Party Identifier
51739 , p_source_97 IN NUMBER
51740 --Distribution Party Site Id
51741 , p_source_98 IN NUMBER
51742 --Distribution Party Type
51743 , p_source_99 IN VARCHAR2
51744 --Applied To Document Exchange Rate Type
51745 , p_source_100 IN VARCHAR2
51746 --Applied To Document Exchange Rate
51747 , p_source_101 IN NUMBER
51748 )
51749 IS
51750
51751 l_component_type VARCHAR2(80);
51752 l_component_code VARCHAR2(30);
51753 l_component_type_code VARCHAR2(1);
51754 l_component_appl_id INTEGER;
51755 l_amb_context_code VARCHAR2(30);
51756 l_entity_code VARCHAR2(30);
51757 l_event_class_code VARCHAR2(30);
51758 l_ae_header_id NUMBER;
51759 l_event_type_code VARCHAR2(30);
51760 l_line_definition_code VARCHAR2(30);
51761 l_line_definition_owner_code VARCHAR2(1);
51762 --
51763 -- adr variables
51764 l_segment VARCHAR2(30);
51765 l_ccid NUMBER;
51766 l_adr_transaction_coa_id NUMBER;
51767 l_adr_accounting_coa_id NUMBER;
51771 l_adr_value_combination_id NUMBER;
51768 l_adr_flexfield_segment_code VARCHAR2(30);
51769 l_adr_flex_value_set_id NUMBER;
51770 l_adr_value_type_code VARCHAR2(30);
51772 l_adr_value_segment_code VARCHAR2(30);
51773
51774 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51775 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51776 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51777 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51778
51779 -- 4262811 Variables ------------------------------------------------------------------------------------------
51780 l_entered_amt_idx NUMBER;
51781 l_accted_amt_idx NUMBER;
51782 l_acc_rev_flag VARCHAR2(1);
51783 l_accrual_line_num NUMBER;
51784 l_tmp_amt NUMBER;
51785 l_acc_rev_natural_side_code VARCHAR2(1);
51786
51787 l_num_entries NUMBER;
51788 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51789 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51790 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51791 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51792 l_recog_line_1 NUMBER;
51793 l_recog_line_2 NUMBER;
51794
51795 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51796 l_bflow_applied_to_amt NUMBER; -- 5132302
51797 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51798
51799 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51800
51801 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51802 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51803
51804 ---------------------------------------------------------------------------------------------------------------
51805
51806
51807 --
51808 -- bulk performance
51809 --
51810 l_balance_type_code VARCHAR2(1);
51811 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51815 -- Upgrade strategy
51812 l_log_module VARCHAR2(240);
51813
51814 --
51816 --
51817 l_actual_upg_option VARCHAR2(1);
51818 l_enc_upg_option VARCHAR2(1);
51819
51820 --
51821 BEGIN
51822 --
51823 IF g_log_enabled THEN
51824 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
51825 END IF;
51826 --
51827 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51828
51829 trace
51830 (p_msg => 'BEGIN of AcctLineType_108'
51831 ,p_level => C_LEVEL_PROCEDURE
51832 ,p_module => l_log_module);
51833
51834 END IF;
51835 --
51836 l_component_type := 'AMB_JLT';
51837 l_component_code := 'RCT_DEFERRED_TAX';
51838 l_component_type_code := 'S';
51839 l_component_appl_id := 222;
51840 l_amb_context_code := 'DEFAULT';
51841 l_entity_code := 'RECEIPTS';
51842 l_event_class_code := 'RECEIPT';
51843 l_event_type_code := 'RECEIPT_ALL';
51844 l_line_definition_owner_code := 'S';
51845 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
51846 --
51847 l_balance_type_code := 'A';
51848 l_segment := NULL;
51849 l_ccid := NULL;
51850 l_adr_transaction_coa_id := NULL;
51851 l_adr_accounting_coa_id := NULL;
51852 l_adr_flexfield_segment_code := NULL;
51853 l_adr_flex_value_set_id := NULL;
51854 l_adr_value_type_code := NULL;
51855 l_adr_value_combination_id := NULL;
51856 l_adr_value_segment_code := NULL;
51857
51858 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51859 l_bflow_class_code := ''; -- 4219869 Business Flow
51860 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51861 l_budgetary_control_flag := 'N';
51862
51863 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51864 l_bflow_applied_to_amt := NULL; -- 5132302
51865 l_entered_amt_idx := NULL; -- 4262811
51866 l_accted_amt_idx := NULL; -- 4262811
51867 l_acc_rev_flag := NULL; -- 4262811
51868 l_accrual_line_num := NULL; -- 4262811
51869 l_tmp_amt := NULL; -- 4262811
51870 --
51871
51872 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51873 l_balance_type_code <> 'B' THEN
51874 IF NVL(p_source_27,'
51875 ') = 'DEFERRED_TAX' AND
51876 NVL(p_source_88,'
51877 ') = 'N'
51878 THEN
51879
51880 --
51881 XLA_AE_LINES_PKG.SetNewLine;
51882
51883 p_balance_type_code := l_balance_type_code;
51884 -- set the flag so later we will know whether the gain loss line needs to be created
51885
51886 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51887 p_actual_flag :='A';
51888 END IF;
51889
51890 --
51891 -- bulk performance
51892 --
51893 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51894 p_header_num => 0); -- 4262811
51895 --
51896 -- set accounting line options
51897 --
51898 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51899 p_natural_side_code => 'C'
51900 , p_gain_or_loss_flag => 'N'
51901 , p_gl_transfer_mode_code => 'S'
51902 , p_acct_entry_type_code => 'A'
51903 , p_switch_side_flag => 'Y'
51904 , p_merge_duplicate_code => 'A'
51905 );
51906 --
51907 l_acc_rev_natural_side_code := 'D'; -- 4262811
51908 --
51909 --
51910 -- set accounting line type info
51911 --
51912 xla_ae_lines_pkg.SetAcctLineType
51913 (p_component_type => l_component_type
51914 ,p_event_type_code => l_event_type_code
51915 ,p_line_definition_owner_code => l_line_definition_owner_code
51916 ,p_line_definition_code => l_line_definition_code
51917 ,p_accounting_line_code => l_component_code
51918 ,p_accounting_line_type_code => l_component_type_code
51919 ,p_accounting_line_appl_id => l_component_appl_id
51920 ,p_amb_context_code => l_amb_context_code
51921 ,p_entity_code => l_entity_code
51922 ,p_event_class_code => l_event_class_code);
51923 --
51924 -- set accounting class
51925 --
51926 xla_ae_lines_pkg.SetAcctClass(
51927 p_accounting_class_code => 'DEFERRED_TAX'
51928 , p_ae_header_id => l_ae_header_id
51929 );
51930
51931 --
51932 -- set rounding class
51933 --
51934 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51935 'RECEIVABLE';
51936
51937 --
51938 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51939 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51940 --
51941 -- bulk performance
51942 --
51943 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51944
51945 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51946 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51947
51948 -- 4955764
51949 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51953
51950 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51951
51952 -- 4458381 Public Sector Enh
51954 --
51955 -- set accounting attributes for the line type
51956 --
51957 l_entered_amt_idx := 8;
51958 l_accted_amt_idx := 13;
51959 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51960 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
51961 l_rec_acct_attrs.array_num_value(1) := p_source_92;
51962 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51963 l_rec_acct_attrs.array_char_value(2) := p_source_45;
51964 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
51965 l_rec_acct_attrs.array_char_value(3) := p_source_93;
51966 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
51967 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
51968 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51969 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
51970 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
51971 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
51972 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
51973 l_rec_acct_attrs.array_char_value(7) := p_source_30;
51974 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
51975 l_rec_acct_attrs.array_num_value(8) := p_source_31;
51976 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
51977 l_rec_acct_attrs.array_char_value(9) := p_source_32;
51978 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
51979 l_rec_acct_attrs.array_date_value(10) := p_source_89;
51980 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
51981 l_rec_acct_attrs.array_num_value(11) := p_source_101;
51982 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
51983 l_rec_acct_attrs.array_char_value(12) := p_source_100;
51984 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
51985 l_rec_acct_attrs.array_num_value(13) := p_source_36;
51986 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
51987 l_rec_acct_attrs.array_num_value(14) := p_source_97;
51988 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
51989 l_rec_acct_attrs.array_num_value(15) := p_source_98;
51990 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
51991 l_rec_acct_attrs.array_char_value(16) := p_source_99;
51992
51993 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51994 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51995
51996 ---------------------------------------------------------------------------------------------------------------
51997 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51998 ---------------------------------------------------------------------------------------------------------------
51999 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52000
52001 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52002 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52003
52004 IF xla_accounting_cache_pkg.GetValueChar
52005 (p_source_code => 'LEDGER_CATEGORY_CODE'
52006 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52007 AND l_bflow_method_code = 'PRIOR_ENTRY'
52008 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52009 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52010 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52011 )
52012 THEN
52013 xla_ae_lines_pkg.BflowUpgEntry
52014 (p_business_method_code => l_bflow_method_code
52015 ,p_business_class_code => l_bflow_class_code
52016 ,p_balance_type => l_balance_type_code);
52017 ELSE
52018 NULL;
52019 -- No business flow processing for business flow method of NONE.
52020 END IF;
52021
52022 --
52023 -- call analytical criteria
52024 --
52025
52026
52027 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
52028 xla_ae_lines_pkg.SetAnalyticalCriteria(
52029 p_analytical_criterion_name => 'Check Id'
52030 , p_analytical_criterion_owner => 'S'
52031 , p_analytical_criterion_code => 'CHECK_ID'
52032 , p_amb_context_code => 'DEFAULT'
52033 , p_balancing_flag => 'N'
52034
52035 , p_analytical_detail_char_1 => NULL
52036 , p_analytical_detail_num_1 => p_source_90
52037 , p_analytical_detail_date_1 => NULL
52038
52039 , p_ae_header_id => l_ae_header_id
52040 )
52041 ;
52042 --
52043
52044 --
52045 -- call description
52046 --
52047 -- No description or it is inherited.
52048 --
52049 -- call ADRs
52050 -- Bug 4922099
52051 --
52052 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52053 (NVL(l_actual_upg_option, 'N') = 'O') OR
52054 (NVL(l_enc_upg_option, 'N') = 'O')
52055 )
52056 THEN
52057 NULL;
52058 --
52059 --
52060
52061 l_ccid := AcctDerRule_20(
52062 p_application_id => p_application_id
52063 , p_ae_header_id => l_ae_header_id
52064 , p_source_22 => p_source_22
52065 , x_transaction_coa_id => l_adr_transaction_coa_id
52066 , x_accounting_coa_id => l_adr_accounting_coa_id
52070
52067 , x_value_type_code => l_adr_value_type_code
52068 , p_side => 'NA'
52069 );
52071 xla_ae_lines_pkg.set_ccid(
52072 p_code_combination_id => l_ccid
52073 , p_value_type_code => l_adr_value_type_code
52074 , p_transaction_coa_id => l_adr_transaction_coa_id
52075 , p_accounting_coa_id => l_adr_accounting_coa_id
52076 , p_adr_code => 'DIST_CCID'
52077 , p_adr_type_code => 'S'
52078 , p_component_type => l_component_type
52079 , p_component_code => l_component_code
52080 , p_component_type_code => l_component_type_code
52081 , p_component_appl_id => l_component_appl_id
52082 , p_amb_context_code => l_amb_context_code
52083 , p_side => 'NA'
52084 );
52085
52086
52087 --
52088 --
52089 END IF;
52090 --
52091 -- Bug 4922099
52092 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52093 (NVL(l_enc_upg_option, 'N') = 'O')
52094 ) AND
52095 (l_bflow_method_code = 'PRIOR_ENTRY')
52096 )
52097 THEN
52098 IF
52099 --
52100 1 = 2
52101 --
52102 THEN
52103 xla_accounting_err_pkg.build_message
52104 (p_appli_s_name => 'XLA'
52105 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52106 ,p_token_1 => 'LINE_NUMBER'
52107 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52108 ,p_token_2 => 'LINE_TYPE_NAME'
52109 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52110 l_component_type
52111 ,l_component_code
52112 ,l_component_type_code
52113 ,l_component_appl_id
52114 ,l_amb_context_code
52115 ,l_entity_code
52116 ,l_event_class_code
52117 )
52118 ,p_token_3 => 'OWNER'
52119 ,p_value_3 => xla_lookups_pkg.get_meaning(
52120 p_lookup_type => 'XLA_OWNER_TYPE'
52121 ,p_lookup_code => l_component_type_code
52122 )
52123 ,p_token_4 => 'PRODUCT_NAME'
52124 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52125 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52126 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52127 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52128 ,p_ae_header_id => NULL
52129 );
52130
52131 IF (C_LEVEL_ERROR>= g_log_level) THEN
52132 trace
52133 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52134 ,p_level => C_LEVEL_ERROR
52135 ,p_module => l_log_module);
52136 END IF;
52137 END IF;
52138 END IF;
52139 --
52140 --
52141 ------------------------------------------------------------------------------------------------
52142 -- 4219869 Business Flow
52143 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52144 -- Prior Entry. Currently, the following code is always generated.
52145 ------------------------------------------------------------------------------------------------
52146 XLA_AE_LINES_PKG.ValidateCurrentLine;
52147
52148 ------------------------------------------------------------------------------------
52149 -- 4219869 Business Flow
52150 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52151 ------------------------------------------------------------------------------------
52152 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52153
52154 ----------------------------------------------------------------------------------
52155 -- 4219869 Business Flow
52156 -- Update journal entry status -- Need to generate this within IF <condition>
52157 ----------------------------------------------------------------------------------
52158 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52159 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52160 ,p_balance_type_code => l_balance_type_code
52161 );
52162
52163 -------------------------------------------------------------------------------------------
52164 -- 4262811 - Generate the Accrual Reversal lines
52165 -------------------------------------------------------------------------------------------
52166 BEGIN
52170 l_acc_rev_flag := 'N';
52167 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52168 (g_array_event(p_event_id).array_value_num('header_index'));
52169 IF l_acc_rev_flag IS NULL THEN
52171 END IF;
52172 EXCEPTION
52173 WHEN OTHERS THEN
52174 l_acc_rev_flag := 'N';
52175 END;
52176 --
52177 IF (l_acc_rev_flag = 'Y') THEN
52178
52179 -- 4645092 ------------------------------------------------------------------------------
52180 -- To allow MPA report to determine if it should generate report process
52181 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52182 ------------------------------------------------------------------------------------------
52183
52184 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52185 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52186 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
52187 -- call ADRs
52188 -- Bug 4922099
52189 --
52190 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52191 (NVL(l_actual_upg_option, 'N') = 'O') OR
52192 (NVL(l_enc_upg_option, 'N') = 'O')
52193 )
52194 THEN
52195 NULL;
52196 --
52197 --
52198
52199 l_ccid := AcctDerRule_20(
52200 p_application_id => p_application_id
52201 , p_ae_header_id => l_ae_header_id
52202 , p_source_22 => p_source_22
52203 , x_transaction_coa_id => l_adr_transaction_coa_id
52204 , x_accounting_coa_id => l_adr_accounting_coa_id
52205 , x_value_type_code => l_adr_value_type_code
52206 , p_side => 'NA'
52207 );
52208
52209 xla_ae_lines_pkg.set_ccid(
52210 p_code_combination_id => l_ccid
52211 , p_value_type_code => l_adr_value_type_code
52212 , p_transaction_coa_id => l_adr_transaction_coa_id
52213 , p_accounting_coa_id => l_adr_accounting_coa_id
52214 , p_adr_code => 'DIST_CCID'
52215 , p_adr_type_code => 'S'
52216 , p_component_type => l_component_type
52217 , p_component_code => l_component_code
52218 , p_component_type_code => l_component_type_code
52219 , p_component_appl_id => l_component_appl_id
52220 , p_amb_context_code => l_amb_context_code
52221 , p_side => 'NA'
52222 );
52223
52224
52225 --
52226 --
52227 END IF;
52228
52229 --
52230 -- Update the line information that should be overwritten
52231 --
52232 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52233 p_header_num => 1);
52234 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52235
52236 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52237
52238 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52239 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52240 END IF;
52241
52242 --
52243 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52244 --
52245 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52246 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52247 ELSE
52248 ---------------------------------------------------------------------------------------------------
52249 -- 4262811a Switch Sign
52250 ---------------------------------------------------------------------------------------------------
52251 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52252 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52254 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52255 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52256 -- 5132302
52257 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52258 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52259
52260 END IF;
52261
52262 -- 4955764
52263 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52264 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52265
52266
52267 XLA_AE_LINES_PKG.ValidateCurrentLine;
52268 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52269
52270 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52271 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52272 ,p_balance_type_code => l_balance_type_code);
52273
52274 END IF;
52275
52276 -----------------------------------------------------------------------------------------
52277 -- 4262811 Multiperiod Accounting
52278 -----------------------------------------------------------------------------------------
52279 -- No MPA option is assigned.
52280
52281
52282 END IF;
52283 END IF;
52284 --
52285
52286 --
52287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52288 trace
52292 END IF;
52289 (p_msg => 'END of AcctLineType_108'
52290 ,p_level => C_LEVEL_PROCEDURE
52291 ,p_module => l_log_module);
52293 --
52294 EXCEPTION
52295 WHEN xla_exceptions_pkg.application_exception THEN
52296 RAISE;
52297 WHEN OTHERS THEN
52298 xla_exceptions_pkg.raise_message
52299 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_108');
52300 END AcctLineType_108;
52301 --
52302
52303 ---------------------------------------
52304 --
52305 -- PRIVATE FUNCTION
52306 -- AcctLineType_109
52307 --
52308 ---------------------------------------
52309 PROCEDURE AcctLineType_109 (
52310 p_application_id IN NUMBER
52311 ,p_event_id IN NUMBER
52312 ,p_calculate_acctd_flag IN VARCHAR2
52313 ,p_calculate_g_l_flag IN VARCHAR2
52314 ,p_actual_flag IN OUT VARCHAR2
52315 ,p_balance_type_code OUT VARCHAR2
52316 ,p_gain_or_loss_ref OUT VARCHAR2
52317
52318 --Distribution GL Account
52319 , p_source_22 IN NUMBER
52320 --Distribution Source Type
52321 , p_source_27 IN VARCHAR2
52322 --Distribution Line Identifier
52323 , p_source_29 IN NUMBER
52324 --Distribution Type
52325 , p_source_30 IN VARCHAR2
52326 --Entered Amount
52327 , p_source_31 IN NUMBER
52328 --Currency Code
52329 , p_source_32 IN VARCHAR2
52330 --Applied To Document Accounting Amount
52331 , p_source_36 IN NUMBER
52332 --Transaction Distribution Identifier
52333 , p_source_44 IN NUMBER
52334 --Transaction Distribution Type
52335 , p_source_45 IN VARCHAR2
52336 --Distribution Multi Fund Additional Entry
52337 , p_source_88 IN VARCHAR2
52338 --Applied To Document Exchange Date
52339 , p_source_89 IN DATE
52343 , p_source_92 IN NUMBER
52340 --Cash Receipt Identifier
52341 , p_source_90 IN NUMBER
52342 --Receipt Applied To Application Identifier
52344 --Transaction Entity Code
52345 , p_source_93 IN VARCHAR2
52346 --Transaction Identifier
52347 , p_source_94 IN NUMBER
52348 --Distribution Party Identifier
52349 , p_source_97 IN NUMBER
52350 --Distribution Party Site Id
52351 , p_source_98 IN NUMBER
52352 --Distribution Party Type
52353 , p_source_99 IN VARCHAR2
52354 --Applied To Document Exchange Rate Type
52355 , p_source_100 IN VARCHAR2
52356 --Applied To Document Exchange Rate
52357 , p_source_101 IN NUMBER
52358 )
52359 IS
52360
52361 l_component_type VARCHAR2(80);
52362 l_component_code VARCHAR2(30);
52363 l_component_type_code VARCHAR2(1);
52364 l_component_appl_id INTEGER;
52365 l_amb_context_code VARCHAR2(30);
52366 l_entity_code VARCHAR2(30);
52367 l_event_class_code VARCHAR2(30);
52368 l_ae_header_id NUMBER;
52369 l_event_type_code VARCHAR2(30);
52370 l_line_definition_code VARCHAR2(30);
52371 l_line_definition_owner_code VARCHAR2(1);
52372 --
52373 -- adr variables
52374 l_segment VARCHAR2(30);
52375 l_ccid NUMBER;
52376 l_adr_transaction_coa_id NUMBER;
52377 l_adr_accounting_coa_id NUMBER;
52378 l_adr_flexfield_segment_code VARCHAR2(30);
52379 l_adr_flex_value_set_id NUMBER;
52380 l_adr_value_type_code VARCHAR2(30);
52381 l_adr_value_combination_id NUMBER;
52382 l_adr_value_segment_code VARCHAR2(30);
52383
52384 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52385 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52386 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52387 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52388
52389 -- 4262811 Variables ------------------------------------------------------------------------------------------
52390 l_entered_amt_idx NUMBER;
52391 l_accted_amt_idx NUMBER;
52392 l_acc_rev_flag VARCHAR2(1);
52393 l_accrual_line_num NUMBER;
52394 l_tmp_amt NUMBER;
52395 l_acc_rev_natural_side_code VARCHAR2(1);
52396
52397 l_num_entries NUMBER;
52398 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52399 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52400 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52401 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52402 l_recog_line_1 NUMBER;
52406 l_bflow_applied_to_amt NUMBER; -- 5132302
52403 l_recog_line_2 NUMBER;
52404
52405 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52407 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52408
52409 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52410
52411 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52412 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52413
52414 ---------------------------------------------------------------------------------------------------------------
52415
52416
52417 --
52418 -- bulk performance
52419 --
52420 l_balance_type_code VARCHAR2(1);
52421 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52422 l_log_module VARCHAR2(240);
52423
52424 --
52425 -- Upgrade strategy
52426 --
52427 l_actual_upg_option VARCHAR2(1);
52428 l_enc_upg_option VARCHAR2(1);
52429
52430 --
52431 BEGIN
52432 --
52433 IF g_log_enabled THEN
52434 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
52435 END IF;
52436 --
52437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52438
52439 trace
52440 (p_msg => 'BEGIN of AcctLineType_109'
52441 ,p_level => C_LEVEL_PROCEDURE
52442 ,p_module => l_log_module);
52443
52444 END IF;
52445 --
52446 l_component_type := 'AMB_JLT';
52447 l_component_code := 'RCT_EDISC';
52448 l_component_type_code := 'S';
52449 l_component_appl_id := 222;
52450 l_amb_context_code := 'DEFAULT';
52451 l_entity_code := 'RECEIPTS';
52452 l_event_class_code := 'RECEIPT';
52453 l_event_type_code := 'RECEIPT_ALL';
52454 l_line_definition_owner_code := 'S';
52455 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
52456 --
52457 l_balance_type_code := 'A';
52458 l_segment := NULL;
52459 l_ccid := NULL;
52460 l_adr_transaction_coa_id := NULL;
52461 l_adr_accounting_coa_id := NULL;
52462 l_adr_flexfield_segment_code := NULL;
52463 l_adr_flex_value_set_id := NULL;
52464 l_adr_value_type_code := NULL;
52465 l_adr_value_combination_id := NULL;
52466 l_adr_value_segment_code := NULL;
52467
52468 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52469 l_bflow_class_code := ''; -- 4219869 Business Flow
52470 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52471 l_budgetary_control_flag := 'N';
52472
52473 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52474 l_bflow_applied_to_amt := NULL; -- 5132302
52475 l_entered_amt_idx := NULL; -- 4262811
52476 l_accted_amt_idx := NULL; -- 4262811
52477 l_acc_rev_flag := NULL; -- 4262811
52478 l_accrual_line_num := NULL; -- 4262811
52479 l_tmp_amt := NULL; -- 4262811
52480 --
52481
52482 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52483 l_balance_type_code <> 'B' THEN
52484 IF NVL(p_source_27,'
52485 ') = 'EDISC' AND
52486 NVL(p_source_88,'
52487 ') = 'N'
52488 THEN
52489
52490 --
52491 XLA_AE_LINES_PKG.SetNewLine;
52492
52493 p_balance_type_code := l_balance_type_code;
52494 -- set the flag so later we will know whether the gain loss line needs to be created
52495
52496 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52497 p_actual_flag :='A';
52498 END IF;
52499
52500 --
52504 p_header_num => 0); -- 4262811
52501 -- bulk performance
52502 --
52503 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52505 --
52506 -- set accounting line options
52507 --
52508 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52509 p_natural_side_code => 'C'
52510 , p_gain_or_loss_flag => 'N'
52511 , p_gl_transfer_mode_code => 'S'
52512 , p_acct_entry_type_code => 'A'
52513 , p_switch_side_flag => 'Y'
52514 , p_merge_duplicate_code => 'A'
52515 );
52516 --
52517 l_acc_rev_natural_side_code := 'D'; -- 4262811
52518 --
52519 --
52520 -- set accounting line type info
52521 --
52522 xla_ae_lines_pkg.SetAcctLineType
52523 (p_component_type => l_component_type
52524 ,p_event_type_code => l_event_type_code
52525 ,p_line_definition_owner_code => l_line_definition_owner_code
52526 ,p_line_definition_code => l_line_definition_code
52527 ,p_accounting_line_code => l_component_code
52528 ,p_accounting_line_type_code => l_component_type_code
52529 ,p_accounting_line_appl_id => l_component_appl_id
52530 ,p_amb_context_code => l_amb_context_code
52531 ,p_entity_code => l_entity_code
52532 ,p_event_class_code => l_event_class_code);
52533 --
52534 -- set accounting class
52535 --
52536 xla_ae_lines_pkg.SetAcctClass(
52537 p_accounting_class_code => 'EDISC'
52538 , p_ae_header_id => l_ae_header_id
52539 );
52540
52541 --
52542 -- set rounding class
52543 --
52544 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52545 'RECEIVABLE';
52546
52547 --
52548 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52549 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52550 --
52551 -- bulk performance
52552 --
52553 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52554
52555 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52556 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52557
52558 -- 4955764
52559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52561
52562 -- 4458381 Public Sector Enh
52563
52564 --
52565 -- set accounting attributes for the line type
52566 --
52567 l_entered_amt_idx := 8;
52568 l_accted_amt_idx := 13;
52569 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52570 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
52571 l_rec_acct_attrs.array_num_value(1) := p_source_92;
52572 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52573 l_rec_acct_attrs.array_char_value(2) := p_source_45;
52574 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
52575 l_rec_acct_attrs.array_char_value(3) := p_source_93;
52576 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
52577 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
52578 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52579 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
52580 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
52581 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
52582 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
52583 l_rec_acct_attrs.array_char_value(7) := p_source_30;
52584 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
52585 l_rec_acct_attrs.array_num_value(8) := p_source_31;
52586 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
52587 l_rec_acct_attrs.array_char_value(9) := p_source_32;
52588 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
52589 l_rec_acct_attrs.array_date_value(10) := p_source_89;
52590 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
52591 l_rec_acct_attrs.array_num_value(11) := p_source_101;
52592 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
52593 l_rec_acct_attrs.array_char_value(12) := p_source_100;
52594 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
52595 l_rec_acct_attrs.array_num_value(13) := p_source_36;
52596 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
52597 l_rec_acct_attrs.array_num_value(14) := p_source_97;
52598 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
52599 l_rec_acct_attrs.array_num_value(15) := p_source_98;
52600 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
52601 l_rec_acct_attrs.array_char_value(16) := p_source_99;
52602
52603 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52607 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52604 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52605
52606 ---------------------------------------------------------------------------------------------------------------
52608 ---------------------------------------------------------------------------------------------------------------
52609 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52610
52611 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52612 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52613
52614 IF xla_accounting_cache_pkg.GetValueChar
52615 (p_source_code => 'LEDGER_CATEGORY_CODE'
52616 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52617 AND l_bflow_method_code = 'PRIOR_ENTRY'
52618 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52619 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52620 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52621 )
52622 THEN
52623 xla_ae_lines_pkg.BflowUpgEntry
52624 (p_business_method_code => l_bflow_method_code
52625 ,p_business_class_code => l_bflow_class_code
52626 ,p_balance_type => l_balance_type_code);
52627 ELSE
52628 NULL;
52632 --
52629 -- No business flow processing for business flow method of NONE.
52630 END IF;
52631
52633 -- call analytical criteria
52634 --
52635
52636
52637 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
52638 xla_ae_lines_pkg.SetAnalyticalCriteria(
52639 p_analytical_criterion_name => 'Check Id'
52640 , p_analytical_criterion_owner => 'S'
52641 , p_analytical_criterion_code => 'CHECK_ID'
52642 , p_amb_context_code => 'DEFAULT'
52643 , p_balancing_flag => 'N'
52644
52645 , p_analytical_detail_char_1 => NULL
52646 , p_analytical_detail_num_1 => p_source_90
52647 , p_analytical_detail_date_1 => NULL
52648
52649 , p_ae_header_id => l_ae_header_id
52650 )
52651 ;
52652 --
52653
52654 --
52655 -- call description
52656 --
52657 -- No description or it is inherited.
52658 --
52659 -- call ADRs
52660 -- Bug 4922099
52661 --
52662 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52663 (NVL(l_actual_upg_option, 'N') = 'O') OR
52664 (NVL(l_enc_upg_option, 'N') = 'O')
52665 )
52666 THEN
52667 NULL;
52668 --
52669 --
52670
52671 l_ccid := AcctDerRule_20(
52672 p_application_id => p_application_id
52673 , p_ae_header_id => l_ae_header_id
52674 , p_source_22 => p_source_22
52675 , x_transaction_coa_id => l_adr_transaction_coa_id
52676 , x_accounting_coa_id => l_adr_accounting_coa_id
52677 , x_value_type_code => l_adr_value_type_code
52678 , p_side => 'NA'
52679 );
52680
52681 xla_ae_lines_pkg.set_ccid(
52682 p_code_combination_id => l_ccid
52683 , p_value_type_code => l_adr_value_type_code
52684 , p_transaction_coa_id => l_adr_transaction_coa_id
52685 , p_accounting_coa_id => l_adr_accounting_coa_id
52686 , p_adr_code => 'DIST_CCID'
52687 , p_adr_type_code => 'S'
52688 , p_component_type => l_component_type
52689 , p_component_code => l_component_code
52690 , p_component_type_code => l_component_type_code
52691 , p_component_appl_id => l_component_appl_id
52692 , p_amb_context_code => l_amb_context_code
52693 , p_side => 'NA'
52694 );
52695
52696
52697 --
52698 --
52699 END IF;
52700 --
52701 -- Bug 4922099
52702 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52703 (NVL(l_enc_upg_option, 'N') = 'O')
52704 ) AND
52705 (l_bflow_method_code = 'PRIOR_ENTRY')
52706 )
52707 THEN
52708 IF
52709 --
52710 1 = 2
52711 --
52712 THEN
52713 xla_accounting_err_pkg.build_message
52714 (p_appli_s_name => 'XLA'
52715 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52719 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52716 ,p_token_1 => 'LINE_NUMBER'
52717 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52718 ,p_token_2 => 'LINE_TYPE_NAME'
52720 l_component_type
52721 ,l_component_code
52722 ,l_component_type_code
52723 ,l_component_appl_id
52724 ,l_amb_context_code
52725 ,l_entity_code
52726 ,l_event_class_code
52727 )
52728 ,p_token_3 => 'OWNER'
52729 ,p_value_3 => xla_lookups_pkg.get_meaning(
52730 p_lookup_type => 'XLA_OWNER_TYPE'
52731 ,p_lookup_code => l_component_type_code
52732 )
52733 ,p_token_4 => 'PRODUCT_NAME'
52734 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52735 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52736 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52737 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52738 ,p_ae_header_id => NULL
52739 );
52740
52741 IF (C_LEVEL_ERROR>= g_log_level) THEN
52742 trace
52743 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52744 ,p_level => C_LEVEL_ERROR
52745 ,p_module => l_log_module);
52746 END IF;
52747 END IF;
52748 END IF;
52749 --
52750 --
52751 ------------------------------------------------------------------------------------------------
52752 -- 4219869 Business Flow
52753 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52754 -- Prior Entry. Currently, the following code is always generated.
52755 ------------------------------------------------------------------------------------------------
52756 XLA_AE_LINES_PKG.ValidateCurrentLine;
52757
52758 ------------------------------------------------------------------------------------
52759 -- 4219869 Business Flow
52760 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52761 ------------------------------------------------------------------------------------
52762 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52763
52764 ----------------------------------------------------------------------------------
52765 -- 4219869 Business Flow
52766 -- Update journal entry status -- Need to generate this within IF <condition>
52767 ----------------------------------------------------------------------------------
52768 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52769 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52770 ,p_balance_type_code => l_balance_type_code
52771 );
52772
52773 -------------------------------------------------------------------------------------------
52774 -- 4262811 - Generate the Accrual Reversal lines
52775 -------------------------------------------------------------------------------------------
52776 BEGIN
52777 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52778 (g_array_event(p_event_id).array_value_num('header_index'));
52779 IF l_acc_rev_flag IS NULL THEN
52780 l_acc_rev_flag := 'N';
52781 END IF;
52782 EXCEPTION
52783 WHEN OTHERS THEN
52784 l_acc_rev_flag := 'N';
52785 END;
52786 --
52787 IF (l_acc_rev_flag = 'Y') THEN
52788
52789 -- 4645092 ------------------------------------------------------------------------------
52790 -- To allow MPA report to determine if it should generate report process
52791 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52792 ------------------------------------------------------------------------------------------
52793
52794 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52795 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52796 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
52797 -- call ADRs
52798 -- Bug 4922099
52799 --
52800 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52801 (NVL(l_actual_upg_option, 'N') = 'O') OR
52802 (NVL(l_enc_upg_option, 'N') = 'O')
52803 )
52804 THEN
52805 NULL;
52806 --
52807 --
52808
52809 l_ccid := AcctDerRule_20(
52810 p_application_id => p_application_id
52811 , p_ae_header_id => l_ae_header_id
52812 , p_source_22 => p_source_22
52813 , x_transaction_coa_id => l_adr_transaction_coa_id
52817 );
52814 , x_accounting_coa_id => l_adr_accounting_coa_id
52815 , x_value_type_code => l_adr_value_type_code
52816 , p_side => 'NA'
52818
52819 xla_ae_lines_pkg.set_ccid(
52820 p_code_combination_id => l_ccid
52821 , p_value_type_code => l_adr_value_type_code
52822 , p_transaction_coa_id => l_adr_transaction_coa_id
52823 , p_accounting_coa_id => l_adr_accounting_coa_id
52824 , p_adr_code => 'DIST_CCID'
52825 , p_adr_type_code => 'S'
52826 , p_component_type => l_component_type
52827 , p_component_code => l_component_code
52828 , p_component_type_code => l_component_type_code
52829 , p_component_appl_id => l_component_appl_id
52830 , p_amb_context_code => l_amb_context_code
52831 , p_side => 'NA'
52832 );
52833
52834
52835 --
52836 --
52837 END IF;
52838
52839 --
52840 -- Update the line information that should be overwritten
52841 --
52842 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52843 p_header_num => 1);
52844 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52845
52846 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52847
52848 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52849 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52850 END IF;
52851
52852 --
52853 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52854 --
52855 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52856 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52857 ELSE
52858 ---------------------------------------------------------------------------------------------------
52859 -- 4262811a Switch Sign
52860 ---------------------------------------------------------------------------------------------------
52861 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52862 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52863 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52864 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52865 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52866 -- 5132302
52867 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52868 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52869
52870 END IF;
52871
52872 -- 4955764
52873 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52874 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52875
52876
52877 XLA_AE_LINES_PKG.ValidateCurrentLine;
52878 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52879
52880 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52881 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52882 ,p_balance_type_code => l_balance_type_code);
52883
52884 END IF;
52885
52886 -----------------------------------------------------------------------------------------
52887 -- 4262811 Multiperiod Accounting
52888 -----------------------------------------------------------------------------------------
52889 -- No MPA option is assigned.
52890
52891
52892 END IF;
52893 END IF;
52894 --
52895
52896 --
52897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52898 trace
52899 (p_msg => 'END of AcctLineType_109'
52900 ,p_level => C_LEVEL_PROCEDURE
52901 ,p_module => l_log_module);
52902 END IF;
52903 --
52904 EXCEPTION
52905 WHEN xla_exceptions_pkg.application_exception THEN
52906 RAISE;
52907 WHEN OTHERS THEN
52908 xla_exceptions_pkg.raise_message
52909 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_109');
52910 END AcctLineType_109;
52911 --
52912
52913 ---------------------------------------
52914 --
52915 -- PRIVATE FUNCTION
52916 -- AcctLineType_110
52917 --
52918 ---------------------------------------
52919 PROCEDURE AcctLineType_110 (
52920 p_application_id IN NUMBER
52921 ,p_event_id IN NUMBER
52922 ,p_calculate_acctd_flag IN VARCHAR2
52923 ,p_calculate_g_l_flag IN VARCHAR2
52924 ,p_actual_flag IN OUT VARCHAR2
52925 ,p_balance_type_code OUT VARCHAR2
52926 ,p_gain_or_loss_ref OUT VARCHAR2
52927
52928 --Distribution GL Account
52929 , p_source_22 IN NUMBER
52930 --Distribution Source Type
52931 , p_source_27 IN VARCHAR2
52932 --Distribution Line Identifier
52933 , p_source_29 IN NUMBER
52934 --Distribution Type
52935 , p_source_30 IN VARCHAR2
52936 --Entered Amount
52937 , p_source_31 IN NUMBER
52938 --Currency Code
52939 , p_source_32 IN VARCHAR2
52940 --Applied To Document Accounting Amount
52944 --Transaction Distribution Type
52941 , p_source_36 IN NUMBER
52942 --Transaction Distribution Identifier
52943 , p_source_44 IN NUMBER
52945 , p_source_45 IN VARCHAR2
52946 --Distribution Multi Fund Additional Entry
52947 , p_source_88 IN VARCHAR2
52948 --Applied To Document Exchange Date
52949 , p_source_89 IN DATE
52950 --Cash Receipt Identifier
52951 , p_source_90 IN NUMBER
52952 --Receipt Applied To Application Identifier
52953 , p_source_92 IN NUMBER
52954 --Transaction Entity Code
52955 , p_source_93 IN VARCHAR2
52956 --Transaction Identifier
52957 , p_source_94 IN NUMBER
52958 --Distribution Party Identifier
52959 , p_source_97 IN NUMBER
52960 --Distribution Party Site Id
52961 , p_source_98 IN NUMBER
52962 --Distribution Party Type
52963 , p_source_99 IN VARCHAR2
52964 --Applied To Document Exchange Rate Type
52965 , p_source_100 IN VARCHAR2
52966 --Applied To Document Exchange Rate
52967 , p_source_101 IN NUMBER
52968 )
52969 IS
52970
52971 l_component_type VARCHAR2(80);
52972 l_component_code VARCHAR2(30);
52973 l_component_type_code VARCHAR2(1);
52974 l_component_appl_id INTEGER;
52975 l_amb_context_code VARCHAR2(30);
52976 l_entity_code VARCHAR2(30);
52977 l_event_class_code VARCHAR2(30);
52978 l_ae_header_id NUMBER;
52979 l_event_type_code VARCHAR2(30);
52980 l_line_definition_code VARCHAR2(30);
52981 l_line_definition_owner_code VARCHAR2(1);
52982 --
52983 -- adr variables
52984 l_segment VARCHAR2(30);
52985 l_ccid NUMBER;
52986 l_adr_transaction_coa_id NUMBER;
52987 l_adr_accounting_coa_id NUMBER;
52988 l_adr_flexfield_segment_code VARCHAR2(30);
52989 l_adr_flex_value_set_id NUMBER;
52990 l_adr_value_type_code VARCHAR2(30);
52991 l_adr_value_combination_id NUMBER;
52992 l_adr_value_segment_code VARCHAR2(30);
52993
52994 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52995 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52996 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52997 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52998
52999 -- 4262811 Variables ------------------------------------------------------------------------------------------
53000 l_entered_amt_idx NUMBER;
53001 l_accted_amt_idx NUMBER;
53002 l_acc_rev_flag VARCHAR2(1);
53003 l_accrual_line_num NUMBER;
53004 l_tmp_amt NUMBER;
53005 l_acc_rev_natural_side_code VARCHAR2(1);
53006
53007 l_num_entries NUMBER;
53008 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53009 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53010 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53011 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53012 l_recog_line_1 NUMBER;
53013 l_recog_line_2 NUMBER;
53014
53015 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53016 l_bflow_applied_to_amt NUMBER; -- 5132302
53017 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53018
53019 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53020
53021 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53022 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53023
53024 ---------------------------------------------------------------------------------------------------------------
53025
53026
53027 --
53028 -- bulk performance
53029 --
53030 l_balance_type_code VARCHAR2(1);
53031 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53032 l_log_module VARCHAR2(240);
53033
53034 --
53035 -- Upgrade strategy
53036 --
53037 l_actual_upg_option VARCHAR2(1);
53038 l_enc_upg_option VARCHAR2(1);
53039
53040 --
53041 BEGIN
53042 --
53043 IF g_log_enabled THEN
53044 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
53045 END IF;
53046 --
53047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53048
53049 trace
53050 (p_msg => 'BEGIN of AcctLineType_110'
53051 ,p_level => C_LEVEL_PROCEDURE
53052 ,p_module => l_log_module);
53053
53054 END IF;
53055 --
53056 l_component_type := 'AMB_JLT';
53057 l_component_code := 'RCT_EDISC_NON_REC_TAX';
53058 l_component_type_code := 'S';
53059 l_component_appl_id := 222;
53060 l_amb_context_code := 'DEFAULT';
53061 l_entity_code := 'RECEIPTS';
53062 l_event_class_code := 'RECEIPT';
53063 l_event_type_code := 'RECEIPT_ALL';
53064 l_line_definition_owner_code := 'S';
53065 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
53066 --
53067 l_balance_type_code := 'A';
53068 l_segment := NULL;
53069 l_ccid := NULL;
53070 l_adr_transaction_coa_id := NULL;
53071 l_adr_accounting_coa_id := NULL;
53072 l_adr_flexfield_segment_code := NULL;
53076 l_adr_value_segment_code := NULL;
53073 l_adr_flex_value_set_id := NULL;
53074 l_adr_value_type_code := NULL;
53075 l_adr_value_combination_id := NULL;
53077
53078 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53079 l_bflow_class_code := ''; -- 4219869 Business Flow
53080 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53081 l_budgetary_control_flag := 'N';
53082
53083 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53084 l_bflow_applied_to_amt := NULL; -- 5132302
53085 l_entered_amt_idx := NULL; -- 4262811
53086 l_accted_amt_idx := NULL; -- 4262811
53087 l_acc_rev_flag := NULL; -- 4262811
53088 l_accrual_line_num := NULL; -- 4262811
53089 l_tmp_amt := NULL; -- 4262811
53090 --
53091
53092 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53093 l_balance_type_code <> 'B' THEN
53094 IF NVL(p_source_27,'
53095 ') = 'EDISC_NON_REC_TAX' AND
53096 NVL(p_source_88,'
53097 ') = 'N'
53098 THEN
53099
53100 --
53101 XLA_AE_LINES_PKG.SetNewLine;
53102
53103 p_balance_type_code := l_balance_type_code;
53104 -- set the flag so later we will know whether the gain loss line needs to be created
53105
53106 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53107 p_actual_flag :='A';
53108 END IF;
53109
53110 --
53111 -- bulk performance
53112 --
53113 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53114 p_header_num => 0); -- 4262811
53115 --
53116 -- set accounting line options
53117 --
53118 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53119 p_natural_side_code => 'C'
53120 , p_gain_or_loss_flag => 'N'
53121 , p_gl_transfer_mode_code => 'S'
53122 , p_acct_entry_type_code => 'A'
53123 , p_switch_side_flag => 'Y'
53124 , p_merge_duplicate_code => 'A'
53125 );
53126 --
53127 l_acc_rev_natural_side_code := 'D'; -- 4262811
53128 --
53129 --
53130 -- set accounting line type info
53131 --
53132 xla_ae_lines_pkg.SetAcctLineType
53133 (p_component_type => l_component_type
53137 ,p_accounting_line_code => l_component_code
53134 ,p_event_type_code => l_event_type_code
53135 ,p_line_definition_owner_code => l_line_definition_owner_code
53136 ,p_line_definition_code => l_line_definition_code
53138 ,p_accounting_line_type_code => l_component_type_code
53139 ,p_accounting_line_appl_id => l_component_appl_id
53140 ,p_amb_context_code => l_amb_context_code
53141 ,p_entity_code => l_entity_code
53142 ,p_event_class_code => l_event_class_code);
53143 --
53144 -- set accounting class
53145 --
53146 xla_ae_lines_pkg.SetAcctClass(
53147 p_accounting_class_code => 'EDISC_NON_REC_TAX'
53148 , p_ae_header_id => l_ae_header_id
53149 );
53150
53151 --
53152 -- set rounding class
53153 --
53154 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53155 'RECEIVABLE';
53156
53157 --
53158 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53159 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53160 --
53161 -- bulk performance
53162 --
53163 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53164
53165 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53166 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53167
53168 -- 4955764
53169 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53170 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53171
53172 -- 4458381 Public Sector Enh
53173
53174 --
53175 -- set accounting attributes for the line type
53176 --
53177 l_entered_amt_idx := 8;
53178 l_accted_amt_idx := 13;
53179 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53180 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
53181 l_rec_acct_attrs.array_num_value(1) := p_source_92;
53182 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53183 l_rec_acct_attrs.array_char_value(2) := p_source_45;
53184 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
53185 l_rec_acct_attrs.array_char_value(3) := p_source_93;
53186 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
53187 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
53188 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53189 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
53190 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
53191 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
53192 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
53193 l_rec_acct_attrs.array_char_value(7) := p_source_30;
53194 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
53195 l_rec_acct_attrs.array_num_value(8) := p_source_31;
53196 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
53197 l_rec_acct_attrs.array_char_value(9) := p_source_32;
53198 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
53199 l_rec_acct_attrs.array_date_value(10) := p_source_89;
53200 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
53201 l_rec_acct_attrs.array_num_value(11) := p_source_101;
53202 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
53203 l_rec_acct_attrs.array_char_value(12) := p_source_100;
53204 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
53205 l_rec_acct_attrs.array_num_value(13) := p_source_36;
53206 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
53207 l_rec_acct_attrs.array_num_value(14) := p_source_97;
53208 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
53209 l_rec_acct_attrs.array_num_value(15) := p_source_98;
53210 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
53211 l_rec_acct_attrs.array_char_value(16) := p_source_99;
53212
53213 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53214 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53215
53216 ---------------------------------------------------------------------------------------------------------------
53217 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53218 ---------------------------------------------------------------------------------------------------------------
53219 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53220
53221 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53222 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53223
53224 IF xla_accounting_cache_pkg.GetValueChar
53225 (p_source_code => 'LEDGER_CATEGORY_CODE'
53226 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53227 AND l_bflow_method_code = 'PRIOR_ENTRY'
53228 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53229 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53230 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53231 )
53232 THEN
53233 xla_ae_lines_pkg.BflowUpgEntry
53234 (p_business_method_code => l_bflow_method_code
53238 NULL;
53235 ,p_business_class_code => l_bflow_class_code
53236 ,p_balance_type => l_balance_type_code);
53237 ELSE
53239 -- No business flow processing for business flow method of NONE.
53240 END IF;
53241
53242 --
53243 -- call analytical criteria
53244 --
53245
53246
53247 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
53248 xla_ae_lines_pkg.SetAnalyticalCriteria(
53249 p_analytical_criterion_name => 'Check Id'
53250 , p_analytical_criterion_owner => 'S'
53251 , p_analytical_criterion_code => 'CHECK_ID'
53252 , p_amb_context_code => 'DEFAULT'
53253 , p_balancing_flag => 'N'
53254
53255 , p_analytical_detail_char_1 => NULL
53256 , p_analytical_detail_num_1 => p_source_90
53257 , p_analytical_detail_date_1 => NULL
53258
53259 , p_ae_header_id => l_ae_header_id
53260 )
53261 ;
53262 --
53263
53264 --
53265 -- call description
53266 --
53267 -- No description or it is inherited.
53268 --
53269 -- call ADRs
53270 -- Bug 4922099
53271 --
53272 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53273 (NVL(l_actual_upg_option, 'N') = 'O') OR
53274 (NVL(l_enc_upg_option, 'N') = 'O')
53275 )
53276 THEN
53277 NULL;
53278 --
53279 --
53280
53281 l_ccid := AcctDerRule_20(
53282 p_application_id => p_application_id
53283 , p_ae_header_id => l_ae_header_id
53284 , p_source_22 => p_source_22
53285 , x_transaction_coa_id => l_adr_transaction_coa_id
53286 , x_accounting_coa_id => l_adr_accounting_coa_id
53287 , x_value_type_code => l_adr_value_type_code
53288 , p_side => 'NA'
53289 );
53290
53291 xla_ae_lines_pkg.set_ccid(
53292 p_code_combination_id => l_ccid
53293 , p_value_type_code => l_adr_value_type_code
53294 , p_transaction_coa_id => l_adr_transaction_coa_id
53295 , p_accounting_coa_id => l_adr_accounting_coa_id
53296 , p_adr_code => 'DIST_CCID'
53297 , p_adr_type_code => 'S'
53298 , p_component_type => l_component_type
53299 , p_component_code => l_component_code
53300 , p_component_type_code => l_component_type_code
53301 , p_component_appl_id => l_component_appl_id
53302 , p_amb_context_code => l_amb_context_code
53303 , p_side => 'NA'
53304 );
53305
53306
53307 --
53308 --
53309 END IF;
53310 --
53311 -- Bug 4922099
53312 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53313 (NVL(l_enc_upg_option, 'N') = 'O')
53314 ) AND
53315 (l_bflow_method_code = 'PRIOR_ENTRY')
53316 )
53317 THEN
53318 IF
53319 --
53320 1 = 2
53321 --
53322 THEN
53323 xla_accounting_err_pkg.build_message
53324 (p_appli_s_name => 'XLA'
53325 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53326 ,p_token_1 => 'LINE_NUMBER'
53327 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53328 ,p_token_2 => 'LINE_TYPE_NAME'
53329 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53330 l_component_type
53331 ,l_component_code
53332 ,l_component_type_code
53333 ,l_component_appl_id
53334 ,l_amb_context_code
53335 ,l_entity_code
53336 ,l_event_class_code
53337 )
53338 ,p_token_3 => 'OWNER'
53339 ,p_value_3 => xla_lookups_pkg.get_meaning(
53340 p_lookup_type => 'XLA_OWNER_TYPE'
53341 ,p_lookup_code => l_component_type_code
53342 )
53343 ,p_token_4 => 'PRODUCT_NAME'
53344 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53345 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53346 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53350
53347 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53348 ,p_ae_header_id => NULL
53349 );
53351 IF (C_LEVEL_ERROR>= g_log_level) THEN
53352 trace
53353 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53354 ,p_level => C_LEVEL_ERROR
53355 ,p_module => l_log_module);
53356 END IF;
53357 END IF;
53358 END IF;
53359 --
53360 --
53364 -- Prior Entry. Currently, the following code is always generated.
53361 ------------------------------------------------------------------------------------------------
53362 -- 4219869 Business Flow
53363 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53365 ------------------------------------------------------------------------------------------------
53366 XLA_AE_LINES_PKG.ValidateCurrentLine;
53367
53368 ------------------------------------------------------------------------------------
53369 -- 4219869 Business Flow
53370 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53371 ------------------------------------------------------------------------------------
53372 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53373
53374 ----------------------------------------------------------------------------------
53375 -- 4219869 Business Flow
53376 -- Update journal entry status -- Need to generate this within IF <condition>
53377 ----------------------------------------------------------------------------------
53378 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53379 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53380 ,p_balance_type_code => l_balance_type_code
53381 );
53382
53383 -------------------------------------------------------------------------------------------
53384 -- 4262811 - Generate the Accrual Reversal lines
53385 -------------------------------------------------------------------------------------------
53386 BEGIN
53387 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53388 (g_array_event(p_event_id).array_value_num('header_index'));
53389 IF l_acc_rev_flag IS NULL THEN
53390 l_acc_rev_flag := 'N';
53391 END IF;
53392 EXCEPTION
53393 WHEN OTHERS THEN
53394 l_acc_rev_flag := 'N';
53395 END;
53396 --
53397 IF (l_acc_rev_flag = 'Y') THEN
53398
53399 -- 4645092 ------------------------------------------------------------------------------
53400 -- To allow MPA report to determine if it should generate report process
53401 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53402 ------------------------------------------------------------------------------------------
53403
53404 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53405 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53406 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53407 -- call ADRs
53408 -- Bug 4922099
53409 --
53410 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53411 (NVL(l_actual_upg_option, 'N') = 'O') OR
53412 (NVL(l_enc_upg_option, 'N') = 'O')
53413 )
53414 THEN
53415 NULL;
53416 --
53417 --
53418
53419 l_ccid := AcctDerRule_20(
53420 p_application_id => p_application_id
53421 , p_ae_header_id => l_ae_header_id
53422 , p_source_22 => p_source_22
53423 , x_transaction_coa_id => l_adr_transaction_coa_id
53424 , x_accounting_coa_id => l_adr_accounting_coa_id
53425 , x_value_type_code => l_adr_value_type_code
53426 , p_side => 'NA'
53427 );
53428
53429 xla_ae_lines_pkg.set_ccid(
53430 p_code_combination_id => l_ccid
53431 , p_value_type_code => l_adr_value_type_code
53432 , p_transaction_coa_id => l_adr_transaction_coa_id
53433 , p_accounting_coa_id => l_adr_accounting_coa_id
53434 , p_adr_code => 'DIST_CCID'
53435 , p_adr_type_code => 'S'
53436 , p_component_type => l_component_type
53437 , p_component_code => l_component_code
53438 , p_component_type_code => l_component_type_code
53439 , p_component_appl_id => l_component_appl_id
53440 , p_amb_context_code => l_amb_context_code
53441 , p_side => 'NA'
53442 );
53443
53444
53445 --
53446 --
53447 END IF;
53448
53449 --
53450 -- Update the line information that should be overwritten
53451 --
53452 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53453 p_header_num => 1);
53454 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53455
53456 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53457
53458 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53459 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53460 END IF;
53461
53462 --
53463 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53464 --
53465 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53466 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53467 ELSE
53468 ---------------------------------------------------------------------------------------------------
53469 -- 4262811a Switch Sign
53470 ---------------------------------------------------------------------------------------------------
53471 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53475 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53472 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53473 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53474 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53476 -- 5132302
53477 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53478 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53479
53480 END IF;
53481
53482 -- 4955764
53483 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53484 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53485
53486
53487 XLA_AE_LINES_PKG.ValidateCurrentLine;
53488 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53489
53490 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53491 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53492 ,p_balance_type_code => l_balance_type_code);
53493
53494 END IF;
53495
53496 -----------------------------------------------------------------------------------------
53497 -- 4262811 Multiperiod Accounting
53498 -----------------------------------------------------------------------------------------
53499 -- No MPA option is assigned.
53500
53501
53502 END IF;
53503 END IF;
53504 --
53505
53506 --
53507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53508 trace
53509 (p_msg => 'END of AcctLineType_110'
53510 ,p_level => C_LEVEL_PROCEDURE
53511 ,p_module => l_log_module);
53512 END IF;
53513 --
53514 EXCEPTION
53515 WHEN xla_exceptions_pkg.application_exception THEN
53516 RAISE;
53517 WHEN OTHERS THEN
53518 xla_exceptions_pkg.raise_message
53519 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_110');
53520 END AcctLineType_110;
53521 --
53522
53523 ---------------------------------------
53524 --
53525 -- PRIVATE FUNCTION
53526 -- AcctLineType_111
53527 --
53528 ---------------------------------------
53529 PROCEDURE AcctLineType_111 (
53530 p_application_id IN NUMBER
53531 ,p_event_id IN NUMBER
53532 ,p_calculate_acctd_flag IN VARCHAR2
53533 ,p_calculate_g_l_flag IN VARCHAR2
53534 ,p_actual_flag IN OUT VARCHAR2
53535 ,p_balance_type_code OUT VARCHAR2
53536 ,p_gain_or_loss_ref OUT VARCHAR2
53537
53538 --System Gain Account
53539 , p_source_24 IN NUMBER
53540 --System Loss Account
53541 , p_source_25 IN NUMBER
53542 --Distribution Line Identifier
53543 , p_source_29 IN NUMBER
53544 --Distribution Type
53545 , p_source_30 IN VARCHAR2
53546 --Accounting Amount
53547 , p_source_40 IN NUMBER
53548 --Cash Receipt Identifier
53549 , p_source_90 IN NUMBER
53550 --Distribution Party Identifier
53551 , p_source_97 IN NUMBER
53552 --Distribution Party Site Id
53553 , p_source_98 IN NUMBER
53554 --Distribution Party Type
53555 , p_source_99 IN VARCHAR2
53556 )
53557 IS
53558
53559 l_component_type VARCHAR2(80);
53560 l_component_code VARCHAR2(30);
53561 l_component_type_code VARCHAR2(1);
53562 l_component_appl_id INTEGER;
53563 l_amb_context_code VARCHAR2(30);
53564 l_entity_code VARCHAR2(30);
53565 l_event_class_code VARCHAR2(30);
53566 l_ae_header_id NUMBER;
53567 l_event_type_code VARCHAR2(30);
53568 l_line_definition_code VARCHAR2(30);
53569 l_line_definition_owner_code VARCHAR2(1);
53570 --
53571 -- adr variables
53572 l_segment VARCHAR2(30);
53573 l_ccid NUMBER;
53574 l_adr_transaction_coa_id NUMBER;
53575 l_adr_accounting_coa_id NUMBER;
53576 l_adr_flexfield_segment_code VARCHAR2(30);
53577 l_adr_flex_value_set_id NUMBER;
53578 l_adr_value_type_code VARCHAR2(30);
53579 l_adr_value_combination_id NUMBER;
53580 l_adr_value_segment_code VARCHAR2(30);
53581
53582 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53583 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53584 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53585 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53586
53587 -- 4262811 Variables ------------------------------------------------------------------------------------------
53588 l_entered_amt_idx NUMBER;
53589 l_accted_amt_idx NUMBER;
53590 l_acc_rev_flag VARCHAR2(1);
53591 l_accrual_line_num NUMBER;
53592 l_tmp_amt NUMBER;
53593 l_acc_rev_natural_side_code VARCHAR2(1);
53594
53595 l_num_entries NUMBER;
53596 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53597 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53598 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53599 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53600 l_recog_line_1 NUMBER;
53601 l_recog_line_2 NUMBER;
53602
53603 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53604 l_bflow_applied_to_amt NUMBER; -- 5132302
53608
53605 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53606
53607 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53609 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53610 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53611
53612 ---------------------------------------------------------------------------------------------------------------
53613
53614
53615 --
53616 -- bulk performance
53617 --
53618 l_balance_type_code VARCHAR2(1);
53619 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53620 l_log_module VARCHAR2(240);
53621
53622 --
53623 -- Upgrade strategy
53624 --
53625 l_actual_upg_option VARCHAR2(1);
53626 l_enc_upg_option VARCHAR2(1);
53627
53628 --
53629 BEGIN
53630 --
53631 IF g_log_enabled THEN
53632 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
53633 END IF;
53634 --
53635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53636
53637 trace
53638 (p_msg => 'BEGIN of AcctLineType_111'
53639 ,p_level => C_LEVEL_PROCEDURE
53640 ,p_module => l_log_module);
53641
53642 END IF;
53643 --
53644 l_component_type := 'AMB_JLT';
53645 l_component_code := 'RCT_EXCH_GAIN_LOSS';
53646 l_component_type_code := 'S';
53647 l_component_appl_id := 222;
53648 l_amb_context_code := 'DEFAULT';
53649 l_entity_code := 'RECEIPTS';
53650 l_event_class_code := 'RECEIPT';
53651 l_event_type_code := 'RECEIPT_ALL';
53652 l_line_definition_owner_code := 'S';
53653 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
53654 --
53655 l_balance_type_code := 'A';
53656 l_segment := NULL;
53657 l_ccid := NULL;
53658 l_adr_transaction_coa_id := NULL;
53659 l_adr_accounting_coa_id := NULL;
53660 l_adr_flexfield_segment_code := NULL;
53661 l_adr_flex_value_set_id := NULL;
53662 l_adr_value_type_code := NULL;
53663 l_adr_value_combination_id := NULL;
53664 l_adr_value_segment_code := NULL;
53665
53666 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53667 l_bflow_class_code := ''; -- 4219869 Business Flow
53668 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53669 l_budgetary_control_flag := 'N';
53670
53671 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53672 l_bflow_applied_to_amt := NULL; -- 5132302
53673 l_entered_amt_idx := NULL; -- 4262811
53674 l_accted_amt_idx := NULL; -- 4262811
53675 l_acc_rev_flag := NULL; -- 4262811
53676 l_accrual_line_num := NULL; -- 4262811
53677 l_tmp_amt := NULL; -- 4262811
53678 --
53679 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53680 (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
53681 return;
53682 END IF;
53683
53684 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53685 l_balance_type_code <> 'B' THEN
53686
53687 --
53688 XLA_AE_LINES_PKG.SetNewLine;
53689
53690 p_balance_type_code := l_balance_type_code;
53691 -- set the flag so later we will know whether the gain loss line needs to be created
53692
53693 IF(l_balance_type_code = 'A' ) THEN
53694 p_actual_flag :='G';
53695 END IF;
53696
53697 --
53698 -- bulk performance
53699 --
53700 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53701 p_header_num => 0); -- 4262811
53702 --
53703 -- set accounting line options
53704 --
53705 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53706 p_natural_side_code => 'G'
53707 , p_gain_or_loss_flag => 'N'
53708 , p_gl_transfer_mode_code => 'S'
53709 , p_acct_entry_type_code => 'A'
53710 , p_switch_side_flag => ''
53711 , p_merge_duplicate_code => 'A'
53712 );
53713 --
53714 l_acc_rev_natural_side_code := 'C'; -- 4262811
53715 --
53716 --
53717 -- set accounting line type info
53718 --
53719 xla_ae_lines_pkg.SetAcctLineType
53720 (p_component_type => l_component_type
53721 ,p_event_type_code => l_event_type_code
53722 ,p_line_definition_owner_code => l_line_definition_owner_code
53723 ,p_line_definition_code => l_line_definition_code
53724 ,p_accounting_line_code => l_component_code
53725 ,p_accounting_line_type_code => l_component_type_code
53726 ,p_accounting_line_appl_id => l_component_appl_id
53727 ,p_amb_context_code => l_amb_context_code
53728 ,p_entity_code => l_entity_code
53729 ,p_event_class_code => l_event_class_code);
53730 --
53731 -- set accounting class
53732 --
53733 xla_ae_lines_pkg.SetAcctClass(
53734 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
53735 , p_ae_header_id => l_ae_header_id
53736 );
53737
53738 --
53739 -- set rounding class
53740 --
53744 --
53741 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53742 'EXCHANGE_GAIN_LOSS';
53743
53745 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53746 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53747 --
53748 -- bulk performance
53749 --
53750 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53751
53752 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53753 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53754
53755 -- 4955764
53756 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53757 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53758
53759 -- 4458381 Public Sector Enh
53760
53761 --
53762 -- set accounting attributes for the line type
53763 --
53764 l_entered_amt_idx := NULL;
53765 l_accted_amt_idx := 3;
53766 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53767 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
53768 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_29);
53769 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
53770 l_rec_acct_attrs.array_char_value(2) := p_source_30;
53771 l_rec_acct_attrs.array_acct_attr_code(3) := 'LEDGER_AMOUNT';
53772 l_rec_acct_attrs.array_num_value(3) := p_source_40;
53773 l_rec_acct_attrs.array_acct_attr_code(4) := 'PARTY_ID';
53774 l_rec_acct_attrs.array_num_value(4) := p_source_97;
53775 l_rec_acct_attrs.array_acct_attr_code(5) := 'PARTY_SITE_ID';
53776 l_rec_acct_attrs.array_num_value(5) := p_source_98;
53777 l_rec_acct_attrs.array_acct_attr_code(6) := 'PARTY_TYPE';
53778 l_rec_acct_attrs.array_char_value(6) := p_source_99;
53779
53780 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53781 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53782
53783 ---------------------------------------------------------------------------------------------------------------
53784 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53785 ---------------------------------------------------------------------------------------------------------------
53786 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53787
53791 IF xla_accounting_cache_pkg.GetValueChar
53788 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53789 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53790
53792 (p_source_code => 'LEDGER_CATEGORY_CODE'
53793 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53794 AND l_bflow_method_code = 'PRIOR_ENTRY'
53795 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53796 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53797 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53798 )
53799 THEN
53800 xla_ae_lines_pkg.BflowUpgEntry
53801 (p_business_method_code => l_bflow_method_code
53802 ,p_business_class_code => l_bflow_class_code
53803 ,p_balance_type => l_balance_type_code);
53804 ELSE
53805 NULL;
53806 -- No business flow processing for business flow method of NONE.
53807 END IF;
53808
53809 --
53810 -- call analytical criteria
53811 --
53812
53813
53814 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
53815 xla_ae_lines_pkg.SetAnalyticalCriteria(
53816 p_analytical_criterion_name => 'Check Id'
53817 , p_analytical_criterion_owner => 'S'
53818 , p_analytical_criterion_code => 'CHECK_ID'
53819 , p_amb_context_code => 'DEFAULT'
53820 , p_balancing_flag => 'N'
53821
53822 , p_analytical_detail_char_1 => NULL
53823 , p_analytical_detail_num_1 => p_source_90
53824 , p_analytical_detail_date_1 => NULL
53825
53826 , p_ae_header_id => l_ae_header_id
53827 )
53828 ;
53829 --
53830
53831 --
53832 -- call description
53833 --
53834 -- No description or it is inherited.
53835 --
53836 -- call ADRs
53837 -- Bug 4922099
53838 --
53839 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53840 (NVL(l_actual_upg_option, 'N') = 'O') OR
53841 (NVL(l_enc_upg_option, 'N') = 'O')
53842 )
53843 THEN
53844 NULL;
53845 --
53846 --
53847
53848 l_ccid := AcctDerRule_22(
53849 p_application_id => p_application_id
53850 , p_ae_header_id => l_ae_header_id
53851 , p_source_24 => p_source_24
53852 , x_transaction_coa_id => l_adr_transaction_coa_id
53853 , x_accounting_coa_id => l_adr_accounting_coa_id
53854 , x_value_type_code => l_adr_value_type_code
53855 , p_side => 'CREDIT'
53856 );
53857
53858 xla_ae_lines_pkg.set_ccid(
53859 p_code_combination_id => l_ccid
53860 , p_value_type_code => l_adr_value_type_code
53861 , p_transaction_coa_id => l_adr_transaction_coa_id
53862 , p_accounting_coa_id => l_adr_accounting_coa_id
53863 , p_adr_code => 'SYS_GAIN_CCID'
53864 , p_adr_type_code => 'S'
53865 , p_component_type => l_component_type
53866 , p_component_code => l_component_code
53867 , p_component_type_code => l_component_type_code
53868 , p_component_appl_id => l_component_appl_id
53869 , p_amb_context_code => l_amb_context_code
53870 , p_side => 'CREDIT'
53871 );
53872
53873
53874 l_ccid := AcctDerRule_23(
53875 p_application_id => p_application_id
53876 , p_ae_header_id => l_ae_header_id
53877 , p_source_25 => p_source_25
53878 , x_transaction_coa_id => l_adr_transaction_coa_id
53879 , x_accounting_coa_id => l_adr_accounting_coa_id
53880 , x_value_type_code => l_adr_value_type_code
53881 , p_side => 'DEBIT'
53882 );
53883
53884 xla_ae_lines_pkg.set_ccid(
53885 p_code_combination_id => l_ccid
53886 , p_value_type_code => l_adr_value_type_code
53887 , p_transaction_coa_id => l_adr_transaction_coa_id
53888 , p_accounting_coa_id => l_adr_accounting_coa_id
53889 , p_adr_code => 'SYS_LOSS_CCID'
53890 , p_adr_type_code => 'S'
53891 , p_component_type => l_component_type
53892 , p_component_code => l_component_code
53893 , p_component_type_code => l_component_type_code
53894 , p_component_appl_id => l_component_appl_id
53895 , p_amb_context_code => l_amb_context_code
53896 , p_side => 'DEBIT'
53897 );
53898
53899
53900 --
53901 --
53902 END IF;
53903 --
53904 -- Bug 4922099
53905 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53906 (NVL(l_enc_upg_option, 'N') = 'O')
53907 ) AND
53908 (l_bflow_method_code = 'PRIOR_ENTRY')
53909 )
53910 THEN
53911 IF
53912 --
53913 1 = 2
53914 --
53915 THEN
53916 xla_accounting_err_pkg.build_message
53917 (p_appli_s_name => 'XLA'
53918 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53919 ,p_token_1 => 'LINE_NUMBER'
53920 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53921 ,p_token_2 => 'LINE_TYPE_NAME'
53925 ,l_component_type_code
53922 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53923 l_component_type
53924 ,l_component_code
53926 ,l_component_appl_id
53927 ,l_amb_context_code
53928 ,l_entity_code
53929 ,l_event_class_code
53930 )
53931 ,p_token_3 => 'OWNER'
53932 ,p_value_3 => xla_lookups_pkg.get_meaning(
53933 p_lookup_type => 'XLA_OWNER_TYPE'
53934 ,p_lookup_code => l_component_type_code
53935 )
53936 ,p_token_4 => 'PRODUCT_NAME'
53937 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53938 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53939 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53940 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53941 ,p_ae_header_id => NULL
53942 );
53943
53944 IF (C_LEVEL_ERROR>= g_log_level) THEN
53945 trace
53946 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53947 ,p_level => C_LEVEL_ERROR
53948 ,p_module => l_log_module);
53949 END IF;
53950 END IF;
53951 END IF;
53952 --
53953 --
53954 ------------------------------------------------------------------------------------------------
53955 -- 4219869 Business Flow
53956 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53957 -- Prior Entry. Currently, the following code is always generated.
53958 ------------------------------------------------------------------------------------------------
53959 XLA_AE_LINES_PKG.ValidateCurrentLine;
53960
53961 ------------------------------------------------------------------------------------
53962 -- 4219869 Business Flow
53963 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53964 ------------------------------------------------------------------------------------
53965 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53966
53967 ----------------------------------------------------------------------------------
53968 -- 4219869 Business Flow
53969 -- Update journal entry status -- Need to generate this within IF <condition>
53970 ----------------------------------------------------------------------------------
53971 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53972 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53973 ,p_balance_type_code => l_balance_type_code
53974 );
53975
53976 -------------------------------------------------------------------------------------------
53977 -- 4262811 - Generate the Accrual Reversal lines
53978 -------------------------------------------------------------------------------------------
53979 BEGIN
53980 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53981 (g_array_event(p_event_id).array_value_num('header_index'));
53982 IF l_acc_rev_flag IS NULL THEN
53983 l_acc_rev_flag := 'N';
53984 END IF;
53985 EXCEPTION
53986 WHEN OTHERS THEN
53987 l_acc_rev_flag := 'N';
53988 END;
53989 --
53990 IF (l_acc_rev_flag = 'Y') THEN
53991
53992 -- 4645092 ------------------------------------------------------------------------------
53993 -- To allow MPA report to determine if it should generate report process
53994 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53995 ------------------------------------------------------------------------------------------
53996
53997 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53998 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53999 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54000 -- call ADRs
54001 -- Bug 4922099
54002 --
54003 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54004 (NVL(l_actual_upg_option, 'N') = 'O') OR
54005 (NVL(l_enc_upg_option, 'N') = 'O')
54006 )
54007 THEN
54008 NULL;
54009 --
54010 --
54011
54012 l_ccid := AcctDerRule_22(
54013 p_application_id => p_application_id
54014 , p_ae_header_id => l_ae_header_id
54015 , p_source_24 => p_source_24
54016 , x_transaction_coa_id => l_adr_transaction_coa_id
54017 , x_accounting_coa_id => l_adr_accounting_coa_id
54018 , x_value_type_code => l_adr_value_type_code
54019 , p_side => 'CREDIT'
54020 );
54021
54022 xla_ae_lines_pkg.set_ccid(
54023 p_code_combination_id => l_ccid
54027 , p_adr_code => 'SYS_GAIN_CCID'
54024 , p_value_type_code => l_adr_value_type_code
54025 , p_transaction_coa_id => l_adr_transaction_coa_id
54026 , p_accounting_coa_id => l_adr_accounting_coa_id
54028 , p_adr_type_code => 'S'
54029 , p_component_type => l_component_type
54030 , p_component_code => l_component_code
54031 , p_component_type_code => l_component_type_code
54032 , p_component_appl_id => l_component_appl_id
54033 , p_amb_context_code => l_amb_context_code
54034 , p_side => 'CREDIT'
54035 );
54036
54037
54038 l_ccid := AcctDerRule_23(
54039 p_application_id => p_application_id
54040 , p_ae_header_id => l_ae_header_id
54041 , p_source_25 => p_source_25
54042 , x_transaction_coa_id => l_adr_transaction_coa_id
54043 , x_accounting_coa_id => l_adr_accounting_coa_id
54044 , x_value_type_code => l_adr_value_type_code
54045 , p_side => 'DEBIT'
54046 );
54047
54048 xla_ae_lines_pkg.set_ccid(
54049 p_code_combination_id => l_ccid
54050 , p_value_type_code => l_adr_value_type_code
54051 , p_transaction_coa_id => l_adr_transaction_coa_id
54052 , p_accounting_coa_id => l_adr_accounting_coa_id
54053 , p_adr_code => 'SYS_LOSS_CCID'
54054 , p_adr_type_code => 'S'
54055 , p_component_type => l_component_type
54056 , p_component_code => l_component_code
54057 , p_component_type_code => l_component_type_code
54058 , p_component_appl_id => l_component_appl_id
54059 , p_amb_context_code => l_amb_context_code
54060 , p_side => 'DEBIT'
54061 );
54062
54063
54064 --
54065 --
54069 -- Update the line information that should be overwritten
54066 END IF;
54067
54068 --
54070 --
54071 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54072 p_header_num => 1);
54073 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54074
54075 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54076
54077 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54078 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54079 END IF;
54080
54081 --
54082 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54083 --
54084 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54085 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54086 ELSE
54087 ---------------------------------------------------------------------------------------------------
54088 -- 4262811a Switch Sign
54089 ---------------------------------------------------------------------------------------------------
54090 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54091 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54092 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54093 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54094 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54095 -- 5132302
54096 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54097 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54098
54099 END IF;
54100
54101 -- 4955764
54102 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54103 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54104
54105
54106 XLA_AE_LINES_PKG.ValidateCurrentLine;
54107 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54108
54109 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54110 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54111 ,p_balance_type_code => l_balance_type_code);
54112
54116 -- 4262811 Multiperiod Accounting
54113 END IF;
54114
54115 -----------------------------------------------------------------------------------------
54117 -----------------------------------------------------------------------------------------
54118 -- No MPA option is assigned.
54119
54120
54121 END IF;
54122 --
54123
54124 --
54125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54126 trace
54127 (p_msg => 'END of AcctLineType_111'
54128 ,p_level => C_LEVEL_PROCEDURE
54129 ,p_module => l_log_module);
54130 END IF;
54131 --
54132 EXCEPTION
54133 WHEN xla_exceptions_pkg.application_exception THEN
54134 RAISE;
54135 WHEN OTHERS THEN
54136 xla_exceptions_pkg.raise_message
54137 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_111');
54138 END AcctLineType_111;
54139 --
54140
54141 ---------------------------------------
54142 --
54143 -- PRIVATE FUNCTION
54144 -- AcctLineType_112
54145 --
54146 ---------------------------------------
54147 PROCEDURE AcctLineType_112 (
54148 p_application_id IN NUMBER
54149 ,p_event_id IN NUMBER
54150 ,p_calculate_acctd_flag IN VARCHAR2
54151 ,p_calculate_g_l_flag IN VARCHAR2
54152 ,p_actual_flag IN OUT VARCHAR2
54153 ,p_balance_type_code OUT VARCHAR2
54154 ,p_gain_or_loss_ref OUT VARCHAR2
54155
54156 --Distribution GL Account
54157 , p_source_22 IN NUMBER
54158 --Distribution Source Type
54159 , p_source_27 IN VARCHAR2
54160 --Distribution Line Identifier
54161 , p_source_29 IN NUMBER
54162 --Distribution Type
54163 , p_source_30 IN VARCHAR2
54164 --Exchange Date
54165 , p_source_33 IN DATE
54166 --Exchange Rate
54167 , p_source_34 IN NUMBER
54168 --Exchange Rate Type
54169 , p_source_35 IN VARCHAR2
54170 --Accounting Amount
54171 , p_source_40 IN NUMBER
54172 --Transaction Distribution Identifier
54173 , p_source_44 IN NUMBER
54174 --Transaction Distribution Type
54175 , p_source_45 IN VARCHAR2
54176 --Distribution Multi Fund Additional Entry
54177 , p_source_88 IN VARCHAR2
54178 --Cash Receipt Identifier
54179 , p_source_90 IN NUMBER
54180 --Receipt Applied To Application Identifier
54181 , p_source_92 IN NUMBER
54182 --Transaction Entity Code
54183 , p_source_93 IN VARCHAR2
54184 --Transaction Identifier
54185 , p_source_94 IN NUMBER
54186 --DIST_ENT_AMT_FROM
54187 , p_source_95 IN NUMBER
54188 --Applying Document Currency Code
54189 , p_source_96 IN VARCHAR2
54190 --Distribution Party Identifier
54191 , p_source_97 IN NUMBER
54192 --Distribution Party Site Id
54193 , p_source_98 IN NUMBER
54194 --Distribution Party Type
54195 , p_source_99 IN VARCHAR2
54196 --Distribution Source Table
54197 , p_source_102 IN VARCHAR2
54198 )
54199 IS
54200
54201 l_component_type VARCHAR2(80);
54202 l_component_code VARCHAR2(30);
54203 l_component_type_code VARCHAR2(1);
54204 l_component_appl_id INTEGER;
54205 l_amb_context_code VARCHAR2(30);
54206 l_entity_code VARCHAR2(30);
54207 l_event_class_code VARCHAR2(30);
54208 l_ae_header_id NUMBER;
54209 l_event_type_code VARCHAR2(30);
54210 l_line_definition_code VARCHAR2(30);
54211 l_line_definition_owner_code VARCHAR2(1);
54212 --
54213 -- adr variables
54214 l_segment VARCHAR2(30);
54215 l_ccid NUMBER;
54216 l_adr_transaction_coa_id NUMBER;
54217 l_adr_accounting_coa_id NUMBER;
54218 l_adr_flexfield_segment_code VARCHAR2(30);
54219 l_adr_flex_value_set_id NUMBER;
54220 l_adr_value_type_code VARCHAR2(30);
54221 l_adr_value_combination_id NUMBER;
54222 l_adr_value_segment_code VARCHAR2(30);
54223
54224 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54225 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54226 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54227 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54228
54229 -- 4262811 Variables ------------------------------------------------------------------------------------------
54230 l_entered_amt_idx NUMBER;
54231 l_accted_amt_idx NUMBER;
54232 l_acc_rev_flag VARCHAR2(1);
54233 l_accrual_line_num NUMBER;
54234 l_tmp_amt NUMBER;
54235 l_acc_rev_natural_side_code VARCHAR2(1);
54236
54237 l_num_entries NUMBER;
54238 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54239 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54240 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54241 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54242 l_recog_line_1 NUMBER;
54243 l_recog_line_2 NUMBER;
54244
54245 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54246 l_bflow_applied_to_amt NUMBER; -- 5132302
54247 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54248
54249 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54250
54254 ---------------------------------------------------------------------------------------------------------------
54251 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54252 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54253
54255
54256
54257 --
54258 -- bulk performance
54259 --
54260 l_balance_type_code VARCHAR2(1);
54261 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54262 l_log_module VARCHAR2(240);
54263
54264 --
54265 -- Upgrade strategy
54266 --
54267 l_actual_upg_option VARCHAR2(1);
54268 l_enc_upg_option VARCHAR2(1);
54269
54270 --
54271 BEGIN
54272 --
54273 IF g_log_enabled THEN
54274 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
54275 END IF;
54276 --
54277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54278
54279 trace
54280 (p_msg => 'BEGIN of AcctLineType_112'
54281 ,p_level => C_LEVEL_PROCEDURE
54282 ,p_module => l_log_module);
54283
54284 END IF;
54285 --
54286 l_component_type := 'AMB_JLT';
54287 l_component_code := 'RCT_FACTOR';
54288 l_component_type_code := 'S';
54289 l_component_appl_id := 222;
54290 l_amb_context_code := 'DEFAULT';
54291 l_entity_code := 'RECEIPTS';
54292 l_event_class_code := 'RECEIPT';
54293 l_event_type_code := 'RECEIPT_ALL';
54294 l_line_definition_owner_code := 'S';
54295 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
54296 --
54297 l_balance_type_code := 'A';
54298 l_segment := NULL;
54299 l_ccid := NULL;
54300 l_adr_transaction_coa_id := NULL;
54301 l_adr_accounting_coa_id := NULL;
54302 l_adr_flexfield_segment_code := NULL;
54303 l_adr_flex_value_set_id := NULL;
54304 l_adr_value_type_code := NULL;
54305 l_adr_value_combination_id := NULL;
54306 l_adr_value_segment_code := NULL;
54307
54308 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54309 l_bflow_class_code := ''; -- 4219869 Business Flow
54310 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54311 l_budgetary_control_flag := 'N';
54312
54313 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54314 l_bflow_applied_to_amt := NULL; -- 5132302
54315 l_entered_amt_idx := NULL; -- 4262811
54316 l_accted_amt_idx := NULL; -- 4262811
54317 l_acc_rev_flag := NULL; -- 4262811
54318 l_accrual_line_num := NULL; -- 4262811
54319 l_tmp_amt := NULL; -- 4262811
54320 --
54321
54322 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54323 l_balance_type_code <> 'B' THEN
54324 IF NVL(p_source_27,'
54325 ') = 'FACTOR' AND
54326 NVL(p_source_102,'
54327 ') = 'CRH' AND
54328 NVL(p_source_88,'
54329 ') = 'N'
54330 THEN
54331
54332 --
54333 XLA_AE_LINES_PKG.SetNewLine;
54334
54335 p_balance_type_code := l_balance_type_code;
54336 -- set the flag so later we will know whether the gain loss line needs to be created
54337
54338 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54339 p_actual_flag :='A';
54340 END IF;
54341
54342 --
54343 -- bulk performance
54344 --
54345 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54346 p_header_num => 0); -- 4262811
54347 --
54348 -- set accounting line options
54349 --
54350 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54351 p_natural_side_code => 'C'
54352 , p_gain_or_loss_flag => 'N'
54353 , p_gl_transfer_mode_code => 'S'
54354 , p_acct_entry_type_code => 'A'
54355 , p_switch_side_flag => 'Y'
54356 , p_merge_duplicate_code => 'A'
54357 );
54358 --
54359 l_acc_rev_natural_side_code := 'D'; -- 4262811
54360 --
54361 --
54362 -- set accounting line type info
54363 --
54364 xla_ae_lines_pkg.SetAcctLineType
54365 (p_component_type => l_component_type
54366 ,p_event_type_code => l_event_type_code
54367 ,p_line_definition_owner_code => l_line_definition_owner_code
54368 ,p_line_definition_code => l_line_definition_code
54369 ,p_accounting_line_code => l_component_code
54370 ,p_accounting_line_type_code => l_component_type_code
54371 ,p_accounting_line_appl_id => l_component_appl_id
54372 ,p_amb_context_code => l_amb_context_code
54373 ,p_entity_code => l_entity_code
54374 ,p_event_class_code => l_event_class_code);
54375 --
54376 -- set accounting class
54377 --
54378 xla_ae_lines_pkg.SetAcctClass(
54379 p_accounting_class_code => 'FACTOR'
54380 , p_ae_header_id => l_ae_header_id
54381 );
54382
54383 --
54384 -- set rounding class
54385 --
54386 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54387 'RECEIVABLE';
54388
54389 --
54390 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54394 --
54391 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54392 --
54393 -- bulk performance
54395 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54396
54397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54398 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54399
54400 -- 4955764
54401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54403
54404 -- 4458381 Public Sector Enh
54405
54406 --
54407 -- set accounting attributes for the line type
54408 --
54409 l_entered_amt_idx := 8;
54410 l_accted_amt_idx := 13;
54411 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54412 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
54413 l_rec_acct_attrs.array_num_value(1) := p_source_92;
54414 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54415 l_rec_acct_attrs.array_char_value(2) := p_source_45;
54416 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
54417 l_rec_acct_attrs.array_char_value(3) := p_source_93;
54418 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
54419 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
54420 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54421 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
54422 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
54423 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
54424 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
54425 l_rec_acct_attrs.array_char_value(7) := p_source_30;
54426 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
54427 l_rec_acct_attrs.array_num_value(8) := p_source_95;
54428 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
54429 l_rec_acct_attrs.array_char_value(9) := p_source_96;
54430 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
54431 l_rec_acct_attrs.array_date_value(10) := p_source_33;
54432 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
54433 l_rec_acct_attrs.array_num_value(11) := p_source_34;
54434 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
54435 l_rec_acct_attrs.array_char_value(12) := p_source_35;
54436 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
54437 l_rec_acct_attrs.array_num_value(13) := p_source_40;
54438 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
54439 l_rec_acct_attrs.array_num_value(14) := p_source_97;
54440 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
54441 l_rec_acct_attrs.array_num_value(15) := p_source_98;
54442 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
54443 l_rec_acct_attrs.array_char_value(16) := p_source_99;
54444
54445 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54446 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54447
54448 ---------------------------------------------------------------------------------------------------------------
54449 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54450 ---------------------------------------------------------------------------------------------------------------
54451 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54452
54453 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54454 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54455
54456 IF xla_accounting_cache_pkg.GetValueChar
54457 (p_source_code => 'LEDGER_CATEGORY_CODE'
54458 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54459 AND l_bflow_method_code = 'PRIOR_ENTRY'
54460 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54461 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54462 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54463 )
54464 THEN
54465 xla_ae_lines_pkg.BflowUpgEntry
54466 (p_business_method_code => l_bflow_method_code
54467 ,p_business_class_code => l_bflow_class_code
54468 ,p_balance_type => l_balance_type_code);
54469 ELSE
54470 NULL;
54471 -- No business flow processing for business flow method of NONE.
54472 END IF;
54473
54474 --
54475 -- call analytical criteria
54476 --
54477
54478
54479 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
54480 xla_ae_lines_pkg.SetAnalyticalCriteria(
54481 p_analytical_criterion_name => 'Check Id'
54482 , p_analytical_criterion_owner => 'S'
54483 , p_analytical_criterion_code => 'CHECK_ID'
54484 , p_amb_context_code => 'DEFAULT'
54485 , p_balancing_flag => 'N'
54486
54487 , p_analytical_detail_char_1 => NULL
54488 , p_analytical_detail_num_1 => p_source_90
54489 , p_analytical_detail_date_1 => NULL
54490
54491 , p_ae_header_id => l_ae_header_id
54492 )
54493 ;
54494 --
54495
54496 --
54497 -- call description
54498 --
54499 -- No description or it is inherited.
54500 --
54504 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54501 -- call ADRs
54502 -- Bug 4922099
54503 --
54505 (NVL(l_actual_upg_option, 'N') = 'O') OR
54506 (NVL(l_enc_upg_option, 'N') = 'O')
54507 )
54508 THEN
54509 NULL;
54510 --
54511 --
54512
54513 l_ccid := AcctDerRule_20(
54514 p_application_id => p_application_id
54515 , p_ae_header_id => l_ae_header_id
54516 , p_source_22 => p_source_22
54517 , x_transaction_coa_id => l_adr_transaction_coa_id
54518 , x_accounting_coa_id => l_adr_accounting_coa_id
54522
54519 , x_value_type_code => l_adr_value_type_code
54520 , p_side => 'NA'
54521 );
54523 xla_ae_lines_pkg.set_ccid(
54524 p_code_combination_id => l_ccid
54525 , p_value_type_code => l_adr_value_type_code
54526 , p_transaction_coa_id => l_adr_transaction_coa_id
54527 , p_accounting_coa_id => l_adr_accounting_coa_id
54528 , p_adr_code => 'DIST_CCID'
54529 , p_adr_type_code => 'S'
54530 , p_component_type => l_component_type
54531 , p_component_code => l_component_code
54532 , p_component_type_code => l_component_type_code
54533 , p_component_appl_id => l_component_appl_id
54534 , p_amb_context_code => l_amb_context_code
54535 , p_side => 'NA'
54536 );
54537
54538
54539 --
54540 --
54541 END IF;
54542 --
54543 -- Bug 4922099
54547 (l_bflow_method_code = 'PRIOR_ENTRY')
54544 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54545 (NVL(l_enc_upg_option, 'N') = 'O')
54546 ) AND
54548 )
54549 THEN
54550 IF
54551 --
54552 1 = 2
54553 --
54554 THEN
54555 xla_accounting_err_pkg.build_message
54556 (p_appli_s_name => 'XLA'
54557 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54558 ,p_token_1 => 'LINE_NUMBER'
54559 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54560 ,p_token_2 => 'LINE_TYPE_NAME'
54561 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54562 l_component_type
54563 ,l_component_code
54564 ,l_component_type_code
54565 ,l_component_appl_id
54566 ,l_amb_context_code
54567 ,l_entity_code
54568 ,l_event_class_code
54569 )
54570 ,p_token_3 => 'OWNER'
54571 ,p_value_3 => xla_lookups_pkg.get_meaning(
54572 p_lookup_type => 'XLA_OWNER_TYPE'
54573 ,p_lookup_code => l_component_type_code
54574 )
54575 ,p_token_4 => 'PRODUCT_NAME'
54576 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54577 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54578 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54579 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54580 ,p_ae_header_id => NULL
54581 );
54582
54583 IF (C_LEVEL_ERROR>= g_log_level) THEN
54584 trace
54585 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54586 ,p_level => C_LEVEL_ERROR
54587 ,p_module => l_log_module);
54588 END IF;
54589 END IF;
54590 END IF;
54591 --
54592 --
54593 ------------------------------------------------------------------------------------------------
54594 -- 4219869 Business Flow
54595 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54596 -- Prior Entry. Currently, the following code is always generated.
54597 ------------------------------------------------------------------------------------------------
54598 XLA_AE_LINES_PKG.ValidateCurrentLine;
54599
54600 ------------------------------------------------------------------------------------
54601 -- 4219869 Business Flow
54602 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54603 ------------------------------------------------------------------------------------
54604 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54605
54606 ----------------------------------------------------------------------------------
54607 -- 4219869 Business Flow
54608 -- Update journal entry status -- Need to generate this within IF <condition>
54609 ----------------------------------------------------------------------------------
54610 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54611 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54612 ,p_balance_type_code => l_balance_type_code
54613 );
54614
54615 -------------------------------------------------------------------------------------------
54616 -- 4262811 - Generate the Accrual Reversal lines
54617 -------------------------------------------------------------------------------------------
54618 BEGIN
54619 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54620 (g_array_event(p_event_id).array_value_num('header_index'));
54621 IF l_acc_rev_flag IS NULL THEN
54622 l_acc_rev_flag := 'N';
54623 END IF;
54624 EXCEPTION
54625 WHEN OTHERS THEN
54626 l_acc_rev_flag := 'N';
54627 END;
54628 --
54629 IF (l_acc_rev_flag = 'Y') THEN
54630
54631 -- 4645092 ------------------------------------------------------------------------------
54632 -- To allow MPA report to determine if it should generate report process
54633 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54634 ------------------------------------------------------------------------------------------
54635
54636 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54637 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54638 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54639 -- call ADRs
54640 -- Bug 4922099
54641 --
54642 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54643 (NVL(l_actual_upg_option, 'N') = 'O') OR
54647 NULL;
54644 (NVL(l_enc_upg_option, 'N') = 'O')
54645 )
54646 THEN
54648 --
54649 --
54650
54651 l_ccid := AcctDerRule_20(
54652 p_application_id => p_application_id
54653 , p_ae_header_id => l_ae_header_id
54654 , p_source_22 => p_source_22
54655 , x_transaction_coa_id => l_adr_transaction_coa_id
54656 , x_accounting_coa_id => l_adr_accounting_coa_id
54657 , x_value_type_code => l_adr_value_type_code
54658 , p_side => 'NA'
54659 );
54660
54661 xla_ae_lines_pkg.set_ccid(
54662 p_code_combination_id => l_ccid
54663 , p_value_type_code => l_adr_value_type_code
54664 , p_transaction_coa_id => l_adr_transaction_coa_id
54665 , p_accounting_coa_id => l_adr_accounting_coa_id
54666 , p_adr_code => 'DIST_CCID'
54667 , p_adr_type_code => 'S'
54668 , p_component_type => l_component_type
54669 , p_component_code => l_component_code
54670 , p_component_type_code => l_component_type_code
54671 , p_component_appl_id => l_component_appl_id
54672 , p_amb_context_code => l_amb_context_code
54673 , p_side => 'NA'
54674 );
54675
54676
54677 --
54678 --
54679 END IF;
54680
54681 --
54682 -- Update the line information that should be overwritten
54683 --
54684 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54685 p_header_num => 1);
54686 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54687
54688 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54689
54690 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54691 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54692 END IF;
54693
54694 --
54695 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54696 --
54697 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54698 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54699 ELSE
54700 ---------------------------------------------------------------------------------------------------
54701 -- 4262811a Switch Sign
54702 ---------------------------------------------------------------------------------------------------
54703 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54704 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54706 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54707 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54708 -- 5132302
54709 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54710 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54711
54712 END IF;
54713
54714 -- 4955764
54715 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54716 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54717
54718
54719 XLA_AE_LINES_PKG.ValidateCurrentLine;
54720 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54721
54722 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54723 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54724 ,p_balance_type_code => l_balance_type_code);
54725
54726 END IF;
54727
54728 -----------------------------------------------------------------------------------------
54729 -- 4262811 Multiperiod Accounting
54730 -----------------------------------------------------------------------------------------
54731 -- No MPA option is assigned.
54732
54733
54734 END IF;
54735 END IF;
54736 --
54737
54738 --
54739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54740 trace
54741 (p_msg => 'END of AcctLineType_112'
54742 ,p_level => C_LEVEL_PROCEDURE
54743 ,p_module => l_log_module);
54744 END IF;
54745 --
54746 EXCEPTION
54747 WHEN xla_exceptions_pkg.application_exception THEN
54748 RAISE;
54749 WHEN OTHERS THEN
54750 xla_exceptions_pkg.raise_message
54751 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_112');
54752 END AcctLineType_112;
54753 --
54754
54755 ---------------------------------------
54756 --
54757 -- PRIVATE FUNCTION
54758 -- AcctLineType_113
54759 --
54760 ---------------------------------------
54761 PROCEDURE AcctLineType_113 (
54762 p_application_id IN NUMBER
54763 ,p_event_id IN NUMBER
54764 ,p_calculate_acctd_flag IN VARCHAR2
54765 ,p_calculate_g_l_flag IN VARCHAR2
54766 ,p_actual_flag IN OUT VARCHAR2
54767 ,p_balance_type_code OUT VARCHAR2
54768 ,p_gain_or_loss_ref OUT VARCHAR2
54769
54770 --Distribution GL Account
54771 , p_source_22 IN NUMBER
54772 --Distribution Source Type
54773 , p_source_27 IN VARCHAR2
54777 , p_source_30 IN VARCHAR2
54774 --Distribution Line Identifier
54775 , p_source_29 IN NUMBER
54776 --Distribution Type
54778 --Exchange Date
54779 , p_source_33 IN DATE
54780 --Exchange Rate
54781 , p_source_34 IN NUMBER
54782 --Exchange Rate Type
54783 , p_source_35 IN VARCHAR2
54784 --Accounting Amount
54785 , p_source_40 IN NUMBER
54786 --Transaction Distribution Identifier
54787 , p_source_44 IN NUMBER
54788 --Transaction Distribution Type
54789 , p_source_45 IN VARCHAR2
54790 --Distribution Multi Fund Additional Entry
54791 , p_source_88 IN VARCHAR2
54792 --Cash Receipt Identifier
54793 , p_source_90 IN NUMBER
54794 --Receipt Applied To Application Identifier
54795 , p_source_92 IN NUMBER
54796 --Transaction Entity Code
54797 , p_source_93 IN VARCHAR2
54798 --Transaction Identifier
54799 , p_source_94 IN NUMBER
54800 --DIST_ENT_AMT_FROM
54801 , p_source_95 IN NUMBER
54802 --Applying Document Currency Code
54803 , p_source_96 IN VARCHAR2
54804 --Distribution Party Identifier
54805 , p_source_97 IN NUMBER
54806 --Distribution Party Site Id
54807 , p_source_98 IN NUMBER
54808 --Distribution Party Type
54809 , p_source_99 IN VARCHAR2
54810 --Distribution Source Table
54811 , p_source_102 IN VARCHAR2
54812 )
54813 IS
54814
54815 l_component_type VARCHAR2(80);
54816 l_component_code VARCHAR2(30);
54817 l_component_type_code VARCHAR2(1);
54818 l_component_appl_id INTEGER;
54819 l_amb_context_code VARCHAR2(30);
54820 l_entity_code VARCHAR2(30);
54821 l_event_class_code VARCHAR2(30);
54822 l_ae_header_id NUMBER;
54823 l_event_type_code VARCHAR2(30);
54824 l_line_definition_code VARCHAR2(30);
54825 l_line_definition_owner_code VARCHAR2(1);
54826 --
54827 -- adr variables
54828 l_segment VARCHAR2(30);
54829 l_ccid NUMBER;
54830 l_adr_transaction_coa_id NUMBER;
54831 l_adr_accounting_coa_id NUMBER;
54832 l_adr_flexfield_segment_code VARCHAR2(30);
54833 l_adr_flex_value_set_id NUMBER;
54834 l_adr_value_type_code VARCHAR2(30);
54835 l_adr_value_combination_id NUMBER;
54836 l_adr_value_segment_code VARCHAR2(30);
54837
54838 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54839 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54840 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54841 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54842
54843 -- 4262811 Variables ------------------------------------------------------------------------------------------
54844 l_entered_amt_idx NUMBER;
54845 l_accted_amt_idx NUMBER;
54846 l_acc_rev_flag VARCHAR2(1);
54847 l_accrual_line_num NUMBER;
54848 l_tmp_amt NUMBER;
54849 l_acc_rev_natural_side_code VARCHAR2(1);
54850
54851 l_num_entries NUMBER;
54852 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54853 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54854 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54855 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54856 l_recog_line_1 NUMBER;
54857 l_recog_line_2 NUMBER;
54858
54859 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54860 l_bflow_applied_to_amt NUMBER; -- 5132302
54861 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54862
54863 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54864
54865 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54866 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54867
54868 ---------------------------------------------------------------------------------------------------------------
54869
54870
54871 --
54872 -- bulk performance
54873 --
54874 l_balance_type_code VARCHAR2(1);
54875 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54876 l_log_module VARCHAR2(240);
54877
54878 --
54879 -- Upgrade strategy
54880 --
54881 l_actual_upg_option VARCHAR2(1);
54882 l_enc_upg_option VARCHAR2(1);
54883
54884 --
54885 BEGIN
54886 --
54887 IF g_log_enabled THEN
54888 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
54889 END IF;
54890 --
54891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54892
54893 trace
54894 (p_msg => 'BEGIN of AcctLineType_113'
54895 ,p_level => C_LEVEL_PROCEDURE
54896 ,p_module => l_log_module);
54897
54898 END IF;
54899 --
54900 l_component_type := 'AMB_JLT';
54901 l_component_code := 'RCT_FACTOR_BR';
54902 l_component_type_code := 'S';
54903 l_component_appl_id := 222;
54904 l_amb_context_code := 'DEFAULT';
54905 l_entity_code := 'RECEIPTS';
54906 l_event_class_code := 'RECEIPT';
54907 l_event_type_code := 'RECEIPT_ALL';
54908 l_line_definition_owner_code := 'S';
54909 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
54910 --
54911 l_balance_type_code := 'A';
54912 l_segment := NULL;
54916 l_adr_flexfield_segment_code := NULL;
54913 l_ccid := NULL;
54914 l_adr_transaction_coa_id := NULL;
54915 l_adr_accounting_coa_id := NULL;
54917 l_adr_flex_value_set_id := NULL;
54918 l_adr_value_type_code := NULL;
54919 l_adr_value_combination_id := NULL;
54920 l_adr_value_segment_code := NULL;
54921
54922 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54923 l_bflow_class_code := ''; -- 4219869 Business Flow
54924 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54925 l_budgetary_control_flag := 'N';
54926
54927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54928 l_bflow_applied_to_amt := NULL; -- 5132302
54929 l_entered_amt_idx := NULL; -- 4262811
54930 l_accted_amt_idx := NULL; -- 4262811
54931 l_acc_rev_flag := NULL; -- 4262811
54932 l_accrual_line_num := NULL; -- 4262811
54933 l_tmp_amt := NULL; -- 4262811
54934 --
54935
54936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54937 l_balance_type_code <> 'B' THEN
54938 IF NVL(p_source_27,'
54939 ') = 'FACTOR' AND
54940 NVL(p_source_102,'
54941 ') = 'RA' AND
54942 NVL(p_source_88,'
54943 ') = 'N'
54944 THEN
54945
54946 --
54947 XLA_AE_LINES_PKG.SetNewLine;
54948
54949 p_balance_type_code := l_balance_type_code;
54950 -- set the flag so later we will know whether the gain loss line needs to be created
54951
54952 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54953 p_actual_flag :='A';
54954 END IF;
54955
54956 --
54957 -- bulk performance
54958 --
54962 -- set accounting line options
54959 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54960 p_header_num => 0); -- 4262811
54961 --
54963 --
54964 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54965 p_natural_side_code => 'C'
54966 , p_gain_or_loss_flag => 'N'
54967 , p_gl_transfer_mode_code => 'S'
54968 , p_acct_entry_type_code => 'A'
54969 , p_switch_side_flag => 'Y'
54970 , p_merge_duplicate_code => 'A'
54971 );
54972 --
54973 l_acc_rev_natural_side_code := 'D'; -- 4262811
54974 --
54975 --
54976 -- set accounting line type info
54977 --
54978 xla_ae_lines_pkg.SetAcctLineType
54979 (p_component_type => l_component_type
54980 ,p_event_type_code => l_event_type_code
54981 ,p_line_definition_owner_code => l_line_definition_owner_code
54982 ,p_line_definition_code => l_line_definition_code
54983 ,p_accounting_line_code => l_component_code
54984 ,p_accounting_line_type_code => l_component_type_code
54985 ,p_accounting_line_appl_id => l_component_appl_id
54986 ,p_amb_context_code => l_amb_context_code
54987 ,p_entity_code => l_entity_code
54988 ,p_event_class_code => l_event_class_code);
54989 --
54990 -- set accounting class
54991 --
54992 xla_ae_lines_pkg.SetAcctClass(
54993 p_accounting_class_code => 'FAC_BR'
54994 , p_ae_header_id => l_ae_header_id
54995 );
54996
54997 --
54998 -- set rounding class
54999 --
55000 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55001 'RECEIVABLE';
55002
55003 --
55004 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55005 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55006 --
55007 -- bulk performance
55008 --
55009 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55010
55011 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55012 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55013
55014 -- 4955764
55015 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55016 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55017
55018 -- 4458381 Public Sector Enh
55019
55020 --
55021 -- set accounting attributes for the line type
55022 --
55023 l_entered_amt_idx := 8;
55027 l_rec_acct_attrs.array_num_value(1) := p_source_92;
55024 l_accted_amt_idx := 13;
55025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55026 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
55028 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55029 l_rec_acct_attrs.array_char_value(2) := p_source_45;
55030 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
55031 l_rec_acct_attrs.array_char_value(3) := p_source_93;
55032 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
55033 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
55034 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55035 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
55036 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
55037 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
55038 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
55039 l_rec_acct_attrs.array_char_value(7) := p_source_30;
55040 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
55041 l_rec_acct_attrs.array_num_value(8) := p_source_95;
55042 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
55043 l_rec_acct_attrs.array_char_value(9) := p_source_96;
55044 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
55045 l_rec_acct_attrs.array_date_value(10) := p_source_33;
55046 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
55047 l_rec_acct_attrs.array_num_value(11) := p_source_34;
55048 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
55049 l_rec_acct_attrs.array_char_value(12) := p_source_35;
55050 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
55051 l_rec_acct_attrs.array_num_value(13) := p_source_40;
55052 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
55053 l_rec_acct_attrs.array_num_value(14) := p_source_97;
55054 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
55055 l_rec_acct_attrs.array_num_value(15) := p_source_98;
55056 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
55057 l_rec_acct_attrs.array_char_value(16) := p_source_99;
55058
55059 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55060 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55061
55062 ---------------------------------------------------------------------------------------------------------------
55063 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55064 ---------------------------------------------------------------------------------------------------------------
55065 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55066
55067 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55068 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55069
55070 IF xla_accounting_cache_pkg.GetValueChar
55071 (p_source_code => 'LEDGER_CATEGORY_CODE'
55072 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55073 AND l_bflow_method_code = 'PRIOR_ENTRY'
55074 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55075 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55076 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55077 )
55078 THEN
55079 xla_ae_lines_pkg.BflowUpgEntry
55080 (p_business_method_code => l_bflow_method_code
55081 ,p_business_class_code => l_bflow_class_code
55082 ,p_balance_type => l_balance_type_code);
55083 ELSE
55084 NULL;
55085 -- No business flow processing for business flow method of NONE.
55086 END IF;
55087
55088 --
55089 -- call analytical criteria
55090 --
55091
55092
55093 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
55094 xla_ae_lines_pkg.SetAnalyticalCriteria(
55095 p_analytical_criterion_name => 'Check Id'
55096 , p_analytical_criterion_owner => 'S'
55097 , p_analytical_criterion_code => 'CHECK_ID'
55098 , p_amb_context_code => 'DEFAULT'
55099 , p_balancing_flag => 'N'
55100
55101 , p_analytical_detail_char_1 => NULL
55102 , p_analytical_detail_num_1 => p_source_90
55103 , p_analytical_detail_date_1 => NULL
55104
55105 , p_ae_header_id => l_ae_header_id
55106 )
55107 ;
55108 --
55109
55110 --
55111 -- call description
55112 --
55113 -- No description or it is inherited.
55114 --
55115 -- call ADRs
55116 -- Bug 4922099
55117 --
55118 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55119 (NVL(l_actual_upg_option, 'N') = 'O') OR
55120 (NVL(l_enc_upg_option, 'N') = 'O')
55121 )
55122 THEN
55123 NULL;
55124 --
55125 --
55126
55127 l_ccid := AcctDerRule_20(
55128 p_application_id => p_application_id
55129 , p_ae_header_id => l_ae_header_id
55130 , p_source_22 => p_source_22
55131 , x_transaction_coa_id => l_adr_transaction_coa_id
55132 , x_accounting_coa_id => l_adr_accounting_coa_id
55133 , x_value_type_code => l_adr_value_type_code
55134 , p_side => 'NA'
55135 );
55136
55137 xla_ae_lines_pkg.set_ccid(
55138 p_code_combination_id => l_ccid
55139 , p_value_type_code => l_adr_value_type_code
55140 , p_transaction_coa_id => l_adr_transaction_coa_id
55144 , p_component_type => l_component_type
55141 , p_accounting_coa_id => l_adr_accounting_coa_id
55142 , p_adr_code => 'DIST_CCID'
55143 , p_adr_type_code => 'S'
55145 , p_component_code => l_component_code
55146 , p_component_type_code => l_component_type_code
55147 , p_component_appl_id => l_component_appl_id
55148 , p_amb_context_code => l_amb_context_code
55149 , p_side => 'NA'
55150 );
55151
55152
55153 --
55154 --
55155 END IF;
55156 --
55157 -- Bug 4922099
55158 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55159 (NVL(l_enc_upg_option, 'N') = 'O')
55160 ) AND
55161 (l_bflow_method_code = 'PRIOR_ENTRY')
55162 )
55163 THEN
55164 IF
55165 --
55166 1 = 2
55167 --
55168 THEN
55169 xla_accounting_err_pkg.build_message
55170 (p_appli_s_name => 'XLA'
55171 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55172 ,p_token_1 => 'LINE_NUMBER'
55173 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55174 ,p_token_2 => 'LINE_TYPE_NAME'
55175 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55176 l_component_type
55177 ,l_component_code
55178 ,l_component_type_code
55179 ,l_component_appl_id
55180 ,l_amb_context_code
55181 ,l_entity_code
55182 ,l_event_class_code
55183 )
55184 ,p_token_3 => 'OWNER'
55185 ,p_value_3 => xla_lookups_pkg.get_meaning(
55186 p_lookup_type => 'XLA_OWNER_TYPE'
55187 ,p_lookup_code => l_component_type_code
55188 )
55189 ,p_token_4 => 'PRODUCT_NAME'
55190 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55191 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55192 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55193 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55194 ,p_ae_header_id => NULL
55195 );
55196
55197 IF (C_LEVEL_ERROR>= g_log_level) THEN
55198 trace
55199 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55200 ,p_level => C_LEVEL_ERROR
55201 ,p_module => l_log_module);
55202 END IF;
55203 END IF;
55204 END IF;
55205 --
55206 --
55207 ------------------------------------------------------------------------------------------------
55208 -- 4219869 Business Flow
55209 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55210 -- Prior Entry. Currently, the following code is always generated.
55211 ------------------------------------------------------------------------------------------------
55212 XLA_AE_LINES_PKG.ValidateCurrentLine;
55213
55214 ------------------------------------------------------------------------------------
55215 -- 4219869 Business Flow
55216 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55217 ------------------------------------------------------------------------------------
55218 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55219
55220 ----------------------------------------------------------------------------------
55221 -- 4219869 Business Flow
55222 -- Update journal entry status -- Need to generate this within IF <condition>
55223 ----------------------------------------------------------------------------------
55224 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55225 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55226 ,p_balance_type_code => l_balance_type_code
55227 );
55228
55229 -------------------------------------------------------------------------------------------
55230 -- 4262811 - Generate the Accrual Reversal lines
55231 -------------------------------------------------------------------------------------------
55232 BEGIN
55233 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55234 (g_array_event(p_event_id).array_value_num('header_index'));
55235 IF l_acc_rev_flag IS NULL THEN
55236 l_acc_rev_flag := 'N';
55237 END IF;
55238 EXCEPTION
55239 WHEN OTHERS THEN
55240 l_acc_rev_flag := 'N';
55241 END;
55242 --
55243 IF (l_acc_rev_flag = 'Y') THEN
55244
55248 ------------------------------------------------------------------------------------------
55245 -- 4645092 ------------------------------------------------------------------------------
55246 -- To allow MPA report to determine if it should generate report process
55247 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55249
55250 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55251 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55252 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55253 -- call ADRs
55254 -- Bug 4922099
55255 --
55256 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55257 (NVL(l_actual_upg_option, 'N') = 'O') OR
55258 (NVL(l_enc_upg_option, 'N') = 'O')
55259 )
55260 THEN
55261 NULL;
55262 --
55263 --
55264
55265 l_ccid := AcctDerRule_20(
55266 p_application_id => p_application_id
55267 , p_ae_header_id => l_ae_header_id
55268 , p_source_22 => p_source_22
55269 , x_transaction_coa_id => l_adr_transaction_coa_id
55270 , x_accounting_coa_id => l_adr_accounting_coa_id
55271 , x_value_type_code => l_adr_value_type_code
55272 , p_side => 'NA'
55273 );
55274
55275 xla_ae_lines_pkg.set_ccid(
55276 p_code_combination_id => l_ccid
55277 , p_value_type_code => l_adr_value_type_code
55278 , p_transaction_coa_id => l_adr_transaction_coa_id
55279 , p_accounting_coa_id => l_adr_accounting_coa_id
55280 , p_adr_code => 'DIST_CCID'
55281 , p_adr_type_code => 'S'
55282 , p_component_type => l_component_type
55283 , p_component_code => l_component_code
55284 , p_component_type_code => l_component_type_code
55285 , p_component_appl_id => l_component_appl_id
55286 , p_amb_context_code => l_amb_context_code
55287 , p_side => 'NA'
55288 );
55289
55290
55291 --
55292 --
55293 END IF;
55294
55295 --
55296 -- Update the line information that should be overwritten
55297 --
55298 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55299 p_header_num => 1);
55300 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55301
55302 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55303
55304 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55305 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55306 END IF;
55307
55308 --
55309 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55310 --
55311 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55312 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55313 ELSE
55314 ---------------------------------------------------------------------------------------------------
55315 -- 4262811a Switch Sign
55316 ---------------------------------------------------------------------------------------------------
55317 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55318 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55319 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55320 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55321 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55322 -- 5132302
55323 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55324 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55325
55326 END IF;
55327
55328 -- 4955764
55329 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55330 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55331
55332
55333 XLA_AE_LINES_PKG.ValidateCurrentLine;
55334 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55335
55336 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55337 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55338 ,p_balance_type_code => l_balance_type_code);
55339
55340 END IF;
55341
55342 -----------------------------------------------------------------------------------------
55343 -- 4262811 Multiperiod Accounting
55344 -----------------------------------------------------------------------------------------
55345 -- No MPA option is assigned.
55346
55347
55348 END IF;
55349 END IF;
55350 --
55351
55352 --
55353 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55354 trace
55355 (p_msg => 'END of AcctLineType_113'
55356 ,p_level => C_LEVEL_PROCEDURE
55357 ,p_module => l_log_module);
55358 END IF;
55359 --
55360 EXCEPTION
55361 WHEN xla_exceptions_pkg.application_exception THEN
55362 RAISE;
55363 WHEN OTHERS THEN
55367 --
55364 xla_exceptions_pkg.raise_message
55365 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_113');
55366 END AcctLineType_113;
55368
55369 ---------------------------------------
55370 --
55371 -- PRIVATE FUNCTION
55372 -- AcctLineType_114
55373 --
55374 ---------------------------------------
55375 PROCEDURE AcctLineType_114 (
55376 p_application_id IN NUMBER
55377 ,p_event_id IN NUMBER
55378 ,p_calculate_acctd_flag IN VARCHAR2
55379 ,p_calculate_g_l_flag IN VARCHAR2
55380 ,p_actual_flag IN OUT VARCHAR2
55381 ,p_balance_type_code OUT VARCHAR2
55382 ,p_gain_or_loss_ref OUT VARCHAR2
55383
55384 --Distribution GL Account
55385 , p_source_22 IN NUMBER
55386 --Distribution Source Type
55387 , p_source_27 IN VARCHAR2
55388 --Receivable Activity Type
55389 , p_source_28 IN VARCHAR2
55390 --Distribution Line Identifier
55391 , p_source_29 IN NUMBER
55392 --Distribution Type
55393 , p_source_30 IN VARCHAR2
55394 --Exchange Date
55395 , p_source_33 IN DATE
55396 --Exchange Rate
55397 , p_source_34 IN NUMBER
55398 --Exchange Rate Type
55399 , p_source_35 IN VARCHAR2
55400 --Applied To Document Accounting Amount
55401 , p_source_36 IN NUMBER
55402 --Transaction Distribution Identifier
55403 , p_source_44 IN NUMBER
55404 --Transaction Distribution Type
55405 , p_source_45 IN VARCHAR2
55406 --Distribution Multi Fund Additional Entry
55407 , p_source_88 IN VARCHAR2
55408 --Cash Receipt Identifier
55409 , p_source_90 IN NUMBER
55410 --Receipt Applied To Application Identifier
55411 , p_source_92 IN NUMBER
55412 --Transaction Entity Code
55413 , p_source_93 IN VARCHAR2
55414 --Transaction Identifier
55415 , p_source_94 IN NUMBER
55416 --DIST_ENT_AMT_FROM
55417 , p_source_95 IN NUMBER
55418 --Applying Document Currency Code
55419 , p_source_96 IN VARCHAR2
55420 --Distribution Party Identifier
55421 , p_source_97 IN NUMBER
55422 --Distribution Party Site Id
55423 , p_source_98 IN NUMBER
55424 --Distribution Party Type
55425 , p_source_99 IN VARCHAR2
55426 )
55427 IS
55428
55429 l_component_type VARCHAR2(80);
55430 l_component_code VARCHAR2(30);
55431 l_component_type_code VARCHAR2(1);
55432 l_component_appl_id INTEGER;
55433 l_amb_context_code VARCHAR2(30);
55434 l_entity_code VARCHAR2(30);
55435 l_event_class_code VARCHAR2(30);
55436 l_ae_header_id NUMBER;
55437 l_event_type_code VARCHAR2(30);
55438 l_line_definition_code VARCHAR2(30);
55439 l_line_definition_owner_code VARCHAR2(1);
55440 --
55441 -- adr variables
55442 l_segment VARCHAR2(30);
55443 l_ccid NUMBER;
55444 l_adr_transaction_coa_id NUMBER;
55445 l_adr_accounting_coa_id NUMBER;
55446 l_adr_flexfield_segment_code VARCHAR2(30);
55447 l_adr_flex_value_set_id NUMBER;
55448 l_adr_value_type_code VARCHAR2(30);
55449 l_adr_value_combination_id NUMBER;
55450 l_adr_value_segment_code VARCHAR2(30);
55451
55452 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55453 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55454 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55455 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55456
55457 -- 4262811 Variables ------------------------------------------------------------------------------------------
55458 l_entered_amt_idx NUMBER;
55459 l_accted_amt_idx NUMBER;
55460 l_acc_rev_flag VARCHAR2(1);
55461 l_accrual_line_num NUMBER;
55462 l_tmp_amt NUMBER;
55463 l_acc_rev_natural_side_code VARCHAR2(1);
55464
55465 l_num_entries NUMBER;
55466 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55467 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55468 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55469 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55470 l_recog_line_1 NUMBER;
55471 l_recog_line_2 NUMBER;
55472
55473 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55474 l_bflow_applied_to_amt NUMBER; -- 5132302
55475 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55476
55477 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55478
55479 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55480 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55481
55482 ---------------------------------------------------------------------------------------------------------------
55483
55484
55485 --
55486 -- bulk performance
55487 --
55488 l_balance_type_code VARCHAR2(1);
55489 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55490 l_log_module VARCHAR2(240);
55491
55492 --
55493 -- Upgrade strategy
55494 --
55495 l_actual_upg_option VARCHAR2(1);
55496 l_enc_upg_option VARCHAR2(1);
55497
55498 --
55499 BEGIN
55500 --
55501 IF g_log_enabled THEN
55502 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
55503 END IF;
55504 --
55508 (p_msg => 'BEGIN of AcctLineType_114'
55505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55506
55507 trace
55509 ,p_level => C_LEVEL_PROCEDURE
55510 ,p_module => l_log_module);
55511
55512 END IF;
55513 --
55514 l_component_type := 'AMB_JLT';
55515 l_component_code := 'RCT_PMT_NET';
55516 l_component_type_code := 'S';
55517 l_component_appl_id := 222;
55518 l_amb_context_code := 'DEFAULT';
55519 l_entity_code := 'RECEIPTS';
55520 l_event_class_code := 'RECEIPT';
55521 l_event_type_code := 'RECEIPT_ALL';
55522 l_line_definition_owner_code := 'S';
55523 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
55524 --
55525 l_balance_type_code := 'A';
55526 l_segment := NULL;
55527 l_ccid := NULL;
55528 l_adr_transaction_coa_id := NULL;
55529 l_adr_accounting_coa_id := NULL;
55530 l_adr_flexfield_segment_code := NULL;
55531 l_adr_flex_value_set_id := NULL;
55532 l_adr_value_type_code := NULL;
55533 l_adr_value_combination_id := NULL;
55534 l_adr_value_segment_code := NULL;
55535
55536 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55537 l_bflow_class_code := ''; -- 4219869 Business Flow
55538 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55539 l_budgetary_control_flag := 'N';
55540
55541 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55542 l_bflow_applied_to_amt := NULL; -- 5132302
55543 l_entered_amt_idx := NULL; -- 4262811
55544 l_accted_amt_idx := NULL; -- 4262811
55545 l_acc_rev_flag := NULL; -- 4262811
55546 l_accrual_line_num := NULL; -- 4262811
55547 l_tmp_amt := NULL; -- 4262811
55548 --
55549
55550 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55551 l_balance_type_code <> 'B' THEN
55552 IF (NVL(p_source_27,'
55553 ') = 'OTHER_ACC' OR
55554 NVL(p_source_27,'
55555 ') = 'ACTIVITY') AND
55556 NVL(p_source_28,'
55557 ') = 'NETTING' AND
55558 NVL(p_source_88,'
55559 ') = 'N'
55560 THEN
55561
55562 --
55563 XLA_AE_LINES_PKG.SetNewLine;
55564
55565 p_balance_type_code := l_balance_type_code;
55566 -- set the flag so later we will know whether the gain loss line needs to be created
55567
55568 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55569 p_actual_flag :='A';
55570 END IF;
55571
55572 --
55573 -- bulk performance
55574 --
55575 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55576 p_header_num => 0); -- 4262811
55577 --
55578 -- set accounting line options
55579 --
55580 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55581 p_natural_side_code => 'C'
55582 , p_gain_or_loss_flag => 'N'
55583 , p_gl_transfer_mode_code => 'S'
55584 , p_acct_entry_type_code => 'A'
55585 , p_switch_side_flag => 'Y'
55586 , p_merge_duplicate_code => 'A'
55587 );
55588 --
55589 l_acc_rev_natural_side_code := 'D'; -- 4262811
55590 --
55591 --
55592 -- set accounting line type info
55593 --
55594 xla_ae_lines_pkg.SetAcctLineType
55595 (p_component_type => l_component_type
55596 ,p_event_type_code => l_event_type_code
55597 ,p_line_definition_owner_code => l_line_definition_owner_code
55598 ,p_line_definition_code => l_line_definition_code
55599 ,p_accounting_line_code => l_component_code
55600 ,p_accounting_line_type_code => l_component_type_code
55601 ,p_accounting_line_appl_id => l_component_appl_id
55602 ,p_amb_context_code => l_amb_context_code
55603 ,p_entity_code => l_entity_code
55604 ,p_event_class_code => l_event_class_code);
55605 --
55606 -- set accounting class
55607 --
55608 xla_ae_lines_pkg.SetAcctClass(
55609 p_accounting_class_code => 'PMT_NET'
55610 , p_ae_header_id => l_ae_header_id
55611 );
55612
55613 --
55614 -- set rounding class
55615 --
55616 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55617 'RECEIVABLE';
55618
55619 --
55620 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55621 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55622 --
55623 -- bulk performance
55624 --
55625 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55626
55627 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55628 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55629
55630 -- 4955764
55631 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55632 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55633
55634 -- 4458381 Public Sector Enh
55635
55636 --
55637 -- set accounting attributes for the line type
55638 --
55639 l_entered_amt_idx := 8;
55640 l_accted_amt_idx := 13;
55641 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55645 l_rec_acct_attrs.array_char_value(2) := p_source_45;
55642 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
55643 l_rec_acct_attrs.array_num_value(1) := p_source_92;
55644 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55646 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
55647 l_rec_acct_attrs.array_char_value(3) := p_source_93;
55648 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
55649 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
55650 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55651 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
55652 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
55653 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
55654 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
55655 l_rec_acct_attrs.array_char_value(7) := p_source_30;
55656 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
55657 l_rec_acct_attrs.array_num_value(8) := p_source_95;
55658 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
55659 l_rec_acct_attrs.array_char_value(9) := p_source_96;
55660 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
55661 l_rec_acct_attrs.array_date_value(10) := p_source_33;
55662 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
55663 l_rec_acct_attrs.array_num_value(11) := p_source_34;
55664 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
55665 l_rec_acct_attrs.array_char_value(12) := p_source_35;
55666 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
55667 l_rec_acct_attrs.array_num_value(13) := p_source_36;
55668 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
55669 l_rec_acct_attrs.array_num_value(14) := p_source_97;
55670 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
55671 l_rec_acct_attrs.array_num_value(15) := p_source_98;
55672 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
55673 l_rec_acct_attrs.array_char_value(16) := p_source_99;
55674
55675 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55676 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55677
55678 ---------------------------------------------------------------------------------------------------------------
55679 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55680 ---------------------------------------------------------------------------------------------------------------
55681 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55682
55683 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55684 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55685
55686 IF xla_accounting_cache_pkg.GetValueChar
55687 (p_source_code => 'LEDGER_CATEGORY_CODE'
55688 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55689 AND l_bflow_method_code = 'PRIOR_ENTRY'
55690 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55691 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55692 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55693 )
55694 THEN
55695 xla_ae_lines_pkg.BflowUpgEntry
55696 (p_business_method_code => l_bflow_method_code
55697 ,p_business_class_code => l_bflow_class_code
55698 ,p_balance_type => l_balance_type_code);
55699 ELSE
55700 NULL;
55701 -- No business flow processing for business flow method of NONE.
55702 END IF;
55703
55704 --
55705 -- call analytical criteria
55706 --
55707
55708
55709 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
55710 xla_ae_lines_pkg.SetAnalyticalCriteria(
55711 p_analytical_criterion_name => 'Check Id'
55712 , p_analytical_criterion_owner => 'S'
55713 , p_analytical_criterion_code => 'CHECK_ID'
55714 , p_amb_context_code => 'DEFAULT'
55715 , p_balancing_flag => 'N'
55716
55717 , p_analytical_detail_char_1 => NULL
55718 , p_analytical_detail_num_1 => p_source_90
55719 , p_analytical_detail_date_1 => NULL
55720
55721 , p_ae_header_id => l_ae_header_id
55722 )
55723 ;
55724 --
55725
55726 --
55727 -- call description
55728 --
55729 -- No description or it is inherited.
55730 --
55731 -- call ADRs
55732 -- Bug 4922099
55733 --
55734 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55735 (NVL(l_actual_upg_option, 'N') = 'O') OR
55736 (NVL(l_enc_upg_option, 'N') = 'O')
55737 )
55738 THEN
55739 NULL;
55740 --
55741 --
55742
55743 l_ccid := AcctDerRule_20(
55744 p_application_id => p_application_id
55745 , p_ae_header_id => l_ae_header_id
55746 , p_source_22 => p_source_22
55747 , x_transaction_coa_id => l_adr_transaction_coa_id
55748 , x_accounting_coa_id => l_adr_accounting_coa_id
55749 , x_value_type_code => l_adr_value_type_code
55750 , p_side => 'NA'
55751 );
55752
55753 xla_ae_lines_pkg.set_ccid(
55754 p_code_combination_id => l_ccid
55755 , p_value_type_code => l_adr_value_type_code
55756 , p_transaction_coa_id => l_adr_transaction_coa_id
55757 , p_accounting_coa_id => l_adr_accounting_coa_id
55761 , p_component_code => l_component_code
55758 , p_adr_code => 'DIST_CCID'
55759 , p_adr_type_code => 'S'
55760 , p_component_type => l_component_type
55762 , p_component_type_code => l_component_type_code
55763 , p_component_appl_id => l_component_appl_id
55764 , p_amb_context_code => l_amb_context_code
55765 , p_side => 'NA'
55766 );
55767
55768
55769 --
55770 --
55771 END IF;
55772 --
55773 -- Bug 4922099
55774 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55775 (NVL(l_enc_upg_option, 'N') = 'O')
55776 ) AND
55777 (l_bflow_method_code = 'PRIOR_ENTRY')
55778 )
55779 THEN
55780 IF
55781 --
55782 1 = 2
55783 --
55784 THEN
55785 xla_accounting_err_pkg.build_message
55786 (p_appli_s_name => 'XLA'
55787 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55788 ,p_token_1 => 'LINE_NUMBER'
55789 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55790 ,p_token_2 => 'LINE_TYPE_NAME'
55791 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55792 l_component_type
55793 ,l_component_code
55794 ,l_component_type_code
55795 ,l_component_appl_id
55796 ,l_amb_context_code
55797 ,l_entity_code
55798 ,l_event_class_code
55799 )
55800 ,p_token_3 => 'OWNER'
55801 ,p_value_3 => xla_lookups_pkg.get_meaning(
55802 p_lookup_type => 'XLA_OWNER_TYPE'
55803 ,p_lookup_code => l_component_type_code
55804 )
55805 ,p_token_4 => 'PRODUCT_NAME'
55806 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55807 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55808 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55809 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55810 ,p_ae_header_id => NULL
55811 );
55812
55813 IF (C_LEVEL_ERROR>= g_log_level) THEN
55814 trace
55815 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55816 ,p_level => C_LEVEL_ERROR
55817 ,p_module => l_log_module);
55818 END IF;
55819 END IF;
55820 END IF;
55821 --
55822 --
55823 ------------------------------------------------------------------------------------------------
55824 -- 4219869 Business Flow
55825 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55826 -- Prior Entry. Currently, the following code is always generated.
55827 ------------------------------------------------------------------------------------------------
55828 XLA_AE_LINES_PKG.ValidateCurrentLine;
55829
55830 ------------------------------------------------------------------------------------
55831 -- 4219869 Business Flow
55832 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55833 ------------------------------------------------------------------------------------
55834 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55835
55836 ----------------------------------------------------------------------------------
55837 -- 4219869 Business Flow
55838 -- Update journal entry status -- Need to generate this within IF <condition>
55839 ----------------------------------------------------------------------------------
55840 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55841 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55842 ,p_balance_type_code => l_balance_type_code
55843 );
55844
55845 -------------------------------------------------------------------------------------------
55846 -- 4262811 - Generate the Accrual Reversal lines
55847 -------------------------------------------------------------------------------------------
55848 BEGIN
55849 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55850 (g_array_event(p_event_id).array_value_num('header_index'));
55851 IF l_acc_rev_flag IS NULL THEN
55852 l_acc_rev_flag := 'N';
55853 END IF;
55854 EXCEPTION
55855 WHEN OTHERS THEN
55856 l_acc_rev_flag := 'N';
55857 END;
55858 --
55859 IF (l_acc_rev_flag = 'Y') THEN
55860
55864 ------------------------------------------------------------------------------------------
55861 -- 4645092 ------------------------------------------------------------------------------
55862 -- To allow MPA report to determine if it should generate report process
55863 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55865
55866 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55867 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55868 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55869 -- call ADRs
55870 -- Bug 4922099
55871 --
55872 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55873 (NVL(l_actual_upg_option, 'N') = 'O') OR
55874 (NVL(l_enc_upg_option, 'N') = 'O')
55875 )
55876 THEN
55877 NULL;
55878 --
55879 --
55880
55881 l_ccid := AcctDerRule_20(
55882 p_application_id => p_application_id
55883 , p_ae_header_id => l_ae_header_id
55884 , p_source_22 => p_source_22
55885 , x_transaction_coa_id => l_adr_transaction_coa_id
55886 , x_accounting_coa_id => l_adr_accounting_coa_id
55887 , x_value_type_code => l_adr_value_type_code
55888 , p_side => 'NA'
55889 );
55890
55891 xla_ae_lines_pkg.set_ccid(
55892 p_code_combination_id => l_ccid
55893 , p_value_type_code => l_adr_value_type_code
55894 , p_transaction_coa_id => l_adr_transaction_coa_id
55895 , p_accounting_coa_id => l_adr_accounting_coa_id
55896 , p_adr_code => 'DIST_CCID'
55897 , p_adr_type_code => 'S'
55898 , p_component_type => l_component_type
55899 , p_component_code => l_component_code
55900 , p_component_type_code => l_component_type_code
55901 , p_component_appl_id => l_component_appl_id
55902 , p_amb_context_code => l_amb_context_code
55903 , p_side => 'NA'
55904 );
55905
55906
55907 --
55908 --
55909 END IF;
55910
55911 --
55912 -- Update the line information that should be overwritten
55913 --
55914 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55915 p_header_num => 1);
55916 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55917
55918 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55919
55920 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55921 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55922 END IF;
55923
55924 --
55925 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55926 --
55927 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55928 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55929 ELSE
55930 ---------------------------------------------------------------------------------------------------
55931 -- 4262811a Switch Sign
55932 ---------------------------------------------------------------------------------------------------
55933 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55934 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55935 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55936 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55937 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55938 -- 5132302
55939 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55940 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55941
55942 END IF;
55943
55944 -- 4955764
55945 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55946 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55947
55948
55949 XLA_AE_LINES_PKG.ValidateCurrentLine;
55950 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55951
55952 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55953 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55954 ,p_balance_type_code => l_balance_type_code);
55955
55956 END IF;
55957
55958 -----------------------------------------------------------------------------------------
55959 -- 4262811 Multiperiod Accounting
55960 -----------------------------------------------------------------------------------------
55961 -- No MPA option is assigned.
55962
55963
55964 END IF;
55965 END IF;
55966 --
55967
55968 --
55969 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55970 trace
55971 (p_msg => 'END of AcctLineType_114'
55972 ,p_level => C_LEVEL_PROCEDURE
55973 ,p_module => l_log_module);
55974 END IF;
55975 --
55976 EXCEPTION
55977 WHEN xla_exceptions_pkg.application_exception THEN
55978 RAISE;
55979 WHEN OTHERS THEN
55980 xla_exceptions_pkg.raise_message
55981 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_114');
55985 ---------------------------------------
55982 END AcctLineType_114;
55983 --
55984
55986 --
55987 -- PRIVATE FUNCTION
55988 -- AcctLineType_115
55989 --
55990 ---------------------------------------
55991 PROCEDURE AcctLineType_115 (
55992 p_application_id IN NUMBER
55993 ,p_event_id IN NUMBER
55994 ,p_calculate_acctd_flag IN VARCHAR2
55995 ,p_calculate_g_l_flag IN VARCHAR2
55996 ,p_actual_flag IN OUT VARCHAR2
55997 ,p_balance_type_code OUT VARCHAR2
55998 ,p_gain_or_loss_ref OUT VARCHAR2
55999
56000 --Distribution GL Account
56001 , p_source_22 IN NUMBER
56002 --Distribution Source Type
56003 , p_source_27 IN VARCHAR2
56004 --Receivable Activity Type
56005 , p_source_28 IN VARCHAR2
56006 --Distribution Line Identifier
56007 , p_source_29 IN NUMBER
56008 --Distribution Type
56009 , p_source_30 IN VARCHAR2
56010 --Exchange Date
56011 , p_source_33 IN DATE
56012 --Exchange Rate
56013 , p_source_34 IN NUMBER
56014 --Exchange Rate Type
56015 , p_source_35 IN VARCHAR2
56016 --Accounting Amount
56017 , p_source_40 IN NUMBER
56018 --Transaction Distribution Identifier
56019 , p_source_44 IN NUMBER
56020 --Transaction Distribution Type
56021 , p_source_45 IN VARCHAR2
56022 --Distribution Multi Fund Additional Entry
56023 , p_source_88 IN VARCHAR2
56024 --Cash Receipt Identifier
56025 , p_source_90 IN NUMBER
56026 --Receipt Applied To Application Identifier
56027 , p_source_92 IN NUMBER
56028 --Transaction Entity Code
56029 , p_source_93 IN VARCHAR2
56030 --Transaction Identifier
56031 , p_source_94 IN NUMBER
56032 --DIST_ENT_AMT_FROM
56033 , p_source_95 IN NUMBER
56034 --Applying Document Currency Code
56035 , p_source_96 IN VARCHAR2
56036 --Distribution Party Identifier
56037 , p_source_97 IN NUMBER
56038 --Distribution Party Site Id
56039 , p_source_98 IN NUMBER
56040 --Distribution Party Type
56041 , p_source_99 IN VARCHAR2
56042 )
56043 IS
56044
56045 l_component_type VARCHAR2(80);
56046 l_component_code VARCHAR2(30);
56047 l_component_type_code VARCHAR2(1);
56048 l_component_appl_id INTEGER;
56049 l_amb_context_code VARCHAR2(30);
56050 l_entity_code VARCHAR2(30);
56051 l_event_class_code VARCHAR2(30);
56052 l_ae_header_id NUMBER;
56053 l_event_type_code VARCHAR2(30);
56054 l_line_definition_code VARCHAR2(30);
56055 l_line_definition_owner_code VARCHAR2(1);
56056 --
56057 -- adr variables
56058 l_segment VARCHAR2(30);
56059 l_ccid NUMBER;
56060 l_adr_transaction_coa_id NUMBER;
56061 l_adr_accounting_coa_id NUMBER;
56062 l_adr_flexfield_segment_code VARCHAR2(30);
56063 l_adr_flex_value_set_id NUMBER;
56064 l_adr_value_type_code VARCHAR2(30);
56065 l_adr_value_combination_id NUMBER;
56066 l_adr_value_segment_code VARCHAR2(30);
56067
56068 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56069 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56070 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56071 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56072
56073 -- 4262811 Variables ------------------------------------------------------------------------------------------
56074 l_entered_amt_idx NUMBER;
56075 l_accted_amt_idx NUMBER;
56076 l_acc_rev_flag VARCHAR2(1);
56077 l_accrual_line_num NUMBER;
56078 l_tmp_amt NUMBER;
56079 l_acc_rev_natural_side_code VARCHAR2(1);
56080
56081 l_num_entries NUMBER;
56082 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56083 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56084 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56085 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56086 l_recog_line_1 NUMBER;
56087 l_recog_line_2 NUMBER;
56088
56089 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56090 l_bflow_applied_to_amt NUMBER; -- 5132302
56091 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56092
56093 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56094
56095 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56096 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56097
56098 ---------------------------------------------------------------------------------------------------------------
56099
56100
56101 --
56102 -- bulk performance
56103 --
56104 l_balance_type_code VARCHAR2(1);
56105 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56106 l_log_module VARCHAR2(240);
56107
56108 --
56109 -- Upgrade strategy
56110 --
56111 l_actual_upg_option VARCHAR2(1);
56112 l_enc_upg_option VARCHAR2(1);
56113
56114 --
56115 BEGIN
56116 --
56117 IF g_log_enabled THEN
56118 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
56119 END IF;
56120 --
56121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56122
56123 trace
56124 (p_msg => 'BEGIN of AcctLineType_115'
56128 END IF;
56125 ,p_level => C_LEVEL_PROCEDURE
56126 ,p_module => l_log_module);
56127
56129 --
56130 l_component_type := 'AMB_JLT';
56131 l_component_code := 'RCT_PREPAYMENT';
56132 l_component_type_code := 'S';
56133 l_component_appl_id := 222;
56134 l_amb_context_code := 'DEFAULT';
56135 l_entity_code := 'RECEIPTS';
56136 l_event_class_code := 'RECEIPT';
56137 l_event_type_code := 'RECEIPT_ALL';
56138 l_line_definition_owner_code := 'S';
56139 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
56140 --
56141 l_balance_type_code := 'A';
56142 l_segment := NULL;
56143 l_ccid := NULL;
56144 l_adr_transaction_coa_id := NULL;
56145 l_adr_accounting_coa_id := NULL;
56146 l_adr_flexfield_segment_code := NULL;
56147 l_adr_flex_value_set_id := NULL;
56148 l_adr_value_type_code := NULL;
56149 l_adr_value_combination_id := NULL;
56150 l_adr_value_segment_code := NULL;
56151
56152 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56153 l_bflow_class_code := ''; -- 4219869 Business Flow
56154 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56155 l_budgetary_control_flag := 'N';
56156
56157 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56158 l_bflow_applied_to_amt := NULL; -- 5132302
56159 l_entered_amt_idx := NULL; -- 4262811
56160 l_accted_amt_idx := NULL; -- 4262811
56161 l_acc_rev_flag := NULL; -- 4262811
56162 l_accrual_line_num := NULL; -- 4262811
56163 l_tmp_amt := NULL; -- 4262811
56164 --
56165
56166 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56167 l_balance_type_code <> 'B' THEN
56168 IF NVL(p_source_27,'
56169 ') = 'OTHER ACC' AND
56170 NVL(p_source_28,'
56171 ') = 'PREPAYMENT' AND
56172 NVL(p_source_88,'
56173 ') = 'N'
56174 THEN
56175
56176 --
56177 XLA_AE_LINES_PKG.SetNewLine;
56178
56179 p_balance_type_code := l_balance_type_code;
56180 -- set the flag so later we will know whether the gain loss line needs to be created
56181
56182 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56183 p_actual_flag :='A';
56184 END IF;
56185
56186 --
56187 -- bulk performance
56188 --
56189 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56190 p_header_num => 0); -- 4262811
56191 --
56192 -- set accounting line options
56193 --
56194 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56195 p_natural_side_code => 'C'
56196 , p_gain_or_loss_flag => 'N'
56197 , p_gl_transfer_mode_code => 'S'
56198 , p_acct_entry_type_code => 'A'
56199 , p_switch_side_flag => 'Y'
56200 , p_merge_duplicate_code => 'A'
56201 );
56202 --
56203 l_acc_rev_natural_side_code := 'D'; -- 4262811
56204 --
56205 --
56206 -- set accounting line type info
56207 --
56208 xla_ae_lines_pkg.SetAcctLineType
56209 (p_component_type => l_component_type
56210 ,p_event_type_code => l_event_type_code
56211 ,p_line_definition_owner_code => l_line_definition_owner_code
56212 ,p_line_definition_code => l_line_definition_code
56213 ,p_accounting_line_code => l_component_code
56214 ,p_accounting_line_type_code => l_component_type_code
56215 ,p_accounting_line_appl_id => l_component_appl_id
56216 ,p_amb_context_code => l_amb_context_code
56217 ,p_entity_code => l_entity_code
56218 ,p_event_class_code => l_event_class_code);
56219 --
56220 -- set accounting class
56221 --
56222 xla_ae_lines_pkg.SetAcctClass(
56223 p_accounting_class_code => 'PREPAY'
56224 , p_ae_header_id => l_ae_header_id
56225 );
56226
56227 --
56228 -- set rounding class
56229 --
56230 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56231 'RECEIVABLE';
56232
56233 --
56234 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56235 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56236 --
56237 -- bulk performance
56238 --
56239 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56240
56241 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56242 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56243
56244 -- 4955764
56245 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56246 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56247
56248 -- 4458381 Public Sector Enh
56249
56250 --
56251 -- set accounting attributes for the line type
56252 --
56253 l_entered_amt_idx := 8;
56254 l_accted_amt_idx := 13;
56255 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56256 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
56257 l_rec_acct_attrs.array_num_value(1) := p_source_92;
56258 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56259 l_rec_acct_attrs.array_char_value(2) := p_source_45;
56263 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
56260 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
56261 l_rec_acct_attrs.array_char_value(3) := p_source_93;
56262 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
56264 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56265 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
56266 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
56267 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
56268 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
56269 l_rec_acct_attrs.array_char_value(7) := p_source_30;
56270 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
56271 l_rec_acct_attrs.array_num_value(8) := p_source_95;
56272 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
56273 l_rec_acct_attrs.array_char_value(9) := p_source_96;
56274 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
56275 l_rec_acct_attrs.array_date_value(10) := p_source_33;
56276 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
56277 l_rec_acct_attrs.array_num_value(11) := p_source_34;
56278 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
56279 l_rec_acct_attrs.array_char_value(12) := p_source_35;
56280 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
56281 l_rec_acct_attrs.array_num_value(13) := p_source_40;
56282 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
56283 l_rec_acct_attrs.array_num_value(14) := p_source_97;
56284 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
56285 l_rec_acct_attrs.array_num_value(15) := p_source_98;
56286 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
56287 l_rec_acct_attrs.array_char_value(16) := p_source_99;
56288
56289 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56290 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56291
56292 ---------------------------------------------------------------------------------------------------------------
56293 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56294 ---------------------------------------------------------------------------------------------------------------
56295 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56296
56297 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56298 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56299
56300 IF xla_accounting_cache_pkg.GetValueChar
56301 (p_source_code => 'LEDGER_CATEGORY_CODE'
56302 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56303 AND l_bflow_method_code = 'PRIOR_ENTRY'
56304 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56305 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56306 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56307 )
56308 THEN
56309 xla_ae_lines_pkg.BflowUpgEntry
56310 (p_business_method_code => l_bflow_method_code
56311 ,p_business_class_code => l_bflow_class_code
56312 ,p_balance_type => l_balance_type_code);
56313 ELSE
56314 NULL;
56315 -- No business flow processing for business flow method of NONE.
56316 END IF;
56317
56318 --
56319 -- call analytical criteria
56320 --
56321
56322
56323 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
56324 xla_ae_lines_pkg.SetAnalyticalCriteria(
56325 p_analytical_criterion_name => 'Check Id'
56326 , p_analytical_criterion_owner => 'S'
56327 , p_analytical_criterion_code => 'CHECK_ID'
56328 , p_amb_context_code => 'DEFAULT'
56329 , p_balancing_flag => 'N'
56330
56331 , p_analytical_detail_char_1 => NULL
56332 , p_analytical_detail_num_1 => p_source_90
56333 , p_analytical_detail_date_1 => NULL
56334
56335 , p_ae_header_id => l_ae_header_id
56336 )
56337 ;
56338 --
56339
56340 --
56341 -- call description
56342 --
56343 -- No description or it is inherited.
56344 --
56345 -- call ADRs
56346 -- Bug 4922099
56347 --
56348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56349 (NVL(l_actual_upg_option, 'N') = 'O') OR
56350 (NVL(l_enc_upg_option, 'N') = 'O')
56351 )
56352 THEN
56353 NULL;
56354 --
56355 --
56356
56357 l_ccid := AcctDerRule_20(
56358 p_application_id => p_application_id
56359 , p_ae_header_id => l_ae_header_id
56360 , p_source_22 => p_source_22
56361 , x_transaction_coa_id => l_adr_transaction_coa_id
56362 , x_accounting_coa_id => l_adr_accounting_coa_id
56363 , x_value_type_code => l_adr_value_type_code
56364 , p_side => 'NA'
56365 );
56366
56367 xla_ae_lines_pkg.set_ccid(
56368 p_code_combination_id => l_ccid
56369 , p_value_type_code => l_adr_value_type_code
56370 , p_transaction_coa_id => l_adr_transaction_coa_id
56371 , p_accounting_coa_id => l_adr_accounting_coa_id
56372 , p_adr_code => 'DIST_CCID'
56373 , p_adr_type_code => 'S'
56374 , p_component_type => l_component_type
56375 , p_component_code => l_component_code
56376 , p_component_type_code => l_component_type_code
56380 );
56377 , p_component_appl_id => l_component_appl_id
56378 , p_amb_context_code => l_amb_context_code
56379 , p_side => 'NA'
56381
56382
56383 --
56384 --
56385 END IF;
56386 --
56387 -- Bug 4922099
56388 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56389 (NVL(l_enc_upg_option, 'N') = 'O')
56390 ) AND
56391 (l_bflow_method_code = 'PRIOR_ENTRY')
56392 )
56393 THEN
56394 IF
56395 --
56396 1 = 2
56397 --
56398 THEN
56399 xla_accounting_err_pkg.build_message
56400 (p_appli_s_name => 'XLA'
56401 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56402 ,p_token_1 => 'LINE_NUMBER'
56403 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56404 ,p_token_2 => 'LINE_TYPE_NAME'
56405 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56406 l_component_type
56407 ,l_component_code
56408 ,l_component_type_code
56409 ,l_component_appl_id
56410 ,l_amb_context_code
56411 ,l_entity_code
56412 ,l_event_class_code
56413 )
56414 ,p_token_3 => 'OWNER'
56415 ,p_value_3 => xla_lookups_pkg.get_meaning(
56416 p_lookup_type => 'XLA_OWNER_TYPE'
56417 ,p_lookup_code => l_component_type_code
56418 )
56419 ,p_token_4 => 'PRODUCT_NAME'
56420 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56421 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56422 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56423 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56424 ,p_ae_header_id => NULL
56425 );
56426
56427 IF (C_LEVEL_ERROR>= g_log_level) THEN
56428 trace
56429 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56430 ,p_level => C_LEVEL_ERROR
56431 ,p_module => l_log_module);
56432 END IF;
56433 END IF;
56434 END IF;
56435 --
56436 --
56437 ------------------------------------------------------------------------------------------------
56438 -- 4219869 Business Flow
56439 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56440 -- Prior Entry. Currently, the following code is always generated.
56441 ------------------------------------------------------------------------------------------------
56442 XLA_AE_LINES_PKG.ValidateCurrentLine;
56443
56444 ------------------------------------------------------------------------------------
56445 -- 4219869 Business Flow
56446 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56447 ------------------------------------------------------------------------------------
56448 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56449
56450 ----------------------------------------------------------------------------------
56451 -- 4219869 Business Flow
56452 -- Update journal entry status -- Need to generate this within IF <condition>
56453 ----------------------------------------------------------------------------------
56454 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56455 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56456 ,p_balance_type_code => l_balance_type_code
56457 );
56458
56459 -------------------------------------------------------------------------------------------
56460 -- 4262811 - Generate the Accrual Reversal lines
56461 -------------------------------------------------------------------------------------------
56462 BEGIN
56463 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56464 (g_array_event(p_event_id).array_value_num('header_index'));
56465 IF l_acc_rev_flag IS NULL THEN
56466 l_acc_rev_flag := 'N';
56467 END IF;
56468 EXCEPTION
56469 WHEN OTHERS THEN
56470 l_acc_rev_flag := 'N';
56471 END;
56472 --
56473 IF (l_acc_rev_flag = 'Y') THEN
56474
56475 -- 4645092 ------------------------------------------------------------------------------
56476 -- To allow MPA report to determine if it should generate report process
56477 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56478 ------------------------------------------------------------------------------------------
56479
56480 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56484 -- Bug 4922099
56481 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56482 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56483 -- call ADRs
56485 --
56486 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56487 (NVL(l_actual_upg_option, 'N') = 'O') OR
56488 (NVL(l_enc_upg_option, 'N') = 'O')
56489 )
56490 THEN
56491 NULL;
56492 --
56493 --
56494
56495 l_ccid := AcctDerRule_20(
56496 p_application_id => p_application_id
56497 , p_ae_header_id => l_ae_header_id
56498 , p_source_22 => p_source_22
56499 , x_transaction_coa_id => l_adr_transaction_coa_id
56500 , x_accounting_coa_id => l_adr_accounting_coa_id
56501 , x_value_type_code => l_adr_value_type_code
56502 , p_side => 'NA'
56503 );
56504
56505 xla_ae_lines_pkg.set_ccid(
56506 p_code_combination_id => l_ccid
56507 , p_value_type_code => l_adr_value_type_code
56508 , p_transaction_coa_id => l_adr_transaction_coa_id
56509 , p_accounting_coa_id => l_adr_accounting_coa_id
56510 , p_adr_code => 'DIST_CCID'
56511 , p_adr_type_code => 'S'
56512 , p_component_type => l_component_type
56513 , p_component_code => l_component_code
56514 , p_component_type_code => l_component_type_code
56515 , p_component_appl_id => l_component_appl_id
56516 , p_amb_context_code => l_amb_context_code
56517 , p_side => 'NA'
56518 );
56519
56520
56521 --
56522 --
56523 END IF;
56524
56525 --
56526 -- Update the line information that should be overwritten
56527 --
56528 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56529 p_header_num => 1);
56530 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56531
56532 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56533
56534 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56535 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56536 END IF;
56537
56538 --
56539 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56540 --
56541 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56542 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56543 ELSE
56544 ---------------------------------------------------------------------------------------------------
56545 -- 4262811a Switch Sign
56546 ---------------------------------------------------------------------------------------------------
56547 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56548 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56550 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56552 -- 5132302
56553 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56555
56556 END IF;
56557
56558 -- 4955764
56559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56561
56562
56563 XLA_AE_LINES_PKG.ValidateCurrentLine;
56564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56565
56566 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56567 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56568 ,p_balance_type_code => l_balance_type_code);
56569
56570 END IF;
56571
56572 -----------------------------------------------------------------------------------------
56573 -- 4262811 Multiperiod Accounting
56574 -----------------------------------------------------------------------------------------
56575 -- No MPA option is assigned.
56576
56577
56578 END IF;
56579 END IF;
56580 --
56581
56582 --
56583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56584 trace
56585 (p_msg => 'END of AcctLineType_115'
56586 ,p_level => C_LEVEL_PROCEDURE
56587 ,p_module => l_log_module);
56588 END IF;
56589 --
56590 EXCEPTION
56591 WHEN xla_exceptions_pkg.application_exception THEN
56592 RAISE;
56593 WHEN OTHERS THEN
56594 xla_exceptions_pkg.raise_message
56595 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_115');
56596 END AcctLineType_115;
56597 --
56598
56599 ---------------------------------------
56600 --
56601 -- PRIVATE FUNCTION
56602 -- AcctLineType_116
56603 --
56604 ---------------------------------------
56605 PROCEDURE AcctLineType_116 (
56606 p_application_id IN NUMBER
56607 ,p_event_id IN NUMBER
56608 ,p_calculate_acctd_flag IN VARCHAR2
56609 ,p_calculate_g_l_flag IN VARCHAR2
56613
56610 ,p_actual_flag IN OUT VARCHAR2
56611 ,p_balance_type_code OUT VARCHAR2
56612 ,p_gain_or_loss_ref OUT VARCHAR2
56614 --Distribution GL Account
56615 , p_source_22 IN NUMBER
56616 --Distribution Source Type
56617 , p_source_27 IN VARCHAR2
56618 --Receivable Activity Type
56619 , p_source_28 IN VARCHAR2
56620 --Distribution Line Identifier
56621 , p_source_29 IN NUMBER
56622 --Distribution Type
56623 , p_source_30 IN VARCHAR2
56624 --Exchange Date
56625 , p_source_33 IN DATE
56626 --Exchange Rate
56627 , p_source_34 IN NUMBER
56628 --Exchange Rate Type
56629 , p_source_35 IN VARCHAR2
56630 --Accounting Amount
56631 , p_source_40 IN NUMBER
56632 --Transaction Distribution Identifier
56633 , p_source_44 IN NUMBER
56634 --Transaction Distribution Type
56635 , p_source_45 IN VARCHAR2
56636 --Distribution Multi Fund Additional Entry
56637 , p_source_88 IN VARCHAR2
56638 --Cash Receipt Identifier
56639 , p_source_90 IN NUMBER
56640 --Receipt Applied To Application Identifier
56641 , p_source_92 IN NUMBER
56642 --Transaction Entity Code
56643 , p_source_93 IN VARCHAR2
56644 --Transaction Identifier
56645 , p_source_94 IN NUMBER
56646 --DIST_ENT_AMT_FROM
56647 , p_source_95 IN NUMBER
56648 --Applying Document Currency Code
56649 , p_source_96 IN VARCHAR2
56650 --Distribution Party Identifier
56651 , p_source_97 IN NUMBER
56652 --Distribution Party Site Id
56653 , p_source_98 IN NUMBER
56654 --Distribution Party Type
56655 , p_source_99 IN VARCHAR2
56656 --Receivable Activity Name
56657 , p_source_103 IN VARCHAR2
56658 )
56659 IS
56660
56661 l_component_type VARCHAR2(80);
56662 l_component_code VARCHAR2(30);
56663 l_component_type_code VARCHAR2(1);
56664 l_component_appl_id INTEGER;
56665 l_amb_context_code VARCHAR2(30);
56666 l_entity_code VARCHAR2(30);
56667 l_event_class_code VARCHAR2(30);
56668 l_ae_header_id NUMBER;
56669 l_event_type_code VARCHAR2(30);
56670 l_line_definition_code VARCHAR2(30);
56671 l_line_definition_owner_code VARCHAR2(1);
56672 --
56673 -- adr variables
56674 l_segment VARCHAR2(30);
56675 l_ccid NUMBER;
56676 l_adr_transaction_coa_id NUMBER;
56677 l_adr_accounting_coa_id NUMBER;
56678 l_adr_flexfield_segment_code VARCHAR2(30);
56679 l_adr_flex_value_set_id NUMBER;
56680 l_adr_value_type_code VARCHAR2(30);
56681 l_adr_value_combination_id NUMBER;
56682 l_adr_value_segment_code VARCHAR2(30);
56683
56684 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56685 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56686 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56687 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56688
56689 -- 4262811 Variables ------------------------------------------------------------------------------------------
56690 l_entered_amt_idx NUMBER;
56691 l_accted_amt_idx NUMBER;
56692 l_acc_rev_flag VARCHAR2(1);
56693 l_accrual_line_num NUMBER;
56694 l_tmp_amt NUMBER;
56695 l_acc_rev_natural_side_code VARCHAR2(1);
56696
56697 l_num_entries NUMBER;
56698 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56699 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56700 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56701 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56702 l_recog_line_1 NUMBER;
56703 l_recog_line_2 NUMBER;
56704
56705 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56706 l_bflow_applied_to_amt NUMBER; -- 5132302
56707 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56708
56709 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56710
56711 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56712 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56713
56714 ---------------------------------------------------------------------------------------------------------------
56715
56716
56717 --
56718 -- bulk performance
56719 --
56720 l_balance_type_code VARCHAR2(1);
56721 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56722 l_log_module VARCHAR2(240);
56723
56724 --
56725 -- Upgrade strategy
56726 --
56727 l_actual_upg_option VARCHAR2(1);
56728 l_enc_upg_option VARCHAR2(1);
56729
56730 --
56731 BEGIN
56732 --
56733 IF g_log_enabled THEN
56734 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
56735 END IF;
56736 --
56737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56738
56739 trace
56740 (p_msg => 'BEGIN of AcctLineType_116'
56741 ,p_level => C_LEVEL_PROCEDURE
56742 ,p_module => l_log_module);
56743
56744 END IF;
56745 --
56746 l_component_type := 'AMB_JLT';
56747 l_component_code := 'RCT_REFUND';
56748 l_component_type_code := 'S';
56749 l_component_appl_id := 222;
56750 l_amb_context_code := 'DEFAULT';
56754 l_line_definition_owner_code := 'S';
56751 l_entity_code := 'RECEIPTS';
56752 l_event_class_code := 'RECEIPT';
56753 l_event_type_code := 'RECEIPT_ALL';
56755 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
56756 --
56757 l_balance_type_code := 'A';
56758 l_segment := NULL;
56759 l_ccid := NULL;
56760 l_adr_transaction_coa_id := NULL;
56761 l_adr_accounting_coa_id := NULL;
56762 l_adr_flexfield_segment_code := NULL;
56763 l_adr_flex_value_set_id := NULL;
56764 l_adr_value_type_code := NULL;
56765 l_adr_value_combination_id := NULL;
56766 l_adr_value_segment_code := NULL;
56767
56768 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56769 l_bflow_class_code := ''; -- 4219869 Business Flow
56770 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56771 l_budgetary_control_flag := 'N';
56772
56773 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56774 l_bflow_applied_to_amt := NULL; -- 5132302
56775 l_entered_amt_idx := NULL; -- 4262811
56776 l_accted_amt_idx := NULL; -- 4262811
56777 l_acc_rev_flag := NULL; -- 4262811
56778 l_accrual_line_num := NULL; -- 4262811
56779 l_tmp_amt := NULL; -- 4262811
56780 --
56781
56782 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56783 l_balance_type_code <> 'B' THEN
56784 IF (NVL(p_source_27,'
56785 ') = 'ACTIVITY' AND
56786 NVL(p_source_28,'
56787 ') = 'CCREFUND' AND
56788 NVL(p_source_88,'
56789 ') = 'N') OR
56790 (NVL(p_source_27,'
56791 ') = 'ACTIVITY' AND
56792 NVL(p_source_28,'
56793 ') = 'CM_REFUND' AND
56794 NVL(p_source_88,'
56795 ') = 'N')
56796 THEN
56797
56798 --
56799 XLA_AE_LINES_PKG.SetNewLine;
56800
56801 p_balance_type_code := l_balance_type_code;
56802 -- set the flag so later we will know whether the gain loss line needs to be created
56803
56804 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56805 p_actual_flag :='A';
56806 END IF;
56807
56808 --
56809 -- bulk performance
56810 --
56811 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56812 p_header_num => 0); -- 4262811
56813 --
56814 -- set accounting line options
56815 --
56816 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56817 p_natural_side_code => 'C'
56818 , p_gain_or_loss_flag => 'N'
56819 , p_gl_transfer_mode_code => 'S'
56820 , p_acct_entry_type_code => 'A'
56821 , p_switch_side_flag => 'Y'
56822 , p_merge_duplicate_code => 'A'
56823 );
56824 --
56825 l_acc_rev_natural_side_code := 'D'; -- 4262811
56826 --
56827 --
56828 -- set accounting line type info
56829 --
56830 xla_ae_lines_pkg.SetAcctLineType
56831 (p_component_type => l_component_type
56832 ,p_event_type_code => l_event_type_code
56833 ,p_line_definition_owner_code => l_line_definition_owner_code
56834 ,p_line_definition_code => l_line_definition_code
56835 ,p_accounting_line_code => l_component_code
56836 ,p_accounting_line_type_code => l_component_type_code
56837 ,p_accounting_line_appl_id => l_component_appl_id
56838 ,p_amb_context_code => l_amb_context_code
56839 ,p_entity_code => l_entity_code
56840 ,p_event_class_code => l_event_class_code);
56841 --
56842 -- set accounting class
56843 --
56844 xla_ae_lines_pkg.SetAcctClass(
56845 p_accounting_class_code => 'REFUND'
56846 , p_ae_header_id => l_ae_header_id
56847 );
56848
56849 --
56850 -- set rounding class
56851 --
56852 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56853 'RECEIVABLE';
56854
56855 --
56856 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56857 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56858 --
56859 -- bulk performance
56860 --
56861 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56862
56863 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56864 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56865
56866 -- 4955764
56867 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56868 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56869
56870 -- 4458381 Public Sector Enh
56871
56872 --
56873 -- set accounting attributes for the line type
56874 --
56875 l_entered_amt_idx := 8;
56876 l_accted_amt_idx := 13;
56877 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56878 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
56879 l_rec_acct_attrs.array_num_value(1) := p_source_92;
56880 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56881 l_rec_acct_attrs.array_char_value(2) := p_source_45;
56882 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
56883 l_rec_acct_attrs.array_char_value(3) := p_source_93;
56884 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
56888 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
56885 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
56886 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56887 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
56889 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
56890 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
56891 l_rec_acct_attrs.array_char_value(7) := p_source_30;
56892 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
56893 l_rec_acct_attrs.array_num_value(8) := p_source_95;
56894 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
56895 l_rec_acct_attrs.array_char_value(9) := p_source_96;
56896 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
56897 l_rec_acct_attrs.array_date_value(10) := p_source_33;
56898 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
56899 l_rec_acct_attrs.array_num_value(11) := p_source_34;
56900 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
56901 l_rec_acct_attrs.array_char_value(12) := p_source_35;
56902 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
56903 l_rec_acct_attrs.array_num_value(13) := p_source_40;
56904 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
56905 l_rec_acct_attrs.array_num_value(14) := p_source_97;
56906 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
56907 l_rec_acct_attrs.array_num_value(15) := p_source_98;
56908 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
56909 l_rec_acct_attrs.array_char_value(16) := p_source_99;
56910
56911 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56912 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56913
56914 ---------------------------------------------------------------------------------------------------------------
56915 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56916 ---------------------------------------------------------------------------------------------------------------
56917 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56918
56919 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56920 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56921
56922 IF xla_accounting_cache_pkg.GetValueChar
56923 (p_source_code => 'LEDGER_CATEGORY_CODE'
56924 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56925 AND l_bflow_method_code = 'PRIOR_ENTRY'
56926 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56927 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56928 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56929 )
56930 THEN
56931 xla_ae_lines_pkg.BflowUpgEntry
56932 (p_business_method_code => l_bflow_method_code
56933 ,p_business_class_code => l_bflow_class_code
56934 ,p_balance_type => l_balance_type_code);
56935 ELSE
56936 NULL;
56937 -- No business flow processing for business flow method of NONE.
56938 END IF;
56939
56940 --
56941 -- call analytical criteria
56942 --
56943
56944
56945 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
56946 xla_ae_lines_pkg.SetAnalyticalCriteria(
56947 p_analytical_criterion_name => 'Check Id'
56948 , p_analytical_criterion_owner => 'S'
56949 , p_analytical_criterion_code => 'CHECK_ID'
56950 , p_amb_context_code => 'DEFAULT'
56951 , p_balancing_flag => 'N'
56952
56953 , p_analytical_detail_char_1 => NULL
56954 , p_analytical_detail_num_1 => p_source_90
56955 , p_analytical_detail_date_1 => NULL
56956
56957 , p_ae_header_id => l_ae_header_id
56958 )
56959 ;
56960 --
56961
56962
56963 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
56964 xla_ae_lines_pkg.SetAnalyticalCriteria(
56965 p_analytical_criterion_name => 'Receivable Activity'
56966 , p_analytical_criterion_owner => 'S'
56967 , p_analytical_criterion_code => 'RECEIVABLE_ACTIVITY'
56968 , p_amb_context_code => 'DEFAULT'
56969 , p_balancing_flag => 'N'
56970
56971 , p_analytical_detail_char_1 => TO_CHAR(p_source_103)
56972 , p_analytical_detail_num_1 => NULL
56973 , p_analytical_detail_date_1 => NULL
56974
56975 , p_ae_header_id => l_ae_header_id
56976 )
56977 ;
56978 --
56979
56980 --
56981 -- call description
56982 --
56983 -- No description or it is inherited.
56984 --
56985 -- call ADRs
56986 -- Bug 4922099
56987 --
56988 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56989 (NVL(l_actual_upg_option, 'N') = 'O') OR
56990 (NVL(l_enc_upg_option, 'N') = 'O')
56991 )
56992 THEN
56993 NULL;
56994 --
56995 --
56996
56997 l_ccid := AcctDerRule_20(
56998 p_application_id => p_application_id
56999 , p_ae_header_id => l_ae_header_id
57000 , p_source_22 => p_source_22
57001 , x_transaction_coa_id => l_adr_transaction_coa_id
57002 , x_accounting_coa_id => l_adr_accounting_coa_id
57003 , x_value_type_code => l_adr_value_type_code
57007 xla_ae_lines_pkg.set_ccid(
57004 , p_side => 'NA'
57005 );
57006
57008 p_code_combination_id => l_ccid
57009 , p_value_type_code => l_adr_value_type_code
57010 , p_transaction_coa_id => l_adr_transaction_coa_id
57011 , p_accounting_coa_id => l_adr_accounting_coa_id
57012 , p_adr_code => 'DIST_CCID'
57013 , p_adr_type_code => 'S'
57014 , p_component_type => l_component_type
57015 , p_component_code => l_component_code
57016 , p_component_type_code => l_component_type_code
57017 , p_component_appl_id => l_component_appl_id
57018 , p_amb_context_code => l_amb_context_code
57019 , p_side => 'NA'
57020 );
57021
57022
57023 --
57024 --
57025 END IF;
57026 --
57027 -- Bug 4922099
57028 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57029 (NVL(l_enc_upg_option, 'N') = 'O')
57030 ) AND
57031 (l_bflow_method_code = 'PRIOR_ENTRY')
57032 )
57033 THEN
57034 IF
57035 --
57036 1 = 2
57037 --
57038 THEN
57039 xla_accounting_err_pkg.build_message
57040 (p_appli_s_name => 'XLA'
57041 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57042 ,p_token_1 => 'LINE_NUMBER'
57043 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57044 ,p_token_2 => 'LINE_TYPE_NAME'
57045 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57046 l_component_type
57047 ,l_component_code
57048 ,l_component_type_code
57049 ,l_component_appl_id
57050 ,l_amb_context_code
57051 ,l_entity_code
57052 ,l_event_class_code
57053 )
57054 ,p_token_3 => 'OWNER'
57055 ,p_value_3 => xla_lookups_pkg.get_meaning(
57056 p_lookup_type => 'XLA_OWNER_TYPE'
57057 ,p_lookup_code => l_component_type_code
57058 )
57059 ,p_token_4 => 'PRODUCT_NAME'
57060 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57061 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57062 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57063 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57064 ,p_ae_header_id => NULL
57065 );
57066
57067 IF (C_LEVEL_ERROR>= g_log_level) THEN
57068 trace
57069 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57070 ,p_level => C_LEVEL_ERROR
57071 ,p_module => l_log_module);
57072 END IF;
57073 END IF;
57074 END IF;
57075 --
57076 --
57077 ------------------------------------------------------------------------------------------------
57078 -- 4219869 Business Flow
57079 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57080 -- Prior Entry. Currently, the following code is always generated.
57081 ------------------------------------------------------------------------------------------------
57082 XLA_AE_LINES_PKG.ValidateCurrentLine;
57083
57084 ------------------------------------------------------------------------------------
57085 -- 4219869 Business Flow
57086 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57087 ------------------------------------------------------------------------------------
57088 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57089
57090 ----------------------------------------------------------------------------------
57091 -- 4219869 Business Flow
57092 -- Update journal entry status -- Need to generate this within IF <condition>
57093 ----------------------------------------------------------------------------------
57094 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57095 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57096 ,p_balance_type_code => l_balance_type_code
57097 );
57098
57099 -------------------------------------------------------------------------------------------
57100 -- 4262811 - Generate the Accrual Reversal lines
57101 -------------------------------------------------------------------------------------------
57102 BEGIN
57103 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57107 END IF;
57104 (g_array_event(p_event_id).array_value_num('header_index'));
57105 IF l_acc_rev_flag IS NULL THEN
57106 l_acc_rev_flag := 'N';
57108 EXCEPTION
57109 WHEN OTHERS THEN
57110 l_acc_rev_flag := 'N';
57111 END;
57112 --
57113 IF (l_acc_rev_flag = 'Y') THEN
57114
57115 -- 4645092 ------------------------------------------------------------------------------
57116 -- To allow MPA report to determine if it should generate report process
57117 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57118 ------------------------------------------------------------------------------------------
57119
57120 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57121 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57122 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57123 -- call ADRs
57124 -- Bug 4922099
57125 --
57126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57127 (NVL(l_actual_upg_option, 'N') = 'O') OR
57128 (NVL(l_enc_upg_option, 'N') = 'O')
57129 )
57130 THEN
57131 NULL;
57132 --
57133 --
57134
57135 l_ccid := AcctDerRule_20(
57136 p_application_id => p_application_id
57137 , p_ae_header_id => l_ae_header_id
57138 , p_source_22 => p_source_22
57139 , x_transaction_coa_id => l_adr_transaction_coa_id
57140 , x_accounting_coa_id => l_adr_accounting_coa_id
57141 , x_value_type_code => l_adr_value_type_code
57142 , p_side => 'NA'
57143 );
57144
57145 xla_ae_lines_pkg.set_ccid(
57146 p_code_combination_id => l_ccid
57147 , p_value_type_code => l_adr_value_type_code
57148 , p_transaction_coa_id => l_adr_transaction_coa_id
57149 , p_accounting_coa_id => l_adr_accounting_coa_id
57150 , p_adr_code => 'DIST_CCID'
57151 , p_adr_type_code => 'S'
57152 , p_component_type => l_component_type
57153 , p_component_code => l_component_code
57154 , p_component_type_code => l_component_type_code
57155 , p_component_appl_id => l_component_appl_id
57156 , p_amb_context_code => l_amb_context_code
57157 , p_side => 'NA'
57158 );
57159
57160
57161 --
57162 --
57163 END IF;
57164
57165 --
57166 -- Update the line information that should be overwritten
57167 --
57168 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57169 p_header_num => 1);
57170 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57171
57172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57173
57174 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57175 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57176 END IF;
57177
57178 --
57179 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57180 --
57181 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57182 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57183 ELSE
57184 ---------------------------------------------------------------------------------------------------
57185 -- 4262811a Switch Sign
57186 ---------------------------------------------------------------------------------------------------
57187 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57191 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57192 -- 5132302
57193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57194 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57195
57196 END IF;
57197
57198 -- 4955764
57199 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57200 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57201
57202
57203 XLA_AE_LINES_PKG.ValidateCurrentLine;
57204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57205
57206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57208 ,p_balance_type_code => l_balance_type_code);
57209
57210 END IF;
57211
57212 -----------------------------------------------------------------------------------------
57213 -- 4262811 Multiperiod Accounting
57214 -----------------------------------------------------------------------------------------
57215 -- No MPA option is assigned.
57216
57220 --
57217
57218 END IF;
57219 END IF;
57221
57222 --
57223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57224 trace
57225 (p_msg => 'END of AcctLineType_116'
57226 ,p_level => C_LEVEL_PROCEDURE
57227 ,p_module => l_log_module);
57228 END IF;
57229 --
57230 EXCEPTION
57231 WHEN xla_exceptions_pkg.application_exception THEN
57232 RAISE;
57233 WHEN OTHERS THEN
57234 xla_exceptions_pkg.raise_message
57235 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_116');
57236 END AcctLineType_116;
57237 --
57238
57239 ---------------------------------------
57240 --
57241 -- PRIVATE FUNCTION
57242 -- AcctLineType_117
57243 --
57244 ---------------------------------------
57245 PROCEDURE AcctLineType_117 (
57246 p_application_id IN NUMBER
57247 ,p_event_id IN NUMBER
57248 ,p_calculate_acctd_flag IN VARCHAR2
57249 ,p_calculate_g_l_flag IN VARCHAR2
57250 ,p_actual_flag IN OUT VARCHAR2
57251 ,p_balance_type_code OUT VARCHAR2
57252 ,p_gain_or_loss_ref OUT VARCHAR2
57253
57254 --Distribution GL Account
57255 , p_source_22 IN NUMBER
57256 --Distribution Source Type
57257 , p_source_27 IN VARCHAR2
57258 --Distribution Line Identifier
57259 , p_source_29 IN NUMBER
57260 --Distribution Type
57261 , p_source_30 IN VARCHAR2
57262 --Exchange Date
57263 , p_source_33 IN DATE
57264 --Exchange Rate
57265 , p_source_34 IN NUMBER
57266 --Exchange Rate Type
57267 , p_source_35 IN VARCHAR2
57268 --Accounting Amount
57269 , p_source_40 IN NUMBER
57270 --Transaction Distribution Identifier
57271 , p_source_44 IN NUMBER
57272 --Transaction Distribution Type
57273 , p_source_45 IN VARCHAR2
57274 --Distribution Multi Fund Additional Entry
57275 , p_source_88 IN VARCHAR2
57276 --Cash Receipt Identifier
57277 , p_source_90 IN NUMBER
57278 --Receipt Applied To Application Identifier
57279 , p_source_92 IN NUMBER
57280 --Transaction Entity Code
57281 , p_source_93 IN VARCHAR2
57282 --Transaction Identifier
57283 , p_source_94 IN NUMBER
57284 --DIST_ENT_AMT_FROM
57285 , p_source_95 IN NUMBER
57286 --Applying Document Currency Code
57287 , p_source_96 IN VARCHAR2
57288 --Distribution Party Identifier
57289 , p_source_97 IN NUMBER
57290 --Distribution Party Site Id
57291 , p_source_98 IN NUMBER
57292 --Distribution Party Type
57293 , p_source_99 IN VARCHAR2
57294 --Distribution Source Table
57295 , p_source_102 IN VARCHAR2
57296 )
57297 IS
57298
57299 l_component_type VARCHAR2(80);
57300 l_component_code VARCHAR2(30);
57301 l_component_type_code VARCHAR2(1);
57302 l_component_appl_id INTEGER;
57303 l_amb_context_code VARCHAR2(30);
57304 l_entity_code VARCHAR2(30);
57305 l_event_class_code VARCHAR2(30);
57306 l_ae_header_id NUMBER;
57307 l_event_type_code VARCHAR2(30);
57308 l_line_definition_code VARCHAR2(30);
57309 l_line_definition_owner_code VARCHAR2(1);
57310 --
57311 -- adr variables
57312 l_segment VARCHAR2(30);
57313 l_ccid NUMBER;
57314 l_adr_transaction_coa_id NUMBER;
57315 l_adr_accounting_coa_id NUMBER;
57316 l_adr_flexfield_segment_code VARCHAR2(30);
57317 l_adr_flex_value_set_id NUMBER;
57318 l_adr_value_type_code VARCHAR2(30);
57319 l_adr_value_combination_id NUMBER;
57320 l_adr_value_segment_code VARCHAR2(30);
57321
57322 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57323 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57324 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57325 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57326
57327 -- 4262811 Variables ------------------------------------------------------------------------------------------
57328 l_entered_amt_idx NUMBER;
57329 l_accted_amt_idx NUMBER;
57330 l_acc_rev_flag VARCHAR2(1);
57331 l_accrual_line_num NUMBER;
57332 l_tmp_amt NUMBER;
57333 l_acc_rev_natural_side_code VARCHAR2(1);
57334
57335 l_num_entries NUMBER;
57336 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57337 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57338 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57339 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57340 l_recog_line_1 NUMBER;
57341 l_recog_line_2 NUMBER;
57342
57343 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57344 l_bflow_applied_to_amt NUMBER; -- 5132302
57345 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57346
57347 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57348
57349 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57350 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57351
57352 ---------------------------------------------------------------------------------------------------------------
57353
57354
57355 --
57356 -- bulk performance
57357 --
57358 l_balance_type_code VARCHAR2(1);
57362 --
57359 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57360 l_log_module VARCHAR2(240);
57361
57363 -- Upgrade strategy
57364 --
57365 l_actual_upg_option VARCHAR2(1);
57366 l_enc_upg_option VARCHAR2(1);
57367
57368 --
57369 BEGIN
57370 --
57371 IF g_log_enabled THEN
57372 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
57373 END IF;
57374 --
57375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57376
57377 trace
57378 (p_msg => 'BEGIN of AcctLineType_117'
57379 ,p_level => C_LEVEL_PROCEDURE
57380 ,p_module => l_log_module);
57381
57382 END IF;
57383 --
57384 l_component_type := 'AMB_JLT';
57385 l_component_code := 'RCT_REMIT';
57386 l_component_type_code := 'S';
57387 l_component_appl_id := 222;
57388 l_amb_context_code := 'DEFAULT';
57389 l_entity_code := 'RECEIPTS';
57390 l_event_class_code := 'RECEIPT';
57391 l_event_type_code := 'RECEIPT_ALL';
57392 l_line_definition_owner_code := 'S';
57393 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
57394 --
57395 l_balance_type_code := 'A';
57396 l_segment := NULL;
57397 l_ccid := NULL;
57398 l_adr_transaction_coa_id := NULL;
57399 l_adr_accounting_coa_id := NULL;
57400 l_adr_flexfield_segment_code := NULL;
57401 l_adr_flex_value_set_id := NULL;
57402 l_adr_value_type_code := NULL;
57403 l_adr_value_combination_id := NULL;
57404 l_adr_value_segment_code := NULL;
57405
57406 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
57407 l_bflow_class_code := ''; -- 4219869 Business Flow
57408 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57409 l_budgetary_control_flag := 'N';
57410
57411 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57412 l_bflow_applied_to_amt := NULL; -- 5132302
57413 l_entered_amt_idx := NULL; -- 4262811
57414 l_accted_amt_idx := NULL; -- 4262811
57415 l_acc_rev_flag := NULL; -- 4262811
57416 l_accrual_line_num := NULL; -- 4262811
57417 l_tmp_amt := NULL; -- 4262811
57418 --
57419
57420 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57421 l_balance_type_code <> 'B' THEN
57422 IF NVL(p_source_27,'
57423 ') = 'REMITTANCE' AND
57424 NVL(p_source_102,'
57425 ') = 'CRH' AND
57426 NVL(p_source_88,'
57427 ') = 'N'
57428 THEN
57429
57430 --
57431 XLA_AE_LINES_PKG.SetNewLine;
57432
57433 p_balance_type_code := l_balance_type_code;
57434 -- set the flag so later we will know whether the gain loss line needs to be created
57435
57436 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57437 p_actual_flag :='A';
57438 END IF;
57439
57440 --
57441 -- bulk performance
57442 --
57443 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57444 p_header_num => 0); -- 4262811
57445 --
57446 -- set accounting line options
57447 --
57448 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57449 p_natural_side_code => 'C'
57450 , p_gain_or_loss_flag => 'N'
57451 , p_gl_transfer_mode_code => 'S'
57452 , p_acct_entry_type_code => 'A'
57453 , p_switch_side_flag => 'Y'
57454 , p_merge_duplicate_code => 'A'
57455 );
57456 --
57457 l_acc_rev_natural_side_code := 'D'; -- 4262811
57458 --
57459 --
57460 -- set accounting line type info
57461 --
57462 xla_ae_lines_pkg.SetAcctLineType
57463 (p_component_type => l_component_type
57464 ,p_event_type_code => l_event_type_code
57465 ,p_line_definition_owner_code => l_line_definition_owner_code
57466 ,p_line_definition_code => l_line_definition_code
57467 ,p_accounting_line_code => l_component_code
57468 ,p_accounting_line_type_code => l_component_type_code
57469 ,p_accounting_line_appl_id => l_component_appl_id
57470 ,p_amb_context_code => l_amb_context_code
57471 ,p_entity_code => l_entity_code
57472 ,p_event_class_code => l_event_class_code);
57473 --
57474 -- set accounting class
57475 --
57476 xla_ae_lines_pkg.SetAcctClass(
57477 p_accounting_class_code => 'REMITTANCE'
57478 , p_ae_header_id => l_ae_header_id
57479 );
57480
57481 --
57482 -- set rounding class
57483 --
57484 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57485 'RECEIVABLE';
57486
57487 --
57488 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57489 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57490 --
57491 -- bulk performance
57492 --
57493 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57494
57495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57496 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57497
57498 -- 4955764
57499 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57503
57500 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57501
57502 -- 4458381 Public Sector Enh
57504 --
57505 -- set accounting attributes for the line type
57506 --
57507 l_entered_amt_idx := 8;
57508 l_accted_amt_idx := 13;
57509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57510 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
57511 l_rec_acct_attrs.array_num_value(1) := p_source_92;
57512 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57513 l_rec_acct_attrs.array_char_value(2) := p_source_45;
57514 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
57515 l_rec_acct_attrs.array_char_value(3) := p_source_93;
57516 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
57517 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
57518 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57519 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
57520 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
57521 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
57522 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
57523 l_rec_acct_attrs.array_char_value(7) := p_source_30;
57524 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
57525 l_rec_acct_attrs.array_num_value(8) := p_source_95;
57526 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
57527 l_rec_acct_attrs.array_char_value(9) := p_source_96;
57528 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
57529 l_rec_acct_attrs.array_date_value(10) := p_source_33;
57530 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
57531 l_rec_acct_attrs.array_num_value(11) := p_source_34;
57532 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
57533 l_rec_acct_attrs.array_char_value(12) := p_source_35;
57534 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
57535 l_rec_acct_attrs.array_num_value(13) := p_source_40;
57536 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
57537 l_rec_acct_attrs.array_num_value(14) := p_source_97;
57538 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
57539 l_rec_acct_attrs.array_num_value(15) := p_source_98;
57540 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
57541 l_rec_acct_attrs.array_char_value(16) := p_source_99;
57542
57543 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57544 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57545
57546 ---------------------------------------------------------------------------------------------------------------
57547 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57548 ---------------------------------------------------------------------------------------------------------------
57549 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57550
57551 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57552 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57553
57554 IF xla_accounting_cache_pkg.GetValueChar
57555 (p_source_code => 'LEDGER_CATEGORY_CODE'
57556 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57557 AND l_bflow_method_code = 'PRIOR_ENTRY'
57558 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57559 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57560 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57561 )
57562 THEN
57563 xla_ae_lines_pkg.BflowUpgEntry
57564 (p_business_method_code => l_bflow_method_code
57565 ,p_business_class_code => l_bflow_class_code
57566 ,p_balance_type => l_balance_type_code);
57567 ELSE
57568 NULL;
57569 -- No business flow processing for business flow method of NONE.
57570 END IF;
57571
57572 --
57573 -- call analytical criteria
57574 --
57575
57576
57577 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
57578 xla_ae_lines_pkg.SetAnalyticalCriteria(
57579 p_analytical_criterion_name => 'Check Id'
57580 , p_analytical_criterion_owner => 'S'
57581 , p_analytical_criterion_code => 'CHECK_ID'
57582 , p_amb_context_code => 'DEFAULT'
57583 , p_balancing_flag => 'N'
57584
57585 , p_analytical_detail_char_1 => NULL
57586 , p_analytical_detail_num_1 => p_source_90
57587 , p_analytical_detail_date_1 => NULL
57588
57589 , p_ae_header_id => l_ae_header_id
57590 )
57591 ;
57592 --
57593
57594 --
57595 -- call description
57596 --
57597 -- No description or it is inherited.
57598 --
57599 -- call ADRs
57600 -- Bug 4922099
57601 --
57602 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57603 (NVL(l_actual_upg_option, 'N') = 'O') OR
57604 (NVL(l_enc_upg_option, 'N') = 'O')
57605 )
57606 THEN
57607 NULL;
57608 --
57609 --
57610
57611 l_ccid := AcctDerRule_20(
57612 p_application_id => p_application_id
57613 , p_ae_header_id => l_ae_header_id
57614 , p_source_22 => p_source_22
57615 , x_transaction_coa_id => l_adr_transaction_coa_id
57616 , x_accounting_coa_id => l_adr_accounting_coa_id
57617 , x_value_type_code => l_adr_value_type_code
57621 xla_ae_lines_pkg.set_ccid(
57618 , p_side => 'NA'
57619 );
57620
57622 p_code_combination_id => l_ccid
57623 , p_value_type_code => l_adr_value_type_code
57624 , p_transaction_coa_id => l_adr_transaction_coa_id
57625 , p_accounting_coa_id => l_adr_accounting_coa_id
57626 , p_adr_code => 'DIST_CCID'
57627 , p_adr_type_code => 'S'
57628 , p_component_type => l_component_type
57629 , p_component_code => l_component_code
57630 , p_component_type_code => l_component_type_code
57631 , p_component_appl_id => l_component_appl_id
57632 , p_amb_context_code => l_amb_context_code
57633 , p_side => 'NA'
57634 );
57635
57636
57637 --
57638 --
57639 END IF;
57640 --
57641 -- Bug 4922099
57642 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57643 (NVL(l_enc_upg_option, 'N') = 'O')
57644 ) AND
57645 (l_bflow_method_code = 'PRIOR_ENTRY')
57646 )
57647 THEN
57648 IF
57649 --
57650 1 = 2
57651 --
57652 THEN
57653 xla_accounting_err_pkg.build_message
57654 (p_appli_s_name => 'XLA'
57655 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57656 ,p_token_1 => 'LINE_NUMBER'
57657 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57658 ,p_token_2 => 'LINE_TYPE_NAME'
57659 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57660 l_component_type
57661 ,l_component_code
57662 ,l_component_type_code
57663 ,l_component_appl_id
57664 ,l_amb_context_code
57665 ,l_entity_code
57666 ,l_event_class_code
57667 )
57668 ,p_token_3 => 'OWNER'
57669 ,p_value_3 => xla_lookups_pkg.get_meaning(
57670 p_lookup_type => 'XLA_OWNER_TYPE'
57671 ,p_lookup_code => l_component_type_code
57672 )
57673 ,p_token_4 => 'PRODUCT_NAME'
57674 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57675 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57676 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57677 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57678 ,p_ae_header_id => NULL
57679 );
57680
57681 IF (C_LEVEL_ERROR>= g_log_level) THEN
57682 trace
57683 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57684 ,p_level => C_LEVEL_ERROR
57685 ,p_module => l_log_module);
57686 END IF;
57687 END IF;
57688 END IF;
57689 --
57690 --
57691 ------------------------------------------------------------------------------------------------
57692 -- 4219869 Business Flow
57693 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57694 -- Prior Entry. Currently, the following code is always generated.
57695 ------------------------------------------------------------------------------------------------
57696 XLA_AE_LINES_PKG.ValidateCurrentLine;
57697
57698 ------------------------------------------------------------------------------------
57699 -- 4219869 Business Flow
57700 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57701 ------------------------------------------------------------------------------------
57702 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57703
57704 ----------------------------------------------------------------------------------
57705 -- 4219869 Business Flow
57706 -- Update journal entry status -- Need to generate this within IF <condition>
57707 ----------------------------------------------------------------------------------
57708 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57709 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57710 ,p_balance_type_code => l_balance_type_code
57711 );
57712
57713 -------------------------------------------------------------------------------------------
57714 -- 4262811 - Generate the Accrual Reversal lines
57715 -------------------------------------------------------------------------------------------
57716 BEGIN
57717 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57718 (g_array_event(p_event_id).array_value_num('header_index'));
57719 IF l_acc_rev_flag IS NULL THEN
57723 WHEN OTHERS THEN
57720 l_acc_rev_flag := 'N';
57721 END IF;
57722 EXCEPTION
57724 l_acc_rev_flag := 'N';
57725 END;
57726 --
57727 IF (l_acc_rev_flag = 'Y') THEN
57728
57729 -- 4645092 ------------------------------------------------------------------------------
57730 -- To allow MPA report to determine if it should generate report process
57731 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57732 ------------------------------------------------------------------------------------------
57733
57734 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57735 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57736 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57737 -- call ADRs
57738 -- Bug 4922099
57739 --
57740 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57741 (NVL(l_actual_upg_option, 'N') = 'O') OR
57742 (NVL(l_enc_upg_option, 'N') = 'O')
57743 )
57744 THEN
57745 NULL;
57746 --
57747 --
57748
57749 l_ccid := AcctDerRule_20(
57750 p_application_id => p_application_id
57751 , p_ae_header_id => l_ae_header_id
57752 , p_source_22 => p_source_22
57753 , x_transaction_coa_id => l_adr_transaction_coa_id
57754 , x_accounting_coa_id => l_adr_accounting_coa_id
57755 , x_value_type_code => l_adr_value_type_code
57756 , p_side => 'NA'
57757 );
57758
57759 xla_ae_lines_pkg.set_ccid(
57760 p_code_combination_id => l_ccid
57761 , p_value_type_code => l_adr_value_type_code
57762 , p_transaction_coa_id => l_adr_transaction_coa_id
57763 , p_accounting_coa_id => l_adr_accounting_coa_id
57764 , p_adr_code => 'DIST_CCID'
57765 , p_adr_type_code => 'S'
57766 , p_component_type => l_component_type
57767 , p_component_code => l_component_code
57768 , p_component_type_code => l_component_type_code
57769 , p_component_appl_id => l_component_appl_id
57770 , p_amb_context_code => l_amb_context_code
57771 , p_side => 'NA'
57772 );
57773
57774
57775 --
57776 --
57777 END IF;
57778
57779 --
57780 -- Update the line information that should be overwritten
57781 --
57782 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57783 p_header_num => 1);
57784 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57785
57786 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57787
57788 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57789 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57790 END IF;
57791
57792 --
57793 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57794 --
57795 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57796 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57797 ELSE
57798 ---------------------------------------------------------------------------------------------------
57799 -- 4262811a Switch Sign
57800 ---------------------------------------------------------------------------------------------------
57801 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57802 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57803 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57804 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57805 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57806 -- 5132302
57807 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57808 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57809
57810 END IF;
57811
57812 -- 4955764
57813 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57814 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57815
57816
57817 XLA_AE_LINES_PKG.ValidateCurrentLine;
57818 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57819
57820 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57821 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57822 ,p_balance_type_code => l_balance_type_code);
57823
57824 END IF;
57825
57826 -----------------------------------------------------------------------------------------
57827 -- 4262811 Multiperiod Accounting
57828 -----------------------------------------------------------------------------------------
57829 -- No MPA option is assigned.
57830
57831
57832 END IF;
57833 END IF;
57834 --
57835
57836 --
57837 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57838 trace
57839 (p_msg => 'END of AcctLineType_117'
57840 ,p_level => C_LEVEL_PROCEDURE
57844 EXCEPTION
57841 ,p_module => l_log_module);
57842 END IF;
57843 --
57845 WHEN xla_exceptions_pkg.application_exception THEN
57846 RAISE;
57847 WHEN OTHERS THEN
57848 xla_exceptions_pkg.raise_message
57849 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_117');
57850 END AcctLineType_117;
57851 --
57852
57853 ---------------------------------------
57854 --
57855 -- PRIVATE FUNCTION
57856 -- AcctLineType_118
57857 --
57858 ---------------------------------------
57859 PROCEDURE AcctLineType_118 (
57860 p_application_id IN NUMBER
57861 ,p_event_id IN NUMBER
57862 ,p_calculate_acctd_flag IN VARCHAR2
57863 ,p_calculate_g_l_flag IN VARCHAR2
57864 ,p_actual_flag IN OUT VARCHAR2
57865 ,p_balance_type_code OUT VARCHAR2
57866 ,p_gain_or_loss_ref OUT VARCHAR2
57867
57868 --Distribution GL Account
57869 , p_source_22 IN NUMBER
57870 --Distribution Source Type
57871 , p_source_27 IN VARCHAR2
57872 --Distribution Line Identifier
57873 , p_source_29 IN NUMBER
57874 --Distribution Type
57875 , p_source_30 IN VARCHAR2
57876 --Exchange Date
57877 , p_source_33 IN DATE
57878 --Exchange Rate
57879 , p_source_34 IN NUMBER
57880 --Exchange Rate Type
57881 , p_source_35 IN VARCHAR2
57882 --Accounting Amount
57883 , p_source_40 IN NUMBER
57884 --Transaction Distribution Identifier
57885 , p_source_44 IN NUMBER
57886 --Transaction Distribution Type
57887 , p_source_45 IN VARCHAR2
57888 --Distribution Multi Fund Additional Entry
57889 , p_source_88 IN VARCHAR2
57890 --Cash Receipt Identifier
57891 , p_source_90 IN NUMBER
57892 --Receipt Applied To Application Identifier
57893 , p_source_92 IN NUMBER
57894 --Transaction Entity Code
57895 , p_source_93 IN VARCHAR2
57896 --Transaction Identifier
57897 , p_source_94 IN NUMBER
57898 --DIST_ENT_AMT_FROM
57899 , p_source_95 IN NUMBER
57900 --Applying Document Currency Code
57901 , p_source_96 IN VARCHAR2
57902 --Distribution Party Identifier
57903 , p_source_97 IN NUMBER
57904 --Distribution Party Site Id
57905 , p_source_98 IN NUMBER
57906 --Distribution Party Type
57907 , p_source_99 IN VARCHAR2
57908 --Distribution Source Table
57909 , p_source_102 IN VARCHAR2
57910 )
57911 IS
57912
57913 l_component_type VARCHAR2(80);
57914 l_component_code VARCHAR2(30);
57915 l_component_type_code VARCHAR2(1);
57916 l_component_appl_id INTEGER;
57917 l_amb_context_code VARCHAR2(30);
57918 l_entity_code VARCHAR2(30);
57919 l_event_class_code VARCHAR2(30);
57920 l_ae_header_id NUMBER;
57921 l_event_type_code VARCHAR2(30);
57922 l_line_definition_code VARCHAR2(30);
57923 l_line_definition_owner_code VARCHAR2(1);
57924 --
57925 -- adr variables
57926 l_segment VARCHAR2(30);
57927 l_ccid NUMBER;
57928 l_adr_transaction_coa_id NUMBER;
57929 l_adr_accounting_coa_id NUMBER;
57930 l_adr_flexfield_segment_code VARCHAR2(30);
57931 l_adr_flex_value_set_id NUMBER;
57932 l_adr_value_type_code VARCHAR2(30);
57933 l_adr_value_combination_id NUMBER;
57934 l_adr_value_segment_code VARCHAR2(30);
57935
57936 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57937 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57938 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57939 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57940
57941 -- 4262811 Variables ------------------------------------------------------------------------------------------
57942 l_entered_amt_idx NUMBER;
57943 l_accted_amt_idx NUMBER;
57944 l_acc_rev_flag VARCHAR2(1);
57945 l_accrual_line_num NUMBER;
57946 l_tmp_amt NUMBER;
57947 l_acc_rev_natural_side_code VARCHAR2(1);
57948
57949 l_num_entries NUMBER;
57950 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57951 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57952 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57953 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57954 l_recog_line_1 NUMBER;
57955 l_recog_line_2 NUMBER;
57956
57957 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57958 l_bflow_applied_to_amt NUMBER; -- 5132302
57959 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57960
57961 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57962
57963 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57964 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57965
57966 ---------------------------------------------------------------------------------------------------------------
57967
57968
57969 --
57970 -- bulk performance
57971 --
57972 l_balance_type_code VARCHAR2(1);
57973 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57974 l_log_module VARCHAR2(240);
57975
57976 --
57977 -- Upgrade strategy
57978 --
57979 l_actual_upg_option VARCHAR2(1);
57980 l_enc_upg_option VARCHAR2(1);
57984 --
57981
57982 --
57983 BEGIN
57985 IF g_log_enabled THEN
57986 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
57987 END IF;
57988 --
57989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57990
57991 trace
57992 (p_msg => 'BEGIN of AcctLineType_118'
57993 ,p_level => C_LEVEL_PROCEDURE
57994 ,p_module => l_log_module);
57995
57996 END IF;
57997 --
57998 l_component_type := 'AMB_JLT';
57999 l_component_code := 'RCT_REMIT_BR';
58000 l_component_type_code := 'S';
58001 l_component_appl_id := 222;
58002 l_amb_context_code := 'DEFAULT';
58003 l_entity_code := 'RECEIPTS';
58004 l_event_class_code := 'RECEIPT';
58005 l_event_type_code := 'RECEIPT_ALL';
58006 l_line_definition_owner_code := 'S';
58007 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
58008 --
58009 l_balance_type_code := 'A';
58010 l_segment := NULL;
58011 l_ccid := NULL;
58012 l_adr_transaction_coa_id := NULL;
58013 l_adr_accounting_coa_id := NULL;
58014 l_adr_flexfield_segment_code := NULL;
58015 l_adr_flex_value_set_id := NULL;
58016 l_adr_value_type_code := NULL;
58017 l_adr_value_combination_id := NULL;
58018 l_adr_value_segment_code := NULL;
58019
58020 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58021 l_bflow_class_code := ''; -- 4219869 Business Flow
58022 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58023 l_budgetary_control_flag := 'N';
58024
58025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58026 l_bflow_applied_to_amt := NULL; -- 5132302
58027 l_entered_amt_idx := NULL; -- 4262811
58028 l_accted_amt_idx := NULL; -- 4262811
58029 l_acc_rev_flag := NULL; -- 4262811
58030 l_accrual_line_num := NULL; -- 4262811
58031 l_tmp_amt := NULL; -- 4262811
58032 --
58033
58034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58035 l_balance_type_code <> 'B' THEN
58036 IF NVL(p_source_27,'
58037 ') = 'REMITTANCE' AND
58038 NVL(p_source_102,'
58039 ') = 'RA' AND
58040 NVL(p_source_88,'
58041 ') = 'N'
58042 THEN
58043
58044 --
58045 XLA_AE_LINES_PKG.SetNewLine;
58046
58047 p_balance_type_code := l_balance_type_code;
58048 -- set the flag so later we will know whether the gain loss line needs to be created
58049
58050 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58051 p_actual_flag :='A';
58052 END IF;
58053
58054 --
58055 -- bulk performance
58056 --
58057 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58058 p_header_num => 0); -- 4262811
58059 --
58060 -- set accounting line options
58061 --
58062 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58063 p_natural_side_code => 'C'
58064 , p_gain_or_loss_flag => 'N'
58065 , p_gl_transfer_mode_code => 'S'
58066 , p_acct_entry_type_code => 'A'
58067 , p_switch_side_flag => 'Y'
58068 , p_merge_duplicate_code => 'A'
58069 );
58070 --
58071 l_acc_rev_natural_side_code := 'D'; -- 4262811
58072 --
58073 --
58074 -- set accounting line type info
58075 --
58076 xla_ae_lines_pkg.SetAcctLineType
58077 (p_component_type => l_component_type
58078 ,p_event_type_code => l_event_type_code
58079 ,p_line_definition_owner_code => l_line_definition_owner_code
58080 ,p_line_definition_code => l_line_definition_code
58081 ,p_accounting_line_code => l_component_code
58082 ,p_accounting_line_type_code => l_component_type_code
58083 ,p_accounting_line_appl_id => l_component_appl_id
58084 ,p_amb_context_code => l_amb_context_code
58085 ,p_entity_code => l_entity_code
58086 ,p_event_class_code => l_event_class_code);
58087 --
58088 -- set accounting class
58089 --
58090 xla_ae_lines_pkg.SetAcctClass(
58091 p_accounting_class_code => 'REM_BR'
58092 , p_ae_header_id => l_ae_header_id
58093 );
58094
58095 --
58096 -- set rounding class
58097 --
58098 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58099 'RECEIVABLE';
58100
58101 --
58102 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58103 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58104 --
58105 -- bulk performance
58106 --
58107 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58108
58109 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58110 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58111
58112 -- 4955764
58113 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58114 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58115
58116 -- 4458381 Public Sector Enh
58117
58118 --
58119 -- set accounting attributes for the line type
58120 --
58121 l_entered_amt_idx := 8;
58125 l_rec_acct_attrs.array_num_value(1) := p_source_92;
58122 l_accted_amt_idx := 13;
58123 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58124 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
58126 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58127 l_rec_acct_attrs.array_char_value(2) := p_source_45;
58128 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
58129 l_rec_acct_attrs.array_char_value(3) := p_source_93;
58130 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
58131 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
58132 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58133 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
58134 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
58135 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
58136 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
58137 l_rec_acct_attrs.array_char_value(7) := p_source_30;
58138 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
58139 l_rec_acct_attrs.array_num_value(8) := p_source_95;
58140 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
58141 l_rec_acct_attrs.array_char_value(9) := p_source_96;
58142 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
58143 l_rec_acct_attrs.array_date_value(10) := p_source_33;
58144 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
58145 l_rec_acct_attrs.array_num_value(11) := p_source_34;
58146 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
58147 l_rec_acct_attrs.array_char_value(12) := p_source_35;
58148 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
58149 l_rec_acct_attrs.array_num_value(13) := p_source_40;
58150 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
58151 l_rec_acct_attrs.array_num_value(14) := p_source_97;
58152 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
58153 l_rec_acct_attrs.array_num_value(15) := p_source_98;
58154 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
58155 l_rec_acct_attrs.array_char_value(16) := p_source_99;
58156
58157 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58158 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58159
58160 ---------------------------------------------------------------------------------------------------------------
58161 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58162 ---------------------------------------------------------------------------------------------------------------
58163 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58164
58165 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58166 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58167
58168 IF xla_accounting_cache_pkg.GetValueChar
58169 (p_source_code => 'LEDGER_CATEGORY_CODE'
58170 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58171 AND l_bflow_method_code = 'PRIOR_ENTRY'
58172 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58173 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58174 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58175 )
58176 THEN
58177 xla_ae_lines_pkg.BflowUpgEntry
58178 (p_business_method_code => l_bflow_method_code
58179 ,p_business_class_code => l_bflow_class_code
58180 ,p_balance_type => l_balance_type_code);
58181 ELSE
58182 NULL;
58183 -- No business flow processing for business flow method of NONE.
58184 END IF;
58185
58186 --
58187 -- call analytical criteria
58188 --
58189
58190
58191 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
58192 xla_ae_lines_pkg.SetAnalyticalCriteria(
58193 p_analytical_criterion_name => 'Check Id'
58194 , p_analytical_criterion_owner => 'S'
58195 , p_analytical_criterion_code => 'CHECK_ID'
58196 , p_amb_context_code => 'DEFAULT'
58197 , p_balancing_flag => 'N'
58198
58199 , p_analytical_detail_char_1 => NULL
58200 , p_analytical_detail_num_1 => p_source_90
58201 , p_analytical_detail_date_1 => NULL
58202
58203 , p_ae_header_id => l_ae_header_id
58204 )
58205 ;
58206 --
58207
58208 --
58209 -- call description
58210 --
58211 -- No description or it is inherited.
58212 --
58213 -- call ADRs
58214 -- Bug 4922099
58215 --
58216 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58217 (NVL(l_actual_upg_option, 'N') = 'O') OR
58218 (NVL(l_enc_upg_option, 'N') = 'O')
58219 )
58220 THEN
58221 NULL;
58222 --
58223 --
58224
58225 l_ccid := AcctDerRule_20(
58226 p_application_id => p_application_id
58227 , p_ae_header_id => l_ae_header_id
58228 , p_source_22 => p_source_22
58229 , x_transaction_coa_id => l_adr_transaction_coa_id
58230 , x_accounting_coa_id => l_adr_accounting_coa_id
58231 , x_value_type_code => l_adr_value_type_code
58232 , p_side => 'NA'
58233 );
58234
58235 xla_ae_lines_pkg.set_ccid(
58236 p_code_combination_id => l_ccid
58237 , p_value_type_code => l_adr_value_type_code
58238 , p_transaction_coa_id => l_adr_transaction_coa_id
58242 , p_component_type => l_component_type
58239 , p_accounting_coa_id => l_adr_accounting_coa_id
58240 , p_adr_code => 'DIST_CCID'
58241 , p_adr_type_code => 'S'
58243 , p_component_code => l_component_code
58244 , p_component_type_code => l_component_type_code
58245 , p_component_appl_id => l_component_appl_id
58246 , p_amb_context_code => l_amb_context_code
58247 , p_side => 'NA'
58248 );
58249
58250
58251 --
58252 --
58253 END IF;
58254 --
58255 -- Bug 4922099
58256 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58257 (NVL(l_enc_upg_option, 'N') = 'O')
58258 ) AND
58259 (l_bflow_method_code = 'PRIOR_ENTRY')
58260 )
58261 THEN
58262 IF
58263 --
58264 1 = 2
58265 --
58266 THEN
58267 xla_accounting_err_pkg.build_message
58268 (p_appli_s_name => 'XLA'
58269 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58270 ,p_token_1 => 'LINE_NUMBER'
58271 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58272 ,p_token_2 => 'LINE_TYPE_NAME'
58273 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58274 l_component_type
58275 ,l_component_code
58276 ,l_component_type_code
58277 ,l_component_appl_id
58278 ,l_amb_context_code
58279 ,l_entity_code
58280 ,l_event_class_code
58281 )
58282 ,p_token_3 => 'OWNER'
58283 ,p_value_3 => xla_lookups_pkg.get_meaning(
58284 p_lookup_type => 'XLA_OWNER_TYPE'
58285 ,p_lookup_code => l_component_type_code
58286 )
58287 ,p_token_4 => 'PRODUCT_NAME'
58288 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58289 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58290 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58291 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58292 ,p_ae_header_id => NULL
58293 );
58294
58295 IF (C_LEVEL_ERROR>= g_log_level) THEN
58296 trace
58297 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58298 ,p_level => C_LEVEL_ERROR
58299 ,p_module => l_log_module);
58300 END IF;
58301 END IF;
58302 END IF;
58303 --
58304 --
58305 ------------------------------------------------------------------------------------------------
58306 -- 4219869 Business Flow
58307 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58308 -- Prior Entry. Currently, the following code is always generated.
58309 ------------------------------------------------------------------------------------------------
58310 XLA_AE_LINES_PKG.ValidateCurrentLine;
58311
58312 ------------------------------------------------------------------------------------
58313 -- 4219869 Business Flow
58314 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58315 ------------------------------------------------------------------------------------
58316 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58317
58318 ----------------------------------------------------------------------------------
58319 -- 4219869 Business Flow
58320 -- Update journal entry status -- Need to generate this within IF <condition>
58321 ----------------------------------------------------------------------------------
58322 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58323 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58324 ,p_balance_type_code => l_balance_type_code
58325 );
58326
58327 -------------------------------------------------------------------------------------------
58328 -- 4262811 - Generate the Accrual Reversal lines
58329 -------------------------------------------------------------------------------------------
58330 BEGIN
58331 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58332 (g_array_event(p_event_id).array_value_num('header_index'));
58333 IF l_acc_rev_flag IS NULL THEN
58334 l_acc_rev_flag := 'N';
58335 END IF;
58336 EXCEPTION
58337 WHEN OTHERS THEN
58338 l_acc_rev_flag := 'N';
58339 END;
58340 --
58341 IF (l_acc_rev_flag = 'Y') THEN
58342
58346 ------------------------------------------------------------------------------------------
58343 -- 4645092 ------------------------------------------------------------------------------
58344 -- To allow MPA report to determine if it should generate report process
58345 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58347
58348 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58349 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58350 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
58351 -- call ADRs
58352 -- Bug 4922099
58353 --
58354 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58355 (NVL(l_actual_upg_option, 'N') = 'O') OR
58356 (NVL(l_enc_upg_option, 'N') = 'O')
58357 )
58358 THEN
58359 NULL;
58360 --
58361 --
58362
58363 l_ccid := AcctDerRule_20(
58364 p_application_id => p_application_id
58365 , p_ae_header_id => l_ae_header_id
58366 , p_source_22 => p_source_22
58367 , x_transaction_coa_id => l_adr_transaction_coa_id
58368 , x_accounting_coa_id => l_adr_accounting_coa_id
58369 , x_value_type_code => l_adr_value_type_code
58370 , p_side => 'NA'
58371 );
58372
58373 xla_ae_lines_pkg.set_ccid(
58374 p_code_combination_id => l_ccid
58375 , p_value_type_code => l_adr_value_type_code
58376 , p_transaction_coa_id => l_adr_transaction_coa_id
58377 , p_accounting_coa_id => l_adr_accounting_coa_id
58378 , p_adr_code => 'DIST_CCID'
58379 , p_adr_type_code => 'S'
58380 , p_component_type => l_component_type
58381 , p_component_code => l_component_code
58382 , p_component_type_code => l_component_type_code
58383 , p_component_appl_id => l_component_appl_id
58384 , p_amb_context_code => l_amb_context_code
58385 , p_side => 'NA'
58386 );
58387
58388
58389 --
58390 --
58391 END IF;
58392
58393 --
58394 -- Update the line information that should be overwritten
58395 --
58396 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58397 p_header_num => 1);
58398 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58399
58400 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58401
58402 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58403 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58404 END IF;
58405
58406 --
58407 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58408 --
58409 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58410 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58411 ELSE
58412 ---------------------------------------------------------------------------------------------------
58413 -- 4262811a Switch Sign
58414 ---------------------------------------------------------------------------------------------------
58415 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58416 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58417 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58418 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58419 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58420 -- 5132302
58421 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58422 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58423
58424 END IF;
58425
58426 -- 4955764
58427 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58428 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58429
58430
58431 XLA_AE_LINES_PKG.ValidateCurrentLine;
58432 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58433
58434 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58435 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58436 ,p_balance_type_code => l_balance_type_code);
58437
58438 END IF;
58439
58440 -----------------------------------------------------------------------------------------
58441 -- 4262811 Multiperiod Accounting
58442 -----------------------------------------------------------------------------------------
58443 -- No MPA option is assigned.
58444
58445
58446 END IF;
58447 END IF;
58448 --
58449
58450 --
58451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58452 trace
58453 (p_msg => 'END of AcctLineType_118'
58454 ,p_level => C_LEVEL_PROCEDURE
58455 ,p_module => l_log_module);
58456 END IF;
58457 --
58458 EXCEPTION
58459 WHEN xla_exceptions_pkg.application_exception THEN
58460 RAISE;
58461 WHEN OTHERS THEN
58462 xla_exceptions_pkg.raise_message
58463 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_118');
58464 END AcctLineType_118;
58468 --
58465 --
58466
58467 ---------------------------------------
58469 -- PRIVATE FUNCTION
58470 -- AcctLineType_119
58471 --
58472 ---------------------------------------
58473 PROCEDURE AcctLineType_119 (
58474 p_application_id IN NUMBER
58475 ,p_event_id IN NUMBER
58476 ,p_calculate_acctd_flag IN VARCHAR2
58477 ,p_calculate_g_l_flag IN VARCHAR2
58478 ,p_actual_flag IN OUT VARCHAR2
58479 ,p_balance_type_code OUT VARCHAR2
58480 ,p_gain_or_loss_ref OUT VARCHAR2
58481
58482 --Distribution GL Account
58483 , p_source_22 IN NUMBER
58484 --Distribution Source Type
58485 , p_source_27 IN VARCHAR2
58486 --Distribution Line Identifier
58487 , p_source_29 IN NUMBER
58488 --Distribution Type
58489 , p_source_30 IN VARCHAR2
58490 --Entered Amount
58491 , p_source_31 IN NUMBER
58492 --Currency Code
58493 , p_source_32 IN VARCHAR2
58494 --Applied To Document Accounting Amount
58495 , p_source_36 IN NUMBER
58496 --Transaction Distribution Identifier
58497 , p_source_44 IN NUMBER
58498 --Transaction Distribution Type
58499 , p_source_45 IN VARCHAR2
58500 --Distribution Multi Fund Additional Entry
58501 , p_source_88 IN VARCHAR2
58502 --Applied To Document Exchange Date
58503 , p_source_89 IN DATE
58504 --Cash Receipt Identifier
58505 , p_source_90 IN NUMBER
58506 --Receipt Applied To Application Identifier
58507 , p_source_92 IN NUMBER
58508 --Transaction Entity Code
58509 , p_source_93 IN VARCHAR2
58510 --Transaction Identifier
58511 , p_source_94 IN NUMBER
58512 --Distribution Party Identifier
58513 , p_source_97 IN NUMBER
58514 --Distribution Party Site Id
58515 , p_source_98 IN NUMBER
58516 --Distribution Party Type
58517 , p_source_99 IN VARCHAR2
58518 --Applied To Document Exchange Rate Type
58519 , p_source_100 IN VARCHAR2
58520 --Applied To Document Exchange Rate
58521 , p_source_101 IN NUMBER
58522 )
58523 IS
58524
58525 l_component_type VARCHAR2(80);
58526 l_component_code VARCHAR2(30);
58527 l_component_type_code VARCHAR2(1);
58528 l_component_appl_id INTEGER;
58529 l_amb_context_code VARCHAR2(30);
58530 l_entity_code VARCHAR2(30);
58531 l_event_class_code VARCHAR2(30);
58532 l_ae_header_id NUMBER;
58533 l_event_type_code VARCHAR2(30);
58534 l_line_definition_code VARCHAR2(30);
58535 l_line_definition_owner_code VARCHAR2(1);
58536 --
58537 -- adr variables
58538 l_segment VARCHAR2(30);
58539 l_ccid NUMBER;
58540 l_adr_transaction_coa_id NUMBER;
58541 l_adr_accounting_coa_id NUMBER;
58542 l_adr_flexfield_segment_code VARCHAR2(30);
58543 l_adr_flex_value_set_id NUMBER;
58544 l_adr_value_type_code VARCHAR2(30);
58545 l_adr_value_combination_id NUMBER;
58546 l_adr_value_segment_code VARCHAR2(30);
58547
58548 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58549 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58550 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58551 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58552
58553 -- 4262811 Variables ------------------------------------------------------------------------------------------
58554 l_entered_amt_idx NUMBER;
58555 l_accted_amt_idx NUMBER;
58556 l_acc_rev_flag VARCHAR2(1);
58557 l_accrual_line_num NUMBER;
58558 l_tmp_amt NUMBER;
58559 l_acc_rev_natural_side_code VARCHAR2(1);
58560
58561 l_num_entries NUMBER;
58562 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58563 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58564 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58565 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58566 l_recog_line_1 NUMBER;
58567 l_recog_line_2 NUMBER;
58568
58569 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58570 l_bflow_applied_to_amt NUMBER; -- 5132302
58571 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58572
58573 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58574
58575 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58576 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58577
58578 ---------------------------------------------------------------------------------------------------------------
58579
58580
58581 --
58582 -- bulk performance
58583 --
58584 l_balance_type_code VARCHAR2(1);
58585 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58586 l_log_module VARCHAR2(240);
58587
58588 --
58589 -- Upgrade strategy
58590 --
58591 l_actual_upg_option VARCHAR2(1);
58592 l_enc_upg_option VARCHAR2(1);
58593
58594 --
58595 BEGIN
58596 --
58597 IF g_log_enabled THEN
58598 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
58599 END IF;
58600 --
58601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58602
58603 trace
58604 (p_msg => 'BEGIN of AcctLineType_119'
58608 END IF;
58605 ,p_level => C_LEVEL_PROCEDURE
58606 ,p_module => l_log_module);
58607
58609 --
58610 l_component_type := 'AMB_JLT';
58611 l_component_code := 'RCT_TAX';
58612 l_component_type_code := 'S';
58613 l_component_appl_id := 222;
58614 l_amb_context_code := 'DEFAULT';
58615 l_entity_code := 'RECEIPTS';
58616 l_event_class_code := 'RECEIPT';
58617 l_event_type_code := 'RECEIPT_ALL';
58618 l_line_definition_owner_code := 'S';
58619 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
58620 --
58621 l_balance_type_code := 'A';
58622 l_segment := NULL;
58623 l_ccid := NULL;
58624 l_adr_transaction_coa_id := NULL;
58625 l_adr_accounting_coa_id := NULL;
58626 l_adr_flexfield_segment_code := NULL;
58627 l_adr_flex_value_set_id := NULL;
58628 l_adr_value_type_code := NULL;
58629 l_adr_value_combination_id := NULL;
58630 l_adr_value_segment_code := NULL;
58631
58632 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58633 l_bflow_class_code := ''; -- 4219869 Business Flow
58634 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58635 l_budgetary_control_flag := 'N';
58636
58637 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58638 l_bflow_applied_to_amt := NULL; -- 5132302
58639 l_entered_amt_idx := NULL; -- 4262811
58640 l_accted_amt_idx := NULL; -- 4262811
58641 l_acc_rev_flag := NULL; -- 4262811
58642 l_accrual_line_num := NULL; -- 4262811
58643 l_tmp_amt := NULL; -- 4262811
58644 --
58645
58646 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58647 l_balance_type_code <> 'B' THEN
58648 IF NVL(p_source_27,'
58649 ') = 'TAX' AND
58650 NVL(p_source_88,'
58651 ') = 'N'
58652 THEN
58653
58654 --
58655 XLA_AE_LINES_PKG.SetNewLine;
58656
58657 p_balance_type_code := l_balance_type_code;
58658 -- set the flag so later we will know whether the gain loss line needs to be created
58659
58660 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58661 p_actual_flag :='A';
58662 END IF;
58663
58664 --
58665 -- bulk performance
58666 --
58667 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58668 p_header_num => 0); -- 4262811
58669 --
58670 -- set accounting line options
58671 --
58672 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58673 p_natural_side_code => 'C'
58674 , p_gain_or_loss_flag => 'N'
58675 , p_gl_transfer_mode_code => 'S'
58676 , p_acct_entry_type_code => 'A'
58677 , p_switch_side_flag => 'Y'
58678 , p_merge_duplicate_code => 'A'
58679 );
58680 --
58681 l_acc_rev_natural_side_code := 'D'; -- 4262811
58682 --
58683 --
58684 -- set accounting line type info
58685 --
58686 xla_ae_lines_pkg.SetAcctLineType
58687 (p_component_type => l_component_type
58688 ,p_event_type_code => l_event_type_code
58689 ,p_line_definition_owner_code => l_line_definition_owner_code
58690 ,p_line_definition_code => l_line_definition_code
58691 ,p_accounting_line_code => l_component_code
58692 ,p_accounting_line_type_code => l_component_type_code
58693 ,p_accounting_line_appl_id => l_component_appl_id
58694 ,p_amb_context_code => l_amb_context_code
58695 ,p_entity_code => l_entity_code
58696 ,p_event_class_code => l_event_class_code);
58697 --
58698 -- set accounting class
58699 --
58700 xla_ae_lines_pkg.SetAcctClass(
58701 p_accounting_class_code => 'TAX'
58702 , p_ae_header_id => l_ae_header_id
58703 );
58704
58705 --
58706 -- set rounding class
58707 --
58708 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58709 'RECEIVABLE';
58710
58711 --
58712 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58713 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58714 --
58715 -- bulk performance
58716 --
58717 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58718
58719 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58720 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58721
58722 -- 4955764
58723 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58724 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58725
58726 -- 4458381 Public Sector Enh
58727
58728 --
58729 -- set accounting attributes for the line type
58730 --
58731 l_entered_amt_idx := 8;
58732 l_accted_amt_idx := 13;
58733 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58734 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
58735 l_rec_acct_attrs.array_num_value(1) := p_source_92;
58736 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58737 l_rec_acct_attrs.array_char_value(2) := p_source_45;
58741 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
58738 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
58739 l_rec_acct_attrs.array_char_value(3) := p_source_93;
58740 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
58742 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58743 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
58744 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
58745 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
58746 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
58747 l_rec_acct_attrs.array_char_value(7) := p_source_30;
58748 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
58749 l_rec_acct_attrs.array_num_value(8) := p_source_31;
58750 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
58751 l_rec_acct_attrs.array_char_value(9) := p_source_32;
58752 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
58753 l_rec_acct_attrs.array_date_value(10) := p_source_89;
58754 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
58755 l_rec_acct_attrs.array_num_value(11) := p_source_101;
58756 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
58757 l_rec_acct_attrs.array_char_value(12) := p_source_100;
58758 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
58759 l_rec_acct_attrs.array_num_value(13) := p_source_36;
58760 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
58761 l_rec_acct_attrs.array_num_value(14) := p_source_97;
58762 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
58763 l_rec_acct_attrs.array_num_value(15) := p_source_98;
58764 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
58765 l_rec_acct_attrs.array_char_value(16) := p_source_99;
58766
58767 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58768 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58769
58770 ---------------------------------------------------------------------------------------------------------------
58771 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58772 ---------------------------------------------------------------------------------------------------------------
58773 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58774
58775 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58776 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58777
58778 IF xla_accounting_cache_pkg.GetValueChar
58779 (p_source_code => 'LEDGER_CATEGORY_CODE'
58780 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58781 AND l_bflow_method_code = 'PRIOR_ENTRY'
58782 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58783 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58784 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58785 )
58786 THEN
58787 xla_ae_lines_pkg.BflowUpgEntry
58788 (p_business_method_code => l_bflow_method_code
58789 ,p_business_class_code => l_bflow_class_code
58790 ,p_balance_type => l_balance_type_code);
58791 ELSE
58792 NULL;
58793 -- No business flow processing for business flow method of NONE.
58794 END IF;
58795
58796 --
58797 -- call analytical criteria
58798 --
58799
58800
58801 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
58802 xla_ae_lines_pkg.SetAnalyticalCriteria(
58803 p_analytical_criterion_name => 'Check Id'
58804 , p_analytical_criterion_owner => 'S'
58805 , p_analytical_criterion_code => 'CHECK_ID'
58806 , p_amb_context_code => 'DEFAULT'
58807 , p_balancing_flag => 'N'
58808
58809 , p_analytical_detail_char_1 => NULL
58810 , p_analytical_detail_num_1 => p_source_90
58811 , p_analytical_detail_date_1 => NULL
58812
58813 , p_ae_header_id => l_ae_header_id
58814 )
58815 ;
58816 --
58817
58818 --
58819 -- call description
58820 --
58821 -- No description or it is inherited.
58822 --
58823 -- call ADRs
58824 -- Bug 4922099
58825 --
58826 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58827 (NVL(l_actual_upg_option, 'N') = 'O') OR
58828 (NVL(l_enc_upg_option, 'N') = 'O')
58829 )
58830 THEN
58831 NULL;
58832 --
58833 --
58834
58835 l_ccid := AcctDerRule_20(
58836 p_application_id => p_application_id
58837 , p_ae_header_id => l_ae_header_id
58838 , p_source_22 => p_source_22
58839 , x_transaction_coa_id => l_adr_transaction_coa_id
58840 , x_accounting_coa_id => l_adr_accounting_coa_id
58841 , x_value_type_code => l_adr_value_type_code
58842 , p_side => 'NA'
58843 );
58844
58845 xla_ae_lines_pkg.set_ccid(
58846 p_code_combination_id => l_ccid
58847 , p_value_type_code => l_adr_value_type_code
58848 , p_transaction_coa_id => l_adr_transaction_coa_id
58849 , p_accounting_coa_id => l_adr_accounting_coa_id
58850 , p_adr_code => 'DIST_CCID'
58851 , p_adr_type_code => 'S'
58852 , p_component_type => l_component_type
58853 , p_component_code => l_component_code
58854 , p_component_type_code => l_component_type_code
58858 );
58855 , p_component_appl_id => l_component_appl_id
58856 , p_amb_context_code => l_amb_context_code
58857 , p_side => 'NA'
58859
58860
58861 --
58862 --
58863 END IF;
58864 --
58865 -- Bug 4922099
58866 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58867 (NVL(l_enc_upg_option, 'N') = 'O')
58868 ) AND
58869 (l_bflow_method_code = 'PRIOR_ENTRY')
58870 )
58871 THEN
58872 IF
58873 --
58874 1 = 2
58875 --
58876 THEN
58877 xla_accounting_err_pkg.build_message
58878 (p_appli_s_name => 'XLA'
58879 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58880 ,p_token_1 => 'LINE_NUMBER'
58881 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58882 ,p_token_2 => 'LINE_TYPE_NAME'
58883 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58884 l_component_type
58885 ,l_component_code
58886 ,l_component_type_code
58887 ,l_component_appl_id
58888 ,l_amb_context_code
58889 ,l_entity_code
58890 ,l_event_class_code
58891 )
58892 ,p_token_3 => 'OWNER'
58893 ,p_value_3 => xla_lookups_pkg.get_meaning(
58894 p_lookup_type => 'XLA_OWNER_TYPE'
58895 ,p_lookup_code => l_component_type_code
58896 )
58897 ,p_token_4 => 'PRODUCT_NAME'
58898 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58899 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58900 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58901 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58902 ,p_ae_header_id => NULL
58903 );
58904
58905 IF (C_LEVEL_ERROR>= g_log_level) THEN
58906 trace
58907 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58908 ,p_level => C_LEVEL_ERROR
58909 ,p_module => l_log_module);
58910 END IF;
58911 END IF;
58912 END IF;
58913 --
58914 --
58915 ------------------------------------------------------------------------------------------------
58916 -- 4219869 Business Flow
58917 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58918 -- Prior Entry. Currently, the following code is always generated.
58919 ------------------------------------------------------------------------------------------------
58920 XLA_AE_LINES_PKG.ValidateCurrentLine;
58921
58922 ------------------------------------------------------------------------------------
58923 -- 4219869 Business Flow
58924 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58925 ------------------------------------------------------------------------------------
58926 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58927
58928 ----------------------------------------------------------------------------------
58929 -- 4219869 Business Flow
58930 -- Update journal entry status -- Need to generate this within IF <condition>
58931 ----------------------------------------------------------------------------------
58932 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58933 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58934 ,p_balance_type_code => l_balance_type_code
58935 );
58936
58937 -------------------------------------------------------------------------------------------
58938 -- 4262811 - Generate the Accrual Reversal lines
58939 -------------------------------------------------------------------------------------------
58940 BEGIN
58941 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58942 (g_array_event(p_event_id).array_value_num('header_index'));
58943 IF l_acc_rev_flag IS NULL THEN
58944 l_acc_rev_flag := 'N';
58945 END IF;
58946 EXCEPTION
58947 WHEN OTHERS THEN
58948 l_acc_rev_flag := 'N';
58949 END;
58950 --
58951 IF (l_acc_rev_flag = 'Y') THEN
58952
58953 -- 4645092 ------------------------------------------------------------------------------
58954 -- To allow MPA report to determine if it should generate report process
58955 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58956 ------------------------------------------------------------------------------------------
58957
58961 -- call ADRs
58958 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58959 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58960 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
58962 -- Bug 4922099
58963 --
58964 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58965 (NVL(l_actual_upg_option, 'N') = 'O') OR
58966 (NVL(l_enc_upg_option, 'N') = 'O')
58967 )
58968 THEN
58969 NULL;
58970 --
58971 --
58972
58973 l_ccid := AcctDerRule_20(
58974 p_application_id => p_application_id
58975 , p_ae_header_id => l_ae_header_id
58976 , p_source_22 => p_source_22
58977 , x_transaction_coa_id => l_adr_transaction_coa_id
58978 , x_accounting_coa_id => l_adr_accounting_coa_id
58979 , x_value_type_code => l_adr_value_type_code
58980 , p_side => 'NA'
58981 );
58982
58983 xla_ae_lines_pkg.set_ccid(
58984 p_code_combination_id => l_ccid
58985 , p_value_type_code => l_adr_value_type_code
58986 , p_transaction_coa_id => l_adr_transaction_coa_id
58987 , p_accounting_coa_id => l_adr_accounting_coa_id
58988 , p_adr_code => 'DIST_CCID'
58989 , p_adr_type_code => 'S'
58990 , p_component_type => l_component_type
58991 , p_component_code => l_component_code
58992 , p_component_type_code => l_component_type_code
58993 , p_component_appl_id => l_component_appl_id
58994 , p_amb_context_code => l_amb_context_code
58995 , p_side => 'NA'
58996 );
58997
58998
58999 --
59000 --
59001 END IF;
59002
59003 --
59004 -- Update the line information that should be overwritten
59005 --
59006 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59007 p_header_num => 1);
59008 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59009
59010 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59011
59012 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59013 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59014 END IF;
59015
59016 --
59017 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59018 --
59019 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59020 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59021 ELSE
59022 ---------------------------------------------------------------------------------------------------
59023 -- 4262811a Switch Sign
59024 ---------------------------------------------------------------------------------------------------
59025 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59026 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59027 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59028 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59029 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59030 -- 5132302
59031 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59032 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59033
59034 END IF;
59035
59036 -- 4955764
59037 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59038 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59039
59040
59041 XLA_AE_LINES_PKG.ValidateCurrentLine;
59042 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59043
59044 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59045 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59046 ,p_balance_type_code => l_balance_type_code);
59047
59048 END IF;
59049
59050 -----------------------------------------------------------------------------------------
59051 -- 4262811 Multiperiod Accounting
59052 -----------------------------------------------------------------------------------------
59053 -- No MPA option is assigned.
59054
59055
59056 END IF;
59057 END IF;
59058 --
59059
59060 --
59061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59062 trace
59063 (p_msg => 'END of AcctLineType_119'
59064 ,p_level => C_LEVEL_PROCEDURE
59065 ,p_module => l_log_module);
59066 END IF;
59067 --
59068 EXCEPTION
59069 WHEN xla_exceptions_pkg.application_exception THEN
59070 RAISE;
59071 WHEN OTHERS THEN
59072 xla_exceptions_pkg.raise_message
59073 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_119');
59074 END AcctLineType_119;
59075 --
59076
59077 ---------------------------------------
59078 --
59079 -- PRIVATE FUNCTION
59080 -- AcctLineType_120
59081 --
59082 ---------------------------------------
59083 PROCEDURE AcctLineType_120 (
59084 p_application_id IN NUMBER
59088 ,p_actual_flag IN OUT VARCHAR2
59085 ,p_event_id IN NUMBER
59086 ,p_calculate_acctd_flag IN VARCHAR2
59087 ,p_calculate_g_l_flag IN VARCHAR2
59089 ,p_balance_type_code OUT VARCHAR2
59090 ,p_gain_or_loss_ref OUT VARCHAR2
59091
59092 --Remittance Bank Account Unapplied Account
59093 , p_source_23 IN NUMBER
59094 --Distribution Source Type
59095 , p_source_27 IN VARCHAR2
59096 --Receivable Activity Type
59097 , p_source_28 IN VARCHAR2
59098 --Distribution Line Identifier
59099 , p_source_29 IN NUMBER
59100 --Distribution Type
59101 , p_source_30 IN VARCHAR2
59102 --Exchange Date
59103 , p_source_33 IN DATE
59104 --Exchange Rate
59105 , p_source_34 IN NUMBER
59106 --Exchange Rate Type
59107 , p_source_35 IN VARCHAR2
59108 --Accounting Amount
59109 , p_source_40 IN NUMBER
59110 --Transaction Distribution Identifier
59111 , p_source_44 IN NUMBER
59112 --Transaction Distribution Type
59113 , p_source_45 IN VARCHAR2
59114 --Distribution Multi Fund Additional Entry
59115 , p_source_88 IN VARCHAR2
59116 --Cash Receipt Identifier
59117 , p_source_90 IN NUMBER
59118 --Receipt Applied To Application Identifier
59119 , p_source_92 IN NUMBER
59120 --Transaction Entity Code
59121 , p_source_93 IN VARCHAR2
59122 --Transaction Identifier
59123 , p_source_94 IN NUMBER
59124 --DIST_ENT_AMT_FROM
59125 , p_source_95 IN NUMBER
59126 --Applying Document Currency Code
59127 , p_source_96 IN VARCHAR2
59128 --Distribution Party Type
59129 , p_source_99 IN VARCHAR2
59130 --Distribution Source Table
59131 , p_source_102 IN VARCHAR2
59132 --Receipt Pay From Customer
59133 , p_source_104 IN NUMBER
59134 --Receipt Customer Site Use Identifier
59135 , p_source_105 IN NUMBER
59136 --Receipt Application Status
59137 , p_source_106 IN VARCHAR2
59138 )
59139 IS
59140
59141 l_component_type VARCHAR2(80);
59142 l_component_code VARCHAR2(30);
59143 l_component_type_code VARCHAR2(1);
59144 l_component_appl_id INTEGER;
59145 l_amb_context_code VARCHAR2(30);
59146 l_entity_code VARCHAR2(30);
59147 l_event_class_code VARCHAR2(30);
59148 l_ae_header_id NUMBER;
59149 l_event_type_code VARCHAR2(30);
59150 l_line_definition_code VARCHAR2(30);
59151 l_line_definition_owner_code VARCHAR2(1);
59152 --
59153 -- adr variables
59154 l_segment VARCHAR2(30);
59155 l_ccid NUMBER;
59156 l_adr_transaction_coa_id NUMBER;
59157 l_adr_accounting_coa_id NUMBER;
59158 l_adr_flexfield_segment_code VARCHAR2(30);
59159 l_adr_flex_value_set_id NUMBER;
59160 l_adr_value_type_code VARCHAR2(30);
59161 l_adr_value_combination_id NUMBER;
59162 l_adr_value_segment_code VARCHAR2(30);
59163
59164 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59165 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59166 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59167 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59168
59169 -- 4262811 Variables ------------------------------------------------------------------------------------------
59170 l_entered_amt_idx NUMBER;
59171 l_accted_amt_idx NUMBER;
59172 l_acc_rev_flag VARCHAR2(1);
59173 l_accrual_line_num NUMBER;
59174 l_tmp_amt NUMBER;
59175 l_acc_rev_natural_side_code VARCHAR2(1);
59176
59177 l_num_entries NUMBER;
59178 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59179 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59180 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59181 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59182 l_recog_line_1 NUMBER;
59183 l_recog_line_2 NUMBER;
59184
59185 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59186 l_bflow_applied_to_amt NUMBER; -- 5132302
59187 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59188
59189 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59190
59191 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59192 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59193
59194 ---------------------------------------------------------------------------------------------------------------
59195
59196
59197 --
59198 -- bulk performance
59199 --
59200 l_balance_type_code VARCHAR2(1);
59201 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59202 l_log_module VARCHAR2(240);
59203
59204 --
59205 -- Upgrade strategy
59206 --
59207 l_actual_upg_option VARCHAR2(1);
59208 l_enc_upg_option VARCHAR2(1);
59209
59210 --
59211 BEGIN
59212 --
59213 IF g_log_enabled THEN
59214 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
59215 END IF;
59216 --
59217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59218
59219 trace
59220 (p_msg => 'BEGIN of AcctLineType_120'
59221 ,p_level => C_LEVEL_PROCEDURE
59225 --
59222 ,p_module => l_log_module);
59223
59224 END IF;
59226 l_component_type := 'AMB_JLT';
59227 l_component_code := 'RCT_UNAPP';
59228 l_component_type_code := 'S';
59229 l_component_appl_id := 222;
59230 l_amb_context_code := 'DEFAULT';
59231 l_entity_code := 'RECEIPTS';
59232 l_event_class_code := 'RECEIPT';
59233 l_event_type_code := 'RECEIPT_ALL';
59234 l_line_definition_owner_code := 'S';
59235 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
59236 --
59237 l_balance_type_code := 'A';
59238 l_segment := NULL;
59239 l_ccid := NULL;
59240 l_adr_transaction_coa_id := NULL;
59241 l_adr_accounting_coa_id := NULL;
59242 l_adr_flexfield_segment_code := NULL;
59243 l_adr_flex_value_set_id := NULL;
59244 l_adr_value_type_code := NULL;
59245 l_adr_value_combination_id := NULL;
59246 l_adr_value_segment_code := NULL;
59247
59248 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59249 l_bflow_class_code := ''; -- 4219869 Business Flow
59250 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59251 l_budgetary_control_flag := 'N';
59252
59253 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59254 l_bflow_applied_to_amt := NULL; -- 5132302
59255 l_entered_amt_idx := NULL; -- 4262811
59256 l_accted_amt_idx := NULL; -- 4262811
59257 l_acc_rev_flag := NULL; -- 4262811
59258 l_accrual_line_num := NULL; -- 4262811
59259 l_tmp_amt := NULL; -- 4262811
59260 --
59261
59262 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59263 l_balance_type_code <> 'B' THEN
59264 IF (NVL(p_source_27,'
59265 ') = 'OTHER ACC' AND
59266 NVL(p_source_28,'
59267 ') = 'CLAIM_INVESTIGATION' AND
59268 NVL(p_source_88,'
59269 ') = 'N') OR
59270 (NVL(p_source_27,'
59271 ') = 'FACTOR' AND
59272 NVL(p_source_102,'
59273 ') = 'RA' AND
59274 NVL(p_source_88,'
59275 ') = 'N') OR
59276 (NVL(p_source_27,'
59277 ') = 'OTHER ACC' AND
59278 NVL(p_source_88,'
59279 ') = 'N' AND
59280 NVL(p_source_28,'
59281 ') = 'NETTING') OR
59282 (NVL(p_source_27,'
59283 ') = 'OTHER ACC' AND
59284 NVL(p_source_88,'
59285 ') = 'N' AND
59286 NVL(p_source_28,'
59287 ') = 'PREPAYMENT') OR
59288 (NVL(p_source_27,'
59289 ') = 'ACTIVITY' AND
59290 NVL(p_source_88,'
59291 ') = 'N' AND
59292 NVL(p_source_28,'
59293 ') = 'CCREFUND') OR
59294 (NVL(p_source_27,'
59295 ') = 'REMITTANCE' AND
59296 NVL(p_source_88,'
59297 ') = 'N' AND
59298 NVL(p_source_102,'
59299 ') = 'RA') OR
59300 (NVL(p_source_27,'
59301 ') = 'ACTIVITY' AND
59302 NVL(p_source_88,'
59303 ') = 'N' AND
59304 NVL(p_source_28,'
59305 ') = 'WRITEOFF') OR
59306 (NVL(p_source_27,'
59307 ') = 'ACTIVITY' AND
59308 NVL(p_source_88,'
59309 ') = 'N' AND
59310 NVL(p_source_28,'
59311 ') = 'CM_REFUND') OR
59312 (NVL(p_source_27,'
59313 ') = 'ACTIVITY' AND
59314 NVL(p_source_28,'
59315 ') = 'ADJUST' AND
59316 NVL(p_source_88,'
59317 ') = 'N') OR
59318 (NVL(p_source_27,'
59319 ') = 'ACTIVITY' AND
59320 NVL(p_source_88,'
59321 ') = 'N' AND
59322 NVL(p_source_28,'
59323 ') = 'CC_CHARGEBACK') OR
59324 (NVL(p_source_27,'
59325 ') = 'ACTIVITY' AND
59326 NVL(p_source_88,'
59327 ') = 'N' AND
59328 NVL(p_source_28,'
59329 ') = 'NETTING')
59330 THEN
59331
59332 --
59333 XLA_AE_LINES_PKG.SetNewLine;
59337
59334
59335 p_balance_type_code := l_balance_type_code;
59336 -- set the flag so later we will know whether the gain loss line needs to be created
59338 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59339 p_actual_flag :='A';
59340 END IF;
59341
59342 --
59343 -- bulk performance
59344 --
59345 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59346 p_header_num => 0); -- 4262811
59347 --
59348 -- set accounting line options
59349 --
59350 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59351 p_natural_side_code => 'D'
59352 , p_gain_or_loss_flag => 'N'
59353 , p_gl_transfer_mode_code => 'S'
59354 , p_acct_entry_type_code => 'A'
59355 , p_switch_side_flag => 'Y'
59356 , p_merge_duplicate_code => 'A'
59357 );
59358 --
59359 l_acc_rev_natural_side_code := 'C'; -- 4262811
59360 --
59361 --
59362 -- set accounting line type info
59363 --
59364 xla_ae_lines_pkg.SetAcctLineType
59365 (p_component_type => l_component_type
59366 ,p_event_type_code => l_event_type_code
59367 ,p_line_definition_owner_code => l_line_definition_owner_code
59368 ,p_line_definition_code => l_line_definition_code
59369 ,p_accounting_line_code => l_component_code
59370 ,p_accounting_line_type_code => l_component_type_code
59371 ,p_accounting_line_appl_id => l_component_appl_id
59372 ,p_amb_context_code => l_amb_context_code
59373 ,p_entity_code => l_entity_code
59374 ,p_event_class_code => l_event_class_code);
59375 --
59376 -- set accounting class
59377 --
59378 xla_ae_lines_pkg.SetAcctClass(
59379 p_accounting_class_code => 'UNAPP'
59380 , p_ae_header_id => l_ae_header_id
59381 );
59382
59383 --
59384 -- set rounding class
59385 --
59386 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59387 'RECEIVABLE';
59388
59389 --
59390 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59391 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59392 --
59393 -- bulk performance
59394 --
59395 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59396
59397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59398 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59399
59400 -- 4955764
59401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59403
59404 -- 4458381 Public Sector Enh
59405
59406 --
59407 -- set accounting attributes for the line type
59408 --
59409 l_entered_amt_idx := 8;
59410 l_accted_amt_idx := 13;
59411 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59412 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
59413 l_rec_acct_attrs.array_num_value(1) := p_source_92;
59414 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59415 l_rec_acct_attrs.array_char_value(2) := p_source_45;
59416 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
59417 l_rec_acct_attrs.array_char_value(3) := p_source_93;
59418 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
59419 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
59420 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59421 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
59422 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
59423 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
59424 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
59425 l_rec_acct_attrs.array_char_value(7) := p_source_30;
59426 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
59427 l_rec_acct_attrs.array_num_value(8) := p_source_95;
59428 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
59429 l_rec_acct_attrs.array_char_value(9) := p_source_96;
59430 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
59431 l_rec_acct_attrs.array_date_value(10) := p_source_33;
59432 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
59433 l_rec_acct_attrs.array_num_value(11) := p_source_34;
59434 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
59435 l_rec_acct_attrs.array_char_value(12) := p_source_35;
59436 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
59437 l_rec_acct_attrs.array_num_value(13) := p_source_40;
59438 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
59439 l_rec_acct_attrs.array_num_value(14) := p_source_104;
59440 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
59441 l_rec_acct_attrs.array_num_value(15) := p_source_105;
59442 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
59443 l_rec_acct_attrs.array_char_value(16) := p_source_99;
59444
59445 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59449 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59446 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59447
59448 ---------------------------------------------------------------------------------------------------------------
59450 ---------------------------------------------------------------------------------------------------------------
59451 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59452
59453 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59454 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59455
59456 IF xla_accounting_cache_pkg.GetValueChar
59457 (p_source_code => 'LEDGER_CATEGORY_CODE'
59458 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59459 AND l_bflow_method_code = 'PRIOR_ENTRY'
59460 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59461 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59462 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59463 )
59464 THEN
59465 xla_ae_lines_pkg.BflowUpgEntry
59466 (p_business_method_code => l_bflow_method_code
59467 ,p_business_class_code => l_bflow_class_code
59468 ,p_balance_type => l_balance_type_code);
59469 ELSE
59470 NULL;
59471 -- No business flow processing for business flow method of NONE.
59472 END IF;
59473
59474 --
59475 -- call analytical criteria
59476 --
59477
59478
59479 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
59480 xla_ae_lines_pkg.SetAnalyticalCriteria(
59481 p_analytical_criterion_name => 'Check Id'
59482 , p_analytical_criterion_owner => 'S'
59483 , p_analytical_criterion_code => 'CHECK_ID'
59484 , p_amb_context_code => 'DEFAULT'
59485 , p_balancing_flag => 'N'
59486
59487 , p_analytical_detail_char_1 => NULL
59488 , p_analytical_detail_num_1 => p_source_90
59489 , p_analytical_detail_date_1 => NULL
59490
59491 , p_ae_header_id => l_ae_header_id
59492 )
59493 ;
59494 --
59495
59496
59497 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
59498 xla_ae_lines_pkg.SetAnalyticalCriteria(
59499 p_analytical_criterion_name => 'Receipt Application Status'
59500 , p_analytical_criterion_owner => 'S'
59501 , p_analytical_criterion_code => 'RECEIPT_APPLICATION_STATUS'
59502 , p_amb_context_code => 'DEFAULT'
59503 , p_balancing_flag => 'N'
59504
59505 , p_analytical_detail_char_1 => TO_CHAR(p_source_106)
59506 , p_analytical_detail_num_1 => NULL
59507 , p_analytical_detail_date_1 => NULL
59508
59509 , p_ae_header_id => l_ae_header_id
59510 )
59511 ;
59512 --
59513
59514 --
59515 -- call description
59516 --
59517 -- No description or it is inherited.
59518 --
59519 -- call ADRs
59520 -- Bug 4922099
59521 --
59522 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59523 (NVL(l_actual_upg_option, 'N') = 'O') OR
59524 (NVL(l_enc_upg_option, 'N') = 'O')
59525 )
59526 THEN
59527 NULL;
59528 --
59529 --
59530
59531 l_ccid := AcctDerRule_21(
59532 p_application_id => p_application_id
59533 , p_ae_header_id => l_ae_header_id
59534 , p_source_23 => p_source_23
59535 , x_transaction_coa_id => l_adr_transaction_coa_id
59536 , x_accounting_coa_id => l_adr_accounting_coa_id
59537 , x_value_type_code => l_adr_value_type_code
59538 , p_side => 'NA'
59539 );
59540
59541 xla_ae_lines_pkg.set_ccid(
59542 p_code_combination_id => l_ccid
59543 , p_value_type_code => l_adr_value_type_code
59544 , p_transaction_coa_id => l_adr_transaction_coa_id
59545 , p_accounting_coa_id => l_adr_accounting_coa_id
59546 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
59547 , p_adr_type_code => 'S'
59548 , p_component_type => l_component_type
59549 , p_component_code => l_component_code
59550 , p_component_type_code => l_component_type_code
59551 , p_component_appl_id => l_component_appl_id
59552 , p_amb_context_code => l_amb_context_code
59553 , p_side => 'NA'
59554 );
59555
59556
59557 --
59558 --
59559 END IF;
59560 --
59561 -- Bug 4922099
59562 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59563 (NVL(l_enc_upg_option, 'N') = 'O')
59564 ) AND
59565 (l_bflow_method_code = 'PRIOR_ENTRY')
59566 )
59567 THEN
59568 IF
59569 --
59570 1 = 2
59571 --
59572 THEN
59573 xla_accounting_err_pkg.build_message
59574 (p_appli_s_name => 'XLA'
59575 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59576 ,p_token_1 => 'LINE_NUMBER'
59577 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59578 ,p_token_2 => 'LINE_TYPE_NAME'
59579 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59583 ,l_component_appl_id
59580 l_component_type
59581 ,l_component_code
59582 ,l_component_type_code
59584 ,l_amb_context_code
59585 ,l_entity_code
59586 ,l_event_class_code
59587 )
59588 ,p_token_3 => 'OWNER'
59589 ,p_value_3 => xla_lookups_pkg.get_meaning(
59590 p_lookup_type => 'XLA_OWNER_TYPE'
59591 ,p_lookup_code => l_component_type_code
59592 )
59593 ,p_token_4 => 'PRODUCT_NAME'
59594 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59595 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59596 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59597 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59598 ,p_ae_header_id => NULL
59599 );
59600
59601 IF (C_LEVEL_ERROR>= g_log_level) THEN
59602 trace
59603 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59604 ,p_level => C_LEVEL_ERROR
59605 ,p_module => l_log_module);
59606 END IF;
59607 END IF;
59608 END IF;
59609 --
59610 --
59611 ------------------------------------------------------------------------------------------------
59612 -- 4219869 Business Flow
59613 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59614 -- Prior Entry. Currently, the following code is always generated.
59615 ------------------------------------------------------------------------------------------------
59616 XLA_AE_LINES_PKG.ValidateCurrentLine;
59617
59618 ------------------------------------------------------------------------------------
59619 -- 4219869 Business Flow
59620 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59621 ------------------------------------------------------------------------------------
59622 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59623
59624 ----------------------------------------------------------------------------------
59625 -- 4219869 Business Flow
59626 -- Update journal entry status -- Need to generate this within IF <condition>
59627 ----------------------------------------------------------------------------------
59628 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59629 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59630 ,p_balance_type_code => l_balance_type_code
59631 );
59632
59633 -------------------------------------------------------------------------------------------
59634 -- 4262811 - Generate the Accrual Reversal lines
59635 -------------------------------------------------------------------------------------------
59636 BEGIN
59637 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59638 (g_array_event(p_event_id).array_value_num('header_index'));
59639 IF l_acc_rev_flag IS NULL THEN
59640 l_acc_rev_flag := 'N';
59641 END IF;
59642 EXCEPTION
59643 WHEN OTHERS THEN
59644 l_acc_rev_flag := 'N';
59645 END;
59646 --
59647 IF (l_acc_rev_flag = 'Y') THEN
59648
59649 -- 4645092 ------------------------------------------------------------------------------
59650 -- To allow MPA report to determine if it should generate report process
59651 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59652 ------------------------------------------------------------------------------------------
59653
59654 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59655 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59656 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59657 -- call ADRs
59658 -- Bug 4922099
59659 --
59660 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59661 (NVL(l_actual_upg_option, 'N') = 'O') OR
59662 (NVL(l_enc_upg_option, 'N') = 'O')
59663 )
59664 THEN
59665 NULL;
59666 --
59667 --
59668
59669 l_ccid := AcctDerRule_21(
59670 p_application_id => p_application_id
59671 , p_ae_header_id => l_ae_header_id
59672 , p_source_23 => p_source_23
59673 , x_transaction_coa_id => l_adr_transaction_coa_id
59674 , x_accounting_coa_id => l_adr_accounting_coa_id
59675 , x_value_type_code => l_adr_value_type_code
59676 , p_side => 'NA'
59677 );
59678
59679 xla_ae_lines_pkg.set_ccid(
59680 p_code_combination_id => l_ccid
59681 , p_value_type_code => l_adr_value_type_code
59682 , p_transaction_coa_id => l_adr_transaction_coa_id
59686 , p_component_type => l_component_type
59683 , p_accounting_coa_id => l_adr_accounting_coa_id
59684 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
59685 , p_adr_type_code => 'S'
59687 , p_component_code => l_component_code
59688 , p_component_type_code => l_component_type_code
59689 , p_component_appl_id => l_component_appl_id
59690 , p_amb_context_code => l_amb_context_code
59691 , p_side => 'NA'
59692 );
59693
59694
59695 --
59696 --
59697 END IF;
59698
59699 --
59700 -- Update the line information that should be overwritten
59701 --
59702 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59703 p_header_num => 1);
59704 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59705
59706 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59707
59708 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59709 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59710 END IF;
59711
59712 --
59713 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59714 --
59715 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59716 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59717 ELSE
59718 ---------------------------------------------------------------------------------------------------
59719 -- 4262811a Switch Sign
59720 ---------------------------------------------------------------------------------------------------
59721 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59722 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59723 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59724 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59725 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59726 -- 5132302
59727 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59728 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59729
59730 END IF;
59731
59732 -- 4955764
59733 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59734 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59735
59736
59737 XLA_AE_LINES_PKG.ValidateCurrentLine;
59738 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59739
59743
59740 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59741 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59742 ,p_balance_type_code => l_balance_type_code);
59744 END IF;
59745
59746 -----------------------------------------------------------------------------------------
59747 -- 4262811 Multiperiod Accounting
59748 -----------------------------------------------------------------------------------------
59749 -- No MPA option is assigned.
59750
59751
59752 END IF;
59753 END IF;
59754 --
59755
59756 --
59757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59758 trace
59759 (p_msg => 'END of AcctLineType_120'
59760 ,p_level => C_LEVEL_PROCEDURE
59761 ,p_module => l_log_module);
59762 END IF;
59763 --
59764 EXCEPTION
59765 WHEN xla_exceptions_pkg.application_exception THEN
59766 RAISE;
59767 WHEN OTHERS THEN
59768 xla_exceptions_pkg.raise_message
59772
59769 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_120');
59770 END AcctLineType_120;
59771 --
59773 ---------------------------------------
59774 --
59775 -- PRIVATE FUNCTION
59776 -- AcctLineType_121
59777 --
59778 ---------------------------------------
59779 PROCEDURE AcctLineType_121 (
59780 p_application_id IN NUMBER
59781 ,p_event_id IN NUMBER
59782 ,p_calculate_acctd_flag IN VARCHAR2
59783 ,p_calculate_g_l_flag IN VARCHAR2
59784 ,p_actual_flag IN OUT VARCHAR2
59785 ,p_balance_type_code OUT VARCHAR2
59786 ,p_gain_or_loss_ref OUT VARCHAR2
59787
59788 --Remittance Bank Account Unapplied Account
59789 , p_source_23 IN NUMBER
59790 --Distribution Source Type
59791 , p_source_27 IN VARCHAR2
59792 --Distribution Line Identifier
59793 , p_source_29 IN NUMBER
59794 --Distribution Type
59795 , p_source_30 IN VARCHAR2
59796 --Exchange Date
59797 , p_source_33 IN DATE
59798 --Exchange Rate
59799 , p_source_34 IN NUMBER
59800 --Exchange Rate Type
59801 , p_source_35 IN VARCHAR2
59802 --Accounting Amount
59803 , p_source_40 IN NUMBER
59804 --Transaction Distribution Identifier
59805 , p_source_44 IN NUMBER
59806 --Transaction Distribution Type
59807 , p_source_45 IN VARCHAR2
59808 --Distribution Multi Fund Additional Entry
59809 , p_source_88 IN VARCHAR2
59810 --Cash Receipt Identifier
59811 , p_source_90 IN NUMBER
59812 --Receipt Applied To Application Identifier
59813 , p_source_92 IN NUMBER
59814 --Transaction Entity Code
59815 , p_source_93 IN VARCHAR2
59816 --Transaction Identifier
59817 , p_source_94 IN NUMBER
59818 --DIST_ENT_AMT_FROM
59819 , p_source_95 IN NUMBER
59820 --Applying Document Currency Code
59821 , p_source_96 IN VARCHAR2
59822 --Distribution Party Type
59823 , p_source_99 IN VARCHAR2
59824 --Distribution Source Table
59825 , p_source_102 IN VARCHAR2
59826 --Receipt Pay From Customer
59827 , p_source_104 IN NUMBER
59828 --Receipt Customer Site Use Identifier
59829 , p_source_105 IN NUMBER
59830 --Receipt Application Status
59831 , p_source_106 IN VARCHAR2
59832 )
59833 IS
59834
59835 l_component_type VARCHAR2(80);
59836 l_component_code VARCHAR2(30);
59837 l_component_type_code VARCHAR2(1);
59838 l_component_appl_id INTEGER;
59839 l_amb_context_code VARCHAR2(30);
59840 l_entity_code VARCHAR2(30);
59841 l_event_class_code VARCHAR2(30);
59842 l_ae_header_id NUMBER;
59843 l_event_type_code VARCHAR2(30);
59844 l_line_definition_code VARCHAR2(30);
59845 l_line_definition_owner_code VARCHAR2(1);
59846 --
59847 -- adr variables
59848 l_segment VARCHAR2(30);
59849 l_ccid NUMBER;
59850 l_adr_transaction_coa_id NUMBER;
59851 l_adr_accounting_coa_id NUMBER;
59852 l_adr_flexfield_segment_code VARCHAR2(30);
59853 l_adr_flex_value_set_id NUMBER;
59854 l_adr_value_type_code VARCHAR2(30);
59855 l_adr_value_combination_id NUMBER;
59856 l_adr_value_segment_code VARCHAR2(30);
59857
59858 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59859 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59860 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59861 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59862
59863 -- 4262811 Variables ------------------------------------------------------------------------------------------
59864 l_entered_amt_idx NUMBER;
59865 l_accted_amt_idx NUMBER;
59866 l_acc_rev_flag VARCHAR2(1);
59867 l_accrual_line_num NUMBER;
59868 l_tmp_amt NUMBER;
59869 l_acc_rev_natural_side_code VARCHAR2(1);
59870
59871 l_num_entries NUMBER;
59872 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59873 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59874 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59875 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59876 l_recog_line_1 NUMBER;
59877 l_recog_line_2 NUMBER;
59878
59879 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59880 l_bflow_applied_to_amt NUMBER; -- 5132302
59881 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59882
59883 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59884
59885 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59886 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59887
59888 ---------------------------------------------------------------------------------------------------------------
59889
59890
59891 --
59892 -- bulk performance
59893 --
59894 l_balance_type_code VARCHAR2(1);
59895 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59896 l_log_module VARCHAR2(240);
59897
59898 --
59899 -- Upgrade strategy
59900 --
59901 l_actual_upg_option VARCHAR2(1);
59902 l_enc_upg_option VARCHAR2(1);
59903
59904 --
59905 BEGIN
59906 --
59907 IF g_log_enabled THEN
59911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59908 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
59909 END IF;
59910 --
59912
59913 trace
59914 (p_msg => 'BEGIN of AcctLineType_121'
59915 ,p_level => C_LEVEL_PROCEDURE
59916 ,p_module => l_log_module);
59917
59918 END IF;
59919 --
59920 l_component_type := 'AMB_JLT';
59921 l_component_code := 'RCT_UNAPP_DEBIT';
59922 l_component_type_code := 'S';
59923 l_component_appl_id := 222;
59924 l_amb_context_code := 'DEFAULT';
59925 l_entity_code := 'RECEIPTS';
59926 l_event_class_code := 'RECEIPT';
59927 l_event_type_code := 'RECEIPT_ALL';
59928 l_line_definition_owner_code := 'S';
59929 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
59930 --
59931 l_balance_type_code := 'A';
59932 l_segment := NULL;
59933 l_ccid := NULL;
59934 l_adr_transaction_coa_id := NULL;
59935 l_adr_accounting_coa_id := NULL;
59936 l_adr_flexfield_segment_code := NULL;
59937 l_adr_flex_value_set_id := NULL;
59938 l_adr_value_type_code := NULL;
59939 l_adr_value_combination_id := NULL;
59940 l_adr_value_segment_code := NULL;
59941
59942 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59943 l_bflow_class_code := ''; -- 4219869 Business Flow
59944 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59945 l_budgetary_control_flag := 'N';
59946
59947 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59948 l_bflow_applied_to_amt := NULL; -- 5132302
59949 l_entered_amt_idx := NULL; -- 4262811
59950 l_accted_amt_idx := NULL; -- 4262811
59951 l_acc_rev_flag := NULL; -- 4262811
59952 l_accrual_line_num := NULL; -- 4262811
59953 l_tmp_amt := NULL; -- 4262811
59954 --
59955
59956 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59957 l_balance_type_code <> 'B' THEN
59958 IF ((NVL(p_source_27,'
59959 ') = 'REC' AND
59960 NVL(p_source_88,'
59961 ') = 'N') OR
59962 (NVL(p_source_88,'
59963 ') = 'N' AND
59964 NVL(p_source_27,'
59965 ') = 'CASH') OR
59966 (NVL(p_source_88,'
59967 ') = 'N' AND
59968 NVL(p_source_27,'
59969 ') = 'CONFIRMATION') OR
59970 (NVL(p_source_88,'
59971 ') = 'N' AND
59972 NVL(p_source_27,'
59973 ') = 'CURR_ROUND') OR
59974 (NVL(p_source_88,'
59975 ') = 'N' AND
59976 NVL(p_source_27,'
59977 ') = 'DEFERRED_TAX') OR
59978 (NVL(p_source_88,'
59979 ') = 'N' AND
59980 NVL(p_source_102,'
59981 ') = 'CRH' AND
59982 NVL(p_source_27,'
59983 ') = 'FACTOR') OR
59984 (NVL(p_source_88,'
59985 ') = 'N' AND
59986 NVL(p_source_27,'
59987 ') = 'ACC') OR
59988 (NVL(p_source_88,'
59989 ') = 'N' AND
59990 NVL(p_source_27,'
59991 ') = 'REMITTANCE' AND
59992 NVL(p_source_102,'
59993 ') = 'CRH') OR
59994 (NVL(p_source_88,'
59995 ') = 'N' AND
59996 NVL(p_source_27,'
59997 ') = 'SHORT_TERM_DEBT') OR
59998 (NVL(p_source_88,'
59999 ') = 'N' AND
60000 NVL(p_source_27,'
60001 ') = 'TAX') OR
60002 (NVL(p_source_88,'
60003 ') = 'N' AND
60004 NVL(p_source_27,'
60005 ') = 'UNID') OR
60006 (NVL(p_source_88,'
60007 ') = 'N' AND
60008 NVL(p_source_27,'
60009 ') = 'BANK_CHARGES') OR
60010 (NVL(p_source_88,'
60011 ') = 'N' AND
60012 NVL(p_source_27,'
60013 ') = 'EDISC') OR
60014 (NVL(p_source_88,'
60015 ') = 'N' AND
60016 NVL(p_source_27,'
60017 ') = 'UNEDISC')
60018 ) AND NVL(p_source_106,'
60019 ') <> 'UNID'
60020 THEN
60021
60022 --
60026 -- set the flag so later we will know whether the gain loss line needs to be created
60023 XLA_AE_LINES_PKG.SetNewLine;
60024
60025 p_balance_type_code := l_balance_type_code;
60027
60028 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60029 p_actual_flag :='A';
60030 END IF;
60031
60032 --
60033 -- bulk performance
60034 --
60035 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60036 p_header_num => 0); -- 4262811
60037 --
60038 -- set accounting line options
60039 --
60040 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60041 p_natural_side_code => 'D'
60042 , p_gain_or_loss_flag => 'N'
60043 , p_gl_transfer_mode_code => 'S'
60044 , p_acct_entry_type_code => 'A'
60045 , p_switch_side_flag => 'Y'
60046 , p_merge_duplicate_code => 'A'
60047 );
60048 --
60049 l_acc_rev_natural_side_code := 'C'; -- 4262811
60050 --
60051 --
60052 -- set accounting line type info
60053 --
60054 xla_ae_lines_pkg.SetAcctLineType
60055 (p_component_type => l_component_type
60056 ,p_event_type_code => l_event_type_code
60057 ,p_line_definition_owner_code => l_line_definition_owner_code
60058 ,p_line_definition_code => l_line_definition_code
60059 ,p_accounting_line_code => l_component_code
60060 ,p_accounting_line_type_code => l_component_type_code
60061 ,p_accounting_line_appl_id => l_component_appl_id
60062 ,p_amb_context_code => l_amb_context_code
60063 ,p_entity_code => l_entity_code
60064 ,p_event_class_code => l_event_class_code);
60065 --
60066 -- set accounting class
60067 --
60068 xla_ae_lines_pkg.SetAcctClass(
60069 p_accounting_class_code => 'UNAPP'
60070 , p_ae_header_id => l_ae_header_id
60071 );
60072
60073 --
60074 -- set rounding class
60075 --
60076 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60077 'RECEIVABLE';
60078
60079 --
60080 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60081 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60082 --
60083 -- bulk performance
60084 --
60085 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60086
60087 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60088 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60089
60090 -- 4955764
60091 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60092 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60093
60094 -- 4458381 Public Sector Enh
60095
60096 --
60097 -- set accounting attributes for the line type
60098 --
60099 l_entered_amt_idx := 8;
60100 l_accted_amt_idx := 13;
60101 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60102 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
60103 l_rec_acct_attrs.array_num_value(1) := p_source_92;
60104 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60105 l_rec_acct_attrs.array_char_value(2) := p_source_45;
60106 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
60107 l_rec_acct_attrs.array_char_value(3) := p_source_93;
60108 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
60109 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
60110 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60111 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
60112 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
60113 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
60114 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
60115 l_rec_acct_attrs.array_char_value(7) := p_source_30;
60116 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
60117 l_rec_acct_attrs.array_num_value(8) := p_source_95;
60118 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
60119 l_rec_acct_attrs.array_char_value(9) := p_source_96;
60120 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
60121 l_rec_acct_attrs.array_date_value(10) := p_source_33;
60122 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
60123 l_rec_acct_attrs.array_num_value(11) := p_source_34;
60124 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
60125 l_rec_acct_attrs.array_char_value(12) := p_source_35;
60126 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
60127 l_rec_acct_attrs.array_num_value(13) := p_source_40;
60128 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
60129 l_rec_acct_attrs.array_num_value(14) := p_source_104;
60130 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
60131 l_rec_acct_attrs.array_num_value(15) := p_source_105;
60132 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
60133 l_rec_acct_attrs.array_char_value(16) := p_source_99;
60134
60135 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60136 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60137
60141 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60138 ---------------------------------------------------------------------------------------------------------------
60139 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60140 ---------------------------------------------------------------------------------------------------------------
60142
60143 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60144 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60145
60146 IF xla_accounting_cache_pkg.GetValueChar
60147 (p_source_code => 'LEDGER_CATEGORY_CODE'
60148 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60149 AND l_bflow_method_code = 'PRIOR_ENTRY'
60150 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60151 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60152 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60153 )
60154 THEN
60155 xla_ae_lines_pkg.BflowUpgEntry
60156 (p_business_method_code => l_bflow_method_code
60157 ,p_business_class_code => l_bflow_class_code
60158 ,p_balance_type => l_balance_type_code);
60159 ELSE
60160 NULL;
60161 -- No business flow processing for business flow method of NONE.
60162 END IF;
60163
60164 --
60165 -- call analytical criteria
60166 --
60167
60168
60169 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
60170 xla_ae_lines_pkg.SetAnalyticalCriteria(
60171 p_analytical_criterion_name => 'Check Id'
60172 , p_analytical_criterion_owner => 'S'
60173 , p_analytical_criterion_code => 'CHECK_ID'
60174 , p_amb_context_code => 'DEFAULT'
60175 , p_balancing_flag => 'N'
60176
60177 , p_analytical_detail_char_1 => NULL
60178 , p_analytical_detail_num_1 => p_source_90
60179 , p_analytical_detail_date_1 => NULL
60180
60181 , p_ae_header_id => l_ae_header_id
60182 )
60183 ;
60184 --
60185
60186
60187 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
60188 xla_ae_lines_pkg.SetAnalyticalCriteria(
60189 p_analytical_criterion_name => 'Receipt Application Status'
60190 , p_analytical_criterion_owner => 'S'
60191 , p_analytical_criterion_code => 'RECEIPT_APPLICATION_STATUS'
60192 , p_amb_context_code => 'DEFAULT'
60193 , p_balancing_flag => 'N'
60194
60195 , p_analytical_detail_char_1 => TO_CHAR(p_source_106)
60196 , p_analytical_detail_num_1 => NULL
60197 , p_analytical_detail_date_1 => NULL
60198
60199 , p_ae_header_id => l_ae_header_id
60200 )
60201 ;
60202 --
60203
60204 --
60205 -- call description
60206 --
60207 -- No description or it is inherited.
60208 --
60209 -- call ADRs
60210 -- Bug 4922099
60211 --
60212 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60213 (NVL(l_actual_upg_option, 'N') = 'O') OR
60214 (NVL(l_enc_upg_option, 'N') = 'O')
60215 )
60216 THEN
60217 NULL;
60218 --
60219 --
60220
60221 l_ccid := AcctDerRule_21(
60222 p_application_id => p_application_id
60223 , p_ae_header_id => l_ae_header_id
60224 , p_source_23 => p_source_23
60225 , x_transaction_coa_id => l_adr_transaction_coa_id
60226 , x_accounting_coa_id => l_adr_accounting_coa_id
60227 , x_value_type_code => l_adr_value_type_code
60228 , p_side => 'NA'
60229 );
60230
60231 xla_ae_lines_pkg.set_ccid(
60232 p_code_combination_id => l_ccid
60233 , p_value_type_code => l_adr_value_type_code
60234 , p_transaction_coa_id => l_adr_transaction_coa_id
60235 , p_accounting_coa_id => l_adr_accounting_coa_id
60236 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
60237 , p_adr_type_code => 'S'
60238 , p_component_type => l_component_type
60239 , p_component_code => l_component_code
60240 , p_component_type_code => l_component_type_code
60241 , p_component_appl_id => l_component_appl_id
60242 , p_amb_context_code => l_amb_context_code
60243 , p_side => 'NA'
60244 );
60245
60246
60247 --
60248 --
60249 END IF;
60250 --
60251 -- Bug 4922099
60252 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60253 (NVL(l_enc_upg_option, 'N') = 'O')
60254 ) AND
60255 (l_bflow_method_code = 'PRIOR_ENTRY')
60256 )
60257 THEN
60258 IF
60259 --
60260 1 = 2
60261 --
60262 THEN
60263 xla_accounting_err_pkg.build_message
60264 (p_appli_s_name => 'XLA'
60265 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60266 ,p_token_1 => 'LINE_NUMBER'
60267 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60268 ,p_token_2 => 'LINE_TYPE_NAME'
60272 ,l_component_type_code
60269 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60270 l_component_type
60271 ,l_component_code
60273 ,l_component_appl_id
60274 ,l_amb_context_code
60275 ,l_entity_code
60276 ,l_event_class_code
60277 )
60278 ,p_token_3 => 'OWNER'
60279 ,p_value_3 => xla_lookups_pkg.get_meaning(
60280 p_lookup_type => 'XLA_OWNER_TYPE'
60281 ,p_lookup_code => l_component_type_code
60282 )
60283 ,p_token_4 => 'PRODUCT_NAME'
60284 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60285 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60286 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60287 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60288 ,p_ae_header_id => NULL
60289 );
60290
60291 IF (C_LEVEL_ERROR>= g_log_level) THEN
60292 trace
60293 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60294 ,p_level => C_LEVEL_ERROR
60295 ,p_module => l_log_module);
60296 END IF;
60297 END IF;
60298 END IF;
60299 --
60300 --
60301 ------------------------------------------------------------------------------------------------
60302 -- 4219869 Business Flow
60303 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60304 -- Prior Entry. Currently, the following code is always generated.
60305 ------------------------------------------------------------------------------------------------
60306 XLA_AE_LINES_PKG.ValidateCurrentLine;
60307
60308 ------------------------------------------------------------------------------------
60309 -- 4219869 Business Flow
60310 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60311 ------------------------------------------------------------------------------------
60312 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60313
60314 ----------------------------------------------------------------------------------
60315 -- 4219869 Business Flow
60316 -- Update journal entry status -- Need to generate this within IF <condition>
60317 ----------------------------------------------------------------------------------
60318 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60319 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60320 ,p_balance_type_code => l_balance_type_code
60321 );
60322
60323 -------------------------------------------------------------------------------------------
60324 -- 4262811 - Generate the Accrual Reversal lines
60325 -------------------------------------------------------------------------------------------
60326 BEGIN
60327 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60328 (g_array_event(p_event_id).array_value_num('header_index'));
60329 IF l_acc_rev_flag IS NULL THEN
60330 l_acc_rev_flag := 'N';
60331 END IF;
60332 EXCEPTION
60333 WHEN OTHERS THEN
60334 l_acc_rev_flag := 'N';
60335 END;
60336 --
60337 IF (l_acc_rev_flag = 'Y') THEN
60338
60339 -- 4645092 ------------------------------------------------------------------------------
60340 -- To allow MPA report to determine if it should generate report process
60341 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60342 ------------------------------------------------------------------------------------------
60343
60344 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60345 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60346 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60347 -- call ADRs
60348 -- Bug 4922099
60349 --
60353 )
60350 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60351 (NVL(l_actual_upg_option, 'N') = 'O') OR
60352 (NVL(l_enc_upg_option, 'N') = 'O')
60354 THEN
60355 NULL;
60356 --
60357 --
60358
60359 l_ccid := AcctDerRule_21(
60360 p_application_id => p_application_id
60361 , p_ae_header_id => l_ae_header_id
60362 , p_source_23 => p_source_23
60363 , x_transaction_coa_id => l_adr_transaction_coa_id
60364 , x_accounting_coa_id => l_adr_accounting_coa_id
60365 , x_value_type_code => l_adr_value_type_code
60366 , p_side => 'NA'
60367 );
60368
60369 xla_ae_lines_pkg.set_ccid(
60370 p_code_combination_id => l_ccid
60371 , p_value_type_code => l_adr_value_type_code
60372 , p_transaction_coa_id => l_adr_transaction_coa_id
60373 , p_accounting_coa_id => l_adr_accounting_coa_id
60374 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
60375 , p_adr_type_code => 'S'
60376 , p_component_type => l_component_type
60377 , p_component_code => l_component_code
60378 , p_component_type_code => l_component_type_code
60379 , p_component_appl_id => l_component_appl_id
60380 , p_amb_context_code => l_amb_context_code
60381 , p_side => 'NA'
60382 );
60383
60384
60385 --
60386 --
60387 END IF;
60388
60389 --
60390 -- Update the line information that should be overwritten
60391 --
60392 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60393 p_header_num => 1);
60394 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60395
60396 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60397
60398 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60399 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60400 END IF;
60401
60402 --
60403 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60404 --
60405 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60406 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60407 ELSE
60408 ---------------------------------------------------------------------------------------------------
60409 -- 4262811a Switch Sign
60410 ---------------------------------------------------------------------------------------------------
60411 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60412 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60413 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60414 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60415 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60416 -- 5132302
60417 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60418 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60419
60420 END IF;
60421
60422 -- 4955764
60423 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60424 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60425
60426
60427 XLA_AE_LINES_PKG.ValidateCurrentLine;
60428 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60429
60430 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60431 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60432 ,p_balance_type_code => l_balance_type_code);
60433
60434 END IF;
60435
60436 -----------------------------------------------------------------------------------------
60437 -- 4262811 Multiperiod Accounting
60438 -----------------------------------------------------------------------------------------
60439 -- No MPA option is assigned.
60440
60441
60442 END IF;
60443 END IF;
60444 --
60445
60446 --
60447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60448 trace
60449 (p_msg => 'END of AcctLineType_121'
60450 ,p_level => C_LEVEL_PROCEDURE
60451 ,p_module => l_log_module);
60452 END IF;
60453 --
60454 EXCEPTION
60455 WHEN xla_exceptions_pkg.application_exception THEN
60456 RAISE;
60457 WHEN OTHERS THEN
60458 xla_exceptions_pkg.raise_message
60459 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_121');
60460 END AcctLineType_121;
60461 --
60462
60463 ---------------------------------------
60464 --
60465 -- PRIVATE FUNCTION
60466 -- AcctLineType_122
60467 --
60468 ---------------------------------------
60469 PROCEDURE AcctLineType_122 (
60470 p_application_id IN NUMBER
60471 ,p_event_id IN NUMBER
60472 ,p_calculate_acctd_flag IN VARCHAR2
60476 ,p_gain_or_loss_ref OUT VARCHAR2
60473 ,p_calculate_g_l_flag IN VARCHAR2
60474 ,p_actual_flag IN OUT VARCHAR2
60475 ,p_balance_type_code OUT VARCHAR2
60477
60478 --Distribution GL Account
60479 , p_source_22 IN NUMBER
60480 --Distribution Source Type
60481 , p_source_27 IN VARCHAR2
60482 --Distribution Line Identifier
60483 , p_source_29 IN NUMBER
60484 --Distribution Type
60485 , p_source_30 IN VARCHAR2
60486 --Entered Amount
60487 , p_source_31 IN NUMBER
60488 --Currency Code
60489 , p_source_32 IN VARCHAR2
60490 --Applied To Document Accounting Amount
60491 , p_source_36 IN NUMBER
60492 --Transaction Distribution Identifier
60493 , p_source_44 IN NUMBER
60494 --Transaction Distribution Type
60495 , p_source_45 IN VARCHAR2
60496 --Distribution Multi Fund Additional Entry
60497 , p_source_88 IN VARCHAR2
60498 --Applied To Document Exchange Date
60499 , p_source_89 IN DATE
60500 --Cash Receipt Identifier
60501 , p_source_90 IN NUMBER
60502 --Receipt Applied To Application Identifier
60503 , p_source_92 IN NUMBER
60504 --Transaction Entity Code
60505 , p_source_93 IN VARCHAR2
60506 --Transaction Identifier
60507 , p_source_94 IN NUMBER
60508 --Distribution Party Identifier
60509 , p_source_97 IN NUMBER
60510 --Distribution Party Site Id
60511 , p_source_98 IN NUMBER
60512 --Distribution Party Type
60513 , p_source_99 IN VARCHAR2
60514 --Applied To Document Exchange Rate Type
60515 , p_source_100 IN VARCHAR2
60516 --Applied To Document Exchange Rate
60517 , p_source_101 IN NUMBER
60518 )
60519 IS
60520
60521 l_component_type VARCHAR2(80);
60522 l_component_code VARCHAR2(30);
60523 l_component_type_code VARCHAR2(1);
60524 l_component_appl_id INTEGER;
60525 l_amb_context_code VARCHAR2(30);
60526 l_entity_code VARCHAR2(30);
60527 l_event_class_code VARCHAR2(30);
60528 l_ae_header_id NUMBER;
60529 l_event_type_code VARCHAR2(30);
60530 l_line_definition_code VARCHAR2(30);
60531 l_line_definition_owner_code VARCHAR2(1);
60532 --
60533 -- adr variables
60534 l_segment VARCHAR2(30);
60535 l_ccid NUMBER;
60536 l_adr_transaction_coa_id NUMBER;
60537 l_adr_accounting_coa_id NUMBER;
60538 l_adr_flexfield_segment_code VARCHAR2(30);
60539 l_adr_flex_value_set_id NUMBER;
60540 l_adr_value_type_code VARCHAR2(30);
60541 l_adr_value_combination_id NUMBER;
60542 l_adr_value_segment_code VARCHAR2(30);
60543
60544 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60545 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60546 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60547 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60548
60549 -- 4262811 Variables ------------------------------------------------------------------------------------------
60550 l_entered_amt_idx NUMBER;
60551 l_accted_amt_idx NUMBER;
60552 l_acc_rev_flag VARCHAR2(1);
60553 l_accrual_line_num NUMBER;
60554 l_tmp_amt NUMBER;
60555 l_acc_rev_natural_side_code VARCHAR2(1);
60556
60557 l_num_entries NUMBER;
60558 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60559 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60560 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60561 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60562 l_recog_line_1 NUMBER;
60563 l_recog_line_2 NUMBER;
60564
60565 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60566 l_bflow_applied_to_amt NUMBER; -- 5132302
60567 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60568
60569 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60570
60571 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60572 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60573
60574 ---------------------------------------------------------------------------------------------------------------
60575
60576
60577 --
60578 -- bulk performance
60579 --
60580 l_balance_type_code VARCHAR2(1);
60581 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60582 l_log_module VARCHAR2(240);
60583
60584 --
60585 -- Upgrade strategy
60586 --
60587 l_actual_upg_option VARCHAR2(1);
60588 l_enc_upg_option VARCHAR2(1);
60589
60590 --
60591 BEGIN
60592 --
60593 IF g_log_enabled THEN
60594 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
60595 END IF;
60596 --
60597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60598
60599 trace
60600 (p_msg => 'BEGIN of AcctLineType_122'
60601 ,p_level => C_LEVEL_PROCEDURE
60602 ,p_module => l_log_module);
60603
60604 END IF;
60605 --
60606 l_component_type := 'AMB_JLT';
60607 l_component_code := 'RCT_UNEDISC';
60608 l_component_type_code := 'S';
60609 l_component_appl_id := 222;
60610 l_amb_context_code := 'DEFAULT';
60611 l_entity_code := 'RECEIPTS';
60615 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
60612 l_event_class_code := 'RECEIPT';
60613 l_event_type_code := 'RECEIPT_ALL';
60614 l_line_definition_owner_code := 'S';
60616 --
60617 l_balance_type_code := 'A';
60618 l_segment := NULL;
60619 l_ccid := NULL;
60620 l_adr_transaction_coa_id := NULL;
60621 l_adr_accounting_coa_id := NULL;
60622 l_adr_flexfield_segment_code := NULL;
60623 l_adr_flex_value_set_id := NULL;
60624 l_adr_value_type_code := NULL;
60625 l_adr_value_combination_id := NULL;
60626 l_adr_value_segment_code := NULL;
60627
60628 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60629 l_bflow_class_code := ''; -- 4219869 Business Flow
60630 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60631 l_budgetary_control_flag := 'N';
60632
60633 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60634 l_bflow_applied_to_amt := NULL; -- 5132302
60635 l_entered_amt_idx := NULL; -- 4262811
60636 l_accted_amt_idx := NULL; -- 4262811
60637 l_acc_rev_flag := NULL; -- 4262811
60638 l_accrual_line_num := NULL; -- 4262811
60639 l_tmp_amt := NULL; -- 4262811
60640 --
60641
60642 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60643 l_balance_type_code <> 'B' THEN
60644 IF NVL(p_source_27,'
60645 ') = 'UNEDISC' AND
60646 NVL(p_source_88,'
60647 ') = 'N'
60648 THEN
60649
60650 --
60651 XLA_AE_LINES_PKG.SetNewLine;
60652
60653 p_balance_type_code := l_balance_type_code;
60654 -- set the flag so later we will know whether the gain loss line needs to be created
60655
60656 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60657 p_actual_flag :='A';
60658 END IF;
60659
60660 --
60661 -- bulk performance
60662 --
60663 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60667 --
60664 p_header_num => 0); -- 4262811
60665 --
60666 -- set accounting line options
60668 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60669 p_natural_side_code => 'C'
60670 , p_gain_or_loss_flag => 'N'
60671 , p_gl_transfer_mode_code => 'S'
60672 , p_acct_entry_type_code => 'A'
60673 , p_switch_side_flag => 'Y'
60674 , p_merge_duplicate_code => 'A'
60675 );
60676 --
60677 l_acc_rev_natural_side_code := 'D'; -- 4262811
60678 --
60679 --
60680 -- set accounting line type info
60681 --
60682 xla_ae_lines_pkg.SetAcctLineType
60683 (p_component_type => l_component_type
60684 ,p_event_type_code => l_event_type_code
60685 ,p_line_definition_owner_code => l_line_definition_owner_code
60686 ,p_line_definition_code => l_line_definition_code
60687 ,p_accounting_line_code => l_component_code
60688 ,p_accounting_line_type_code => l_component_type_code
60689 ,p_accounting_line_appl_id => l_component_appl_id
60690 ,p_amb_context_code => l_amb_context_code
60691 ,p_entity_code => l_entity_code
60692 ,p_event_class_code => l_event_class_code);
60693 --
60694 -- set accounting class
60695 --
60696 xla_ae_lines_pkg.SetAcctClass(
60697 p_accounting_class_code => 'UNEDISC'
60698 , p_ae_header_id => l_ae_header_id
60699 );
60700
60701 --
60702 -- set rounding class
60703 --
60704 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60705 'RECEIVABLE';
60706
60707 --
60708 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60709 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60710 --
60711 -- bulk performance
60712 --
60713 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60714
60715 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60716 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60720 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60717
60718 -- 4955764
60719 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60721
60722 -- 4458381 Public Sector Enh
60723
60724 --
60725 -- set accounting attributes for the line type
60726 --
60727 l_entered_amt_idx := 8;
60728 l_accted_amt_idx := 13;
60729 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60730 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
60731 l_rec_acct_attrs.array_num_value(1) := p_source_92;
60732 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60733 l_rec_acct_attrs.array_char_value(2) := p_source_45;
60734 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
60735 l_rec_acct_attrs.array_char_value(3) := p_source_93;
60736 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
60737 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
60738 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60739 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
60740 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
60741 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
60742 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
60743 l_rec_acct_attrs.array_char_value(7) := p_source_30;
60744 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
60745 l_rec_acct_attrs.array_num_value(8) := p_source_31;
60746 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
60747 l_rec_acct_attrs.array_char_value(9) := p_source_32;
60748 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
60749 l_rec_acct_attrs.array_date_value(10) := p_source_89;
60750 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
60751 l_rec_acct_attrs.array_num_value(11) := p_source_101;
60752 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
60753 l_rec_acct_attrs.array_char_value(12) := p_source_100;
60754 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
60755 l_rec_acct_attrs.array_num_value(13) := p_source_36;
60756 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
60757 l_rec_acct_attrs.array_num_value(14) := p_source_97;
60758 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
60759 l_rec_acct_attrs.array_num_value(15) := p_source_98;
60760 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
60761 l_rec_acct_attrs.array_char_value(16) := p_source_99;
60762
60763 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60764 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60765
60766 ---------------------------------------------------------------------------------------------------------------
60767 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60768 ---------------------------------------------------------------------------------------------------------------
60769 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60770
60771 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60772 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60773
60774 IF xla_accounting_cache_pkg.GetValueChar
60775 (p_source_code => 'LEDGER_CATEGORY_CODE'
60776 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60777 AND l_bflow_method_code = 'PRIOR_ENTRY'
60778 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60779 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60780 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60781 )
60782 THEN
60783 xla_ae_lines_pkg.BflowUpgEntry
60784 (p_business_method_code => l_bflow_method_code
60785 ,p_business_class_code => l_bflow_class_code
60786 ,p_balance_type => l_balance_type_code);
60787 ELSE
60788 NULL;
60789 -- No business flow processing for business flow method of NONE.
60790 END IF;
60791
60792 --
60796
60793 -- call analytical criteria
60794 --
60795
60797 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
60798 xla_ae_lines_pkg.SetAnalyticalCriteria(
60799 p_analytical_criterion_name => 'Check Id'
60800 , p_analytical_criterion_owner => 'S'
60801 , p_analytical_criterion_code => 'CHECK_ID'
60805 , p_analytical_detail_char_1 => NULL
60802 , p_amb_context_code => 'DEFAULT'
60803 , p_balancing_flag => 'N'
60804
60806 , p_analytical_detail_num_1 => p_source_90
60807 , p_analytical_detail_date_1 => NULL
60808
60809 , p_ae_header_id => l_ae_header_id
60810 )
60811 ;
60812 --
60813
60814 --
60815 -- call description
60816 --
60817 -- No description or it is inherited.
60818 --
60819 -- call ADRs
60820 -- Bug 4922099
60821 --
60822 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60823 (NVL(l_actual_upg_option, 'N') = 'O') OR
60824 (NVL(l_enc_upg_option, 'N') = 'O')
60825 )
60826 THEN
60827 NULL;
60828 --
60829 --
60830
60831 l_ccid := AcctDerRule_20(
60832 p_application_id => p_application_id
60833 , p_ae_header_id => l_ae_header_id
60834 , p_source_22 => p_source_22
60835 , x_transaction_coa_id => l_adr_transaction_coa_id
60836 , x_accounting_coa_id => l_adr_accounting_coa_id
60837 , x_value_type_code => l_adr_value_type_code
60838 , p_side => 'NA'
60839 );
60840
60841 xla_ae_lines_pkg.set_ccid(
60842 p_code_combination_id => l_ccid
60843 , p_value_type_code => l_adr_value_type_code
60844 , p_transaction_coa_id => l_adr_transaction_coa_id
60845 , p_accounting_coa_id => l_adr_accounting_coa_id
60846 , p_adr_code => 'DIST_CCID'
60847 , p_adr_type_code => 'S'
60848 , p_component_type => l_component_type
60849 , p_component_code => l_component_code
60850 , p_component_type_code => l_component_type_code
60851 , p_component_appl_id => l_component_appl_id
60852 , p_amb_context_code => l_amb_context_code
60853 , p_side => 'NA'
60854 );
60855
60856
60857 --
60858 --
60859 END IF;
60860 --
60861 -- Bug 4922099
60862 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60863 (NVL(l_enc_upg_option, 'N') = 'O')
60864 ) AND
60865 (l_bflow_method_code = 'PRIOR_ENTRY')
60866 )
60867 THEN
60868 IF
60869 --
60870 1 = 2
60871 --
60872 THEN
60873 xla_accounting_err_pkg.build_message
60874 (p_appli_s_name => 'XLA'
60875 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60876 ,p_token_1 => 'LINE_NUMBER'
60877 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60878 ,p_token_2 => 'LINE_TYPE_NAME'
60879 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60880 l_component_type
60881 ,l_component_code
60882 ,l_component_type_code
60883 ,l_component_appl_id
60884 ,l_amb_context_code
60885 ,l_entity_code
60886 ,l_event_class_code
60887 )
60888 ,p_token_3 => 'OWNER'
60889 ,p_value_3 => xla_lookups_pkg.get_meaning(
60890 p_lookup_type => 'XLA_OWNER_TYPE'
60891 ,p_lookup_code => l_component_type_code
60892 )
60893 ,p_token_4 => 'PRODUCT_NAME'
60894 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60895 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60896 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60897 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60898 ,p_ae_header_id => NULL
60899 );
60900
60901 IF (C_LEVEL_ERROR>= g_log_level) THEN
60902 trace
60903 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60904 ,p_level => C_LEVEL_ERROR
60905 ,p_module => l_log_module);
60906 END IF;
60907 END IF;
60908 END IF;
60909 --
60910 --
60911 ------------------------------------------------------------------------------------------------
60912 -- 4219869 Business Flow
60913 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60914 -- Prior Entry. Currently, the following code is always generated.
60915 ------------------------------------------------------------------------------------------------
60916 XLA_AE_LINES_PKG.ValidateCurrentLine;
60917
60921 ------------------------------------------------------------------------------------
60918 ------------------------------------------------------------------------------------
60919 -- 4219869 Business Flow
60920 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60922 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60923
60924 ----------------------------------------------------------------------------------
60925 -- 4219869 Business Flow
60926 -- Update journal entry status -- Need to generate this within IF <condition>
60927 ----------------------------------------------------------------------------------
60931 );
60928 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60929 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60930 ,p_balance_type_code => l_balance_type_code
60932
60933 -------------------------------------------------------------------------------------------
60934 -- 4262811 - Generate the Accrual Reversal lines
60935 -------------------------------------------------------------------------------------------
60936 BEGIN
60937 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60938 (g_array_event(p_event_id).array_value_num('header_index'));
60939 IF l_acc_rev_flag IS NULL THEN
60940 l_acc_rev_flag := 'N';
60941 END IF;
60942 EXCEPTION
60943 WHEN OTHERS THEN
60944 l_acc_rev_flag := 'N';
60945 END;
60946 --
60947 IF (l_acc_rev_flag = 'Y') THEN
60948
60949 -- 4645092 ------------------------------------------------------------------------------
60950 -- To allow MPA report to determine if it should generate report process
60951 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60952 ------------------------------------------------------------------------------------------
60953
60954 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60955 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60956 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60957 -- call ADRs
60958 -- Bug 4922099
60959 --
60960 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60961 (NVL(l_actual_upg_option, 'N') = 'O') OR
60962 (NVL(l_enc_upg_option, 'N') = 'O')
60963 )
60964 THEN
60965 NULL;
60966 --
60967 --
60968
60969 l_ccid := AcctDerRule_20(
60970 p_application_id => p_application_id
60971 , p_ae_header_id => l_ae_header_id
60972 , p_source_22 => p_source_22
60973 , x_transaction_coa_id => l_adr_transaction_coa_id
60974 , x_accounting_coa_id => l_adr_accounting_coa_id
60975 , x_value_type_code => l_adr_value_type_code
60976 , p_side => 'NA'
60977 );
60978
60979 xla_ae_lines_pkg.set_ccid(
60980 p_code_combination_id => l_ccid
60981 , p_value_type_code => l_adr_value_type_code
60982 , p_transaction_coa_id => l_adr_transaction_coa_id
60983 , p_accounting_coa_id => l_adr_accounting_coa_id
60984 , p_adr_code => 'DIST_CCID'
60985 , p_adr_type_code => 'S'
60986 , p_component_type => l_component_type
60987 , p_component_code => l_component_code
60988 , p_component_type_code => l_component_type_code
60989 , p_component_appl_id => l_component_appl_id
60990 , p_amb_context_code => l_amb_context_code
60991 , p_side => 'NA'
60992 );
60993
60994
60995 --
60996 --
60997 END IF;
60998
60999 --
61000 -- Update the line information that should be overwritten
61001 --
61002 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61003 p_header_num => 1);
61004 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61005
61006 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61007
61008 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61009 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61010 END IF;
61011
61012 --
61013 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61014 --
61018 ---------------------------------------------------------------------------------------------------
61015 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61016 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61017 ELSE
61019 -- 4262811a Switch Sign
61020 ---------------------------------------------------------------------------------------------------
61021 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61022 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61023 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61024 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61025 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61026 -- 5132302
61027 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61028 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61029
61030 END IF;
61031
61032 -- 4955764
61033 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61034 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61035
61036
61037 XLA_AE_LINES_PKG.ValidateCurrentLine;
61038 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61039
61040 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61041 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61042 ,p_balance_type_code => l_balance_type_code);
61043
61044 END IF;
61045
61046 -----------------------------------------------------------------------------------------
61047 -- 4262811 Multiperiod Accounting
61048 -----------------------------------------------------------------------------------------
61049 -- No MPA option is assigned.
61050
61051
61052 END IF;
61053 END IF;
61054 --
61055
61056 --
61057 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61058 trace
61059 (p_msg => 'END of AcctLineType_122'
61060 ,p_level => C_LEVEL_PROCEDURE
61061 ,p_module => l_log_module);
61062 END IF;
61063 --
61064 EXCEPTION
61065 WHEN xla_exceptions_pkg.application_exception THEN
61066 RAISE;
61067 WHEN OTHERS THEN
61068 xla_exceptions_pkg.raise_message
61069 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_122');
61070 END AcctLineType_122;
61071 --
61072
61073 ---------------------------------------
61074 --
61078 ---------------------------------------
61075 -- PRIVATE FUNCTION
61076 -- AcctLineType_123
61077 --
61079 PROCEDURE AcctLineType_123 (
61080 p_application_id IN NUMBER
61081 ,p_event_id IN NUMBER
61082 ,p_calculate_acctd_flag IN VARCHAR2
61083 ,p_calculate_g_l_flag IN VARCHAR2
61084 ,p_actual_flag IN OUT VARCHAR2
61085 ,p_balance_type_code OUT VARCHAR2
61086 ,p_gain_or_loss_ref OUT VARCHAR2
61087
61088 --Distribution GL Account
61089 , p_source_22 IN NUMBER
61090 --Distribution Source Type
61091 , p_source_27 IN VARCHAR2
61092 --Distribution Line Identifier
61093 , p_source_29 IN NUMBER
61094 --Distribution Type
61095 , p_source_30 IN VARCHAR2
61096 --Entered Amount
61097 , p_source_31 IN NUMBER
61098 --Currency Code
61099 , p_source_32 IN VARCHAR2
61100 --Applied To Document Accounting Amount
61101 , p_source_36 IN NUMBER
61102 --Transaction Distribution Identifier
61103 , p_source_44 IN NUMBER
61104 --Transaction Distribution Type
61105 , p_source_45 IN VARCHAR2
61106 --Distribution Multi Fund Additional Entry
61107 , p_source_88 IN VARCHAR2
61108 --Applied To Document Exchange Date
61109 , p_source_89 IN DATE
61110 --Cash Receipt Identifier
61111 , p_source_90 IN NUMBER
61112 --Receipt Applied To Application Identifier
61113 , p_source_92 IN NUMBER
61114 --Transaction Entity Code
61115 , p_source_93 IN VARCHAR2
61119 , p_source_97 IN NUMBER
61116 --Transaction Identifier
61117 , p_source_94 IN NUMBER
61118 --Distribution Party Identifier
61120 --Distribution Party Site Id
61121 , p_source_98 IN NUMBER
61122 --Distribution Party Type
61123 , p_source_99 IN VARCHAR2
61124 --Applied To Document Exchange Rate Type
61125 , p_source_100 IN VARCHAR2
61126 --Applied To Document Exchange Rate
61127 , p_source_101 IN NUMBER
61128 )
61129 IS
61130
61131 l_component_type VARCHAR2(80);
61132 l_component_code VARCHAR2(30);
61133 l_component_type_code VARCHAR2(1);
61134 l_component_appl_id INTEGER;
61135 l_amb_context_code VARCHAR2(30);
61136 l_entity_code VARCHAR2(30);
61137 l_event_class_code VARCHAR2(30);
61138 l_ae_header_id NUMBER;
61139 l_event_type_code VARCHAR2(30);
61140 l_line_definition_code VARCHAR2(30);
61141 l_line_definition_owner_code VARCHAR2(1);
61142 --
61143 -- adr variables
61144 l_segment VARCHAR2(30);
61145 l_ccid NUMBER;
61146 l_adr_transaction_coa_id NUMBER;
61147 l_adr_accounting_coa_id NUMBER;
61148 l_adr_flexfield_segment_code VARCHAR2(30);
61149 l_adr_flex_value_set_id NUMBER;
61150 l_adr_value_type_code VARCHAR2(30);
61151 l_adr_value_combination_id NUMBER;
61152 l_adr_value_segment_code VARCHAR2(30);
61153
61154 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61155 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61156 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61157 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61158
61159 -- 4262811 Variables ------------------------------------------------------------------------------------------
61160 l_entered_amt_idx NUMBER;
61161 l_accted_amt_idx NUMBER;
61162 l_acc_rev_flag VARCHAR2(1);
61163 l_accrual_line_num NUMBER;
61164 l_tmp_amt NUMBER;
61165 l_acc_rev_natural_side_code VARCHAR2(1);
61166
61167 l_num_entries NUMBER;
61168 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61169 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61170 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61171 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61172 l_recog_line_1 NUMBER;
61173 l_recog_line_2 NUMBER;
61174
61175 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61176 l_bflow_applied_to_amt NUMBER; -- 5132302
61177 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61178
61179 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61180
61181 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61182 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61183
61184 ---------------------------------------------------------------------------------------------------------------
61185
61186
61187 --
61188 -- bulk performance
61189 --
61190 l_balance_type_code VARCHAR2(1);
61191 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61192 l_log_module VARCHAR2(240);
61193
61194 --
61195 -- Upgrade strategy
61196 --
61197 l_actual_upg_option VARCHAR2(1);
61198 l_enc_upg_option VARCHAR2(1);
61199
61200 --
61201 BEGIN
61202 --
61203 IF g_log_enabled THEN
61204 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
61205 END IF;
61206 --
61207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61208
61209 trace
61210 (p_msg => 'BEGIN of AcctLineType_123'
61211 ,p_level => C_LEVEL_PROCEDURE
61212 ,p_module => l_log_module);
61213
61214 END IF;
61215 --
61216 l_component_type := 'AMB_JLT';
61217 l_component_code := 'RCT_UNEDISC_NON_REC_TAX';
61218 l_component_type_code := 'S';
61219 l_component_appl_id := 222;
61220 l_amb_context_code := 'DEFAULT';
61221 l_entity_code := 'RECEIPTS';
61222 l_event_class_code := 'RECEIPT';
61223 l_event_type_code := 'RECEIPT_ALL';
61224 l_line_definition_owner_code := 'S';
61225 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
61226 --
61227 l_balance_type_code := 'A';
61228 l_segment := NULL;
61229 l_ccid := NULL;
61230 l_adr_transaction_coa_id := NULL;
61231 l_adr_accounting_coa_id := NULL;
61232 l_adr_flexfield_segment_code := NULL;
61233 l_adr_flex_value_set_id := NULL;
61234 l_adr_value_type_code := NULL;
61235 l_adr_value_combination_id := NULL;
61239 l_bflow_class_code := ''; -- 4219869 Business Flow
61236 l_adr_value_segment_code := NULL;
61237
61238 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61240 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61241 l_budgetary_control_flag := 'N';
61242
61243 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61244 l_bflow_applied_to_amt := NULL; -- 5132302
61245 l_entered_amt_idx := NULL; -- 4262811
61246 l_accted_amt_idx := NULL; -- 4262811
61247 l_acc_rev_flag := NULL; -- 4262811
61248 l_accrual_line_num := NULL; -- 4262811
61249 l_tmp_amt := NULL; -- 4262811
61250 --
61251
61252 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61253 l_balance_type_code <> 'B' THEN
61254 IF NVL(p_source_27,'
61255 ') = 'UNEDISC_NON_REC_TAX' AND
61256 NVL(p_source_88,'
61257 ') = 'N'
61258 THEN
61259
61260 --
61261 XLA_AE_LINES_PKG.SetNewLine;
61262
61263 p_balance_type_code := l_balance_type_code;
61264 -- set the flag so later we will know whether the gain loss line needs to be created
61265
61266 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61267 p_actual_flag :='A';
61268 END IF;
61269
61270 --
61271 -- bulk performance
61272 --
61273 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61274 p_header_num => 0); -- 4262811
61275 --
61276 -- set accounting line options
61277 --
61278 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61279 p_natural_side_code => 'C'
61280 , p_gain_or_loss_flag => 'N'
61281 , p_gl_transfer_mode_code => 'S'
61282 , p_acct_entry_type_code => 'A'
61283 , p_switch_side_flag => 'Y'
61284 , p_merge_duplicate_code => 'A'
61285 );
61286 --
61287 l_acc_rev_natural_side_code := 'D'; -- 4262811
61288 --
61289 --
61290 -- set accounting line type info
61291 --
61292 xla_ae_lines_pkg.SetAcctLineType
61293 (p_component_type => l_component_type
61294 ,p_event_type_code => l_event_type_code
61295 ,p_line_definition_owner_code => l_line_definition_owner_code
61296 ,p_line_definition_code => l_line_definition_code
61297 ,p_accounting_line_code => l_component_code
61298 ,p_accounting_line_type_code => l_component_type_code
61299 ,p_accounting_line_appl_id => l_component_appl_id
61300 ,p_amb_context_code => l_amb_context_code
61301 ,p_entity_code => l_entity_code
61302 ,p_event_class_code => l_event_class_code);
61303 --
61304 -- set accounting class
61305 --
61306 xla_ae_lines_pkg.SetAcctClass(
61307 p_accounting_class_code => 'UNEDISC_NON_REC_TAX'
61308 , p_ae_header_id => l_ae_header_id
61309 );
61310
61311 --
61312 -- set rounding class
61313 --
61314 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61315 'RECEIVABLE';
61316
61317 --
61318 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61319 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61320 --
61321 -- bulk performance
61322 --
61323 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61324
61325 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61326 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61327
61328 -- 4955764
61329 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61330 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61331
61332 -- 4458381 Public Sector Enh
61333
61334 --
61335 -- set accounting attributes for the line type
61336 --
61337 l_entered_amt_idx := 8;
61338 l_accted_amt_idx := 13;
61339 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61343 l_rec_acct_attrs.array_char_value(2) := p_source_45;
61340 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
61341 l_rec_acct_attrs.array_num_value(1) := p_source_92;
61342 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61344 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
61345 l_rec_acct_attrs.array_char_value(3) := p_source_93;
61346 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
61347 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
61348 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61349 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
61350 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
61351 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
61352 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
61353 l_rec_acct_attrs.array_char_value(7) := p_source_30;
61354 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
61355 l_rec_acct_attrs.array_num_value(8) := p_source_31;
61356 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
61357 l_rec_acct_attrs.array_char_value(9) := p_source_32;
61358 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
61359 l_rec_acct_attrs.array_date_value(10) := p_source_89;
61360 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
61361 l_rec_acct_attrs.array_num_value(11) := p_source_101;
61362 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
61363 l_rec_acct_attrs.array_char_value(12) := p_source_100;
61364 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
61365 l_rec_acct_attrs.array_num_value(13) := p_source_36;
61366 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
61367 l_rec_acct_attrs.array_num_value(14) := p_source_97;
61368 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
61369 l_rec_acct_attrs.array_num_value(15) := p_source_98;
61370 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
61371 l_rec_acct_attrs.array_char_value(16) := p_source_99;
61372
61373 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61374 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61375
61376 ---------------------------------------------------------------------------------------------------------------
61377 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61378 ---------------------------------------------------------------------------------------------------------------
61379 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61380
61381 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61382 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61383
61384 IF xla_accounting_cache_pkg.GetValueChar
61385 (p_source_code => 'LEDGER_CATEGORY_CODE'
61386 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61387 AND l_bflow_method_code = 'PRIOR_ENTRY'
61388 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61389 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61390 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61391 )
61392 THEN
61393 xla_ae_lines_pkg.BflowUpgEntry
61394 (p_business_method_code => l_bflow_method_code
61395 ,p_business_class_code => l_bflow_class_code
61396 ,p_balance_type => l_balance_type_code);
61397 ELSE
61398 NULL;
61399 -- No business flow processing for business flow method of NONE.
61400 END IF;
61401
61402 --
61403 -- call analytical criteria
61404 --
61405
61406
61407 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
61408 xla_ae_lines_pkg.SetAnalyticalCriteria(
61409 p_analytical_criterion_name => 'Check Id'
61410 , p_analytical_criterion_owner => 'S'
61411 , p_analytical_criterion_code => 'CHECK_ID'
61412 , p_amb_context_code => 'DEFAULT'
61413 , p_balancing_flag => 'N'
61414
61415 , p_analytical_detail_char_1 => NULL
61416 , p_analytical_detail_num_1 => p_source_90
61417 , p_analytical_detail_date_1 => NULL
61418
61419 , p_ae_header_id => l_ae_header_id
61420 )
61421 ;
61422 --
61423
61424 --
61425 -- call description
61426 --
61427 -- No description or it is inherited.
61428 --
61429 -- call ADRs
61430 -- Bug 4922099
61431 --
61432 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61433 (NVL(l_actual_upg_option, 'N') = 'O') OR
61434 (NVL(l_enc_upg_option, 'N') = 'O')
61435 )
61436 THEN
61437 NULL;
61438 --
61439 --
61440
61441 l_ccid := AcctDerRule_20(
61442 p_application_id => p_application_id
61443 , p_ae_header_id => l_ae_header_id
61444 , p_source_22 => p_source_22
61445 , x_transaction_coa_id => l_adr_transaction_coa_id
61446 , x_accounting_coa_id => l_adr_accounting_coa_id
61447 , x_value_type_code => l_adr_value_type_code
61448 , p_side => 'NA'
61449 );
61450
61451 xla_ae_lines_pkg.set_ccid(
61452 p_code_combination_id => l_ccid
61453 , p_value_type_code => l_adr_value_type_code
61454 , p_transaction_coa_id => l_adr_transaction_coa_id
61455 , p_accounting_coa_id => l_adr_accounting_coa_id
61459 , p_component_code => l_component_code
61456 , p_adr_code => 'DIST_CCID'
61457 , p_adr_type_code => 'S'
61458 , p_component_type => l_component_type
61460 , p_component_type_code => l_component_type_code
61461 , p_component_appl_id => l_component_appl_id
61462 , p_amb_context_code => l_amb_context_code
61463 , p_side => 'NA'
61464 );
61465
61466
61467 --
61468 --
61469 END IF;
61470 --
61471 -- Bug 4922099
61472 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61473 (NVL(l_enc_upg_option, 'N') = 'O')
61474 ) AND
61475 (l_bflow_method_code = 'PRIOR_ENTRY')
61476 )
61477 THEN
61478 IF
61479 --
61480 1 = 2
61481 --
61482 THEN
61483 xla_accounting_err_pkg.build_message
61484 (p_appli_s_name => 'XLA'
61485 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61486 ,p_token_1 => 'LINE_NUMBER'
61487 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61488 ,p_token_2 => 'LINE_TYPE_NAME'
61489 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61490 l_component_type
61491 ,l_component_code
61492 ,l_component_type_code
61493 ,l_component_appl_id
61494 ,l_amb_context_code
61495 ,l_entity_code
61496 ,l_event_class_code
61497 )
61498 ,p_token_3 => 'OWNER'
61499 ,p_value_3 => xla_lookups_pkg.get_meaning(
61500 p_lookup_type => 'XLA_OWNER_TYPE'
61501 ,p_lookup_code => l_component_type_code
61502 )
61503 ,p_token_4 => 'PRODUCT_NAME'
61504 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61505 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61506 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61507 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61508 ,p_ae_header_id => NULL
61509 );
61510
61511 IF (C_LEVEL_ERROR>= g_log_level) THEN
61512 trace
61513 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61514 ,p_level => C_LEVEL_ERROR
61515 ,p_module => l_log_module);
61516 END IF;
61517 END IF;
61518 END IF;
61519 --
61520 --
61521 ------------------------------------------------------------------------------------------------
61522 -- 4219869 Business Flow
61523 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61524 -- Prior Entry. Currently, the following code is always generated.
61525 ------------------------------------------------------------------------------------------------
61526 XLA_AE_LINES_PKG.ValidateCurrentLine;
61527
61528 ------------------------------------------------------------------------------------
61529 -- 4219869 Business Flow
61530 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61531 ------------------------------------------------------------------------------------
61532 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61533
61534 ----------------------------------------------------------------------------------
61535 -- 4219869 Business Flow
61536 -- Update journal entry status -- Need to generate this within IF <condition>
61537 ----------------------------------------------------------------------------------
61538 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61539 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61540 ,p_balance_type_code => l_balance_type_code
61541 );
61542
61543 -------------------------------------------------------------------------------------------
61544 -- 4262811 - Generate the Accrual Reversal lines
61545 -------------------------------------------------------------------------------------------
61546 BEGIN
61547 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61548 (g_array_event(p_event_id).array_value_num('header_index'));
61549 IF l_acc_rev_flag IS NULL THEN
61550 l_acc_rev_flag := 'N';
61551 END IF;
61552 EXCEPTION
61553 WHEN OTHERS THEN
61554 l_acc_rev_flag := 'N';
61555 END;
61556 --
61557 IF (l_acc_rev_flag = 'Y') THEN
61558
61562 ------------------------------------------------------------------------------------------
61559 -- 4645092 ------------------------------------------------------------------------------
61560 -- To allow MPA report to determine if it should generate report process
61561 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61563
61564 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61565 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61566 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61567 -- call ADRs
61568 -- Bug 4922099
61569 --
61570 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61571 (NVL(l_actual_upg_option, 'N') = 'O') OR
61572 (NVL(l_enc_upg_option, 'N') = 'O')
61573 )
61574 THEN
61575 NULL;
61576 --
61577 --
61578
61579 l_ccid := AcctDerRule_20(
61580 p_application_id => p_application_id
61581 , p_ae_header_id => l_ae_header_id
61582 , p_source_22 => p_source_22
61583 , x_transaction_coa_id => l_adr_transaction_coa_id
61584 , x_accounting_coa_id => l_adr_accounting_coa_id
61585 , x_value_type_code => l_adr_value_type_code
61586 , p_side => 'NA'
61587 );
61588
61589 xla_ae_lines_pkg.set_ccid(
61590 p_code_combination_id => l_ccid
61591 , p_value_type_code => l_adr_value_type_code
61592 , p_transaction_coa_id => l_adr_transaction_coa_id
61593 , p_accounting_coa_id => l_adr_accounting_coa_id
61594 , p_adr_code => 'DIST_CCID'
61595 , p_adr_type_code => 'S'
61596 , p_component_type => l_component_type
61597 , p_component_code => l_component_code
61598 , p_component_type_code => l_component_type_code
61599 , p_component_appl_id => l_component_appl_id
61600 , p_amb_context_code => l_amb_context_code
61601 , p_side => 'NA'
61602 );
61603
61604
61605 --
61606 --
61607 END IF;
61608
61609 --
61610 -- Update the line information that should be overwritten
61611 --
61612 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61613 p_header_num => 1);
61614 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61615
61616 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61617
61618 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61619 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61620 END IF;
61621
61622 --
61623 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61624 --
61625 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61626 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61627 ELSE
61628 ---------------------------------------------------------------------------------------------------
61629 -- 4262811a Switch Sign
61630 ---------------------------------------------------------------------------------------------------
61631 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61632 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61634 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61636 -- 5132302
61637 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61639
61640 END IF;
61641
61642 -- 4955764
61648 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61643 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61644 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61645
61646
61647 XLA_AE_LINES_PKG.ValidateCurrentLine;
61649
61650 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61651 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61652 ,p_balance_type_code => l_balance_type_code);
61653
61654 END IF;
61655
61656 -----------------------------------------------------------------------------------------
61657 -- 4262811 Multiperiod Accounting
61658 -----------------------------------------------------------------------------------------
61659 -- No MPA option is assigned.
61660
61661
61662 END IF;
61663 END IF;
61664 --
61665
61666 --
61667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61668 trace
61669 (p_msg => 'END of AcctLineType_123'
61670 ,p_level => C_LEVEL_PROCEDURE
61671 ,p_module => l_log_module);
61672 END IF;
61673 --
61674 EXCEPTION
61675 WHEN xla_exceptions_pkg.application_exception THEN
61676 RAISE;
61677 WHEN OTHERS THEN
61678 xla_exceptions_pkg.raise_message
61679 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_123');
61680 END AcctLineType_123;
61681 --
61682
61683 ---------------------------------------
61684 --
61685 -- PRIVATE FUNCTION
61686 -- AcctLineType_124
61687 --
61688 ---------------------------------------
61689 PROCEDURE AcctLineType_124 (
61690 p_application_id IN NUMBER
61691 ,p_event_id IN NUMBER
61692 ,p_calculate_acctd_flag IN VARCHAR2
61693 ,p_calculate_g_l_flag IN VARCHAR2
61694 ,p_actual_flag IN OUT VARCHAR2
61695 ,p_balance_type_code OUT VARCHAR2
61696 ,p_gain_or_loss_ref OUT VARCHAR2
61697
61698 --Distribution GL Account
61699 , p_source_22 IN NUMBER
61700 --Distribution Source Type
61701 , p_source_27 IN VARCHAR2
61702 --Distribution Line Identifier
61703 , p_source_29 IN NUMBER
61704 --Distribution Type
61705 , p_source_30 IN VARCHAR2
61706 --Exchange Date
61707 , p_source_33 IN DATE
61708 --Exchange Rate
61709 , p_source_34 IN NUMBER
61710 --Exchange Rate Type
61711 , p_source_35 IN VARCHAR2
61712 --Accounting Amount
61713 , p_source_40 IN NUMBER
61714 --Transaction Distribution Identifier
61715 , p_source_44 IN NUMBER
61716 --Transaction Distribution Type
61717 , p_source_45 IN VARCHAR2
61718 --Distribution Multi Fund Additional Entry
61719 , p_source_88 IN VARCHAR2
61720 --Cash Receipt Identifier
61721 , p_source_90 IN NUMBER
61722 --Receipt Applied To Application Identifier
61723 , p_source_92 IN NUMBER
61724 --Transaction Entity Code
61725 , p_source_93 IN VARCHAR2
61726 --Transaction Identifier
61727 , p_source_94 IN NUMBER
61728 --DIST_ENT_AMT_FROM
61729 , p_source_95 IN NUMBER
61730 --Applying Document Currency Code
61731 , p_source_96 IN VARCHAR2
61732 --Distribution Party Identifier
61733 , p_source_97 IN NUMBER
61734 --Distribution Party Site Id
61735 , p_source_98 IN NUMBER
61736 --Distribution Party Type
61737 , p_source_99 IN VARCHAR2
61738 )
61739 IS
61740
61741 l_component_type VARCHAR2(80);
61742 l_component_code VARCHAR2(30);
61743 l_component_type_code VARCHAR2(1);
61744 l_component_appl_id INTEGER;
61745 l_amb_context_code VARCHAR2(30);
61746 l_entity_code VARCHAR2(30);
61747 l_event_class_code VARCHAR2(30);
61748 l_ae_header_id NUMBER;
61749 l_event_type_code VARCHAR2(30);
61750 l_line_definition_code VARCHAR2(30);
61751 l_line_definition_owner_code VARCHAR2(1);
61752 --
61753 -- adr variables
61754 l_segment VARCHAR2(30);
61755 l_ccid NUMBER;
61756 l_adr_transaction_coa_id NUMBER;
61757 l_adr_accounting_coa_id NUMBER;
61758 l_adr_flexfield_segment_code VARCHAR2(30);
61759 l_adr_flex_value_set_id NUMBER;
61760 l_adr_value_type_code VARCHAR2(30);
61761 l_adr_value_combination_id NUMBER;
61762 l_adr_value_segment_code VARCHAR2(30);
61763
61764 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61765 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61766 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61767 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61768
61769 -- 4262811 Variables ------------------------------------------------------------------------------------------
61770 l_entered_amt_idx NUMBER;
61771 l_accted_amt_idx NUMBER;
61772 l_acc_rev_flag VARCHAR2(1);
61773 l_accrual_line_num NUMBER;
61774 l_tmp_amt NUMBER;
61775 l_acc_rev_natural_side_code VARCHAR2(1);
61776
61777 l_num_entries NUMBER;
61778 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61779 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61780 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61781 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61782 l_recog_line_1 NUMBER;
61783 l_recog_line_2 NUMBER;
61784
61785 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61789 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61786 l_bflow_applied_to_amt NUMBER; -- 5132302
61787 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61788
61790
61791 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61792 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61793
61794 ---------------------------------------------------------------------------------------------------------------
61795
61796
61797 --
61798 -- bulk performance
61799 --
61800 l_balance_type_code VARCHAR2(1);
61801 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61802 l_log_module VARCHAR2(240);
61803
61804 --
61805 -- Upgrade strategy
61806 --
61810 --
61807 l_actual_upg_option VARCHAR2(1);
61808 l_enc_upg_option VARCHAR2(1);
61809
61811 BEGIN
61812 --
61813 IF g_log_enabled THEN
61814 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
61815 END IF;
61816 --
61817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61818
61819 trace
61820 (p_msg => 'BEGIN of AcctLineType_124'
61821 ,p_level => C_LEVEL_PROCEDURE
61822 ,p_module => l_log_module);
61823
61824 END IF;
61825 --
61826 l_component_type := 'AMB_JLT';
61827 l_component_code := 'RCT_UNID';
61828 l_component_type_code := 'S';
61829 l_component_appl_id := 222;
61830 l_amb_context_code := 'DEFAULT';
61831 l_entity_code := 'RECEIPTS';
61832 l_event_class_code := 'RECEIPT';
61833 l_event_type_code := 'RECEIPT_ALL';
61834 l_line_definition_owner_code := 'S';
61835 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
61836 --
61837 l_balance_type_code := 'A';
61838 l_segment := NULL;
61839 l_ccid := NULL;
61840 l_adr_transaction_coa_id := NULL;
61841 l_adr_accounting_coa_id := NULL;
61842 l_adr_flexfield_segment_code := NULL;
61843 l_adr_flex_value_set_id := NULL;
61844 l_adr_value_type_code := NULL;
61845 l_adr_value_combination_id := NULL;
61846 l_adr_value_segment_code := NULL;
61847
61848 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61849 l_bflow_class_code := ''; -- 4219869 Business Flow
61850 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61851 l_budgetary_control_flag := 'N';
61852
61853 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61854 l_bflow_applied_to_amt := NULL; -- 5132302
61855 l_entered_amt_idx := NULL; -- 4262811
61859 l_tmp_amt := NULL; -- 4262811
61856 l_accted_amt_idx := NULL; -- 4262811
61857 l_acc_rev_flag := NULL; -- 4262811
61858 l_accrual_line_num := NULL; -- 4262811
61860 --
61861
61862 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61863 l_balance_type_code <> 'B' THEN
61864 IF NVL(p_source_27,'
61865 ') = 'UNID' AND
61866 NVL(p_source_88,'
61867 ') = 'N'
61868 THEN
61869
61870 --
61871 XLA_AE_LINES_PKG.SetNewLine;
61872
61873 p_balance_type_code := l_balance_type_code;
61874 -- set the flag so later we will know whether the gain loss line needs to be created
61875
61876 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61877 p_actual_flag :='A';
61878 END IF;
61879
61880 --
61881 -- bulk performance
61882 --
61883 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61884 p_header_num => 0); -- 4262811
61885 --
61886 -- set accounting line options
61887 --
61888 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61889 p_natural_side_code => 'C'
61890 , p_gain_or_loss_flag => 'N'
61891 , p_gl_transfer_mode_code => 'S'
61892 , p_acct_entry_type_code => 'A'
61893 , p_switch_side_flag => 'Y'
61894 , p_merge_duplicate_code => 'A'
61895 );
61896 --
61897 l_acc_rev_natural_side_code := 'D'; -- 4262811
61898 --
61899 --
61900 -- set accounting line type info
61901 --
61902 xla_ae_lines_pkg.SetAcctLineType
61903 (p_component_type => l_component_type
61904 ,p_event_type_code => l_event_type_code
61905 ,p_line_definition_owner_code => l_line_definition_owner_code
61906 ,p_line_definition_code => l_line_definition_code
61907 ,p_accounting_line_code => l_component_code
61908 ,p_accounting_line_type_code => l_component_type_code
61909 ,p_accounting_line_appl_id => l_component_appl_id
61910 ,p_amb_context_code => l_amb_context_code
61911 ,p_entity_code => l_entity_code
61912 ,p_event_class_code => l_event_class_code);
61913 --
61914 -- set accounting class
61915 --
61916 xla_ae_lines_pkg.SetAcctClass(
61917 p_accounting_class_code => 'UNID'
61918 , p_ae_header_id => l_ae_header_id
61919 );
61920
61921 --
61922 -- set rounding class
61923 --
61924 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61925 'RECEIVABLE';
61926
61927 --
61928 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61929 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61930 --
61931 -- bulk performance
61932 --
61933 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61934
61935 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61936 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61937
61938 -- 4955764
61939 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61940 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61941
61942 -- 4458381 Public Sector Enh
61943
61944 --
61945 -- set accounting attributes for the line type
61946 --
61947 l_entered_amt_idx := 8;
61948 l_accted_amt_idx := 13;
61949 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61950 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
61951 l_rec_acct_attrs.array_num_value(1) := p_source_92;
61952 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61953 l_rec_acct_attrs.array_char_value(2) := p_source_45;
61954 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
61955 l_rec_acct_attrs.array_char_value(3) := p_source_93;
61956 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
61957 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
61958 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61959 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
61960 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
61961 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
61962 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
61963 l_rec_acct_attrs.array_char_value(7) := p_source_30;
61964 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
61965 l_rec_acct_attrs.array_num_value(8) := p_source_95;
61966 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
61967 l_rec_acct_attrs.array_char_value(9) := p_source_96;
61968 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
61969 l_rec_acct_attrs.array_date_value(10) := p_source_33;
61970 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
61971 l_rec_acct_attrs.array_num_value(11) := p_source_34;
61972 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
61973 l_rec_acct_attrs.array_char_value(12) := p_source_35;
61974 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
61975 l_rec_acct_attrs.array_num_value(13) := p_source_40;
61976 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
61977 l_rec_acct_attrs.array_num_value(14) := p_source_97;
61981 l_rec_acct_attrs.array_char_value(16) := p_source_99;
61978 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
61979 l_rec_acct_attrs.array_num_value(15) := p_source_98;
61980 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
61982
61983 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61984 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61985
61986 ---------------------------------------------------------------------------------------------------------------
61987 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61988 ---------------------------------------------------------------------------------------------------------------
61989 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61990
61991 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61992 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61993
61994 IF xla_accounting_cache_pkg.GetValueChar
61995 (p_source_code => 'LEDGER_CATEGORY_CODE'
61996 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61997 AND l_bflow_method_code = 'PRIOR_ENTRY'
61998 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61999 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62000 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62001 )
62002 THEN
62003 xla_ae_lines_pkg.BflowUpgEntry
62004 (p_business_method_code => l_bflow_method_code
62005 ,p_business_class_code => l_bflow_class_code
62006 ,p_balance_type => l_balance_type_code);
62007 ELSE
62008 NULL;
62009 -- No business flow processing for business flow method of NONE.
62010 END IF;
62011
62012 --
62013 -- call analytical criteria
62014 --
62015
62016
62017 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
62018 xla_ae_lines_pkg.SetAnalyticalCriteria(
62019 p_analytical_criterion_name => 'Check Id'
62020 , p_analytical_criterion_owner => 'S'
62021 , p_analytical_criterion_code => 'CHECK_ID'
62022 , p_amb_context_code => 'DEFAULT'
62023 , p_balancing_flag => 'N'
62024
62025 , p_analytical_detail_char_1 => NULL
62026 , p_analytical_detail_num_1 => p_source_90
62027 , p_analytical_detail_date_1 => NULL
62028
62029 , p_ae_header_id => l_ae_header_id
62030 )
62031 ;
62032 --
62033
62034
62035 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
62036 xla_ae_lines_pkg.SetAnalyticalCriteria(
62037 p_analytical_criterion_name => 'Distribution Source Type'
62038 , p_analytical_criterion_owner => 'S'
62039 , p_analytical_criterion_code => 'DISTRIBUTION_SOURCE_TYPE'
62040 , p_amb_context_code => 'DEFAULT'
62041 , p_balancing_flag => 'N'
62042
62043 , p_analytical_detail_char_1 => TO_CHAR(p_source_27)
62044 , p_analytical_detail_num_1 => NULL
62045 , p_analytical_detail_date_1 => NULL
62046
62047 , p_ae_header_id => l_ae_header_id
62048 )
62049 ;
62050 --
62051
62052 --
62053 -- call description
62054 --
62055 -- No description or it is inherited.
62056 --
62057 -- call ADRs
62058 -- Bug 4922099
62059 --
62060 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62061 (NVL(l_actual_upg_option, 'N') = 'O') OR
62062 (NVL(l_enc_upg_option, 'N') = 'O')
62063 )
62064 THEN
62065 NULL;
62066 --
62067 --
62068
62069 l_ccid := AcctDerRule_20(
62070 p_application_id => p_application_id
62071 , p_ae_header_id => l_ae_header_id
62072 , p_source_22 => p_source_22
62073 , x_transaction_coa_id => l_adr_transaction_coa_id
62074 , x_accounting_coa_id => l_adr_accounting_coa_id
62075 , x_value_type_code => l_adr_value_type_code
62076 , p_side => 'NA'
62077 );
62078
62079 xla_ae_lines_pkg.set_ccid(
62080 p_code_combination_id => l_ccid
62081 , p_value_type_code => l_adr_value_type_code
62082 , p_transaction_coa_id => l_adr_transaction_coa_id
62083 , p_accounting_coa_id => l_adr_accounting_coa_id
62084 , p_adr_code => 'DIST_CCID'
62085 , p_adr_type_code => 'S'
62086 , p_component_type => l_component_type
62087 , p_component_code => l_component_code
62088 , p_component_type_code => l_component_type_code
62089 , p_component_appl_id => l_component_appl_id
62090 , p_amb_context_code => l_amb_context_code
62091 , p_side => 'NA'
62092 );
62093
62094
62095 --
62096 --
62097 END IF;
62098 --
62099 -- Bug 4922099
62100 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62101 (NVL(l_enc_upg_option, 'N') = 'O')
62102 ) AND
62103 (l_bflow_method_code = 'PRIOR_ENTRY')
62104 )
62105 THEN
62106 IF
62107 --
62108 1 = 2
62109 --
62110 THEN
62111 xla_accounting_err_pkg.build_message
62112 (p_appli_s_name => 'XLA'
62113 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62117 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62114 ,p_token_1 => 'LINE_NUMBER'
62115 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62116 ,p_token_2 => 'LINE_TYPE_NAME'
62118 l_component_type
62119 ,l_component_code
62120 ,l_component_type_code
62121 ,l_component_appl_id
62122 ,l_amb_context_code
62123 ,l_entity_code
62124 ,l_event_class_code
62125 )
62126 ,p_token_3 => 'OWNER'
62127 ,p_value_3 => xla_lookups_pkg.get_meaning(
62128 p_lookup_type => 'XLA_OWNER_TYPE'
62129 ,p_lookup_code => l_component_type_code
62130 )
62131 ,p_token_4 => 'PRODUCT_NAME'
62132 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62133 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62134 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62135 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62136 ,p_ae_header_id => NULL
62137 );
62138
62139 IF (C_LEVEL_ERROR>= g_log_level) THEN
62140 trace
62141 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62142 ,p_level => C_LEVEL_ERROR
62143 ,p_module => l_log_module);
62144 END IF;
62145 END IF;
62146 END IF;
62147 --
62148 --
62149 ------------------------------------------------------------------------------------------------
62150 -- 4219869 Business Flow
62151 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62152 -- Prior Entry. Currently, the following code is always generated.
62153 ------------------------------------------------------------------------------------------------
62154 XLA_AE_LINES_PKG.ValidateCurrentLine;
62155
62156 ------------------------------------------------------------------------------------
62157 -- 4219869 Business Flow
62158 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62159 ------------------------------------------------------------------------------------
62160 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62161
62162 ----------------------------------------------------------------------------------
62163 -- 4219869 Business Flow
62164 -- Update journal entry status -- Need to generate this within IF <condition>
62165 ----------------------------------------------------------------------------------
62166 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62167 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62168 ,p_balance_type_code => l_balance_type_code
62169 );
62170
62171 -------------------------------------------------------------------------------------------
62172 -- 4262811 - Generate the Accrual Reversal lines
62173 -------------------------------------------------------------------------------------------
62174 BEGIN
62175 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62176 (g_array_event(p_event_id).array_value_num('header_index'));
62177 IF l_acc_rev_flag IS NULL THEN
62178 l_acc_rev_flag := 'N';
62179 END IF;
62180 EXCEPTION
62181 WHEN OTHERS THEN
62182 l_acc_rev_flag := 'N';
62183 END;
62184 --
62185 IF (l_acc_rev_flag = 'Y') THEN
62186
62187 -- 4645092 ------------------------------------------------------------------------------
62188 -- To allow MPA report to determine if it should generate report process
62189 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62190 ------------------------------------------------------------------------------------------
62191
62192 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62193 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62194 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62195 -- call ADRs
62196 -- Bug 4922099
62197 --
62198 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62199 (NVL(l_actual_upg_option, 'N') = 'O') OR
62200 (NVL(l_enc_upg_option, 'N') = 'O')
62201 )
62202 THEN
62203 NULL;
62204 --
62205 --
62206
62207 l_ccid := AcctDerRule_20(
62208 p_application_id => p_application_id
62209 , p_ae_header_id => l_ae_header_id
62210 , p_source_22 => p_source_22
62211 , x_transaction_coa_id => l_adr_transaction_coa_id
62212 , x_accounting_coa_id => l_adr_accounting_coa_id
62216
62213 , x_value_type_code => l_adr_value_type_code
62214 , p_side => 'NA'
62215 );
62217 xla_ae_lines_pkg.set_ccid(
62218 p_code_combination_id => l_ccid
62219 , p_value_type_code => l_adr_value_type_code
62220 , p_transaction_coa_id => l_adr_transaction_coa_id
62221 , p_accounting_coa_id => l_adr_accounting_coa_id
62222 , p_adr_code => 'DIST_CCID'
62223 , p_adr_type_code => 'S'
62224 , p_component_type => l_component_type
62225 , p_component_code => l_component_code
62226 , p_component_type_code => l_component_type_code
62227 , p_component_appl_id => l_component_appl_id
62228 , p_amb_context_code => l_amb_context_code
62229 , p_side => 'NA'
62230 );
62231
62232
62233 --
62234 --
62235 END IF;
62236
62237 --
62238 -- Update the line information that should be overwritten
62239 --
62240 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62241 p_header_num => 1);
62242 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62243
62244 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62245
62246 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62247 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62248 END IF;
62249
62250 --
62251 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62252 --
62253 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62254 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62255 ELSE
62256 ---------------------------------------------------------------------------------------------------
62257 -- 4262811a Switch Sign
62258 ---------------------------------------------------------------------------------------------------
62259 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62260 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62261 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62262 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62263 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62264 -- 5132302
62265 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62266 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62267
62268 END IF;
62269
62270 -- 4955764
62271 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62272 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62273
62274
62275 XLA_AE_LINES_PKG.ValidateCurrentLine;
62276 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62277
62278 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62279 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62280 ,p_balance_type_code => l_balance_type_code);
62281
62282 END IF;
62283
62284 -----------------------------------------------------------------------------------------
62285 -- 4262811 Multiperiod Accounting
62286 -----------------------------------------------------------------------------------------
62287 -- No MPA option is assigned.
62288
62289
62290 END IF;
62291 END IF;
62292 --
62293
62294 --
62295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62296 trace
62297 (p_msg => 'END of AcctLineType_124'
62298 ,p_level => C_LEVEL_PROCEDURE
62299 ,p_module => l_log_module);
62300 END IF;
62301 --
62302 EXCEPTION
62303 WHEN xla_exceptions_pkg.application_exception THEN
62304 RAISE;
62305 WHEN OTHERS THEN
62306 xla_exceptions_pkg.raise_message
62307 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_124');
62308 END AcctLineType_124;
62309 --
62310
62311 ---------------------------------------
62312 --
62313 -- PRIVATE FUNCTION
62314 -- AcctLineType_125
62315 --
62316 ---------------------------------------
62317 PROCEDURE AcctLineType_125 (
62318 p_application_id IN NUMBER
62319 ,p_event_id IN NUMBER
62320 ,p_calculate_acctd_flag IN VARCHAR2
62321 ,p_calculate_g_l_flag IN VARCHAR2
62322 ,p_actual_flag IN OUT VARCHAR2
62323 ,p_balance_type_code OUT VARCHAR2
62324 ,p_gain_or_loss_ref OUT VARCHAR2
62325
62326 --Distribution GL Account
62327 , p_source_22 IN NUMBER
62328 --Distribution Source Type
62329 , p_source_27 IN VARCHAR2
62330 --Receivable Activity Type
62331 , p_source_28 IN VARCHAR2
62332 --Distribution Line Identifier
62333 , p_source_29 IN NUMBER
62334 --Distribution Type
62335 , p_source_30 IN VARCHAR2
62336 --Exchange Date
62337 , p_source_33 IN DATE
62338 --Exchange Rate
62339 , p_source_34 IN NUMBER
62340 --Exchange Rate Type
62341 , p_source_35 IN VARCHAR2
62342 --Accounting Amount
62346 --Transaction Distribution Type
62343 , p_source_40 IN NUMBER
62344 --Transaction Distribution Identifier
62345 , p_source_44 IN NUMBER
62347 , p_source_45 IN VARCHAR2
62348 --Distribution Multi Fund Additional Entry
62349 , p_source_88 IN VARCHAR2
62350 --Cash Receipt Identifier
62351 , p_source_90 IN NUMBER
62352 --Receipt Applied To Application Identifier
62353 , p_source_92 IN NUMBER
62354 --Transaction Entity Code
62355 , p_source_93 IN VARCHAR2
62356 --Transaction Identifier
62357 , p_source_94 IN NUMBER
62358 --DIST_ENT_AMT_FROM
62359 , p_source_95 IN NUMBER
62360 --Applying Document Currency Code
62361 , p_source_96 IN VARCHAR2
62362 --Distribution Party Identifier
62363 , p_source_97 IN NUMBER
62364 --Distribution Party Site Id
62365 , p_source_98 IN NUMBER
62366 --Distribution Party Type
62367 , p_source_99 IN VARCHAR2
62368 --Receivable Activity Name
62369 , p_source_103 IN VARCHAR2
62370 )
62371 IS
62372
62373 l_component_type VARCHAR2(80);
62374 l_component_code VARCHAR2(30);
62375 l_component_type_code VARCHAR2(1);
62376 l_component_appl_id INTEGER;
62377 l_amb_context_code VARCHAR2(30);
62378 l_entity_code VARCHAR2(30);
62379 l_event_class_code VARCHAR2(30);
62380 l_ae_header_id NUMBER;
62381 l_event_type_code VARCHAR2(30);
62382 l_line_definition_code VARCHAR2(30);
62383 l_line_definition_owner_code VARCHAR2(1);
62384 --
62385 -- adr variables
62386 l_segment VARCHAR2(30);
62387 l_ccid NUMBER;
62388 l_adr_transaction_coa_id NUMBER;
62392 l_adr_value_type_code VARCHAR2(30);
62389 l_adr_accounting_coa_id NUMBER;
62390 l_adr_flexfield_segment_code VARCHAR2(30);
62391 l_adr_flex_value_set_id NUMBER;
62393 l_adr_value_combination_id NUMBER;
62394 l_adr_value_segment_code VARCHAR2(30);
62395
62396 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62397 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62398 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62399 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62400
62401 -- 4262811 Variables ------------------------------------------------------------------------------------------
62402 l_entered_amt_idx NUMBER;
62403 l_accted_amt_idx NUMBER;
62404 l_acc_rev_flag VARCHAR2(1);
62405 l_accrual_line_num NUMBER;
62406 l_tmp_amt NUMBER;
62410 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62407 l_acc_rev_natural_side_code VARCHAR2(1);
62408
62409 l_num_entries NUMBER;
62411 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62412 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62413 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62414 l_recog_line_1 NUMBER;
62415 l_recog_line_2 NUMBER;
62416
62417 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62418 l_bflow_applied_to_amt NUMBER; -- 5132302
62419 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62420
62421 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62422
62423 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62424 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62425
62426 ---------------------------------------------------------------------------------------------------------------
62427
62428
62429 --
62430 -- bulk performance
62431 --
62432 l_balance_type_code VARCHAR2(1);
62433 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62434 l_log_module VARCHAR2(240);
62435
62436 --
62437 -- Upgrade strategy
62438 --
62439 l_actual_upg_option VARCHAR2(1);
62440 l_enc_upg_option VARCHAR2(1);
62441
62442 --
62443 BEGIN
62444 --
62445 IF g_log_enabled THEN
62446 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
62447 END IF;
62448 --
62449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62450
62451 trace
62452 (p_msg => 'BEGIN of AcctLineType_125'
62453 ,p_level => C_LEVEL_PROCEDURE
62454 ,p_module => l_log_module);
62455
62456 END IF;
62457 --
62458 l_component_type := 'AMB_JLT';
62459 l_component_code := 'RCT_WRITEOFF';
62460 l_component_type_code := 'S';
62461 l_component_appl_id := 222;
62462 l_amb_context_code := 'DEFAULT';
62463 l_entity_code := 'RECEIPTS';
62464 l_event_class_code := 'RECEIPT';
62465 l_event_type_code := 'RECEIPT_ALL';
62466 l_line_definition_owner_code := 'S';
62467 l_line_definition_code := 'JA_CN_AR_RCT_DEFAULT_ACCRUAL';
62468 --
62469 l_balance_type_code := 'A';
62470 l_segment := NULL;
62471 l_ccid := NULL;
62472 l_adr_transaction_coa_id := NULL;
62473 l_adr_accounting_coa_id := NULL;
62474 l_adr_flexfield_segment_code := NULL;
62475 l_adr_flex_value_set_id := NULL;
62476 l_adr_value_type_code := NULL;
62477 l_adr_value_combination_id := NULL;
62478 l_adr_value_segment_code := NULL;
62479
62480 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62481 l_bflow_class_code := ''; -- 4219869 Business Flow
62482 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62483 l_budgetary_control_flag := 'N';
62484
62485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62486 l_bflow_applied_to_amt := NULL; -- 5132302
62487 l_entered_amt_idx := NULL; -- 4262811
62488 l_accted_amt_idx := NULL; -- 4262811
62489 l_acc_rev_flag := NULL; -- 4262811
62490 l_accrual_line_num := NULL; -- 4262811
62491 l_tmp_amt := NULL; -- 4262811
62492 --
62493
62494 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62495 l_balance_type_code <> 'B' THEN
62496 IF NVL(p_source_27,'
62497 ') = 'ACTIVITY' AND
62498 NVL(p_source_28,'
62499 ') = 'WRITEOFF' AND
62500 NVL(p_source_88,'
62501 ') = 'N'
62502 THEN
62503
62504 --
62505 XLA_AE_LINES_PKG.SetNewLine;
62506
62507 p_balance_type_code := l_balance_type_code;
62508 -- set the flag so later we will know whether the gain loss line needs to be created
62509
62510 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62511 p_actual_flag :='A';
62512 END IF;
62513
62514 --
62515 -- bulk performance
62516 --
62517 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62518 p_header_num => 0); -- 4262811
62519 --
62520 -- set accounting line options
62521 --
62522 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62523 p_natural_side_code => 'C'
62524 , p_gain_or_loss_flag => 'N'
62525 , p_gl_transfer_mode_code => 'S'
62526 , p_acct_entry_type_code => 'A'
62527 , p_switch_side_flag => 'Y'
62528 , p_merge_duplicate_code => 'A'
62529 );
62530 --
62531 l_acc_rev_natural_side_code := 'D'; -- 4262811
62532 --
62533 --
62534 -- set accounting line type info
62535 --
62536 xla_ae_lines_pkg.SetAcctLineType
62537 (p_component_type => l_component_type
62538 ,p_event_type_code => l_event_type_code
62539 ,p_line_definition_owner_code => l_line_definition_owner_code
62540 ,p_line_definition_code => l_line_definition_code
62541 ,p_accounting_line_code => l_component_code
62542 ,p_accounting_line_type_code => l_component_type_code
62543 ,p_accounting_line_appl_id => l_component_appl_id
62544 ,p_amb_context_code => l_amb_context_code
62548 -- set accounting class
62545 ,p_entity_code => l_entity_code
62546 ,p_event_class_code => l_event_class_code);
62547 --
62549 --
62550 xla_ae_lines_pkg.SetAcctClass(
62551 p_accounting_class_code => 'WRITE_OFF'
62552 , p_ae_header_id => l_ae_header_id
62553 );
62554
62555 --
62556 -- set rounding class
62557 --
62558 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62559 'RECEIVABLE';
62560
62561 --
62562 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62563 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62564 --
62565 -- bulk performance
62566 --
62567 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62568
62569 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62570 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62571
62572 -- 4955764
62573 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62574 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62575
62576 -- 4458381 Public Sector Enh
62577
62578 --
62579 -- set accounting attributes for the line type
62580 --
62581 l_entered_amt_idx := 8;
62582 l_accted_amt_idx := 13;
62583 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62584 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
62585 l_rec_acct_attrs.array_num_value(1) := p_source_92;
62586 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62587 l_rec_acct_attrs.array_char_value(2) := p_source_45;
62588 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
62589 l_rec_acct_attrs.array_char_value(3) := p_source_93;
62590 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
62591 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_44);
62592 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62593 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_94);
62594 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
62595 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_29);
62596 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
62597 l_rec_acct_attrs.array_char_value(7) := p_source_30;
62598 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
62599 l_rec_acct_attrs.array_num_value(8) := p_source_95;
62600 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
62601 l_rec_acct_attrs.array_char_value(9) := p_source_96;
62602 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
62603 l_rec_acct_attrs.array_date_value(10) := p_source_33;
62604 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
62605 l_rec_acct_attrs.array_num_value(11) := p_source_34;
62606 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
62607 l_rec_acct_attrs.array_char_value(12) := p_source_35;
62608 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
62609 l_rec_acct_attrs.array_num_value(13) := p_source_40;
62610 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
62611 l_rec_acct_attrs.array_num_value(14) := p_source_97;
62612 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
62613 l_rec_acct_attrs.array_num_value(15) := p_source_98;
62614 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
62615 l_rec_acct_attrs.array_char_value(16) := p_source_99;
62616
62617 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62618 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62619
62620 ---------------------------------------------------------------------------------------------------------------
62621 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62622 ---------------------------------------------------------------------------------------------------------------
62623 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62624
62625 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62626 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62627
62628 IF xla_accounting_cache_pkg.GetValueChar
62629 (p_source_code => 'LEDGER_CATEGORY_CODE'
62630 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62631 AND l_bflow_method_code = 'PRIOR_ENTRY'
62632 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62633 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62634 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62635 )
62636 THEN
62637 xla_ae_lines_pkg.BflowUpgEntry
62638 (p_business_method_code => l_bflow_method_code
62639 ,p_business_class_code => l_bflow_class_code
62640 ,p_balance_type => l_balance_type_code);
62641 ELSE
62642 NULL;
62643 -- No business flow processing for business flow method of NONE.
62644 END IF;
62645
62646 --
62647 -- call analytical criteria
62648 --
62649
62650
62651 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
62652 xla_ae_lines_pkg.SetAnalyticalCriteria(
62653 p_analytical_criterion_name => 'Check Id'
62654 , p_analytical_criterion_owner => 'S'
62658
62655 , p_analytical_criterion_code => 'CHECK_ID'
62656 , p_amb_context_code => 'DEFAULT'
62657 , p_balancing_flag => 'N'
62659 , p_analytical_detail_char_1 => NULL
62660 , p_analytical_detail_num_1 => p_source_90
62661 , p_analytical_detail_date_1 => NULL
62662
62663 , p_ae_header_id => l_ae_header_id
62664 )
62665 ;
62666 --
62667
62668
62669 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
62670 xla_ae_lines_pkg.SetAnalyticalCriteria(
62671 p_analytical_criterion_name => 'Receivable Activity'
62672 , p_analytical_criterion_owner => 'S'
62673 , p_analytical_criterion_code => 'RECEIVABLE_ACTIVITY'
62674 , p_amb_context_code => 'DEFAULT'
62675 , p_balancing_flag => 'N'
62676
62677 , p_analytical_detail_char_1 => TO_CHAR(p_source_103)
62678 , p_analytical_detail_num_1 => NULL
62679 , p_analytical_detail_date_1 => NULL
62680
62684 --
62681 , p_ae_header_id => l_ae_header_id
62682 )
62683 ;
62685
62686 --
62687 -- call description
62688 --
62689 -- No description or it is inherited.
62690 --
62691 -- call ADRs
62692 -- Bug 4922099
62693 --
62694 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62695 (NVL(l_actual_upg_option, 'N') = 'O') OR
62696 (NVL(l_enc_upg_option, 'N') = 'O')
62697 )
62698 THEN
62699 NULL;
62700 --
62701 --
62702
62703 l_ccid := AcctDerRule_20(
62704 p_application_id => p_application_id
62705 , p_ae_header_id => l_ae_header_id
62706 , p_source_22 => p_source_22
62707 , x_transaction_coa_id => l_adr_transaction_coa_id
62708 , x_accounting_coa_id => l_adr_accounting_coa_id
62709 , x_value_type_code => l_adr_value_type_code
62710 , p_side => 'NA'
62711 );
62712
62713 xla_ae_lines_pkg.set_ccid(
62714 p_code_combination_id => l_ccid
62715 , p_value_type_code => l_adr_value_type_code
62716 , p_transaction_coa_id => l_adr_transaction_coa_id
62717 , p_accounting_coa_id => l_adr_accounting_coa_id
62718 , p_adr_code => 'DIST_CCID'
62719 , p_adr_type_code => 'S'
62720 , p_component_type => l_component_type
62721 , p_component_code => l_component_code
62722 , p_component_type_code => l_component_type_code
62723 , p_component_appl_id => l_component_appl_id
62724 , p_amb_context_code => l_amb_context_code
62725 , p_side => 'NA'
62726 );
62727
62728
62729 --
62730 --
62731 END IF;
62732 --
62733 -- Bug 4922099
62734 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62735 (NVL(l_enc_upg_option, 'N') = 'O')
62736 ) AND
62737 (l_bflow_method_code = 'PRIOR_ENTRY')
62738 )
62739 THEN
62740 IF
62741 --
62742 1 = 2
62743 --
62744 THEN
62745 xla_accounting_err_pkg.build_message
62746 (p_appli_s_name => 'XLA'
62747 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62748 ,p_token_1 => 'LINE_NUMBER'
62749 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62750 ,p_token_2 => 'LINE_TYPE_NAME'
62751 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62752 l_component_type
62753 ,l_component_code
62754 ,l_component_type_code
62755 ,l_component_appl_id
62756 ,l_amb_context_code
62757 ,l_entity_code
62758 ,l_event_class_code
62759 )
62760 ,p_token_3 => 'OWNER'
62761 ,p_value_3 => xla_lookups_pkg.get_meaning(
62765 ,p_token_4 => 'PRODUCT_NAME'
62762 p_lookup_type => 'XLA_OWNER_TYPE'
62763 ,p_lookup_code => l_component_type_code
62764 )
62766 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62767 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62768 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62769 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62770 ,p_ae_header_id => NULL
62771 );
62772
62773 IF (C_LEVEL_ERROR>= g_log_level) THEN
62774 trace
62775 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62776 ,p_level => C_LEVEL_ERROR
62777 ,p_module => l_log_module);
62778 END IF;
62779 END IF;
62780 END IF;
62781 --
62782 --
62783 ------------------------------------------------------------------------------------------------
62784 -- 4219869 Business Flow
62785 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62786 -- Prior Entry. Currently, the following code is always generated.
62787 ------------------------------------------------------------------------------------------------
62788 XLA_AE_LINES_PKG.ValidateCurrentLine;
62789
62790 ------------------------------------------------------------------------------------
62791 -- 4219869 Business Flow
62792 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62793 ------------------------------------------------------------------------------------
62794 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62795
62796 ----------------------------------------------------------------------------------
62797 -- 4219869 Business Flow
62798 -- Update journal entry status -- Need to generate this within IF <condition>
62799 ----------------------------------------------------------------------------------
62800 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62801 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62802 ,p_balance_type_code => l_balance_type_code
62803 );
62804
62805 -------------------------------------------------------------------------------------------
62806 -- 4262811 - Generate the Accrual Reversal lines
62807 -------------------------------------------------------------------------------------------
62808 BEGIN
62809 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62810 (g_array_event(p_event_id).array_value_num('header_index'));
62811 IF l_acc_rev_flag IS NULL THEN
62812 l_acc_rev_flag := 'N';
62813 END IF;
62814 EXCEPTION
62815 WHEN OTHERS THEN
62816 l_acc_rev_flag := 'N';
62817 END;
62818 --
62819 IF (l_acc_rev_flag = 'Y') THEN
62820
62821 -- 4645092 ------------------------------------------------------------------------------
62822 -- To allow MPA report to determine if it should generate report process
62823 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62824 ------------------------------------------------------------------------------------------
62825
62826 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62827 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62828 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62829 -- call ADRs
62830 -- Bug 4922099
62831 --
62832 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62833 (NVL(l_actual_upg_option, 'N') = 'O') OR
62834 (NVL(l_enc_upg_option, 'N') = 'O')
62835 )
62836 THEN
62837 NULL;
62838 --
62839 --
62840
62841 l_ccid := AcctDerRule_20(
62842 p_application_id => p_application_id
62843 , p_ae_header_id => l_ae_header_id
62844 , p_source_22 => p_source_22
62845 , x_transaction_coa_id => l_adr_transaction_coa_id
62846 , x_accounting_coa_id => l_adr_accounting_coa_id
62847 , x_value_type_code => l_adr_value_type_code
62848 , p_side => 'NA'
62849 );
62850
62851 xla_ae_lines_pkg.set_ccid(
62852 p_code_combination_id => l_ccid
62853 , p_value_type_code => l_adr_value_type_code
62854 , p_transaction_coa_id => l_adr_transaction_coa_id
62855 , p_accounting_coa_id => l_adr_accounting_coa_id
62856 , p_adr_code => 'DIST_CCID'
62857 , p_adr_type_code => 'S'
62858 , p_component_type => l_component_type
62859 , p_component_code => l_component_code
62860 , p_component_type_code => l_component_type_code
62861 , p_component_appl_id => l_component_appl_id
62862 , p_amb_context_code => l_amb_context_code
62863 , p_side => 'NA'
62864 );
62865
62866
62867 --
62868 --
62869 END IF;
62870
62871 --
62872 -- Update the line information that should be overwritten
62873 --
62874 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62875 p_header_num => 1);
62879
62876 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62877
62878 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62880 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62881 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62882 END IF;
62883
62884 --
62885 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62886 --
62887 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62888 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62889 ELSE
62890 ---------------------------------------------------------------------------------------------------
62891 -- 4262811a Switch Sign
62892 ---------------------------------------------------------------------------------------------------
62893 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62894 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62895 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62896 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62897 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62898 -- 5132302
62899 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62900 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62901
62902 END IF;
62903
62904 -- 4955764
62905 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62906 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62907
62908
62909 XLA_AE_LINES_PKG.ValidateCurrentLine;
62910 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62911
62912 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62913 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62914 ,p_balance_type_code => l_balance_type_code);
62915
62916 END IF;
62917
62918 -----------------------------------------------------------------------------------------
62919 -- 4262811 Multiperiod Accounting
62920 -----------------------------------------------------------------------------------------
62921 -- No MPA option is assigned.
62922
62923
62924 END IF;
62925 END IF;
62926 --
62927
62928 --
62929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62930 trace
62931 (p_msg => 'END of AcctLineType_125'
62932 ,p_level => C_LEVEL_PROCEDURE
62933 ,p_module => l_log_module);
62934 END IF;
62935 --
62936 EXCEPTION
62937 WHEN xla_exceptions_pkg.application_exception THEN
62938 RAISE;
62939 WHEN OTHERS THEN
62940 xla_exceptions_pkg.raise_message
62941 (p_location => 'XLA_00222_AAD_S_000017_PKG.AcctLineType_125');
62942 END AcctLineType_125;
62943 --
62944
62945 ---------------------------------------
62946 --
62947 -- PRIVATE PROCEDURE
62948 -- insert_sources_126
62949 --
62950 ----------------------------------------
62951 --
62952 PROCEDURE insert_sources_126(
62953 p_target_ledger_id IN NUMBER
62954 , p_language IN VARCHAR2
62955 , p_sla_ledger_id IN NUMBER
62956 , p_pad_start_date IN DATE
62957 , p_pad_end_date IN DATE
62958 )
62959 IS
62960
62961 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT_ALL';
62962 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT';
62963 p_apps_owner VARCHAR2(30);
62964 l_log_module VARCHAR2(240);
62965 BEGIN
62966 IF g_log_enabled THEN
62967 l_log_module := C_DEFAULT_MODULE||'.insert_sources_126';
62968 END IF;
62969 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62970
62971 trace
62972 (p_msg => 'BEGIN of insert_sources_126'
62973 ,p_level => C_LEVEL_PROCEDURE
62974 ,p_module => l_log_module);
62975
62976 END IF;
62977
62978 -- select APPS owner
62979 SELECT oracle_username
62980 INTO p_apps_owner
62981 FROM fnd_oracle_userid
62982 WHERE read_only_flag = 'U'
62983 ;
62984
62985 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62986 trace
62987 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
62988 ' - p_language = '||p_language||
62989 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
62990 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
62991 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
62992 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
62993 ,p_level => C_LEVEL_STATEMENT
62994 ,p_module => l_log_module);
62995 END IF;
62996
62997
62998 --
62999 INSERT INTO xla_diag_sources --hdr2
63000 (
63001 event_id
63002 , ledger_id
63003 , sla_ledger_id
63004 , description_language
63005 , object_name
63006 , object_type_code
63007 , line_number
63008 , source_application_id
63012 , source_meaning
63009 , source_type_code
63010 , source_code
63011 , source_value
63013 , created_by
63014 , creation_date
63015 , last_update_date
63016 , last_updated_by
63017 , last_update_login
63018 , program_update_date
63019 , program_application_id
63020 , program_id
63021 , request_id
63022 )
63023 SELECT
63024 event_id
63025 , p_target_ledger_id
63026 , p_sla_ledger_id
63027 , p_language
63028 , object_name
63029 , object_type_code
63030 , line_number
63031 , source_application_id
63032 , source_type_code
63033 , source_code
63034 , SUBSTR(source_value ,1,1996)
63035 , SUBSTR(source_meaning ,1,200)
63036 , xla_environment_pkg.g_Usr_Id
63037 , TRUNC(SYSDATE)
63038 , TRUNC(SYSDATE)
63039 , xla_environment_pkg.g_Usr_Id
63040 , xla_environment_pkg.g_Login_Id
63041 , TRUNC(SYSDATE)
63042 , xla_environment_pkg.g_Prog_Appl_Id
63043 , xla_environment_pkg.g_Prog_Id
63044 , xla_environment_pkg.g_Req_Id
63045 FROM (
63046 SELECT xet.event_id event_id
63047 , 0 line_number
63048 , CASE r
63049 WHEN 1 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
63050 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
63051 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
63052 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
63053 WHEN 5 THEN 'AR_ADJUSTMENTS_H_V'
63054 WHEN 6 THEN 'AR_ADJUSTMENTS_H_V'
63055 WHEN 7 THEN 'AR_ADJUSTMENTS_H_V'
63056
63057 ELSE null
63058 END object_name
63059 , CASE r
63060 WHEN 1 THEN 'HEADER'
63061 WHEN 2 THEN 'HEADER'
63062 WHEN 3 THEN 'HEADER'
63063 WHEN 4 THEN 'HEADER'
63064 WHEN 5 THEN 'HEADER'
63065 WHEN 6 THEN 'HEADER'
63066 WHEN 7 THEN 'HEADER'
63067
63068 ELSE null
63069 END object_type_code
63070 , CASE r
63071 WHEN 1 THEN '222'
63072 WHEN 2 THEN '222'
63073 WHEN 3 THEN '222'
63074 WHEN 4 THEN '222'
63075 WHEN 5 THEN '222'
63076 WHEN 6 THEN '222'
63077 WHEN 7 THEN '222'
63078
63079 ELSE null
63080 END source_application_id
63081 , 'S' source_type_code
63082 , CASE r
63083 WHEN 1 THEN 'REC_ACT_TYPE'
63084 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
63085 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
63086 WHEN 4 THEN 'XLA_PARTY_TYPE'
63087 WHEN 5 THEN 'ADJ_DOC_SEQUENCE_CATEGORY'
63088 WHEN 6 THEN 'ADJ_DOC_SEQUENCE_ID'
63089 WHEN 7 THEN 'ADJ_DOC_SEQUENCE_VALUE'
63090
63091 ELSE null
63092 END source_code
63093 , CASE r
63094 WHEN 1 THEN TO_CHAR(h6.REC_ACT_TYPE)
63095 WHEN 2 THEN TO_CHAR(h2.BILL_CUST_ACCOUNT_ID)
63096 WHEN 3 THEN TO_CHAR(h3.BILL_USES_SITE_USE_ID)
63097 WHEN 4 THEN TO_CHAR(h7.XLA_PARTY_TYPE)
63098 WHEN 5 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_CATEGORY)
63099 WHEN 6 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_ID)
63100 WHEN 7 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_VALUE)
63101
63102 ELSE null
63103 END source_value
63104 , null source_meaning
63105 FROM xla_events_gt xet
63106 , AR_ADJUSTMENTS_H_V h1
63107 , AR_BILL_TO_CUSTOMERS_S_V h2
63108 , AR_BILL_TO_SITE_USES_S_V h3
63109 , AR_RECEIVABLES_TRX_ACT_S_V h6
63110 , AR_TRANSACTIONS_S_V h7
63111 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
63112 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
63113 AND xet.event_class_code = C_EVENT_CLASS_CODE
63114 AND h1.event_id = xet.event_id
63115 AND h2.event_id = h1.event_id
63116 AND h3.event_id = h1.event_id
63117 AND h6.event_id (+) = h1.event_id
63118 AND h7.event_id = h1.event_id
63119
63120 )
63121 ;
63122 --
63123 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63124
63125 trace
63126 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
63127 ,p_level => C_LEVEL_STATEMENT
63128 ,p_module => l_log_module);
63129
63130 END IF;
63131 --
63132
63133
63134
63135 --
63136 INSERT INTO xla_diag_sources --line2
63137 (
63138 event_id
63139 , ledger_id
63140 , sla_ledger_id
63141 , description_language
63142 , object_name
63143 , object_type_code
63144 , line_number
63145 , source_application_id
63146 , source_type_code
63147 , source_code
63148 , source_value
63149 , source_meaning
63150 , created_by
63151 , creation_date
63152 , last_update_date
63153 , last_updated_by
63154 , last_update_login
63155 , program_update_date
63156 , program_application_id
63160 SELECT event_id
63157 , program_id
63158 , request_id
63159 )
63161 , p_target_ledger_id
63162 , p_sla_ledger_id
63163 , p_language
63164 , object_name
63165 , object_type_code
63166 , line_number
63167 , source_application_id
63168 , source_type_code
63169 , source_code
63170 , SUBSTR(source_value,1,1996)
63171 , SUBSTR(source_meaning ,1,200)
63172 , xla_environment_pkg.g_Usr_Id
63173 , TRUNC(SYSDATE)
63174 , TRUNC(SYSDATE)
63175 , xla_environment_pkg.g_Usr_Id
63176 , xla_environment_pkg.g_Login_Id
63177 , TRUNC(SYSDATE)
63178 , xla_environment_pkg.g_Prog_Appl_Id
63179 , xla_environment_pkg.g_Prog_Id
63180 , xla_environment_pkg.g_Req_Id
63181 FROM (
63182 SELECT xet.event_id event_id
63183 , l5.line_number line_number
63184 , CASE r
63185 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
63186 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
63187 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
63188 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
63189 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
63190 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
63191 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
63192 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
63193 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
63194 WHEN 10 THEN 'AR_DISTRIBUTIONS_BASE_V'
63195
63196 ELSE null
63197 END object_name
63198 , CASE r
63199 WHEN 1 THEN 'LINE'
63200 WHEN 2 THEN 'LINE'
63201 WHEN 3 THEN 'LINE'
63202 WHEN 4 THEN 'LINE'
63203 WHEN 5 THEN 'LINE'
63204 WHEN 6 THEN 'LINE'
63205 WHEN 7 THEN 'LINE'
63206 WHEN 8 THEN 'LINE'
63207 WHEN 9 THEN 'LINE'
63208 WHEN 10 THEN 'LINE'
63209
63210 ELSE null
63211 END object_type_code
63212 , CASE r
63213 WHEN 1 THEN '222'
63214 WHEN 2 THEN '222'
63215 WHEN 3 THEN '222'
63216 WHEN 4 THEN '222'
63217 WHEN 5 THEN '222'
63218 WHEN 6 THEN '222'
63219 WHEN 7 THEN '222'
63220 WHEN 8 THEN '222'
63221 WHEN 9 THEN '222'
63222 WHEN 10 THEN '222'
63223
63224 ELSE null
63225 END source_application_id
63226 , 'S' source_type_code
63227 , CASE r
63228 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
63229 WHEN 2 THEN 'DIST_SOURCE_TYPE'
63230 WHEN 3 THEN 'DIST_LINE_ID'
63231 WHEN 4 THEN 'DISTRIBUTION_TYPE'
63232 WHEN 5 THEN 'DIST_ENT_AMT'
63233 WHEN 6 THEN 'DIST_CURRENCY_CODE'
63234 WHEN 7 THEN 'DIST_CUR_CONVERSION_DATE'
63235 WHEN 8 THEN 'DIST_CUR_CONVERSION_RATE'
63236 WHEN 9 THEN 'DIST_CUR_CONVERSION_TYPE'
63237 WHEN 10 THEN 'DIST_TO_ACCTD_AMT'
63238
63239 ELSE null
63240 END source_code
63241 , CASE r
63242 WHEN 1 THEN TO_CHAR(l5.DIST_CODE_COMBINATION_ID)
63243 WHEN 2 THEN TO_CHAR(l5.DIST_SOURCE_TYPE)
63244 WHEN 3 THEN TO_CHAR(l5.DIST_LINE_ID)
63245 WHEN 4 THEN TO_CHAR(l5.DISTRIBUTION_TYPE)
63246 WHEN 5 THEN TO_CHAR(l5.DIST_ENT_AMT)
63247 WHEN 6 THEN TO_CHAR(l5.DIST_CURRENCY_CODE)
63248 WHEN 7 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_DATE)
63249 WHEN 8 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_RATE)
63250 WHEN 9 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_TYPE)
63251 WHEN 10 THEN TO_CHAR(l4.DIST_TO_ACCTD_AMT)
63252
63253 ELSE null
63254 END source_value
63255 , null source_meaning
63256 FROM xla_events_gt xet
63257 , AR_DISTRIBUTIONS_BASE_V l4
63258 , AR_DISTRIBUTIONS_L_V l5
63259 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
63260 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
63261 AND xet.event_class_code = C_EVENT_CLASS_CODE
63262 AND l4.event_id = xet.event_id
63263 AND l5.event_id = l4.event_id
63264 AND l5.line_number = l4.line_number
63265
63266 )
63267 ;
63268 --
63269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63270
63271 trace
63272 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
63273 ,p_level => C_LEVEL_STATEMENT
63274 ,p_module => l_log_module);
63275
63276 END IF;
63277
63278
63279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63280 trace
63281 (p_msg => 'END of insert_sources_126'
63282 ,p_level => C_LEVEL_PROCEDURE
63283 ,p_module => l_log_module);
63284 END IF;
63285 EXCEPTION
63286 WHEN xla_exceptions_pkg.application_exception THEN
63287 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
63288 trace
63289 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
63290 ,p_level => C_LEVEL_EXCEPTION
63294 WHEN OTHERS THEN
63291 ,p_module => l_log_module);
63292 END IF;
63293 RAISE;
63295 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
63299 ,p_module => l_log_module);
63296 trace
63297 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
63298 ,p_level => C_LEVEL_EXCEPTION
63300 END IF;
63301 xla_exceptions_pkg.raise_message
63302 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_126');
63303 END insert_sources_126;
63304 --
63305
63306 ---------------------------------------
63307 --
63308 -- PRIVATE FUNCTION
63309 -- EventClass_126
63310 --
63311 ----------------------------------------
63312 --
63313 FUNCTION EventClass_126
63314 (p_application_id IN NUMBER
63315 ,p_base_ledger_id IN NUMBER
63316 ,p_target_ledger_id IN NUMBER
63317 ,p_language IN VARCHAR2
63318 ,p_currency_code IN VARCHAR2
63319 ,p_sla_ledger_id IN NUMBER
63320 ,p_pad_start_date IN DATE
63321 ,p_pad_end_date IN DATE
63322 ,p_primary_ledger_id IN NUMBER)
63323 RETURN BOOLEAN IS
63324 --
63325 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT_ALL';
63326 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT';
63327
63328 l_calculate_acctd_flag VARCHAR2(1) :='N';
63329 l_calculate_g_l_flag VARCHAR2(1) :='Y';
63330 --
63331 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63332 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63333 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63334 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63335 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63339 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63336 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63337 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63338 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63340 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63341 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63342 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63343 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63344 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63345 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63346 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63347 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63348 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63349 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63350 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63351 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63352 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63353 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
63354 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63355 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
63356 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
63357
63358 l_event_id NUMBER;
63359 l_previous_event_id NUMBER;
63360 l_first_event_id NUMBER;
63361 l_last_event_id NUMBER;
63362
63363 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
63364 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63365 --
63366 --
63367 l_result BOOLEAN := TRUE;
63368 l_rows NUMBER := 1000;
63369 l_event_type_name VARCHAR2(80) := 'All';
63370 l_event_class_name VARCHAR2(80) := 'Adjustment';
63371 l_description VARCHAR2(4000);
63372 l_transaction_reversal NUMBER;
63373 l_ae_header_id NUMBER;
63374 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
63375 l_log_module VARCHAR2(240);
63376 --
63377 l_acct_reversal_source VARCHAR2(30);
63378 l_trx_reversal_source VARCHAR2(30);
63379
63380 l_continue_with_lines BOOLEAN := TRUE;
63381 --
63382 l_acc_rev_gl_date_source DATE; -- 4262811
63383 --
63384 type t_array_event_id is table of number index by binary_integer;
63385
63386 l_rec_array_event t_rec_array_event;
63387 l_null_rec_array_event t_rec_array_event;
63388 l_array_ae_header_id xla_number_array_type;
63389 l_actual_flag VARCHAR2(1) := NULL;
63390 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
63391 l_balance_type_code VARCHAR2(1) :=NULL;
63392 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
63393
63394 --
63395 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
63396 --
63397
63398 TYPE t_array_source_28 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
63399 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
63400 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
63401 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
63402 TYPE t_array_source_107 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
63403 TYPE t_array_source_108 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
63404 TYPE t_array_source_109 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
63405
63406 TYPE t_array_source_22 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
63407 TYPE t_array_source_27 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
63408 TYPE t_array_source_29 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
63409 TYPE t_array_source_30 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
63410 TYPE t_array_source_31 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
63411 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
63412 TYPE t_array_source_33 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
63413 TYPE t_array_source_34 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
63414 TYPE t_array_source_35 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
63415 TYPE t_array_source_36 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
63416
63417 l_array_source_28 t_array_source_28;
63418 l_array_source_37 t_array_source_37;
63419 l_array_source_38 t_array_source_38;
63420 l_array_source_39 t_array_source_39;
63421 l_array_source_107 t_array_source_107;
63422 l_array_source_108 t_array_source_108;
63423 l_array_source_109 t_array_source_109;
63424
63425 l_array_source_22 t_array_source_22;
63429 l_array_source_31 t_array_source_31;
63426 l_array_source_27 t_array_source_27;
63427 l_array_source_29 t_array_source_29;
63428 l_array_source_30 t_array_source_30;
63430 l_array_source_32 t_array_source_32;
63431 l_array_source_33 t_array_source_33;
63432 l_array_source_34 t_array_source_34;
63433 l_array_source_35 t_array_source_35;
63434 l_array_source_36 t_array_source_36;
63435
63436 --
63437 CURSOR header_cur
63438 IS
63439 SELECT /*+ leading(xet) cardinality(xet,1) */
63440 -- Event Class Code: ADJUSTMENT
63441 xet.entity_id
63442 ,xet.legal_entity_id
63443 ,xet.entity_code
63444 ,xet.transaction_number
63445 ,xet.event_id
63446 ,xet.event_class_code
63447 ,xet.event_type_code
63448 ,xet.event_number
63449 ,xet.event_date
63450 ,xet.transaction_date
63451 ,xet.reference_num_1
63452 ,xet.reference_num_2
63453 ,xet.reference_num_3
63454 ,xet.reference_num_4
63455 ,xet.reference_char_1
63456 ,xet.reference_char_2
63457 ,xet.reference_char_3
63458 ,xet.reference_char_4
63459 ,xet.reference_date_1
63460 ,xet.reference_date_2
63461 ,xet.reference_date_3
63462 ,xet.reference_date_4
63463 ,xet.event_created_by
63464 ,xet.budgetary_control_flag
63465 , h6.REC_ACT_TYPE source_28
63466 , h2.BILL_CUST_ACCOUNT_ID source_37
63467 , h3.BILL_USES_SITE_USE_ID source_38
63468 , h7.XLA_PARTY_TYPE source_39
63469 , h1.ADJ_DOC_SEQUENCE_CATEGORY source_107
63470 , h1.ADJ_DOC_SEQUENCE_ID source_108
63471 , h1.ADJ_DOC_SEQUENCE_VALUE source_109
63472 FROM xla_events_gt xet
63473 , AR_ADJUSTMENTS_H_V h1
63474 , AR_BILL_TO_CUSTOMERS_S_V h2
63475 , AR_BILL_TO_SITE_USES_S_V h3
63476 , AR_RECEIVABLES_TRX_ACT_S_V h6
63477 , AR_TRANSACTIONS_S_V h7
63478 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
63479 and xet.event_class_code = C_EVENT_CLASS_CODE
63480 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
63481 AND h2.event_id = h1.event_id
63482 AND h3.event_id = h1.event_id
63483 AND h6.event_id (+) = h1.event_id
63484 AND h7.event_id = h1.event_id
63485
63486 ORDER BY event_id
63487 ;
63488
63489
63490 --
63491 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
63492 IS
63493 SELECT /*+ leading(xet) cardinality(xet,1) */
63494 -- Event Class Code: ADJUSTMENT
63495 xet.entity_id
63496 ,xet.legal_entity_id
63497 ,xet.entity_code
63498 ,xet.transaction_number
63499 ,xet.event_id
63500 ,xet.event_class_code
63501 ,xet.event_type_code
63502 ,xet.event_number
63503 ,xet.event_date
63504 ,xet.transaction_date
63505 ,xet.reference_num_1
63506 ,xet.reference_num_2
63507 ,xet.reference_num_3
63508 ,xet.reference_num_4
63509 ,xet.reference_char_1
63510 ,xet.reference_char_2
63511 ,xet.reference_char_3
63512 ,xet.reference_char_4
63513 ,xet.reference_date_1
63514 ,xet.reference_date_2
63515 ,xet.reference_date_3
63516 ,xet.reference_date_4
63517 ,xet.event_created_by
63518 ,xet.budgetary_control_flag
63519 , l4.LINE_NUMBER
63520 , l5.DIST_CODE_COMBINATION_ID source_22
63521 , l5.DIST_SOURCE_TYPE source_27
63522 , l5.DIST_LINE_ID source_29
63523 , l5.DISTRIBUTION_TYPE source_30
63524 , l5.DIST_ENT_AMT source_31
63525 , l5.DIST_CURRENCY_CODE source_32
63526 , l4.DIST_CUR_CONVERSION_DATE source_33
63527 , l4.DIST_CUR_CONVERSION_RATE source_34
63528 , l4.DIST_CUR_CONVERSION_TYPE source_35
63529 , l4.DIST_TO_ACCTD_AMT source_36
63530 FROM xla_events_gt xet
63531 , AR_DISTRIBUTIONS_BASE_V l4
63532 , AR_DISTRIBUTIONS_L_V l5
63533 WHERE xet.event_id between x_first_event_id and x_last_event_id
63534 and xet.event_date between p_pad_start_date and p_pad_end_date
63535 and xet.event_class_code = C_EVENT_CLASS_CODE
63536 and xet.event_status_code <> 'N' AND l4.event_id = xet.event_id
63537 AND l5.event_id = l4.event_id
63538 AND l5.line_number = l4.line_number
63539 ;
63540
63541 --
63542 BEGIN
63543 IF g_log_enabled THEN
63544 l_log_module := C_DEFAULT_MODULE||'.EventClass_126';
63545 END IF;
63546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63547 trace
63548 (p_msg => 'BEGIN of EventClass_126'
63549 ,p_level => C_LEVEL_PROCEDURE
63550 ,p_module => l_log_module);
63551 END IF;
63552
63553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63554 trace
63555 (p_msg => 'p_application_id = '||p_application_id||
63556 ' - p_base_ledger_id = '||p_base_ledger_id||
63557 ' - p_target_ledger_id = '||p_target_ledger_id||
63558 ' - p_language = '||p_language||
63559 ' - p_currency_code = '||p_currency_code||
63560 ' - p_sla_ledger_id = '||p_sla_ledger_id
63561 ,p_level => C_LEVEL_STATEMENT
63562 ,p_module => l_log_module);
63563 END IF;
63564 --
63565 -- initialze arrays
63566 --
63567 g_array_event.DELETE;
63568 l_rec_array_event := l_null_rec_array_event;
63569 --
63570 --------------------------------------
63571 -- 4262811 Initialze MPA Line Number
63572 --------------------------------------
63576
63573 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
63574
63575 --
63577 --
63578 OPEN header_cur;
63579 --
63580 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63581 trace
63582 (p_msg => 'SQL - FETCH header_cur'
63583 ,p_level => C_LEVEL_STATEMENT
63584 ,p_module => l_log_module);
63585 END IF;
63586 --
63587 LOOP
63588 FETCH header_cur BULK COLLECT INTO
63589 l_array_entity_id
63590 , l_array_legal_entity_id
63591 , l_array_entity_code
63592 , l_array_transaction_num
63593 , l_array_event_id
63594 , l_array_class_code
63595 , l_array_event_type
63596 , l_array_event_number
63597 , l_array_event_date
63598 , l_array_transaction_date
63599 , l_array_reference_num_1
63600 , l_array_reference_num_2
63601 , l_array_reference_num_3
63602 , l_array_reference_num_4
63603 , l_array_reference_char_1
63604 , l_array_reference_char_2
63605 , l_array_reference_char_3
63606 , l_array_reference_char_4
63607 , l_array_reference_date_1
63608 , l_array_reference_date_2
63609 , l_array_reference_date_3
63610 , l_array_reference_date_4
63611 , l_array_event_created_by
63612 , l_array_budgetary_control_flag
63613 , l_array_source_28
63614 , l_array_source_37
63615 , l_array_source_38
63616 , l_array_source_39
63617 , l_array_source_107
63618 , l_array_source_108
63619 , l_array_source_109
63620 LIMIT l_rows;
63621 --
63622 IF (C_LEVEL_EVENT >= g_log_level) THEN
63623 trace
63624 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
63625 ,p_level => C_LEVEL_EVENT
63626 ,p_module => l_log_module);
63627 END IF;
63628 --
63629 EXIT WHEN l_array_entity_id.COUNT = 0;
63630
63631 -- initialize arrays
63632 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
63633 XLA_AE_LINES_PKG.g_rec_lines := NULL;
63634
63635 --
63636 -- Bug 4458708
63637 --
63638 XLA_AE_LINES_PKG.g_LineNumber := 0;
63639
63640
63641 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
63642 g_last_hdr_idx := l_array_event_id.LAST;
63643 --
63644 -- loop for the headers. Each iteration is for each header extract row
63645 -- fetched in header cursor
63646 --
63647 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
63648
63649 --
63650 -- set event info as cache for other routines to refer event attributes
63651 --
63652 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63653 (p_application_id => p_application_id
63654 ,p_primary_ledger_id => p_primary_ledger_id
63655 ,p_base_ledger_id => p_base_ledger_id
63656 ,p_target_ledger_id => p_target_ledger_id
63657 ,p_entity_id => l_array_entity_id(hdr_idx)
63658 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
63659 ,p_entity_code => l_array_entity_code(hdr_idx)
63660 ,p_transaction_num => l_array_transaction_num(hdr_idx)
63661 ,p_event_id => l_array_event_id(hdr_idx)
63662 ,p_event_class_code => l_array_class_code(hdr_idx)
63663 ,p_event_type_code => l_array_event_type(hdr_idx)
63664 ,p_event_number => l_array_event_number(hdr_idx)
63665 ,p_event_date => l_array_event_date(hdr_idx)
63666 ,p_transaction_date => l_array_transaction_date(hdr_idx)
63667 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
63668 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
63669 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
63670 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
63671 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
63672 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
63673 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
63674 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
63675 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
63676 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
63677 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
63678 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
63679 ,p_event_created_by => l_array_event_created_by(hdr_idx)
63680 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
63681
63682 --
63683 -- set the status of entry to C_VALID (0)
63684 --
63685 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63686
63687 --
63688 -- initialize a row for ae header
63689 --
63690 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
63691
63692 l_event_id := l_array_event_id(hdr_idx);
63693
63694 --
63695 -- storing the hdr_idx for event. May be used by line cursor.
63696 --
63697 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
63698
63699 --
63700 -- store sources from header extract. This can be improved to
63701 -- store only those sources from header extract that may be used in lines
63702 --
63703
63704 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
63705 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
63706 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
63707 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
63708 g_array_event(l_event_id).array_value_char('source_107') := l_array_source_107(hdr_idx);
63712 --
63709 g_array_event(l_event_id).array_value_num('source_108') := l_array_source_108(hdr_idx);
63710 g_array_event(l_event_id).array_value_num('source_109') := l_array_source_109(hdr_idx);
63711
63713 -- initilaize the status of ae headers for diffrent balance types
63714 -- the status is initialised to C_NOT_CREATED (2)
63715 --
63716 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63717 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63718 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63719
63720 --
63721 -- call api to validate and store accounting attributes for header
63722 --
63723
63724 ------------------------------------------------------------
63725 -- Accrual Reversal : to get date for Standard Source (NONE)
63726 ------------------------------------------------------------
63727 l_acc_rev_gl_date_source := NULL;
63728
63729 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
63730 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_107');
63731 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
63732 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_108');
63733 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
63734 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_109');
63735 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
63736 l_rec_acct_attrs.array_date_value(4) :=
63737 xla_ae_sources_pkg.GetSystemSourceDate(
63738 p_source_code => 'XLA_EVENT_DATE'
63739 , p_source_type_code => 'Y'
63740 , p_source_application_id => 602
63741 );
63742
63743
63744 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
63745
63746 XLA_AE_HEADER_PKG.SetJeCategoryName;
63747
63748 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
63749 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
63750 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
63751 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
63752 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
63753
63754
63755 -- No header level analytical criteria
63756
63757 --
63758 --accounting attribute enhancement, bug 3612931
63759 --
63760 l_trx_reversal_source := SUBSTR(NULL, 1,30);
63761
63762 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
63763 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63764
63765 xla_accounting_err_pkg.build_message
63766 (p_appli_s_name => 'XLA'
63767 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
63768 ,p_token_1 => 'ACCT_ATTR_NAME'
63769 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
63770 ,p_token_2 => 'PRODUCT_NAME'
63771 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63772 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63773 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63774 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63775
63776 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
63777 --
63778 -- following sets the accounting attributes needed to reverse
63779 -- accounting for a distributeion
63780 --
63781 xla_ae_lines_pkg.SetTrxReversalAttrs
63782 (p_event_id => l_event_id
63783 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
63784 ,p_trx_reversal_source => l_trx_reversal_source);
63785
63786 END IF;
63787
63788
63789 ----------------------------------------------------------------
63790 -- 4262811 - update the header statuses to invalid in need be
63791 ----------------------------------------------------------------
63792 --
63793 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
63794
63795
63796 -----------------------------------------------
63797 -- No accrual reversal for the event class/type
63798 -----------------------------------------------
63799 ----------------------------------------------------------------
63800
63801 --
63802 -- this ends the header loop iteration for one bulk fetch
63803 --
63804 END LOOP;
63805
63806 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
63807 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
63808
63809 --
63810 -- insert dummy rows into lines gt table that were created due to
63811 -- transaction reversals
63812 --
63813 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
63814 l_result := XLA_AE_LINES_PKG.InsertLines;
63815 END IF;
63816
63817 --
63818 -- reset the temp_line_num for each set of events fetched from header
63819 -- cursor rather than doing it for each new event in line cursor
63820 -- Bug 3939231
63821 --
63822 xla_ae_lines_pkg.g_temp_line_num := 0;
63823
63824
63825
63826 --
63827 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
63828 --
63829 --
63830 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63831
63832 trace
63833 (p_msg => 'SQL - FETCH line_cur'
63834 ,p_level => C_LEVEL_STATEMENT
63835 ,p_module => l_log_module);
63836
63837 END IF;
63841 --
63838 --
63839 --
63840 LOOP
63842 FETCH line_cur BULK COLLECT INTO
63843 l_array_entity_id
63844 , l_array_legal_entity_id
63845 , l_array_entity_code
63846 , l_array_transaction_num
63847 , l_array_event_id
63848 , l_array_class_code
63849 , l_array_event_type
63850 , l_array_event_number
63851 , l_array_event_date
63852 , l_array_transaction_date
63853 , l_array_reference_num_1
63854 , l_array_reference_num_2
63855 , l_array_reference_num_3
63856 , l_array_reference_num_4
63857 , l_array_reference_char_1
63858 , l_array_reference_char_2
63859 , l_array_reference_char_3
63860 , l_array_reference_char_4
63861 , l_array_reference_date_1
63862 , l_array_reference_date_2
63863 , l_array_reference_date_3
63864 , l_array_reference_date_4
63865 , l_array_event_created_by
63866 , l_array_budgetary_control_flag
63867 , l_array_extract_line_num
63868 , l_array_source_22
63869 , l_array_source_27
63870 , l_array_source_29
63871 , l_array_source_30
63872 , l_array_source_31
63873 , l_array_source_32
63874 , l_array_source_33
63875 , l_array_source_34
63876 , l_array_source_35
63877 , l_array_source_36
63878 LIMIT l_rows;
63879
63880 --
63881 IF (C_LEVEL_EVENT >= g_log_level) THEN
63882 trace
63883 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
63884 ,p_level => C_LEVEL_EVENT
63885 ,p_module => l_log_module);
63886 END IF;
63887 --
63888 EXIT WHEN l_array_entity_id.count = 0;
63889
63890 XLA_AE_LINES_PKG.g_rec_lines := null;
63891
63892 --
63893 -- Bug 4458708
63894 --
63895 XLA_AE_LINES_PKG.g_LineNumber := 0;
63896 --
63897 --
63898
63899 FOR Idx IN 1..l_array_event_id.count LOOP
63900 --
63901 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
63902 --
63903 l_event_id := l_array_event_id(idx); -- 5648433
63904
63905 --
63906 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
63907 --
63908
63909 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
63913 THEN
63910 (g_array_event(l_event_id).array_value_num('header_index'))
63911 ,'N'
63912 ) <> 'Y'
63914 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63915 trace
63916 (p_msg => 'Trancaction revesal option is not Y '
63917 ,p_level => C_LEVEL_STATEMENT
63918 ,p_module => l_log_module);
63919 END IF;
63920
63921 --
63922 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
63923 --
63924 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63925 --
63926 -- set event info as cache for other routines to refer event attributes
63927 --
63928
63929 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
63930 l_previous_event_id := l_event_id;
63931
63932 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63933 (p_application_id => p_application_id
63934 ,p_primary_ledger_id => p_primary_ledger_id
63935 ,p_base_ledger_id => p_base_ledger_id
63936 ,p_target_ledger_id => p_target_ledger_id
63937 ,p_entity_id => l_array_entity_id(Idx)
63938 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
63939 ,p_entity_code => l_array_entity_code(Idx)
63940 ,p_transaction_num => l_array_transaction_num(Idx)
63944 ,p_event_number => l_array_event_number(Idx)
63941 ,p_event_id => l_array_event_id(Idx)
63942 ,p_event_class_code => l_array_class_code(Idx)
63943 ,p_event_type_code => l_array_event_type(Idx)
63945 ,p_event_date => l_array_event_date(Idx)
63946 ,p_transaction_date => l_array_transaction_date(Idx)
63947 ,p_reference_num_1 => l_array_reference_num_1(Idx)
63948 ,p_reference_num_2 => l_array_reference_num_2(Idx)
63949 ,p_reference_num_3 => l_array_reference_num_3(Idx)
63950 ,p_reference_num_4 => l_array_reference_num_4(Idx)
63951 ,p_reference_char_1 => l_array_reference_char_1(Idx)
63952 ,p_reference_char_2 => l_array_reference_char_2(Idx)
63953 ,p_reference_char_3 => l_array_reference_char_3(Idx)
63954 ,p_reference_char_4 => l_array_reference_char_4(Idx)
63955 ,p_reference_date_1 => l_array_reference_date_1(Idx)
63956 ,p_reference_date_2 => l_array_reference_date_2(Idx)
63957 ,p_reference_date_3 => l_array_reference_date_3(Idx)
63958 ,p_reference_date_4 => l_array_reference_date_4(Idx)
63959 ,p_event_created_by => l_array_event_created_by(Idx)
63960 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
63961 --
63962 END IF;
63963
63964
63965
63966 --
63967 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
63968
63969 l_acct_reversal_source := SUBSTR(NULL, 1,30);
63970
63971 IF l_continue_with_lines THEN
63972 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
63973 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63974
63975 xla_accounting_err_pkg.build_message
63976 (p_appli_s_name => 'XLA'
63977 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
63978 ,p_token_1 => 'LINE_NUMBER'
63979 ,p_value_1 => l_array_extract_line_num(Idx)
63980 ,p_token_2 => 'PRODUCT_NAME'
63981 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63982 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63983 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63984 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63985
63986 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
63987 --
63988 -- following sets the accounting attributes needed to reverse
63989 -- accounting for a distributeion
63990 --
63991
63992 --
63993 -- 5217187
63994 --
63995 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
63996 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
63997 g_array_event(l_event_id).array_value_num('header_index'));
63998 --
63999 --
64000
64001 -- No reversal code generated
64002
64003 xla_ae_lines_pkg.SetAcctReversalAttrs
64004 (p_event_id => l_event_id
64005 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
64006 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64007 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
64008 END IF;
64009
64010 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
64011 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
64012
64013 --
64014 AcctLineType_25 (
64015 p_application_id => p_application_id
64016 ,p_event_id => l_event_id
64017 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64018 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64019 ,p_actual_flag => l_actual_flag
64020 ,p_balance_type_code => l_balance_type_code
64021 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64022
64023 , p_source_22 => l_array_source_22(Idx)
64024 , p_source_27 => l_array_source_27(Idx)
64025 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
64026 , p_source_29 => l_array_source_29(Idx)
64027 , p_source_30 => l_array_source_30(Idx)
64028 , p_source_31 => l_array_source_31(Idx)
64029 , p_source_32 => l_array_source_32(Idx)
64030 , p_source_33 => l_array_source_33(Idx)
64031 , p_source_34 => l_array_source_34(Idx)
64032 , p_source_35 => l_array_source_35(Idx)
64033 , p_source_36 => l_array_source_36(Idx)
64034 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64035 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64036 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64037 );
64038 If(l_balance_type_code = 'A') THEN
64039 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64040 END IF;
64041
64042 --
64043
64044
64045 --
64046 AcctLineType_26 (
64047 p_application_id => p_application_id
64048 ,p_event_id => l_event_id
64049 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64050 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64051 ,p_actual_flag => l_actual_flag
64052 ,p_balance_type_code => l_balance_type_code
64053 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64054
64055 , p_source_22 => l_array_source_22(Idx)
64059 , p_source_30 => l_array_source_30(Idx)
64056 , p_source_27 => l_array_source_27(Idx)
64057 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
64058 , p_source_29 => l_array_source_29(Idx)
64060 , p_source_31 => l_array_source_31(Idx)
64061 , p_source_32 => l_array_source_32(Idx)
64062 , p_source_33 => l_array_source_33(Idx)
64063 , p_source_34 => l_array_source_34(Idx)
64064 , p_source_35 => l_array_source_35(Idx)
64065 , p_source_36 => l_array_source_36(Idx)
64066 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64067 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64068 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64069 );
64070 If(l_balance_type_code = 'A') THEN
64071 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64072 END IF;
64073
64074 --
64075
64076
64077 --
64078 AcctLineType_27 (
64079 p_application_id => p_application_id
64080 ,p_event_id => l_event_id
64081 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64082 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64083 ,p_actual_flag => l_actual_flag
64084 ,p_balance_type_code => l_balance_type_code
64085 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64086
64087 , p_source_22 => l_array_source_22(Idx)
64088 , p_source_27 => l_array_source_27(Idx)
64089 , p_source_29 => l_array_source_29(Idx)
64090 , p_source_30 => l_array_source_30(Idx)
64091 , p_source_31 => l_array_source_31(Idx)
64092 , p_source_32 => l_array_source_32(Idx)
64093 , p_source_33 => l_array_source_33(Idx)
64094 , p_source_34 => l_array_source_34(Idx)
64095 , p_source_35 => l_array_source_35(Idx)
64096 , p_source_36 => l_array_source_36(Idx)
64097 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64098 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64099 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64100 );
64101 If(l_balance_type_code = 'A') THEN
64102 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64103 END IF;
64104
64105 --
64106
64107
64108 --
64109 AcctLineType_28 (
64110 p_application_id => p_application_id
64111 ,p_event_id => l_event_id
64112 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64113 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64114 ,p_actual_flag => l_actual_flag
64115 ,p_balance_type_code => l_balance_type_code
64116 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64117
64118 , p_source_22 => l_array_source_22(Idx)
64119 , p_source_27 => l_array_source_27(Idx)
64120 , p_source_29 => l_array_source_29(Idx)
64121 , p_source_30 => l_array_source_30(Idx)
64122 , p_source_31 => l_array_source_31(Idx)
64123 , p_source_32 => l_array_source_32(Idx)
64124 , p_source_33 => l_array_source_33(Idx)
64125 , p_source_34 => l_array_source_34(Idx)
64126 , p_source_35 => l_array_source_35(Idx)
64127 , p_source_36 => l_array_source_36(Idx)
64128 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64129 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64130 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64131 );
64132 If(l_balance_type_code = 'A') THEN
64133 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64134 END IF;
64135
64136 --
64137
64138
64139 --
64140 AcctLineType_29 (
64141 p_application_id => p_application_id
64142 ,p_event_id => l_event_id
64143 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64144 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64145 ,p_actual_flag => l_actual_flag
64146 ,p_balance_type_code => l_balance_type_code
64147 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64148
64149 , p_source_22 => l_array_source_22(Idx)
64150 , p_source_27 => l_array_source_27(Idx)
64151 , p_source_29 => l_array_source_29(Idx)
64152 , p_source_30 => l_array_source_30(Idx)
64153 , p_source_31 => l_array_source_31(Idx)
64154 , p_source_32 => l_array_source_32(Idx)
64155 , p_source_33 => l_array_source_33(Idx)
64156 , p_source_34 => l_array_source_34(Idx)
64157 , p_source_35 => l_array_source_35(Idx)
64158 , p_source_36 => l_array_source_36(Idx)
64159 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64160 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64161 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64162 );
64163 If(l_balance_type_code = 'A') THEN
64164 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64165 END IF;
64166
64167 --
64168
64169
64170 --
64171 AcctLineType_30 (
64172 p_application_id => p_application_id
64173 ,p_event_id => l_event_id
64174 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64175 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64176 ,p_actual_flag => l_actual_flag
64177 ,p_balance_type_code => l_balance_type_code
64178 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64179
64180 , p_source_22 => l_array_source_22(Idx)
64181 , p_source_27 => l_array_source_27(Idx)
64182 , p_source_29 => l_array_source_29(Idx)
64186 , p_source_33 => l_array_source_33(Idx)
64183 , p_source_30 => l_array_source_30(Idx)
64184 , p_source_31 => l_array_source_31(Idx)
64185 , p_source_32 => l_array_source_32(Idx)
64187 , p_source_34 => l_array_source_34(Idx)
64188 , p_source_35 => l_array_source_35(Idx)
64189 , p_source_36 => l_array_source_36(Idx)
64190 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64191 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64192 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64193 );
64194 If(l_balance_type_code = 'A') THEN
64195 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64196 END IF;
64197
64198 --
64199
64200
64201 --
64202 AcctLineType_31 (
64203 p_application_id => p_application_id
64204 ,p_event_id => l_event_id
64205 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64206 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64207 ,p_actual_flag => l_actual_flag
64208 ,p_balance_type_code => l_balance_type_code
64209 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64210
64211 , p_source_22 => l_array_source_22(Idx)
64212 , p_source_27 => l_array_source_27(Idx)
64213 , p_source_29 => l_array_source_29(Idx)
64214 , p_source_30 => l_array_source_30(Idx)
64215 , p_source_31 => l_array_source_31(Idx)
64216 , p_source_32 => l_array_source_32(Idx)
64217 , p_source_33 => l_array_source_33(Idx)
64218 , p_source_34 => l_array_source_34(Idx)
64219 , p_source_35 => l_array_source_35(Idx)
64220 , p_source_36 => l_array_source_36(Idx)
64221 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64222 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64223 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64224 );
64225 If(l_balance_type_code = 'A') THEN
64226 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64227 END IF;
64228
64229 --
64230
64231
64232 --
64233 AcctLineType_32 (
64234 p_application_id => p_application_id
64235 ,p_event_id => l_event_id
64236 ,p_calculate_acctd_flag => l_calculate_acctd_flag
64237 ,p_calculate_g_l_flag => l_calculate_g_l_flag
64238 ,p_actual_flag => l_actual_flag
64239 ,p_balance_type_code => l_balance_type_code
64240 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
64241
64242 , p_source_22 => l_array_source_22(Idx)
64243 , p_source_27 => l_array_source_27(Idx)
64244 , p_source_29 => l_array_source_29(Idx)
64245 , p_source_30 => l_array_source_30(Idx)
64246 , p_source_31 => l_array_source_31(Idx)
64247 , p_source_32 => l_array_source_32(Idx)
64248 , p_source_33 => l_array_source_33(Idx)
64249 , p_source_34 => l_array_source_34(Idx)
64250 , p_source_35 => l_array_source_35(Idx)
64251 , p_source_36 => l_array_source_36(Idx)
64252 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
64253 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
64254 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
64255 );
64256 If(l_balance_type_code = 'A') THEN
64257 l_actual_gain_loss_ref := l_gain_or_loss_ref;
64258 END IF;
64259
64260 --
64261
64262 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
64263 -- or secondary ledger that has different currency with primary
64264 -- or alc that is calculated by sla
64265 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
64266 (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'))
64267
64268 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
64269 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
64270 AND (l_actual_flag = 'A')) THEN
64271 XLA_AE_LINES_PKG.CreateGainOrLossLines(
64272 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
64273 ,p_application_id => p_application_id
64274 ,p_amb_context_code => 'DEFAULT'
64275 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
64276 ,p_event_class_code => C_EVENT_CLASS_CODE
64277 ,p_event_type_code => C_EVENT_TYPE_CODE
64278
64279 ,p_gain_ccid => -1
64280 ,p_loss_ccid => -1
64281
64282 ,p_actual_flag => l_actual_flag
64283 ,p_enc_flag => null
64284 ,p_actual_g_l_ref => l_actual_gain_loss_ref
64285 ,p_enc_g_l_ref => null
64286 );
64287 END IF;
64288 END IF;
64289 END IF;
64290
64291 ELSE
64292 --
64293 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
64294 --
64295 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64296 trace
64297 (p_msg => 'Trancaction revesal option is Y'
64298 ,p_level => C_LEVEL_STATEMENT
64299 ,p_module => l_log_module);
64300 END IF;
64301 END IF;
64302
64303 END LOOP;
64304 l_result := XLA_AE_LINES_PKG.InsertLines ;
64305 end loop;
64306 close line_cur;
64307
64308
64309 --
64310 -- insert headers into xla_ae_headers_gt table
64311 --
64312 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
64313
64314 -- insert into errors table here.
64315
64316 END LOOP;
64317
64318 --
64319 -- 4865292
64320 --
64321 -- Compare g_hdr_extract_count with event count in
64322 -- CreateHeadersAndLines.
64323 --
64327 trace (p_msg => '# rows extracted from header extract objects '
64324 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
64325
64326 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64328 || ' (running total): '
64329 || g_hdr_extract_count
64330 ,p_level => C_LEVEL_STATEMENT
64331 ,p_module => l_log_module);
64332 END IF;
64333
64334 CLOSE header_cur;
64335 --
64336
64337 --
64338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64339 trace
64340 (p_msg => 'END of EventClass_126'
64341 ,p_level => C_LEVEL_PROCEDURE
64342 ,p_module => l_log_module);
64343 END IF;
64344 --
64345 RETURN l_result;
64346 EXCEPTION
64347 WHEN xla_exceptions_pkg.application_exception THEN
64348
64349 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
64350
64351
64352 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
64353
64354 RAISE;
64355
64356 WHEN NO_DATA_FOUND THEN
64357
64358 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
64359 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
64360
64361 FOR header_record IN header_cur
64362 LOOP
64363 l_array_header_events(header_record.event_id) := header_record.event_id;
64364 END LOOP;
64365
64366 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
64367 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
64368
64369 fnd_file.put_line(fnd_file.LOG, ' ');
64370 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
64371 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
64372 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
64373
64374 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
64375 LOOP
64376 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
64377 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
64378 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
64379 END IF;
64380 END LOOP;
64381
64382 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
64383 fnd_file.put_line(fnd_file.LOG, ' ');
64384
64385
64386 xla_exceptions_pkg.raise_message
64387 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_126');
64388
64392 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_126');
64389
64390 WHEN OTHERS THEN
64391 xla_exceptions_pkg.raise_message
64393 END EventClass_126;
64394 --
64395
64396 ---------------------------------------
64397 --
64398 -- PRIVATE PROCEDURE
64399 -- insert_sources_127
64400 --
64401 ----------------------------------------
64402 --
64403 PROCEDURE insert_sources_127(
64404 p_target_ledger_id IN NUMBER
64405 , p_language IN VARCHAR2
64406 , p_sla_ledger_id IN NUMBER
64407 , p_pad_start_date IN DATE
64408 , p_pad_end_date IN DATE
64409 )
64410 IS
64411
64412 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BILL_ALL';
64413 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BILL';
64414 p_apps_owner VARCHAR2(30);
64415 l_log_module VARCHAR2(240);
64416 BEGIN
64417 IF g_log_enabled THEN
64418 l_log_module := C_DEFAULT_MODULE||'.insert_sources_127';
64419 END IF;
64420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64421
64422 trace
64423 (p_msg => 'BEGIN of insert_sources_127'
64424 ,p_level => C_LEVEL_PROCEDURE
64425 ,p_module => l_log_module);
64426
64427 END IF;
64428
64429 -- select APPS owner
64430 SELECT oracle_username
64431 INTO p_apps_owner
64432 FROM fnd_oracle_userid
64433 WHERE read_only_flag = 'U'
64434 ;
64435
64436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64437 trace
64438 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
64439 ' - p_language = '||p_language||
64440 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
64441 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
64442 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
64443 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
64444 ,p_level => C_LEVEL_STATEMENT
64445 ,p_module => l_log_module);
64446 END IF;
64447
64448
64449 --
64450 INSERT INTO xla_diag_sources --hdr2
64451 (
64452 event_id
64453 , ledger_id
64454 , sla_ledger_id
64455 , description_language
64456 , object_name
64457 , object_type_code
64458 , line_number
64459 , source_application_id
64460 , source_type_code
64461 , source_code
64462 , source_value
64463 , source_meaning
64464 , created_by
64465 , creation_date
64466 , last_update_date
64467 , last_updated_by
64468 , last_update_login
64469 , program_update_date
64470 , program_application_id
64471 , program_id
64472 , request_id
64473 )
64474 SELECT
64475 event_id
64476 , p_target_ledger_id
64477 , p_sla_ledger_id
64478 , p_language
64479 , object_name
64480 , object_type_code
64481 , line_number
64482 , source_application_id
64483 , source_type_code
64484 , source_code
64485 , SUBSTR(source_value ,1,1996)
64486 , SUBSTR(source_meaning ,1,200)
64487 , xla_environment_pkg.g_Usr_Id
64488 , TRUNC(SYSDATE)
64489 , TRUNC(SYSDATE)
64490 , xla_environment_pkg.g_Usr_Id
64491 , xla_environment_pkg.g_Login_Id
64492 , TRUNC(SYSDATE)
64493 , xla_environment_pkg.g_Prog_Appl_Id
64494 , xla_environment_pkg.g_Prog_Id
64495 , xla_environment_pkg.g_Req_Id
64496 FROM (
64497 SELECT xet.event_id event_id
64498 , 0 line_number
64499 , CASE r
64500 WHEN 1 THEN 'AR_SYSTEM_PARAM_H_V'
64501 WHEN 2 THEN 'AR_SYSTEM_PARAM_H_V'
64502 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
64503 WHEN 4 THEN 'AR_DRAWEE_CUSTOMERS_H_V'
64504 WHEN 5 THEN 'AR_DRAWEE_SITE_USES_H_V'
64505
64506 ELSE null
64507 END object_name
64508 , CASE r
64509 WHEN 1 THEN 'HEADER'
64510 WHEN 2 THEN 'HEADER'
64511 WHEN 3 THEN 'HEADER'
64512 WHEN 4 THEN 'HEADER'
64513 WHEN 5 THEN 'HEADER'
64514
64515 ELSE null
64516 END object_type_code
64517 , CASE r
64518 WHEN 1 THEN '222'
64519 WHEN 2 THEN '222'
64523
64520 WHEN 3 THEN '222'
64521 WHEN 4 THEN '222'
64522 WHEN 5 THEN '222'
64524 ELSE null
64525 END source_application_id
64526 , 'S' source_type_code
64527 , CASE r
64528 WHEN 1 THEN 'CODE_COMBINATION_ID_GAIN'
64529 WHEN 2 THEN 'CODE_COMBINATION_ID_LOSS'
64530 WHEN 3 THEN 'XLA_PARTY_TYPE'
64531 WHEN 4 THEN 'DRAW_CUST_ACCOUNT_ID'
64532 WHEN 5 THEN 'DRAW_SITE_SITE_USE_ID'
64533
64534 ELSE null
64535 END source_code
64536 , CASE r
64537 WHEN 1 THEN TO_CHAR(h5.CODE_COMBINATION_ID_GAIN)
64538 WHEN 2 THEN TO_CHAR(h5.CODE_COMBINATION_ID_LOSS)
64539 WHEN 3 THEN TO_CHAR(h6.XLA_PARTY_TYPE)
64540 WHEN 4 THEN TO_CHAR(h3.DRAW_CUST_ACCOUNT_ID)
64541 WHEN 5 THEN TO_CHAR(h4.DRAW_SITE_SITE_USE_ID)
64542
64543 ELSE null
64544 END source_value
64545 , null source_meaning
64546 FROM xla_events_gt xet
64547 , AR_DRAWEE_CUSTOMERS_H_V h3
64548 , AR_DRAWEE_SITE_USES_H_V h4
64549 , AR_SYSTEM_PARAM_H_V h5
64550 , AR_TRANSACTIONS_S_V h6
64551 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
64552 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64553 AND xet.event_class_code = C_EVENT_CLASS_CODE
64554 AND h3.event_id = xet.event_id
64555 AND h4.event_id = h3.event_id
64556 AND h5.event_id (+) = h3.event_id
64557 AND h6.event_id (+) = h3.event_id
64558
64559 )
64560 ;
64561 --
64562 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64563
64564 trace
64565 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
64566 ,p_level => C_LEVEL_STATEMENT
64567 ,p_module => l_log_module);
64568
64569 END IF;
64570 --
64571
64572
64573
64574 --
64575 INSERT INTO xla_diag_sources --line2
64576 (
64577 event_id
64578 , ledger_id
64579 , sla_ledger_id
64580 , description_language
64581 , object_name
64582 , object_type_code
64583 , line_number
64584 , source_application_id
64585 , source_type_code
64586 , source_code
64587 , source_value
64588 , source_meaning
64589 , created_by
64590 , creation_date
64591 , last_update_date
64592 , last_updated_by
64593 , last_update_login
64594 , program_update_date
64595 , program_application_id
64596 , program_id
64597 , request_id
64598 )
64599 SELECT event_id
64600 , p_target_ledger_id
64601 , p_sla_ledger_id
64602 , p_language
64603 , object_name
64604 , object_type_code
64605 , line_number
64606 , source_application_id
64607 , source_type_code
64608 , source_code
64609 , SUBSTR(source_value,1,1996)
64610 , SUBSTR(source_meaning ,1,200)
64611 , xla_environment_pkg.g_Usr_Id
64612 , TRUNC(SYSDATE)
64613 , TRUNC(SYSDATE)
64614 , xla_environment_pkg.g_Usr_Id
64615 , xla_environment_pkg.g_Login_Id
64616 , TRUNC(SYSDATE)
64617 , xla_environment_pkg.g_Prog_Appl_Id
64618 , xla_environment_pkg.g_Prog_Id
64619 , xla_environment_pkg.g_Req_Id
64620 FROM (
64621 SELECT xet.event_id event_id
64622 , l2.line_number line_number
64623 , CASE r
64624 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
64625 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
64626 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
64627 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
64628 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
64629 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
64630 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
64631 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
64632 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
64633 WHEN 10 THEN 'AR_DISTRIBUTIONS_BASE_V'
64634
64635 ELSE null
64636 END object_name
64637 , CASE r
64638 WHEN 1 THEN 'LINE'
64639 WHEN 2 THEN 'LINE'
64640 WHEN 3 THEN 'LINE'
64641 WHEN 4 THEN 'LINE'
64642 WHEN 5 THEN 'LINE'
64643 WHEN 6 THEN 'LINE'
64644 WHEN 7 THEN 'LINE'
64645 WHEN 8 THEN 'LINE'
64646 WHEN 9 THEN 'LINE'
64647 WHEN 10 THEN 'LINE'
64648
64649 ELSE null
64650 END object_type_code
64651 , CASE r
64652 WHEN 1 THEN '222'
64653 WHEN 2 THEN '222'
64654 WHEN 3 THEN '222'
64655 WHEN 4 THEN '222'
64656 WHEN 5 THEN '222'
64657 WHEN 6 THEN '222'
64658 WHEN 7 THEN '222'
64659 WHEN 8 THEN '222'
64660 WHEN 9 THEN '222'
64661 WHEN 10 THEN '222'
64662
64663 ELSE null
64664 END source_application_id
64668 WHEN 2 THEN 'DIST_SOURCE_TYPE'
64665 , 'S' source_type_code
64666 , CASE r
64667 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
64669 WHEN 3 THEN 'DIST_LINE_ID'
64670 WHEN 4 THEN 'DISTRIBUTION_TYPE'
64671 WHEN 5 THEN 'DIST_ENT_AMT'
64672 WHEN 6 THEN 'DIST_CURRENCY_CODE'
64673 WHEN 7 THEN 'DIST_CUR_CONVERSION_DATE'
64674 WHEN 8 THEN 'DIST_CUR_CONVERSION_RATE'
64675 WHEN 9 THEN 'DIST_CUR_CONVERSION_TYPE'
64676 WHEN 10 THEN 'DIST_ACCTD_AMT'
64677
64678 ELSE null
64679 END source_code
64680 , CASE r
64681 WHEN 1 THEN TO_CHAR(l2.DIST_CODE_COMBINATION_ID)
64682 WHEN 2 THEN TO_CHAR(l2.DIST_SOURCE_TYPE)
64683 WHEN 3 THEN TO_CHAR(l2.DIST_LINE_ID)
64684 WHEN 4 THEN TO_CHAR(l2.DISTRIBUTION_TYPE)
64685 WHEN 5 THEN TO_CHAR(l2.DIST_ENT_AMT)
64686 WHEN 6 THEN TO_CHAR(l2.DIST_CURRENCY_CODE)
64687 WHEN 7 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_DATE)
64688 WHEN 8 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_RATE)
64689 WHEN 9 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_TYPE)
64690 WHEN 10 THEN TO_CHAR(l1.DIST_ACCTD_AMT)
64691
64692 ELSE null
64693 END source_value
64694 , null source_meaning
64695 FROM xla_events_gt xet
64696 , AR_DISTRIBUTIONS_BASE_V l1
64697 , AR_DISTRIBUTIONS_L_V l2
64698 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
64699 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64700 AND xet.event_class_code = C_EVENT_CLASS_CODE
64701 AND l1.event_id = xet.event_id
64702 AND l2.event_id = l1.event_id
64703 AND l2.line_number = l1.line_number
64704
64705 )
64706 ;
64707 --
64708 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64709
64710 trace
64711 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
64712 ,p_level => C_LEVEL_STATEMENT
64713 ,p_module => l_log_module);
64714
64715 END IF;
64716
64717
64718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64719 trace
64720 (p_msg => 'END of insert_sources_127'
64721 ,p_level => C_LEVEL_PROCEDURE
64722 ,p_module => l_log_module);
64723 END IF;
64724 EXCEPTION
64725 WHEN xla_exceptions_pkg.application_exception THEN
64726 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64727 trace
64728 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64732 RAISE;
64729 ,p_level => C_LEVEL_EXCEPTION
64730 ,p_module => l_log_module);
64731 END IF;
64733 WHEN OTHERS THEN
64734 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64735 trace
64736 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64737 ,p_level => C_LEVEL_EXCEPTION
64738 ,p_module => l_log_module);
64739 END IF;
64740 xla_exceptions_pkg.raise_message
64741 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_127');
64742 END insert_sources_127;
64743 --
64744
64745 ---------------------------------------
64746 --
64747 -- PRIVATE FUNCTION
64748 -- EventClass_127
64749 --
64750 ----------------------------------------
64751 --
64752 FUNCTION EventClass_127
64753 (p_application_id IN NUMBER
64754 ,p_base_ledger_id IN NUMBER
64755 ,p_target_ledger_id IN NUMBER
64756 ,p_language IN VARCHAR2
64757 ,p_currency_code IN VARCHAR2
64758 ,p_sla_ledger_id IN NUMBER
64759 ,p_pad_start_date IN DATE
64760 ,p_pad_end_date IN DATE
64761 ,p_primary_ledger_id IN NUMBER)
64762 RETURN BOOLEAN IS
64763 --
64764 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BILL_ALL';
64765 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BILL';
64766
64767 l_calculate_acctd_flag VARCHAR2(1) :='N';
64768 l_calculate_g_l_flag VARCHAR2(1) :='Y';
64769 --
64770 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64771 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64772 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64776 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64773 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64774 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64775 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64777 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64778 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64779 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64780 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64781 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64782 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64783 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64784 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64785 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64786 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64787 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64788 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64789 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64790 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64791 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64792 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
64793 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64794 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
64795 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
64796
64797 l_event_id NUMBER;
64798 l_previous_event_id NUMBER;
64799 l_first_event_id NUMBER;
64800 l_last_event_id NUMBER;
64801
64802 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
64803 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64804 --
64805 --
64806 l_result BOOLEAN := TRUE;
64807 l_rows NUMBER := 1000;
64808 l_event_type_name VARCHAR2(80) := 'All';
64809 l_event_class_name VARCHAR2(80) := 'Bills Receivable';
64810 l_description VARCHAR2(4000);
64811 l_transaction_reversal NUMBER;
64812 l_ae_header_id NUMBER;
64813 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
64814 l_log_module VARCHAR2(240);
64815 --
64816 l_acct_reversal_source VARCHAR2(30);
64817 l_trx_reversal_source VARCHAR2(30);
64818
64819 l_continue_with_lines BOOLEAN := TRUE;
64820 --
64821 l_acc_rev_gl_date_source DATE; -- 4262811
64822 --
64823 type t_array_event_id is table of number index by binary_integer;
64824
64825 l_rec_array_event t_rec_array_event;
64826 l_null_rec_array_event t_rec_array_event;
64827 l_array_ae_header_id xla_number_array_type;
64828 l_actual_flag VARCHAR2(1) := NULL;
64829 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
64830 l_balance_type_code VARCHAR2(1) :=NULL;
64831 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
64832
64833 --
64834 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
64835 --
64836
64837 TYPE t_array_source_24 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
64838 TYPE t_array_source_25 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
64839 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
64840 TYPE t_array_source_41 IS TABLE OF AR_DRAWEE_CUSTOMERS_H_V.DRAW_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
64841 TYPE t_array_source_42 IS TABLE OF AR_DRAWEE_SITE_USES_H_V.DRAW_SITE_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
64842
64843 TYPE t_array_source_22 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
64844 TYPE t_array_source_27 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
64845 TYPE t_array_source_29 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
64846 TYPE t_array_source_30 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
64847 TYPE t_array_source_31 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
64848 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
64849 TYPE t_array_source_33 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
64850 TYPE t_array_source_34 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
64854 l_array_source_24 t_array_source_24;
64851 TYPE t_array_source_35 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
64852 TYPE t_array_source_40 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
64853
64855 l_array_source_25 t_array_source_25;
64856 l_array_source_39 t_array_source_39;
64857 l_array_source_41 t_array_source_41;
64858 l_array_source_42 t_array_source_42;
64859
64860 l_array_source_22 t_array_source_22;
64861 l_array_source_27 t_array_source_27;
64862 l_array_source_29 t_array_source_29;
64863 l_array_source_30 t_array_source_30;
64864 l_array_source_31 t_array_source_31;
64865 l_array_source_32 t_array_source_32;
64866 l_array_source_33 t_array_source_33;
64867 l_array_source_34 t_array_source_34;
64868 l_array_source_35 t_array_source_35;
64869 l_array_source_40 t_array_source_40;
64870
64871 --
64872 CURSOR header_cur
64873 IS
64874 SELECT /*+ leading(xet) cardinality(xet,1) */
64875 -- Event Class Code: BILL
64876 xet.entity_id
64877 ,xet.legal_entity_id
64878 ,xet.entity_code
64879 ,xet.transaction_number
64880 ,xet.event_id
64881 ,xet.event_class_code
64882 ,xet.event_type_code
64883 ,xet.event_number
64884 ,xet.event_date
64885 ,xet.transaction_date
64886 ,xet.reference_num_1
64887 ,xet.reference_num_2
64888 ,xet.reference_num_3
64889 ,xet.reference_num_4
64890 ,xet.reference_char_1
64891 ,xet.reference_char_2
64892 ,xet.reference_char_3
64893 ,xet.reference_char_4
64894 ,xet.reference_date_1
64895 ,xet.reference_date_2
64896 ,xet.reference_date_3
64897 ,xet.reference_date_4
64898 ,xet.event_created_by
64899 ,xet.budgetary_control_flag
64900 , h5.CODE_COMBINATION_ID_GAIN source_24
64901 , h5.CODE_COMBINATION_ID_LOSS source_25
64902 , h6.XLA_PARTY_TYPE source_39
64903 , h3.DRAW_CUST_ACCOUNT_ID source_41
64904 , h4.DRAW_SITE_SITE_USE_ID source_42
64905 FROM xla_events_gt xet
64906 , AR_DRAWEE_CUSTOMERS_H_V h3
64907 , AR_DRAWEE_SITE_USES_H_V h4
64908 , AR_SYSTEM_PARAM_H_V h5
64909 , AR_TRANSACTIONS_S_V h6
64910 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
64911 and xet.event_class_code = C_EVENT_CLASS_CODE
64912 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
64913 AND h4.event_id = h3.event_id
64914 AND h5.event_id (+) = h3.event_id
64915 AND h6.event_id (+) = h3.event_id
64916
64917 ORDER BY event_id
64918 ;
64919
64920
64921 --
64922 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
64923 IS
64924 SELECT /*+ leading(xet) cardinality(xet,1) */
64925 -- Event Class Code: BILL
64926 xet.entity_id
64927 ,xet.legal_entity_id
64928 ,xet.entity_code
64929 ,xet.transaction_number
64930 ,xet.event_id
64931 ,xet.event_class_code
64932 ,xet.event_type_code
64933 ,xet.event_number
64934 ,xet.event_date
64935 ,xet.transaction_date
64936 ,xet.reference_num_1
64937 ,xet.reference_num_2
64938 ,xet.reference_num_3
64939 ,xet.reference_num_4
64940 ,xet.reference_char_1
64941 ,xet.reference_char_2
64942 ,xet.reference_char_3
64943 ,xet.reference_char_4
64944 ,xet.reference_date_1
64945 ,xet.reference_date_2
64946 ,xet.reference_date_3
64947 ,xet.reference_date_4
64948 ,xet.event_created_by
64949 ,xet.budgetary_control_flag
64950 , l1.LINE_NUMBER
64951 , l2.DIST_CODE_COMBINATION_ID source_22
64952 , l2.DIST_SOURCE_TYPE source_27
64953 , l2.DIST_LINE_ID source_29
64954 , l2.DISTRIBUTION_TYPE source_30
64955 , l2.DIST_ENT_AMT source_31
64956 , l2.DIST_CURRENCY_CODE source_32
64957 , l1.DIST_CUR_CONVERSION_DATE source_33
64958 , l1.DIST_CUR_CONVERSION_RATE source_34
64959 , l1.DIST_CUR_CONVERSION_TYPE source_35
64960 , l1.DIST_ACCTD_AMT source_40
64961 FROM xla_events_gt xet
64962 , AR_DISTRIBUTIONS_BASE_V l1
64963 , AR_DISTRIBUTIONS_L_V l2
64964 WHERE xet.event_id between x_first_event_id and x_last_event_id
64965 and xet.event_date between p_pad_start_date and p_pad_end_date
64966 and xet.event_class_code = C_EVENT_CLASS_CODE
64967 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
64968 AND l2.event_id = l1.event_id
64969 AND l2.line_number = l1.line_number
64970 ;
64971
64972 --
64973 BEGIN
64974 IF g_log_enabled THEN
64975 l_log_module := C_DEFAULT_MODULE||'.EventClass_127';
64976 END IF;
64977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64978 trace
64979 (p_msg => 'BEGIN of EventClass_127'
64980 ,p_level => C_LEVEL_PROCEDURE
64981 ,p_module => l_log_module);
64982 END IF;
64983
64984 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64985 trace
64986 (p_msg => 'p_application_id = '||p_application_id||
64987 ' - p_base_ledger_id = '||p_base_ledger_id||
64988 ' - p_target_ledger_id = '||p_target_ledger_id||
64989 ' - p_language = '||p_language||
64990 ' - p_currency_code = '||p_currency_code||
64991 ' - p_sla_ledger_id = '||p_sla_ledger_id
64995 --
64992 ,p_level => C_LEVEL_STATEMENT
64993 ,p_module => l_log_module);
64994 END IF;
64996 -- initialze arrays
64997 --
64998 g_array_event.DELETE;
64999 l_rec_array_event := l_null_rec_array_event;
65000 --
65001 --------------------------------------
65002 -- 4262811 Initialze MPA Line Number
65003 --------------------------------------
65004 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
65005
65006 --
65007
65008 --
65009 OPEN header_cur;
65010 --
65011 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65012 trace
65013 (p_msg => 'SQL - FETCH header_cur'
65014 ,p_level => C_LEVEL_STATEMENT
65015 ,p_module => l_log_module);
65016 END IF;
65017 --
65018 LOOP
65019 FETCH header_cur BULK COLLECT INTO
65020 l_array_entity_id
65021 , l_array_legal_entity_id
65022 , l_array_entity_code
65023 , l_array_transaction_num
65024 , l_array_event_id
65025 , l_array_class_code
65026 , l_array_event_type
65027 , l_array_event_number
65028 , l_array_event_date
65029 , l_array_transaction_date
65030 , l_array_reference_num_1
65031 , l_array_reference_num_2
65035 , l_array_reference_char_2
65032 , l_array_reference_num_3
65033 , l_array_reference_num_4
65034 , l_array_reference_char_1
65036 , l_array_reference_char_3
65037 , l_array_reference_char_4
65038 , l_array_reference_date_1
65039 , l_array_reference_date_2
65040 , l_array_reference_date_3
65041 , l_array_reference_date_4
65042 , l_array_event_created_by
65043 , l_array_budgetary_control_flag
65044 , l_array_source_24
65045 , l_array_source_25
65046 , l_array_source_39
65047 , l_array_source_41
65048 , l_array_source_42
65049 LIMIT l_rows;
65050 --
65051 IF (C_LEVEL_EVENT >= g_log_level) THEN
65052 trace
65053 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
65054 ,p_level => C_LEVEL_EVENT
65055 ,p_module => l_log_module);
65056 END IF;
65057 --
65058 EXIT WHEN l_array_entity_id.COUNT = 0;
65059
65060 -- initialize arrays
65061 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
65062 XLA_AE_LINES_PKG.g_rec_lines := NULL;
65063
65064 --
65065 -- Bug 4458708
65066 --
65067 XLA_AE_LINES_PKG.g_LineNumber := 0;
65068
65069
65070 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
65071 g_last_hdr_idx := l_array_event_id.LAST;
65072 --
65073 -- loop for the headers. Each iteration is for each header extract row
65074 -- fetched in header cursor
65075 --
65076 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
65077
65078 --
65079 -- set event info as cache for other routines to refer event attributes
65080 --
65081 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
65082 (p_application_id => p_application_id
65083 ,p_primary_ledger_id => p_primary_ledger_id
65084 ,p_base_ledger_id => p_base_ledger_id
65085 ,p_target_ledger_id => p_target_ledger_id
65086 ,p_entity_id => l_array_entity_id(hdr_idx)
65087 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
65088 ,p_entity_code => l_array_entity_code(hdr_idx)
65089 ,p_transaction_num => l_array_transaction_num(hdr_idx)
65090 ,p_event_id => l_array_event_id(hdr_idx)
65091 ,p_event_class_code => l_array_class_code(hdr_idx)
65092 ,p_event_type_code => l_array_event_type(hdr_idx)
65093 ,p_event_number => l_array_event_number(hdr_idx)
65094 ,p_event_date => l_array_event_date(hdr_idx)
65095 ,p_transaction_date => l_array_transaction_date(hdr_idx)
65096 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
65097 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
65098 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
65099 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
65100 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
65101 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
65102 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
65103 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
65104 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
65105 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
65106 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
65107 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
65111 --
65108 ,p_event_created_by => l_array_event_created_by(hdr_idx)
65109 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
65110
65112 -- set the status of entry to C_VALID (0)
65113 --
65114 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
65115
65116 --
65117 -- initialize a row for ae header
65118 --
65119 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
65120
65121 l_event_id := l_array_event_id(hdr_idx);
65122
65123 --
65124 -- storing the hdr_idx for event. May be used by line cursor.
65125 --
65126 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
65127
65128 --
65129 -- store sources from header extract. This can be improved to
65130 -- store only those sources from header extract that may be used in lines
65131 --
65132
65133 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
65134 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
65135 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
65136 g_array_event(l_event_id).array_value_num('source_41') := l_array_source_41(hdr_idx);
65137 g_array_event(l_event_id).array_value_num('source_42') := l_array_source_42(hdr_idx);
65138
65139 --
65140 -- initilaize the status of ae headers for diffrent balance types
65141 -- the status is initialised to C_NOT_CREATED (2)
65142 --
65143 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65144 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65145 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65146
65147 --
65148 -- call api to validate and store accounting attributes for header
65149 --
65150
65151 ------------------------------------------------------------
65152 -- Accrual Reversal : to get date for Standard Source (NONE)
65153 ------------------------------------------------------------
65154 l_acc_rev_gl_date_source := NULL;
65155
65156 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
65157 l_rec_acct_attrs.array_date_value(1) :=
65158 xla_ae_sources_pkg.GetSystemSourceDate(
65159 p_source_code => 'XLA_EVENT_DATE'
65160 , p_source_type_code => 'Y'
65161 , p_source_application_id => 602
65162 );
65163
65164
65165 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
65166
65167 XLA_AE_HEADER_PKG.SetJeCategoryName;
65168
65169 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
65170 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
65171 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
65172 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
65173 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
65174
65175
65176 -- No header level analytical criteria
65177
65178 --
65179 --accounting attribute enhancement, bug 3612931
65180 --
65181 l_trx_reversal_source := SUBSTR(NULL, 1,30);
65182
65183 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
65184 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
65185
65186 xla_accounting_err_pkg.build_message
65187 (p_appli_s_name => 'XLA'
65188 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
65189 ,p_token_1 => 'ACCT_ATTR_NAME'
65190 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
65191 ,p_token_2 => 'PRODUCT_NAME'
65192 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
65193 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
65194 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65195 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
65196
65197 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
65198 --
65199 -- following sets the accounting attributes needed to reverse
65200 -- accounting for a distributeion
65201 --
65202 xla_ae_lines_pkg.SetTrxReversalAttrs
65203 (p_event_id => l_event_id
65204 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
65205 ,p_trx_reversal_source => l_trx_reversal_source);
65206
65207 END IF;
65208
65209
65210 ----------------------------------------------------------------
65211 -- 4262811 - update the header statuses to invalid in need be
65212 ----------------------------------------------------------------
65213 --
65214 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
65215
65216
65217 -----------------------------------------------
65218 -- No accrual reversal for the event class/type
65219 -----------------------------------------------
65220 ----------------------------------------------------------------
65221
65222 --
65223 -- this ends the header loop iteration for one bulk fetch
65224 --
65225 END LOOP;
65226
65227 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
65228 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
65229
65230 --
65231 -- insert dummy rows into lines gt table that were created due to
65232 -- transaction reversals
65233 --
65234 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
65235 l_result := XLA_AE_LINES_PKG.InsertLines;
65236 END IF;
65237
65238 --
65242 --
65239 -- reset the temp_line_num for each set of events fetched from header
65240 -- cursor rather than doing it for each new event in line cursor
65241 -- Bug 3939231
65243 xla_ae_lines_pkg.g_temp_line_num := 0;
65244
65245
65246
65247 --
65248 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
65249 --
65250 --
65251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65252
65253 trace
65254 (p_msg => 'SQL - FETCH line_cur'
65255 ,p_level => C_LEVEL_STATEMENT
65256 ,p_module => l_log_module);
65257
65258 END IF;
65259 --
65260 --
65261 LOOP
65262 --
65263 FETCH line_cur BULK COLLECT INTO
65264 l_array_entity_id
65265 , l_array_legal_entity_id
65266 , l_array_entity_code
65267 , l_array_transaction_num
65268 , l_array_event_id
65269 , l_array_class_code
65270 , l_array_event_type
65271 , l_array_event_number
65272 , l_array_event_date
65273 , l_array_transaction_date
65274 , l_array_reference_num_1
65275 , l_array_reference_num_2
65276 , l_array_reference_num_3
65277 , l_array_reference_num_4
65278 , l_array_reference_char_1
65279 , l_array_reference_char_2
65280 , l_array_reference_char_3
65281 , l_array_reference_char_4
65282 , l_array_reference_date_1
65283 , l_array_reference_date_2
65284 , l_array_reference_date_3
65285 , l_array_reference_date_4
65286 , l_array_event_created_by
65287 , l_array_budgetary_control_flag
65288 , l_array_extract_line_num
65289 , l_array_source_22
65290 , l_array_source_27
65291 , l_array_source_29
65292 , l_array_source_30
65293 , l_array_source_31
65294 , l_array_source_32
65295 , l_array_source_33
65296 , l_array_source_34
65297 , l_array_source_35
65298 , l_array_source_40
65299 LIMIT l_rows;
65300
65301 --
65302 IF (C_LEVEL_EVENT >= g_log_level) THEN
65303 trace
65304 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
65305 ,p_level => C_LEVEL_EVENT
65306 ,p_module => l_log_module);
65307 END IF;
65308 --
65309 EXIT WHEN l_array_entity_id.count = 0;
65310
65311 XLA_AE_LINES_PKG.g_rec_lines := null;
65312
65313 --
65314 -- Bug 4458708
65315 --
65316 XLA_AE_LINES_PKG.g_LineNumber := 0;
65317 --
65318 --
65319
65320 FOR Idx IN 1..l_array_event_id.count LOOP
65321 --
65322 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
65323 --
65324 l_event_id := l_array_event_id(idx); -- 5648433
65325
65326 --
65327 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
65328 --
65329
65330 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
65331 (g_array_event(l_event_id).array_value_num('header_index'))
65332 ,'N'
65333 ) <> 'Y'
65334 THEN
65335 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65336 trace
65337 (p_msg => 'Trancaction revesal option is not Y '
65338 ,p_level => C_LEVEL_STATEMENT
65339 ,p_module => l_log_module);
65340 END IF;
65341
65342 --
65343 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
65344 --
65345 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
65346 --
65347 -- set event info as cache for other routines to refer event attributes
65348 --
65349
65350 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
65351 l_previous_event_id := l_event_id;
65352
65353 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
65354 (p_application_id => p_application_id
65355 ,p_primary_ledger_id => p_primary_ledger_id
65356 ,p_base_ledger_id => p_base_ledger_id
65360 ,p_entity_code => l_array_entity_code(Idx)
65357 ,p_target_ledger_id => p_target_ledger_id
65358 ,p_entity_id => l_array_entity_id(Idx)
65359 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
65361 ,p_transaction_num => l_array_transaction_num(Idx)
65362 ,p_event_id => l_array_event_id(Idx)
65363 ,p_event_class_code => l_array_class_code(Idx)
65364 ,p_event_type_code => l_array_event_type(Idx)
65365 ,p_event_number => l_array_event_number(Idx)
65366 ,p_event_date => l_array_event_date(Idx)
65367 ,p_transaction_date => l_array_transaction_date(Idx)
65368 ,p_reference_num_1 => l_array_reference_num_1(Idx)
65369 ,p_reference_num_2 => l_array_reference_num_2(Idx)
65370 ,p_reference_num_3 => l_array_reference_num_3(Idx)
65371 ,p_reference_num_4 => l_array_reference_num_4(Idx)
65372 ,p_reference_char_1 => l_array_reference_char_1(Idx)
65373 ,p_reference_char_2 => l_array_reference_char_2(Idx)
65374 ,p_reference_char_3 => l_array_reference_char_3(Idx)
65375 ,p_reference_char_4 => l_array_reference_char_4(Idx)
65376 ,p_reference_date_1 => l_array_reference_date_1(Idx)
65377 ,p_reference_date_2 => l_array_reference_date_2(Idx)
65378 ,p_reference_date_3 => l_array_reference_date_3(Idx)
65379 ,p_reference_date_4 => l_array_reference_date_4(Idx)
65380 ,p_event_created_by => l_array_event_created_by(Idx)
65381 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
65382 --
65383 END IF;
65384
65385
65386
65387 --
65388 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
65389
65390 l_acct_reversal_source := SUBSTR(NULL, 1,30);
65391
65392 IF l_continue_with_lines THEN
65393 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
65394 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
65395
65396 xla_accounting_err_pkg.build_message
65397 (p_appli_s_name => 'XLA'
65398 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
65399 ,p_token_1 => 'LINE_NUMBER'
65400 ,p_value_1 => l_array_extract_line_num(Idx)
65401 ,p_token_2 => 'PRODUCT_NAME'
65402 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
65403 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
65404 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65405 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
65406
65407 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
65408 --
65409 -- following sets the accounting attributes needed to reverse
65410 -- accounting for a distributeion
65411 --
65412
65413 --
65414 -- 5217187
65415 --
65416 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
65417 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
65418 g_array_event(l_event_id).array_value_num('header_index'));
65419 --
65420 --
65421
65422 -- No reversal code generated
65423
65424 xla_ae_lines_pkg.SetAcctReversalAttrs
65425 (p_event_id => l_event_id
65426 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
65427 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65428 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
65429 END IF;
65430
65431 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
65432 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
65433
65434 --
65435 AcctLineType_33 (
65436 p_application_id => p_application_id
65437 ,p_event_id => l_event_id
65438 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65439 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65440 ,p_actual_flag => l_actual_flag
65441 ,p_balance_type_code => l_balance_type_code
65442 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65443
65444 , p_source_22 => l_array_source_22(Idx)
65445 , p_source_27 => l_array_source_27(Idx)
65446 , p_source_29 => l_array_source_29(Idx)
65450 , p_source_33 => l_array_source_33(Idx)
65447 , p_source_30 => l_array_source_30(Idx)
65448 , p_source_31 => l_array_source_31(Idx)
65449 , p_source_32 => l_array_source_32(Idx)
65451 , p_source_34 => l_array_source_34(Idx)
65452 , p_source_35 => l_array_source_35(Idx)
65453 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65454 , p_source_40 => l_array_source_40(Idx)
65455 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65456 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65457 );
65458 If(l_balance_type_code = 'A') THEN
65459 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65460 END IF;
65461
65462 --
65463
65464
65465 --
65466 AcctLineType_34 (
65467 p_application_id => p_application_id
65468 ,p_event_id => l_event_id
65469 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65470 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65471 ,p_actual_flag => l_actual_flag
65472 ,p_balance_type_code => l_balance_type_code
65473 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65474
65475 , p_source_22 => l_array_source_22(Idx)
65476 , p_source_27 => l_array_source_27(Idx)
65477 , p_source_29 => l_array_source_29(Idx)
65478 , p_source_30 => l_array_source_30(Idx)
65479 , p_source_31 => l_array_source_31(Idx)
65480 , p_source_32 => l_array_source_32(Idx)
65481 , p_source_33 => l_array_source_33(Idx)
65482 , p_source_34 => l_array_source_34(Idx)
65483 , p_source_35 => l_array_source_35(Idx)
65484 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65485 , p_source_40 => l_array_source_40(Idx)
65486 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65487 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65488 );
65489 If(l_balance_type_code = 'A') THEN
65490 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65491 END IF;
65492
65493 --
65494
65495
65496 --
65497 AcctLineType_35 (
65498 p_application_id => p_application_id
65499 ,p_event_id => l_event_id
65500 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65501 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65502 ,p_actual_flag => l_actual_flag
65503 ,p_balance_type_code => l_balance_type_code
65504 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65508 , p_source_29 => l_array_source_29(Idx)
65505
65506 , p_source_22 => l_array_source_22(Idx)
65507 , p_source_27 => l_array_source_27(Idx)
65509 , p_source_30 => l_array_source_30(Idx)
65510 , p_source_31 => l_array_source_31(Idx)
65511 , p_source_32 => l_array_source_32(Idx)
65512 , p_source_33 => l_array_source_33(Idx)
65513 , p_source_34 => l_array_source_34(Idx)
65514 , p_source_35 => l_array_source_35(Idx)
65515 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65516 , p_source_40 => l_array_source_40(Idx)
65517 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65518 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65519 );
65520 If(l_balance_type_code = 'A') THEN
65521 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65522 END IF;
65523
65524 --
65525
65526
65527 --
65528 AcctLineType_36 (
65529 p_application_id => p_application_id
65530 ,p_event_id => l_event_id
65531 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65532 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65533 ,p_actual_flag => l_actual_flag
65534 ,p_balance_type_code => l_balance_type_code
65535 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65536
65537 , p_source_22 => l_array_source_22(Idx)
65538 , p_source_27 => l_array_source_27(Idx)
65539 , p_source_29 => l_array_source_29(Idx)
65543 , p_source_33 => l_array_source_33(Idx)
65540 , p_source_30 => l_array_source_30(Idx)
65541 , p_source_31 => l_array_source_31(Idx)
65542 , p_source_32 => l_array_source_32(Idx)
65544 , p_source_34 => l_array_source_34(Idx)
65545 , p_source_35 => l_array_source_35(Idx)
65546 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65547 , p_source_40 => l_array_source_40(Idx)
65548 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65549 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65550 );
65551 If(l_balance_type_code = 'A') THEN
65552 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65553 END IF;
65554
65555 --
65556
65557
65558 --
65559 AcctLineType_37 (
65560 p_application_id => p_application_id
65561 ,p_event_id => l_event_id
65562 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65563 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65564 ,p_actual_flag => l_actual_flag
65565 ,p_balance_type_code => l_balance_type_code
65566 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65567
65568 , p_source_22 => l_array_source_22(Idx)
65569 , p_source_27 => l_array_source_27(Idx)
65570 , p_source_29 => l_array_source_29(Idx)
65571 , p_source_30 => l_array_source_30(Idx)
65572 , p_source_31 => l_array_source_31(Idx)
65573 , p_source_32 => l_array_source_32(Idx)
65574 , p_source_33 => l_array_source_33(Idx)
65575 , p_source_34 => l_array_source_34(Idx)
65576 , p_source_35 => l_array_source_35(Idx)
65577 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65578 , p_source_40 => l_array_source_40(Idx)
65579 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65580 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65581 );
65582 If(l_balance_type_code = 'A') THEN
65583 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65584 END IF;
65585
65586 --
65587
65588
65589 --
65590 AcctLineType_38 (
65591 p_application_id => p_application_id
65592 ,p_event_id => l_event_id
65593 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65594 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65595 ,p_actual_flag => l_actual_flag
65596 ,p_balance_type_code => l_balance_type_code
65597 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65598
65599 , p_source_22 => l_array_source_22(Idx)
65600 , p_source_27 => l_array_source_27(Idx)
65601 , p_source_29 => l_array_source_29(Idx)
65602 , p_source_30 => l_array_source_30(Idx)
65603 , p_source_31 => l_array_source_31(Idx)
65604 , p_source_32 => l_array_source_32(Idx)
65605 , p_source_33 => l_array_source_33(Idx)
65606 , p_source_34 => l_array_source_34(Idx)
65607 , p_source_35 => l_array_source_35(Idx)
65608 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
65609 , p_source_40 => l_array_source_40(Idx)
65610 , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
65611 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
65612 );
65613 If(l_balance_type_code = 'A') THEN
65614 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65615 END IF;
65616
65617 --
65618
65619 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
65620 -- or secondary ledger that has different currency with primary
65621 -- or alc that is calculated by sla
65622 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65623 (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'))
65624
65625 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
65626 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
65627 AND (l_actual_flag = 'A')) THEN
65628 XLA_AE_LINES_PKG.CreateGainOrLossLines(
65629 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65630 ,p_application_id => p_application_id
65631 ,p_amb_context_code => 'DEFAULT'
65632 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
65633 ,p_event_class_code => C_EVENT_CLASS_CODE
65634 ,p_event_type_code => C_EVENT_TYPE_CODE
65635
65636 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_24'))
65637 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_25'))
65638
65639 ,p_actual_flag => l_actual_flag
65640 ,p_enc_flag => null
65641 ,p_actual_g_l_ref => l_actual_gain_loss_ref
65642 ,p_enc_g_l_ref => null
65643 );
65644 END IF;
65645 END IF;
65646 END IF;
65647
65648 ELSE
65649 --
65650 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
65651 --
65652 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65653 trace
65654 (p_msg => 'Trancaction revesal option is Y'
65655 ,p_level => C_LEVEL_STATEMENT
65656 ,p_module => l_log_module);
65657 END IF;
65658 END IF;
65659
65660 END LOOP;
65661 l_result := XLA_AE_LINES_PKG.InsertLines ;
65662 end loop;
65663 close line_cur;
65664
65665
65666 --
65667 -- insert headers into xla_ae_headers_gt table
65668 --
65669 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
65670
65671 -- insert into errors table here.
65672
65673 END LOOP;
65674
65675 --
65676 -- 4865292
65677 --
65678 -- Compare g_hdr_extract_count with event count in
65679 -- CreateHeadersAndLines.
65683 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65680 --
65681 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
65682
65684 trace (p_msg => '# rows extracted from header extract objects '
65685 || ' (running total): '
65686 || g_hdr_extract_count
65687 ,p_level => C_LEVEL_STATEMENT
65688 ,p_module => l_log_module);
65689 END IF;
65690
65691 CLOSE header_cur;
65692 --
65693
65694 --
65695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65696 trace
65697 (p_msg => 'END of EventClass_127'
65698 ,p_level => C_LEVEL_PROCEDURE
65699 ,p_module => l_log_module);
65700 END IF;
65701 --
65702 RETURN l_result;
65703 EXCEPTION
65704 WHEN xla_exceptions_pkg.application_exception THEN
65705
65706 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
65707
65708
65709 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
65710
65711 RAISE;
65712
65713 WHEN NO_DATA_FOUND THEN
65714
65715 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
65716 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
65717
65718 FOR header_record IN header_cur
65719 LOOP
65720 l_array_header_events(header_record.event_id) := header_record.event_id;
65721 END LOOP;
65722
65723 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
65724 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
65725
65726 fnd_file.put_line(fnd_file.LOG, ' ');
65727 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
65728 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
65729 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
65730
65731 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
65732 LOOP
65733 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
65734 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
65735 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
65736 END IF;
65737 END LOOP;
65738
65739 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
65740 fnd_file.put_line(fnd_file.LOG, ' ');
65741
65742
65743 xla_exceptions_pkg.raise_message
65744 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_127');
65745
65746
65747 WHEN OTHERS THEN
65748 xla_exceptions_pkg.raise_message
65749 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_127');
65750 END EventClass_127;
65751 --
65752
65753 ---------------------------------------
65754 --
65755 -- PRIVATE PROCEDURE
65756 -- insert_sources_128
65757 --
65758 ----------------------------------------
65759 --
65760 PROCEDURE insert_sources_128(
65761 p_target_ledger_id IN NUMBER
65762 , p_language IN VARCHAR2
65763 , p_sla_ledger_id IN NUMBER
65764 , p_pad_start_date IN DATE
65765 , p_pad_end_date IN DATE
65766 )
65767 IS
65768
65769 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK_ALL';
65770 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK';
65771 p_apps_owner VARCHAR2(30);
65772 l_log_module VARCHAR2(240);
65773 BEGIN
65774 IF g_log_enabled THEN
65775 l_log_module := C_DEFAULT_MODULE||'.insert_sources_128';
65776 END IF;
65777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65778
65779 trace
65780 (p_msg => 'BEGIN of insert_sources_128'
65781 ,p_level => C_LEVEL_PROCEDURE
65782 ,p_module => l_log_module);
65783
65784 END IF;
65785
65786 -- select APPS owner
65787 SELECT oracle_username
65788 INTO p_apps_owner
65789 FROM fnd_oracle_userid
65790 WHERE read_only_flag = 'U'
65791 ;
65792
65793 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65794 trace
65795 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
65796 ' - p_language = '||p_language||
65797 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
65798 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
65799 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
65800 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
65801 ,p_level => C_LEVEL_STATEMENT
65802 ,p_module => l_log_module);
65803 END IF;
65804
65805
65806 --
65807 INSERT INTO xla_diag_sources --hdr2
65808 (
65809 event_id
65810 , ledger_id
65811 , sla_ledger_id
65812 , description_language
65813 , object_name
65814 , object_type_code
65815 , line_number
65816 , source_application_id
65817 , source_type_code
65818 , source_code
65819 , source_value
65820 , source_meaning
65821 , created_by
65822 , creation_date
65823 , last_update_date
65824 , last_updated_by
65825 , last_update_login
65826 , program_update_date
65827 , program_application_id
65828 , program_id
65829 , request_id
65830 )
65831 SELECT
65832 event_id
65833 , p_target_ledger_id
65837 , object_type_code
65834 , p_sla_ledger_id
65835 , p_language
65836 , object_name
65838 , line_number
65839 , source_application_id
65840 , source_type_code
65841 , source_code
65842 , SUBSTR(source_value ,1,1996)
65843 , SUBSTR(source_meaning ,1,200)
65844 , xla_environment_pkg.g_Usr_Id
65845 , TRUNC(SYSDATE)
65846 , TRUNC(SYSDATE)
65847 , xla_environment_pkg.g_Usr_Id
65851 , xla_environment_pkg.g_Prog_Id
65848 , xla_environment_pkg.g_Login_Id
65849 , TRUNC(SYSDATE)
65850 , xla_environment_pkg.g_Prog_Appl_Id
65852 , xla_environment_pkg.g_Req_Id
65853 FROM (
65854 SELECT xet.event_id event_id
65855 , 0 line_number
65856 , CASE r
65857 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
65858 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
65859 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
65860 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
65861 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
65862 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
65863 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
65864
65865 ELSE null
65866 END object_name
65867 , CASE r
65868 WHEN 1 THEN 'HEADER'
65869 WHEN 2 THEN 'HEADER'
65870 WHEN 3 THEN 'HEADER'
65871 WHEN 4 THEN 'HEADER'
65872 WHEN 5 THEN 'HEADER'
65873 WHEN 6 THEN 'HEADER'
65874 WHEN 7 THEN 'HEADER'
65875
65876 ELSE null
65877 END object_type_code
65878 , CASE r
65879 WHEN 1 THEN '222'
65880 WHEN 2 THEN '222'
65881 WHEN 3 THEN '222'
65882 WHEN 4 THEN '222'
65883 WHEN 5 THEN '222'
65884 WHEN 6 THEN '222'
65885 WHEN 7 THEN '222'
65886
65887 ELSE null
65888 END source_application_id
65889 , 'S' source_type_code
65890 , CASE r
65891 WHEN 1 THEN 'TRX_DOC_SEQUENCE_VALUE'
65892 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
65893 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
65894 WHEN 4 THEN 'XLA_PARTY_TYPE'
65895 WHEN 5 THEN 'TRX_INVOICE_CURRENCY_CODE'
65896 WHEN 6 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
65897 WHEN 7 THEN 'TRX_DOC_SEQUENCE_ID'
65898
65899 ELSE null
65900 END source_code
65901 , CASE r
65902 WHEN 1 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
65906 WHEN 5 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
65903 WHEN 2 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
65904 WHEN 3 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
65905 WHEN 4 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
65907 WHEN 6 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
65908 WHEN 7 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
65909
65910 ELSE null
65911 END source_value
65912 , null source_meaning
65913 FROM xla_events_gt xet
65914 , AR_BILL_TO_CUSTOMERS_S_V h1
65915 , AR_BILL_TO_SITE_USES_S_V h2
65916 , AR_TRANSACTIONS_S_V h5
65917 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
65918 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65919 AND xet.event_class_code = C_EVENT_CLASS_CODE
65920 AND h1.event_id = xet.event_id
65921 AND h2.event_id = h1.event_id
65922 AND h5.event_id = h1.event_id
65923
65924 )
65925 ;
65926 --
65927 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65928
65929 trace
65930 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
65931 ,p_level => C_LEVEL_STATEMENT
65932 ,p_module => l_log_module);
65933
65934 END IF;
65935 --
65936
65937
65938
65939 --
65940 INSERT INTO xla_diag_sources --line2
65941 (
65942 event_id
65943 , ledger_id
65944 , sla_ledger_id
65945 , description_language
65946 , object_name
65947 , object_type_code
65948 , line_number
65949 , source_application_id
65950 , source_type_code
65951 , source_code
65952 , source_value
65953 , source_meaning
65954 , created_by
65955 , creation_date
65956 , last_update_date
65957 , last_updated_by
65958 , last_update_login
65959 , program_update_date
65960 , program_application_id
65961 , program_id
65962 , request_id
65963 )
65964 SELECT event_id
65965 , p_target_ledger_id
65966 , p_sla_ledger_id
65967 , p_language
65968 , object_name
65969 , object_type_code
65970 , line_number
65971 , source_application_id
65972 , source_type_code
65973 , source_code
65974 , SUBSTR(source_value,1,1996)
65975 , SUBSTR(source_meaning ,1,200)
65976 , xla_environment_pkg.g_Usr_Id
65977 , TRUNC(SYSDATE)
65978 , TRUNC(SYSDATE)
65979 , xla_environment_pkg.g_Usr_Id
65980 , xla_environment_pkg.g_Login_Id
65981 , TRUNC(SYSDATE)
65982 , xla_environment_pkg.g_Prog_Appl_Id
65983 , xla_environment_pkg.g_Prog_Id
65984 , xla_environment_pkg.g_Req_Id
65985 FROM (
65986 SELECT xet.event_id event_id
65987 , l4.line_number line_number
65988 , CASE r
65989 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
65990 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
65991 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
65992 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
65993 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
65994 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
65995 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
65996 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
65997 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
65998
65999 ELSE null
66000 END object_name
66001 , CASE r
66002 WHEN 1 THEN 'LINE'
66003 WHEN 2 THEN 'LINE'
66004 WHEN 3 THEN 'LINE'
66005 WHEN 4 THEN 'LINE'
66006 WHEN 5 THEN 'LINE'
66007 WHEN 6 THEN 'LINE'
66008 WHEN 7 THEN 'LINE'
66009 WHEN 8 THEN 'LINE'
66010 WHEN 9 THEN 'LINE'
66011
66012 ELSE null
66013 END object_type_code
66014 , CASE r
66015 WHEN 1 THEN '222'
66016 WHEN 2 THEN '222'
66017 WHEN 3 THEN '222'
66018 WHEN 4 THEN '222'
66019 WHEN 5 THEN '222'
66020 WHEN 6 THEN '222'
66021 WHEN 7 THEN '222'
66022 WHEN 8 THEN '222'
66023 WHEN 9 THEN '222'
66024
66025 ELSE null
66026 END source_application_id
66027 , 'S' source_type_code
66028 , CASE r
66029 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
66030 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
66031 WHEN 3 THEN 'TRX_LINE_DIST_ID'
66032 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
66033 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
66034 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
66035 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
66036 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
66037 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
66038
66039 ELSE null
66040 END source_code
66041 , CASE r
66042 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
66043 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
66047 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
66044 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
66045 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
66046 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
66048 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
66049 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
66050 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
66051
66052 ELSE null
66053 END source_value
66054 , null source_meaning
66055 FROM xla_events_gt xet
66056 , AR_CUST_TRX_LINES_BASE_V l3
66057 , AR_CUST_TRX_LINES_L_V l4
66058 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
66059 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66060 AND xet.event_class_code = C_EVENT_CLASS_CODE
66061 AND l3.event_id = xet.event_id
66062 AND l4.event_id = l3.event_id
66063 AND l4.line_number = l3.line_number
66064
66065 )
66066 ;
66067 --
66068 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66069
66070 trace
66071 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
66072 ,p_level => C_LEVEL_STATEMENT
66073 ,p_module => l_log_module);
66074
66075 END IF;
66076
66077
66078 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66079 trace
66080 (p_msg => 'END of insert_sources_128'
66081 ,p_level => C_LEVEL_PROCEDURE
66082 ,p_module => l_log_module);
66083 END IF;
66084 EXCEPTION
66085 WHEN xla_exceptions_pkg.application_exception THEN
66086 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66087 trace
66088 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66089 ,p_level => C_LEVEL_EXCEPTION
66090 ,p_module => l_log_module);
66091 END IF;
66092 RAISE;
66093 WHEN OTHERS THEN
66094 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66095 trace
66096 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66097 ,p_level => C_LEVEL_EXCEPTION
66098 ,p_module => l_log_module);
66099 END IF;
66100 xla_exceptions_pkg.raise_message
66101 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_128');
66102 END insert_sources_128;
66103 --
66104
66105 ---------------------------------------
66106 --
66107 -- PRIVATE FUNCTION
66108 -- EventClass_128
66109 --
66110 ----------------------------------------
66111 --
66112 FUNCTION EventClass_128
66113 (p_application_id IN NUMBER
66114 ,p_base_ledger_id IN NUMBER
66115 ,p_target_ledger_id IN NUMBER
66116 ,p_language IN VARCHAR2
66117 ,p_currency_code IN VARCHAR2
66118 ,p_sla_ledger_id IN NUMBER
66119 ,p_pad_start_date IN DATE
66120 ,p_pad_end_date IN DATE
66121 ,p_primary_ledger_id IN NUMBER)
66122 RETURN BOOLEAN IS
66123 --
66124 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK_ALL';
66125 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK';
66126
66127 l_calculate_acctd_flag VARCHAR2(1) :='N';
66128 l_calculate_g_l_flag VARCHAR2(1) :='N';
66129 --
66130 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66131 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66132 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66133 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66134 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66135 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66136 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66137 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66138 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66139 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66140 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66141 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66142 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66143 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66144 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66145 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66146 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66147 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66148 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66149 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66150 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66151 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66152 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
66153 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66154 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
66155 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
66156
66157 l_event_id NUMBER;
66158 l_previous_event_id NUMBER;
66159 l_first_event_id NUMBER;
66160 l_last_event_id NUMBER;
66161
66165 --
66162 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
66163 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66164 --
66166 l_result BOOLEAN := TRUE;
66167 l_rows NUMBER := 1000;
66168 l_event_type_name VARCHAR2(80) := 'All';
66169 l_event_class_name VARCHAR2(80) := 'Chargeback';
66170 l_description VARCHAR2(4000);
66171 l_transaction_reversal NUMBER;
66172 l_ae_header_id NUMBER;
66173 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
66174 l_log_module VARCHAR2(240);
66175 --
66176 l_acct_reversal_source VARCHAR2(30);
66177 l_trx_reversal_source VARCHAR2(30);
66178
66179 l_continue_with_lines BOOLEAN := TRUE;
66180 --
66181 l_acc_rev_gl_date_source DATE; -- 4262811
66182 --
66183 type t_array_event_id is table of number index by binary_integer;
66184
66185 l_rec_array_event t_rec_array_event;
66186 l_null_rec_array_event t_rec_array_event;
66187 l_array_ae_header_id xla_number_array_type;
66188 l_actual_flag VARCHAR2(1) := NULL;
66189 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
66190 l_balance_type_code VARCHAR2(1) :=NULL;
66191 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
66192
66193 --
66194 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
66195 --
66196
66197 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
66198 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
66199 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
66200 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
66201 TYPE t_array_source_47 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
66202 TYPE t_array_source_111 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
66203 TYPE t_array_source_112 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
66204
66205 TYPE t_array_source_26 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
66206 TYPE t_array_source_43 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
66207 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
66208 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
66209 TYPE t_array_source_46 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
66210 TYPE t_array_source_48 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
66211 TYPE t_array_source_49 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
66212 TYPE t_array_source_50 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
66213 TYPE t_array_source_51 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
66214
66215 l_array_source_3 t_array_source_3;
66216 l_array_source_37 t_array_source_37;
66217 l_array_source_38 t_array_source_38;
66218 l_array_source_39 t_array_source_39;
66219 l_array_source_47 t_array_source_47;
66220 l_array_source_111 t_array_source_111;
66221 l_array_source_112 t_array_source_112;
66222
66223 l_array_source_26 t_array_source_26;
66224 l_array_source_43 t_array_source_43;
66225 l_array_source_44 t_array_source_44;
66226 l_array_source_45 t_array_source_45;
66227 l_array_source_46 t_array_source_46;
66228 l_array_source_48 t_array_source_48;
66229 l_array_source_49 t_array_source_49;
66230 l_array_source_50 t_array_source_50;
66231 l_array_source_51 t_array_source_51;
66232
66233 --
66234 CURSOR header_cur
66235 IS
66236 SELECT /*+ leading(xet) cardinality(xet,1) */
66237 -- Event Class Code: CHARGEBACK
66238 xet.entity_id
66239 ,xet.legal_entity_id
66240 ,xet.entity_code
66241 ,xet.transaction_number
66242 ,xet.event_id
66243 ,xet.event_class_code
66244 ,xet.event_type_code
66245 ,xet.event_number
66246 ,xet.event_date
66247 ,xet.transaction_date
66248 ,xet.reference_num_1
66249 ,xet.reference_num_2
66250 ,xet.reference_num_3
66251 ,xet.reference_num_4
66252 ,xet.reference_char_1
66253 ,xet.reference_char_2
66254 ,xet.reference_char_3
66255 ,xet.reference_char_4
66256 ,xet.reference_date_1
66257 ,xet.reference_date_2
66258 ,xet.reference_date_3
66259 ,xet.reference_date_4
66260 ,xet.event_created_by
66261 ,xet.budgetary_control_flag
66262 , h5.TRX_DOC_SEQUENCE_VALUE source_3
66263 , h1.BILL_CUST_ACCOUNT_ID source_37
66264 , h2.BILL_USES_SITE_USE_ID source_38
66265 , h5.XLA_PARTY_TYPE source_39
66266 , h5.TRX_INVOICE_CURRENCY_CODE source_47
66267 , h5.TRX_DOC_SEQUENCE_CATEGORY source_111
66268 , h5.TRX_DOC_SEQUENCE_ID source_112
66269 FROM xla_events_gt xet
66270 , AR_BILL_TO_CUSTOMERS_S_V h1
66271 , AR_BILL_TO_SITE_USES_S_V h2
66272 , AR_TRANSACTIONS_S_V h5
66273 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
66274 and xet.event_class_code = C_EVENT_CLASS_CODE
66275 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
66276 AND h2.event_id = h1.event_id
66277 AND h5.event_id = h1.event_id
66278
66279 ORDER BY event_id
66280 ;
66281
66282
66286 SELECT /*+ leading(xet) cardinality(xet,1) */
66283 --
66284 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
66285 IS
66287 -- Event Class Code: CHARGEBACK
66288 xet.entity_id
66289 ,xet.legal_entity_id
66290 ,xet.entity_code
66291 ,xet.transaction_number
66292 ,xet.event_id
66293 ,xet.event_class_code
66294 ,xet.event_type_code
66295 ,xet.event_number
66296 ,xet.event_date
66297 ,xet.transaction_date
66298 ,xet.reference_num_1
66299 ,xet.reference_num_2
66300 ,xet.reference_num_3
66301 ,xet.reference_num_4
66302 ,xet.reference_char_1
66303 ,xet.reference_char_2
66304 ,xet.reference_char_3
66305 ,xet.reference_char_4
66306 ,xet.reference_date_1
66307 ,xet.reference_date_2
66308 ,xet.reference_date_3
66309 ,xet.reference_date_4
66310 ,xet.event_created_by
66311 ,xet.budgetary_control_flag
66312 , l3.LINE_NUMBER
66313 , l4.TRX_LINE_DIST_CCID source_26
66314 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_43
66315 , l4.TRX_LINE_DIST_ID source_44
66316 , l4.TRX_DISTRIBUTION_TYPE source_45
66317 , l4.TRX_LINE_DIST_AMT source_46
66318 , l3.TRX_LINE_CUR_CONVERSION_DATE source_48
66319 , l3.TRX_LINE_CUR_CONVERSION_RATE source_49
66320 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_50
66321 , l3.TRX_LINE_ACCTD_AMT source_51
66322 FROM xla_events_gt xet
66323 , AR_CUST_TRX_LINES_BASE_V l3
66324 , AR_CUST_TRX_LINES_L_V l4
66325 WHERE xet.event_id between x_first_event_id and x_last_event_id
66326 and xet.event_date between p_pad_start_date and p_pad_end_date
66327 and xet.event_class_code = C_EVENT_CLASS_CODE
66328 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
66329 AND l4.event_id = l3.event_id
66330 AND l4.line_number = l3.line_number
66331 ;
66332
66333 --
66334 BEGIN
66335 IF g_log_enabled THEN
66336 l_log_module := C_DEFAULT_MODULE||'.EventClass_128';
66337 END IF;
66338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66339 trace
66340 (p_msg => 'BEGIN of EventClass_128'
66341 ,p_level => C_LEVEL_PROCEDURE
66342 ,p_module => l_log_module);
66343 END IF;
66344
66345 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66346 trace
66347 (p_msg => 'p_application_id = '||p_application_id||
66348 ' - p_base_ledger_id = '||p_base_ledger_id||
66349 ' - p_target_ledger_id = '||p_target_ledger_id||
66350 ' - p_language = '||p_language||
66351 ' - p_currency_code = '||p_currency_code||
66352 ' - p_sla_ledger_id = '||p_sla_ledger_id
66353 ,p_level => C_LEVEL_STATEMENT
66354 ,p_module => l_log_module);
66355 END IF;
66356 --
66357 -- initialze arrays
66358 --
66359 g_array_event.DELETE;
66360 l_rec_array_event := l_null_rec_array_event;
66361 --
66362 --------------------------------------
66363 -- 4262811 Initialze MPA Line Number
66364 --------------------------------------
66365 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
66366
66367 --
66368
66369 --
66370 OPEN header_cur;
66371 --
66372 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66373 trace
66374 (p_msg => 'SQL - FETCH header_cur'
66375 ,p_level => C_LEVEL_STATEMENT
66376 ,p_module => l_log_module);
66377 END IF;
66378 --
66379 LOOP
66380 FETCH header_cur BULK COLLECT INTO
66381 l_array_entity_id
66382 , l_array_legal_entity_id
66383 , l_array_entity_code
66384 , l_array_transaction_num
66385 , l_array_event_id
66386 , l_array_class_code
66387 , l_array_event_type
66388 , l_array_event_number
66389 , l_array_event_date
66390 , l_array_transaction_date
66391 , l_array_reference_num_1
66392 , l_array_reference_num_2
66393 , l_array_reference_num_3
66394 , l_array_reference_num_4
66395 , l_array_reference_char_1
66396 , l_array_reference_char_2
66397 , l_array_reference_char_3
66398 , l_array_reference_char_4
66399 , l_array_reference_date_1
66400 , l_array_reference_date_2
66401 , l_array_reference_date_3
66402 , l_array_reference_date_4
66403 , l_array_event_created_by
66404 , l_array_budgetary_control_flag
66405 , l_array_source_3
66406 , l_array_source_37
66407 , l_array_source_38
66408 , l_array_source_39
66409 , l_array_source_47
66410 , l_array_source_111
66411 , l_array_source_112
66412 LIMIT l_rows;
66413 --
66414 IF (C_LEVEL_EVENT >= g_log_level) THEN
66415 trace
66416 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
66417 ,p_level => C_LEVEL_EVENT
66418 ,p_module => l_log_module);
66419 END IF;
66420 --
66421 EXIT WHEN l_array_entity_id.COUNT = 0;
66422
66423 -- initialize arrays
66424 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
66425 XLA_AE_LINES_PKG.g_rec_lines := NULL;
66426
66427 --
66428 -- Bug 4458708
66429 --
66430 XLA_AE_LINES_PKG.g_LineNumber := 0;
66431
66432
66433 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
66434 g_last_hdr_idx := l_array_event_id.LAST;
66435 --
66436 -- loop for the headers. Each iteration is for each header extract row
66437 -- fetched in header cursor
66438 --
66439 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
66440
66441 --
66445 (p_application_id => p_application_id
66442 -- set event info as cache for other routines to refer event attributes
66443 --
66444 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66446 ,p_primary_ledger_id => p_primary_ledger_id
66447 ,p_base_ledger_id => p_base_ledger_id
66448 ,p_target_ledger_id => p_target_ledger_id
66449 ,p_entity_id => l_array_entity_id(hdr_idx)
66450 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
66451 ,p_entity_code => l_array_entity_code(hdr_idx)
66452 ,p_transaction_num => l_array_transaction_num(hdr_idx)
66453 ,p_event_id => l_array_event_id(hdr_idx)
66454 ,p_event_class_code => l_array_class_code(hdr_idx)
66455 ,p_event_type_code => l_array_event_type(hdr_idx)
66456 ,p_event_number => l_array_event_number(hdr_idx)
66457 ,p_event_date => l_array_event_date(hdr_idx)
66458 ,p_transaction_date => l_array_transaction_date(hdr_idx)
66459 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
66460 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
66461 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
66462 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
66463 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
66464 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
66465 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
66466 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
66467 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
66468 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
66469 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
66470 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
66471 ,p_event_created_by => l_array_event_created_by(hdr_idx)
66472 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
66473
66474 --
66475 -- set the status of entry to C_VALID (0)
66476 --
66477 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66478
66479 --
66480 -- initialize a row for ae header
66481 --
66482 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
66483
66484 l_event_id := l_array_event_id(hdr_idx);
66485
66486 --
66487 -- storing the hdr_idx for event. May be used by line cursor.
66488 --
66489 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
66490
66491 --
66492 -- store sources from header extract. This can be improved to
66493 -- store only those sources from header extract that may be used in lines
66494 --
66495
66496 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
66497 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
66498 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
66499 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
66500 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
66501 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
66502 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
66503
66504 --
66505 -- initilaize the status of ae headers for diffrent balance types
66506 -- the status is initialised to C_NOT_CREATED (2)
66507 --
66508 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66509 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66510 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66511
66512 --
66513 -- call api to validate and store accounting attributes for header
66514 --
66515
66516 ------------------------------------------------------------
66517 -- Accrual Reversal : to get date for Standard Source (NONE)
66518 ------------------------------------------------------------
66519 l_acc_rev_gl_date_source := NULL;
66520
66521 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
66522 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_111');
66523 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
66524 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_112');
66525 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
66526 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_3');
66527 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
66528 l_rec_acct_attrs.array_date_value(4) :=
66529 xla_ae_sources_pkg.GetSystemSourceDate(
66530 p_source_code => 'XLA_EVENT_DATE'
66531 , p_source_type_code => 'Y'
66532 , p_source_application_id => 602
66533 );
66534
66535
66536 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
66537
66538 XLA_AE_HEADER_PKG.SetJeCategoryName;
66539
66540 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
66541 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
66542 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
66543 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
66544 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
66545
66546
66547 -- No header level analytical criteria
66548
66549 --
66550 --accounting attribute enhancement, bug 3612931
66551 --
66552 l_trx_reversal_source := SUBSTR(NULL, 1,30);
66553
66554 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
66558 (p_appli_s_name => 'XLA'
66555 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66556
66557 xla_accounting_err_pkg.build_message
66559 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
66560 ,p_token_1 => 'ACCT_ATTR_NAME'
66561 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
66562 ,p_token_2 => 'PRODUCT_NAME'
66563 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66564 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66565 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66566 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66567
66568 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
66569 --
66570 -- following sets the accounting attributes needed to reverse
66571 -- accounting for a distributeion
66572 --
66573 xla_ae_lines_pkg.SetTrxReversalAttrs
66574 (p_event_id => l_event_id
66575 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
66576 ,p_trx_reversal_source => l_trx_reversal_source);
66577
66578 END IF;
66579
66580
66581 ----------------------------------------------------------------
66582 -- 4262811 - update the header statuses to invalid in need be
66583 ----------------------------------------------------------------
66584 --
66585 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
66586
66587
66588 -----------------------------------------------
66589 -- No accrual reversal for the event class/type
66590 -----------------------------------------------
66591 ----------------------------------------------------------------
66592
66593 --
66594 -- this ends the header loop iteration for one bulk fetch
66595 --
66596 END LOOP;
66597
66598 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
66599 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
66600
66601 --
66602 -- insert dummy rows into lines gt table that were created due to
66603 -- transaction reversals
66604 --
66605 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
66606 l_result := XLA_AE_LINES_PKG.InsertLines;
66607 END IF;
66608
66609 --
66610 -- reset the temp_line_num for each set of events fetched from header
66611 -- cursor rather than doing it for each new event in line cursor
66612 -- Bug 3939231
66613 --
66614 xla_ae_lines_pkg.g_temp_line_num := 0;
66615
66616
66617
66618 --
66619 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
66620 --
66621 --
66622 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66623
66624 trace
66625 (p_msg => 'SQL - FETCH line_cur'
66626 ,p_level => C_LEVEL_STATEMENT
66627 ,p_module => l_log_module);
66628
66629 END IF;
66630 --
66631 --
66632 LOOP
66633 --
66634 FETCH line_cur BULK COLLECT INTO
66635 l_array_entity_id
66636 , l_array_legal_entity_id
66637 , l_array_entity_code
66638 , l_array_transaction_num
66639 , l_array_event_id
66640 , l_array_class_code
66641 , l_array_event_type
66642 , l_array_event_number
66643 , l_array_event_date
66644 , l_array_transaction_date
66645 , l_array_reference_num_1
66646 , l_array_reference_num_2
66647 , l_array_reference_num_3
66648 , l_array_reference_num_4
66649 , l_array_reference_char_1
66650 , l_array_reference_char_2
66651 , l_array_reference_char_3
66652 , l_array_reference_char_4
66653 , l_array_reference_date_1
66654 , l_array_reference_date_2
66655 , l_array_reference_date_3
66656 , l_array_reference_date_4
66657 , l_array_event_created_by
66658 , l_array_budgetary_control_flag
66659 , l_array_extract_line_num
66660 , l_array_source_26
66661 , l_array_source_43
66662 , l_array_source_44
66663 , l_array_source_45
66664 , l_array_source_46
66665 , l_array_source_48
66666 , l_array_source_49
66667 , l_array_source_50
66668 , l_array_source_51
66669 LIMIT l_rows;
66670
66671 --
66672 IF (C_LEVEL_EVENT >= g_log_level) THEN
66673 trace
66674 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
66675 ,p_level => C_LEVEL_EVENT
66676 ,p_module => l_log_module);
66677 END IF;
66678 --
66679 EXIT WHEN l_array_entity_id.count = 0;
66680
66681 XLA_AE_LINES_PKG.g_rec_lines := null;
66682
66683 --
66684 -- Bug 4458708
66685 --
66686 XLA_AE_LINES_PKG.g_LineNumber := 0;
66687 --
66688 --
66689
66690 FOR Idx IN 1..l_array_event_id.count LOOP
66691 --
66692 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
66693 --
66694 l_event_id := l_array_event_id(idx); -- 5648433
66695
66696 --
66697 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66698 --
66699
66700 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
66701 (g_array_event(l_event_id).array_value_num('header_index'))
66702 ,'N'
66703 ) <> 'Y'
66704 THEN
66705 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66706 trace
66710 END IF;
66707 (p_msg => 'Trancaction revesal option is not Y '
66708 ,p_level => C_LEVEL_STATEMENT
66709 ,p_module => l_log_module);
66711
66712 --
66713 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
66714 --
66715 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66716 --
66717 -- set event info as cache for other routines to refer event attributes
66718 --
66719
66720 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
66721 l_previous_event_id := l_event_id;
66722
66723 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66724 (p_application_id => p_application_id
66725 ,p_primary_ledger_id => p_primary_ledger_id
66726 ,p_base_ledger_id => p_base_ledger_id
66727 ,p_target_ledger_id => p_target_ledger_id
66728 ,p_entity_id => l_array_entity_id(Idx)
66729 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
66730 ,p_entity_code => l_array_entity_code(Idx)
66731 ,p_transaction_num => l_array_transaction_num(Idx)
66732 ,p_event_id => l_array_event_id(Idx)
66733 ,p_event_class_code => l_array_class_code(Idx)
66734 ,p_event_type_code => l_array_event_type(Idx)
66735 ,p_event_number => l_array_event_number(Idx)
66736 ,p_event_date => l_array_event_date(Idx)
66737 ,p_transaction_date => l_array_transaction_date(Idx)
66738 ,p_reference_num_1 => l_array_reference_num_1(Idx)
66739 ,p_reference_num_2 => l_array_reference_num_2(Idx)
66740 ,p_reference_num_3 => l_array_reference_num_3(Idx)
66741 ,p_reference_num_4 => l_array_reference_num_4(Idx)
66742 ,p_reference_char_1 => l_array_reference_char_1(Idx)
66743 ,p_reference_char_2 => l_array_reference_char_2(Idx)
66744 ,p_reference_char_3 => l_array_reference_char_3(Idx)
66745 ,p_reference_char_4 => l_array_reference_char_4(Idx)
66746 ,p_reference_date_1 => l_array_reference_date_1(Idx)
66747 ,p_reference_date_2 => l_array_reference_date_2(Idx)
66748 ,p_reference_date_3 => l_array_reference_date_3(Idx)
66749 ,p_reference_date_4 => l_array_reference_date_4(Idx)
66750 ,p_event_created_by => l_array_event_created_by(Idx)
66751 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
66752 --
66753 END IF;
66754
66755
66756
66757 --
66758 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
66759
66760 l_acct_reversal_source := SUBSTR(NULL, 1,30);
66761
66762 IF l_continue_with_lines THEN
66763 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
66764 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66765
66766 xla_accounting_err_pkg.build_message
66767 (p_appli_s_name => 'XLA'
66768 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
66769 ,p_token_1 => 'LINE_NUMBER'
66770 ,p_value_1 => l_array_extract_line_num(Idx)
66771 ,p_token_2 => 'PRODUCT_NAME'
66772 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66773 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66774 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66775 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66776
66777 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
66778 --
66779 -- following sets the accounting attributes needed to reverse
66780 -- accounting for a distributeion
66781 --
66782
66783 --
66784 -- 5217187
66785 --
66786 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
66787 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
66788 g_array_event(l_event_id).array_value_num('header_index'));
66789 --
66790 --
66791
66792 -- No reversal code generated
66793
66794 xla_ae_lines_pkg.SetAcctReversalAttrs
66795 (p_event_id => l_event_id
66796 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
66797 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66798 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
66799 END IF;
66800
66801 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
66802 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
66803
66804 --
66805 AcctLineType_39 (
66806 p_application_id => p_application_id
66807 ,p_event_id => l_event_id
66808 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66809 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66810 ,p_actual_flag => l_actual_flag
66811 ,p_balance_type_code => l_balance_type_code
66812 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66813
66814 , p_source_26 => l_array_source_26(Idx)
66815 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
66816 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
66817 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
66818 , p_source_43 => l_array_source_43(Idx)
66819 , p_source_44 => l_array_source_44(Idx)
66820 , p_source_45 => l_array_source_45(Idx)
66821 , p_source_46 => l_array_source_46(Idx)
66822 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
66823 , p_source_48 => l_array_source_48(Idx)
66824 , p_source_49 => l_array_source_49(Idx)
66825 , p_source_50 => l_array_source_50(Idx)
66829 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66826 , p_source_51 => l_array_source_51(Idx)
66827 );
66828 If(l_balance_type_code = 'A') THEN
66830 END IF;
66831
66832 --
66833
66834
66835 --
66836 AcctLineType_40 (
66837 p_application_id => p_application_id
66838 ,p_event_id => l_event_id
66839 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66840 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66841 ,p_actual_flag => l_actual_flag
66842 ,p_balance_type_code => l_balance_type_code
66843 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66844
66845 , p_source_26 => l_array_source_26(Idx)
66846 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
66847 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
66848 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
66849 , p_source_43 => l_array_source_43(Idx)
66850 , p_source_44 => l_array_source_44(Idx)
66851 , p_source_45 => l_array_source_45(Idx)
66852 , p_source_46 => l_array_source_46(Idx)
66853 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
66854 , p_source_48 => l_array_source_48(Idx)
66855 , p_source_49 => l_array_source_49(Idx)
66856 , p_source_50 => l_array_source_50(Idx)
66857 , p_source_51 => l_array_source_51(Idx)
66858 );
66859 If(l_balance_type_code = 'A') THEN
66860 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66861 END IF;
66862
66863 --
66864
66865 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
66866 -- or secondary ledger that has different currency with primary
66867 -- or alc that is calculated by sla
66868 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66869 (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'))
66870
66871 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
66872 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
66873 AND (l_actual_flag = 'A')) THEN
66874 XLA_AE_LINES_PKG.CreateGainOrLossLines(
66875 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66876 ,p_application_id => p_application_id
66877 ,p_amb_context_code => 'DEFAULT'
66878 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
66879 ,p_event_class_code => C_EVENT_CLASS_CODE
66880 ,p_event_type_code => C_EVENT_TYPE_CODE
66881
66882 ,p_gain_ccid => -1
66883 ,p_loss_ccid => -1
66884
66885 ,p_actual_flag => l_actual_flag
66886 ,p_enc_flag => null
66887 ,p_actual_g_l_ref => l_actual_gain_loss_ref
66888 ,p_enc_g_l_ref => null
66889 );
66890 END IF;
66891 END IF;
66892 END IF;
66893
66894 ELSE
66895 --
66896 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66897 --
66898 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66899 trace
66900 (p_msg => 'Trancaction revesal option is Y'
66901 ,p_level => C_LEVEL_STATEMENT
66902 ,p_module => l_log_module);
66903 END IF;
66904 END IF;
66905
66906 END LOOP;
66907 l_result := XLA_AE_LINES_PKG.InsertLines ;
66908 end loop;
66909 close line_cur;
66910
66911
66912 --
66913 -- insert headers into xla_ae_headers_gt table
66914 --
66915 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
66916
66917 -- insert into errors table here.
66918
66919 END LOOP;
66920
66921 --
66922 -- 4865292
66923 --
66924 -- Compare g_hdr_extract_count with event count in
66925 -- CreateHeadersAndLines.
66926 --
66927 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
66928
66929 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66930 trace (p_msg => '# rows extracted from header extract objects '
66931 || ' (running total): '
66932 || g_hdr_extract_count
66933 ,p_level => C_LEVEL_STATEMENT
66934 ,p_module => l_log_module);
66935 END IF;
66936
66937 CLOSE header_cur;
66938 --
66939
66940 --
66941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66942 trace
66943 (p_msg => 'END of EventClass_128'
66944 ,p_level => C_LEVEL_PROCEDURE
66945 ,p_module => l_log_module);
66946 END IF;
66947 --
66948 RETURN l_result;
66949 EXCEPTION
66950 WHEN xla_exceptions_pkg.application_exception THEN
66951
66952 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
66953
66954
66955 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
66956
66957 RAISE;
66958
66959 WHEN NO_DATA_FOUND THEN
66960
66961 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
66962 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
66963
66964 FOR header_record IN header_cur
66965 LOOP
66966 l_array_header_events(header_record.event_id) := header_record.event_id;
66967 END LOOP;
66968
66969 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
66970 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
66971
66972 fnd_file.put_line(fnd_file.LOG, ' ');
66973 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
66974 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
66978 LOOP
66975 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
66976
66977 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
66979 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
66980 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
66981 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
66982 END IF;
66983 END LOOP;
66984
66985 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
66986 fnd_file.put_line(fnd_file.LOG, ' ');
66987
66988
66989 xla_exceptions_pkg.raise_message
66990 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_128');
66991
66992
66993 WHEN OTHERS THEN
66994 xla_exceptions_pkg.raise_message
66995 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_128');
66996 END EventClass_128;
66997 --
66998
66999 ---------------------------------------
67000 --
67001 -- PRIVATE PROCEDURE
67002 -- insert_sources_129
67003 --
67004 ----------------------------------------
67005 --
67006 PROCEDURE insert_sources_129(
67007 p_target_ledger_id IN NUMBER
67008 , p_language IN VARCHAR2
67009 , p_sla_ledger_id IN NUMBER
67010 , p_pad_start_date IN DATE
67011 , p_pad_end_date IN DATE
67012 )
67013 IS
67014
67015 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT_ALL';
67016 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT';
67017 p_apps_owner VARCHAR2(30);
67018 l_log_module VARCHAR2(240);
67019 BEGIN
67020 IF g_log_enabled THEN
67021 l_log_module := C_DEFAULT_MODULE||'.insert_sources_129';
67022 END IF;
67023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67024
67025 trace
67026 (p_msg => 'BEGIN of insert_sources_129'
67027 ,p_level => C_LEVEL_PROCEDURE
67028 ,p_module => l_log_module);
67029
67030 END IF;
67031
67032 -- select APPS owner
67033 SELECT oracle_username
67034 INTO p_apps_owner
67035 FROM fnd_oracle_userid
67036 WHERE read_only_flag = 'U'
67037 ;
67038
67039 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67040 trace
67041 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
67042 ' - p_language = '||p_language||
67043 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
67044 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
67045 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
67046 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
67047 ,p_level => C_LEVEL_STATEMENT
67048 ,p_module => l_log_module);
67049 END IF;
67050
67051
67052 --
67053 INSERT INTO xla_diag_sources --hdr2
67054 (
67055 event_id
67056 , ledger_id
67057 , sla_ledger_id
67058 , description_language
67059 , object_name
67060 , object_type_code
67061 , line_number
67062 , source_application_id
67063 , source_type_code
67064 , source_code
67065 , source_value
67066 , source_meaning
67067 , created_by
67068 , creation_date
67069 , last_update_date
67070 , last_updated_by
67071 , last_update_login
67072 , program_update_date
67073 , program_application_id
67074 , program_id
67075 , request_id
67076 )
67077 SELECT
67078 event_id
67079 , p_target_ledger_id
67080 , p_sla_ledger_id
67081 , p_language
67082 , object_name
67083 , object_type_code
67084 , line_number
67085 , source_application_id
67086 , source_type_code
67087 , source_code
67088 , SUBSTR(source_value ,1,1996)
67089 , SUBSTR(source_meaning ,1,200)
67090 , xla_environment_pkg.g_Usr_Id
67091 , TRUNC(SYSDATE)
67092 , TRUNC(SYSDATE)
67093 , xla_environment_pkg.g_Usr_Id
67094 , xla_environment_pkg.g_Login_Id
67095 , TRUNC(SYSDATE)
67096 , xla_environment_pkg.g_Prog_Appl_Id
67097 , xla_environment_pkg.g_Prog_Id
67098 , xla_environment_pkg.g_Req_Id
67099 FROM (
67100 SELECT xet.event_id event_id
67101 , 0 line_number
67102 , CASE r
67103 WHEN 1 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67104 WHEN 2 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67105 WHEN 3 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67106 WHEN 4 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
67107 WHEN 5 THEN 'AR_BILL_TO_SITE_USES_S_V'
67108 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
67109 WHEN 7 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67110 WHEN 8 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67111 WHEN 9 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67112 WHEN 10 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67113 WHEN 11 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
67114
67115 ELSE null
67119 WHEN 2 THEN 'HEADER'
67116 END object_name
67117 , CASE r
67118 WHEN 1 THEN 'HEADER'
67120 WHEN 3 THEN 'HEADER'
67121 WHEN 4 THEN 'HEADER'
67122 WHEN 5 THEN 'HEADER'
67123 WHEN 6 THEN 'HEADER'
67124 WHEN 7 THEN 'HEADER'
67125 WHEN 8 THEN 'HEADER'
67126 WHEN 9 THEN 'HEADER'
67127 WHEN 10 THEN 'HEADER'
67128 WHEN 11 THEN 'HEADER'
67129
67130 ELSE null
67131 END object_type_code
67132 , CASE r
67133 WHEN 1 THEN '222'
67134 WHEN 2 THEN '222'
67135 WHEN 3 THEN '222'
67136 WHEN 4 THEN '222'
67137 WHEN 5 THEN '222'
67138 WHEN 6 THEN '222'
67139 WHEN 7 THEN '222'
67140 WHEN 8 THEN '222'
67141 WHEN 9 THEN '222'
67142 WHEN 10 THEN '222'
67143 WHEN 11 THEN '222'
67144
67145 ELSE null
67146 END source_application_id
67147 , 'S' source_type_code
67148 , CASE r
67149 WHEN 1 THEN 'JLBR_BANK_OCC_DESC'
67150 WHEN 2 THEN 'JLBR_DOCUMENT_NUMBER'
67151 WHEN 3 THEN 'JLBR_TRADE_NOTE_NUMBER'
67152 WHEN 4 THEN 'BILL_CUST_ACCOUNT_ID'
67153 WHEN 5 THEN 'BILL_USES_SITE_USE_ID'
67154 WHEN 6 THEN 'XLA_PARTY_TYPE'
67155 WHEN 7 THEN 'JLBR_OCCURRENCE_ID'
67156 WHEN 8 THEN 'JLBR_EXCHG_GAIN_CCID'
67157 WHEN 9 THEN 'JLBR_EXCHG_LOSS_CCID'
67158 WHEN 10 THEN 'JLBR_GL_DATE'
67159 WHEN 11 THEN 'JLBR_TRANSFER_TO_GL_FLAG'
67160
67161 ELSE null
67162 END source_code
67163 , CASE r
67164 WHEN 1 THEN TO_CHAR(h5.JLBR_BANK_OCC_DESC)
67165 WHEN 2 THEN TO_CHAR(h5.JLBR_DOCUMENT_NUMBER)
67166 WHEN 3 THEN TO_CHAR(h5.JLBR_TRADE_NOTE_NUMBER)
67167 WHEN 4 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
67168 WHEN 5 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
67169 WHEN 6 THEN TO_CHAR(h3.XLA_PARTY_TYPE)
67170 WHEN 7 THEN TO_CHAR(h5.JLBR_OCCURRENCE_ID)
67171 WHEN 8 THEN TO_CHAR(h5.JLBR_EXCHG_GAIN_CCID)
67172 WHEN 9 THEN TO_CHAR(h5.JLBR_EXCHG_LOSS_CCID)
67173 WHEN 10 THEN TO_CHAR(h5.JLBR_GL_DATE)
67174 WHEN 11 THEN TO_CHAR(h5.JLBR_TRANSFER_TO_GL_FLAG)
67175
67176 ELSE null
67177 END source_value
67178 , CASE r
67179 WHEN 11 THEN fvl116.meaning
67180
67181 ELSE null
67182 END source_meaning
67183 FROM xla_events_gt xet
67184 , AR_BILL_TO_CUSTOMERS_S_V h1
67185 , AR_BILL_TO_SITE_USES_S_V h2
67186 , AR_TRANSACTIONS_S_V h3
67187 , JL_BR_AR_COLL_OCC_DOCS_H_V h5
67188 , fnd_lookup_values fvl116
67189 ,(select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
67190 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
67191 AND xet.event_class_code = C_EVENT_CLASS_CODE
67192 AND h5.event_id = xet.event_id
67193 AND h1.event_id (+) = h5.event_id
67194 AND h2.event_id (+) = h5.event_id
67195 AND h3.event_id (+) = h5.event_id
67196 AND fvl116.lookup_type(+) = 'YES_NO'
67197 AND fvl116.lookup_code(+) = h5.JLBR_TRANSFER_TO_GL_FLAG
67198 AND fvl116.view_application_id(+) = 0
67199 AND fvl116.language(+) = USERENV('LANG')
67200
67201 )
67202 ;
67203 --
67204 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67205
67206 trace
67207 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
67208 ,p_level => C_LEVEL_STATEMENT
67209 ,p_module => l_log_module);
67210
67211 END IF;
67212 --
67213
67214
67215
67216 --
67217 INSERT INTO xla_diag_sources --line2
67218 (
67219 event_id
67220 , ledger_id
67221 , sla_ledger_id
67222 , description_language
67223 , object_name
67224 , object_type_code
67225 , line_number
67226 , source_application_id
67227 , source_type_code
67228 , source_code
67229 , source_value
67230 , source_meaning
67231 , created_by
67232 , creation_date
67233 , last_update_date
67234 , last_updated_by
67235 , last_update_login
67236 , program_update_date
67237 , program_application_id
67238 , program_id
67239 , request_id
67240 )
67241 SELECT event_id
67242 , p_target_ledger_id
67243 , p_sla_ledger_id
67244 , p_language
67245 , object_name
67246 , object_type_code
67247 , line_number
67248 , source_application_id
67249 , source_type_code
67250 , source_code
67251 , SUBSTR(source_value,1,1996)
67252 , SUBSTR(source_meaning ,1,200)
67253 , xla_environment_pkg.g_Usr_Id
67257 , xla_environment_pkg.g_Login_Id
67254 , TRUNC(SYSDATE)
67255 , TRUNC(SYSDATE)
67256 , xla_environment_pkg.g_Usr_Id
67258 , TRUNC(SYSDATE)
67259 , xla_environment_pkg.g_Prog_Appl_Id
67260 , xla_environment_pkg.g_Prog_Id
67261 , xla_environment_pkg.g_Req_Id
67262 FROM (
67263 SELECT xet.event_id event_id
67264 , l4.line_number line_number
67265 , CASE r
67266 WHEN 1 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67267 WHEN 2 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67268 WHEN 3 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67269 WHEN 4 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67270 WHEN 5 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67271 WHEN 6 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67272 WHEN 7 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67273 WHEN 8 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67274 WHEN 9 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67275 WHEN 10 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67276 WHEN 11 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67277 WHEN 12 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67278 WHEN 13 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67279 WHEN 14 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67280 WHEN 15 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67281 WHEN 16 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67282 WHEN 17 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67283 WHEN 18 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67284 WHEN 19 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67285 WHEN 20 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67286 WHEN 21 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67287 WHEN 22 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
67288
67289 ELSE null
67290 END object_name
67291 , CASE r
67292 WHEN 1 THEN 'LINE'
67293 WHEN 2 THEN 'LINE'
67294 WHEN 3 THEN 'LINE'
67295 WHEN 4 THEN 'LINE'
67296 WHEN 5 THEN 'LINE'
67297 WHEN 6 THEN 'LINE'
67298 WHEN 7 THEN 'LINE'
67299 WHEN 8 THEN 'LINE'
67300 WHEN 9 THEN 'LINE'
67301 WHEN 10 THEN 'LINE'
67302 WHEN 11 THEN 'LINE'
67303 WHEN 12 THEN 'LINE'
67304 WHEN 13 THEN 'LINE'
67305 WHEN 14 THEN 'LINE'
67306 WHEN 15 THEN 'LINE'
67307 WHEN 16 THEN 'LINE'
67308 WHEN 17 THEN 'LINE'
67309 WHEN 18 THEN 'LINE'
67310 WHEN 19 THEN 'LINE'
67311 WHEN 20 THEN 'LINE'
67312 WHEN 21 THEN 'LINE'
67313 WHEN 22 THEN 'LINE'
67314
67315 ELSE null
67316 END object_type_code
67317 , CASE r
67318 WHEN 1 THEN '222'
67319 WHEN 2 THEN '222'
67320 WHEN 3 THEN '222'
67321 WHEN 4 THEN '222'
67322 WHEN 5 THEN '222'
67323 WHEN 6 THEN '222'
67324 WHEN 7 THEN '222'
67325 WHEN 8 THEN '222'
67326 WHEN 9 THEN '222'
67327 WHEN 10 THEN '222'
67328 WHEN 11 THEN '222'
67329 WHEN 12 THEN '222'
67330 WHEN 13 THEN '222'
67331 WHEN 14 THEN '222'
67332 WHEN 15 THEN '222'
67333 WHEN 16 THEN '222'
67334 WHEN 17 THEN '222'
67335 WHEN 18 THEN '222'
67336 WHEN 19 THEN '222'
67337 WHEN 20 THEN '222'
67338 WHEN 21 THEN '222'
67339 WHEN 22 THEN '222'
67340
67341 ELSE null
67342 END source_application_id
67343 , 'S' source_type_code
67344 , CASE r
67345 WHEN 1 THEN 'JLBR_BORDERO_TYPE'
67346 WHEN 2 THEN 'JLBR_CD_BANK_CHARGES_CCID'
67347 WHEN 3 THEN 'JLBR_CD_BIL_UND_COLL_CCID'
67348 WHEN 4 THEN 'JLBR_CD_CASH_CCID'
67349 WHEN 5 THEN 'JLBR_CD_COLL_ENDRSMNT_CCID'
67350 WHEN 6 THEN 'JLBR_DISTRIBUTION_TYPE'
67351 WHEN 7 THEN 'JLBR_ACCT_REVERSING_OPTN'
67352 WHEN 8 THEN 'JLBR_PRIOR_DIST_LINK_TYPE'
67353 WHEN 9 THEN 'JLBR_PRIOR_DIST_ID'
67354 WHEN 10 THEN 'JLBR_PRIOR_DOCUMENT_ID'
67355 WHEN 11 THEN 'JLBR_PRIOR_OCCURRENCE_ID'
67356 WHEN 12 THEN 'JLBR_DISTRIBUTION_ID'
67357 WHEN 13 THEN 'JLBR_DISTRIBUTION_LINK_TYPE'
67358 WHEN 14 THEN 'JLBR_ENTERED_AMT'
67359 WHEN 15 THEN 'JLBR_ENTERED_CURRENCY_CODE'
67360 WHEN 16 THEN 'JLBR_CONVERSION_DATE'
67361 WHEN 17 THEN 'JLBR_CONVERSION_RATE'
67362 WHEN 18 THEN 'JLBR_CONVERSION_RATE_TYPE'
67363 WHEN 19 THEN 'JLBR_ACCTD_AMT'
67364 WHEN 20 THEN 'JLBR_REVERSED_DIST_ID'
67365 WHEN 21 THEN 'JLBR_REVERSED_DIST_LINK_TYPE'
67366 WHEN 22 THEN 'JLBR_BANK_OCC_TYPE'
67367
67368 ELSE null
67369 END source_code
67370 , CASE r
67371 WHEN 1 THEN TO_CHAR(l4.JLBR_BORDERO_TYPE)
67372 WHEN 2 THEN TO_CHAR(l4.JLBR_CD_BANK_CHARGES_CCID)
67373 WHEN 3 THEN TO_CHAR(l4.JLBR_CD_BIL_UND_COLL_CCID)
67377 WHEN 7 THEN TO_CHAR(l4.JLBR_ACCT_REVERSING_OPTN)
67374 WHEN 4 THEN TO_CHAR(l4.JLBR_CD_CASH_CCID)
67375 WHEN 5 THEN TO_CHAR(l4.JLBR_CD_COLL_ENDRSMNT_CCID)
67376 WHEN 6 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_TYPE)
67378 WHEN 8 THEN TO_CHAR(l4.JLBR_PRIOR_DIST_LINK_TYPE)
67379 WHEN 9 THEN TO_CHAR(l4.JLBR_PRIOR_DIST_ID)
67380 WHEN 10 THEN TO_CHAR(l4.JLBR_PRIOR_DOCUMENT_ID)
67381 WHEN 11 THEN TO_CHAR(l4.JLBR_PRIOR_OCCURRENCE_ID)
67382 WHEN 12 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_ID)
67383 WHEN 13 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_LINK_TYPE)
67384 WHEN 14 THEN TO_CHAR(l4.JLBR_ENTERED_AMT)
67385 WHEN 15 THEN TO_CHAR(l4.JLBR_ENTERED_CURRENCY_CODE)
67386 WHEN 16 THEN TO_CHAR(l4.JLBR_CONVERSION_DATE)
67387 WHEN 17 THEN TO_CHAR(l4.JLBR_CONVERSION_RATE)
67388 WHEN 18 THEN TO_CHAR(l4.JLBR_CONVERSION_RATE_TYPE)
67389 WHEN 19 THEN TO_CHAR(l4.JLBR_ACCTD_AMT)
67390 WHEN 20 THEN TO_CHAR(l4.JLBR_REVERSED_DIST_ID)
67391 WHEN 21 THEN TO_CHAR(l4.JLBR_REVERSED_DIST_LINK_TYPE)
67392 WHEN 22 THEN TO_CHAR(l4.JLBR_BANK_OCC_TYPE)
67393
67394 ELSE null
67395 END source_value
67396 , CASE r
67397 WHEN 1 THEN fvl7.meaning
67398 WHEN 6 THEN fvl66.meaning
67399 WHEN 7 THEN fvl67.meaning
67400 WHEN 22 THEN fvl85.meaning
67401
67402 ELSE null
67403 END source_meaning
67404 FROM xla_events_gt xet
67405 , JL_BR_AR_COLL_DOC_DISTS_L_V l4
67406 , fnd_lookup_values fvl7
67407 , fnd_lookup_values fvl66
67408 , fnd_lookup_values fvl67
67409 , fnd_lookup_values fvl85
67410 , (select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
67411 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
67412 AND xet.event_class_code = C_EVENT_CLASS_CODE
67413 AND l4.event_id = xet.event_id
67414 AND fvl7.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
67415 AND fvl7.lookup_code(+) = l4.JLBR_BORDERO_TYPE
67416 AND fvl7.view_application_id(+) = 0
67417 AND fvl7.language(+) = USERENV('LANG')
67418 AND fvl66.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
67419 AND fvl66.lookup_code(+) = l4.JLBR_DISTRIBUTION_TYPE
67420 AND fvl66.view_application_id(+) = 0
67421 AND fvl66.language(+) = USERENV('LANG')
67422 AND fvl67.lookup_type(+) = 'YES_NO'
67423 AND fvl67.lookup_code(+) = l4.JLBR_ACCT_REVERSING_OPTN
67424 AND fvl67.view_application_id(+) = 0
67425 AND fvl67.language(+) = USERENV('LANG')
67426 AND fvl85.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
67427 AND fvl85.lookup_code(+) = l4.JLBR_BANK_OCC_TYPE
67428 AND fvl85.view_application_id(+) = 0
67429 AND fvl85.language(+) = USERENV('LANG')
67430
67431 )
67432 ;
67433 --
67434 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67435
67436 trace
67437 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
67438 ,p_level => C_LEVEL_STATEMENT
67439 ,p_module => l_log_module);
67440
67441 END IF;
67442
67443
67444 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67445 trace
67446 (p_msg => 'END of insert_sources_129'
67447 ,p_level => C_LEVEL_PROCEDURE
67448 ,p_module => l_log_module);
67449 END IF;
67450 EXCEPTION
67451 WHEN xla_exceptions_pkg.application_exception THEN
67452 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
67453 trace
67454 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
67455 ,p_level => C_LEVEL_EXCEPTION
67456 ,p_module => l_log_module);
67457 END IF;
67458 RAISE;
67459 WHEN OTHERS THEN
67460 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
67461 trace
67462 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
67463 ,p_level => C_LEVEL_EXCEPTION
67464 ,p_module => l_log_module);
67465 END IF;
67466 xla_exceptions_pkg.raise_message
67467 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_129');
67468 END insert_sources_129;
67469 --
67470
67471 ---------------------------------------
67472 --
67473 -- PRIVATE FUNCTION
67474 -- EventClass_129
67475 --
67476 ----------------------------------------
67477 --
67478 FUNCTION EventClass_129
67479 (p_application_id IN NUMBER
67480 ,p_base_ledger_id IN NUMBER
67481 ,p_target_ledger_id IN NUMBER
67482 ,p_language IN VARCHAR2
67483 ,p_currency_code IN VARCHAR2
67484 ,p_sla_ledger_id IN NUMBER
67485 ,p_pad_start_date IN DATE
67486 ,p_pad_end_date IN DATE
67487 ,p_primary_ledger_id IN NUMBER)
67488 RETURN BOOLEAN IS
67489 --
67490 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT_ALL';
67491 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT';
67492
67493 l_calculate_acctd_flag VARCHAR2(1) :='Y';
67494 l_calculate_g_l_flag VARCHAR2(1) :='Y';
67495 --
67496 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67497 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67498 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
67502 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
67499 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
67500 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67501 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
67503 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67504 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67505 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67506 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67507 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67508 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67509 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
67510 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
67511 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
67512 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
67513 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
67514 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67515 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67516 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67517 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
67518 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
67519 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
67520 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
67521 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
67522
67523 l_event_id NUMBER;
67524 l_previous_event_id NUMBER;
67525 l_first_event_id NUMBER;
67526 l_last_event_id NUMBER;
67527
67528 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
67529 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67530 --
67531 --
67532 l_result BOOLEAN := TRUE;
67533 l_rows NUMBER := 1000;
67534 l_event_type_name VARCHAR2(80) := 'All';
67535 l_event_class_name VARCHAR2(80) := 'Collection Occurrence Documents';
67536 l_description VARCHAR2(4000);
67537 l_transaction_reversal NUMBER;
67538 l_ae_header_id NUMBER;
67539 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
67540 l_log_module VARCHAR2(240);
67541 --
67542 l_acct_reversal_source VARCHAR2(30);
67543 l_trx_reversal_source VARCHAR2(30);
67544
67545 l_continue_with_lines BOOLEAN := TRUE;
67546 --
67547 l_acc_rev_gl_date_source DATE; -- 4262811
67548 --
67549 type t_array_event_id is table of number index by binary_integer;
67550
67551 l_rec_array_event t_rec_array_event;
67552 l_null_rec_array_event t_rec_array_event;
67553 l_array_ae_header_id xla_number_array_type;
67554 l_actual_flag VARCHAR2(1) := NULL;
67555 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
67556 l_balance_type_code VARCHAR2(1) :=NULL;
67557 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
67558
67559 --
67560 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
67561 --
67562
67563 TYPE t_array_source_4 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_BANK_OCC_DESC%TYPE INDEX BY BINARY_INTEGER;
67564 TYPE t_array_source_5 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_DOCUMENT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
67565 TYPE t_array_source_6 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRADE_NOTE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
67566 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
67567 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
67568 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
67569 TYPE t_array_source_82 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
67570 TYPE t_array_source_113 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
67571 TYPE t_array_source_114 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
67572 TYPE t_array_source_115 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_GL_DATE%TYPE INDEX BY BINARY_INTEGER;
67573 TYPE t_array_source_116 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRANSFER_TO_GL_FLAG%TYPE INDEX BY BINARY_INTEGER;
67574
67575 TYPE t_array_source_7 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BORDERO_TYPE%TYPE INDEX BY BINARY_INTEGER;
67576 TYPE t_array_source_15 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
67577 TYPE t_array_source_16 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BIL_UND_COLL_CCID%TYPE INDEX BY BINARY_INTEGER;
67578 TYPE t_array_source_18 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_CASH_CCID%TYPE INDEX BY BINARY_INTEGER;
67579 TYPE t_array_source_19 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_COLL_ENDRSMNT_CCID%TYPE INDEX BY BINARY_INTEGER;
67580 TYPE t_array_source_66 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
67581 TYPE t_array_source_67 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCT_REVERSING_OPTN%TYPE INDEX BY BINARY_INTEGER;
67582 TYPE t_array_source_69 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
67583 TYPE t_array_source_71 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
67584 TYPE t_array_source_72 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DOCUMENT_ID%TYPE INDEX BY BINARY_INTEGER;
67588 TYPE t_array_source_76 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
67585 TYPE t_array_source_73 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
67586 TYPE t_array_source_74 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
67587 TYPE t_array_source_75 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
67589 TYPE t_array_source_77 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
67590 TYPE t_array_source_78 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
67591 TYPE t_array_source_79 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
67592 TYPE t_array_source_80 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
67593 TYPE t_array_source_81 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
67594 TYPE t_array_source_83 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
67595 TYPE t_array_source_84 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
67596 TYPE t_array_source_85 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BANK_OCC_TYPE%TYPE INDEX BY BINARY_INTEGER;
67597
67598 l_array_source_4 t_array_source_4;
67599 l_array_source_5 t_array_source_5;
67600 l_array_source_6 t_array_source_6;
67601 l_array_source_37 t_array_source_37;
67602 l_array_source_38 t_array_source_38;
67603 l_array_source_39 t_array_source_39;
67604 l_array_source_82 t_array_source_82;
67605 l_array_source_113 t_array_source_113;
67606 l_array_source_114 t_array_source_114;
67607 l_array_source_115 t_array_source_115;
67608 l_array_source_116 t_array_source_116;
67609 l_array_source_116_meaning t_array_lookup_meaning;
67610
67611 l_array_source_7 t_array_source_7;
67612 l_array_source_7_meaning t_array_lookup_meaning;
67613 l_array_source_15 t_array_source_15;
67614 l_array_source_16 t_array_source_16;
67615 l_array_source_18 t_array_source_18;
67616 l_array_source_19 t_array_source_19;
67617 l_array_source_66 t_array_source_66;
67618 l_array_source_66_meaning t_array_lookup_meaning;
67619 l_array_source_67 t_array_source_67;
67620 l_array_source_67_meaning t_array_lookup_meaning;
67621 l_array_source_69 t_array_source_69;
67622 l_array_source_71 t_array_source_71;
67623 l_array_source_72 t_array_source_72;
67624 l_array_source_73 t_array_source_73;
67625 l_array_source_74 t_array_source_74;
67626 l_array_source_75 t_array_source_75;
67627 l_array_source_76 t_array_source_76;
67628 l_array_source_77 t_array_source_77;
67629 l_array_source_78 t_array_source_78;
67630 l_array_source_79 t_array_source_79;
67631 l_array_source_80 t_array_source_80;
67632 l_array_source_81 t_array_source_81;
67633 l_array_source_83 t_array_source_83;
67634 l_array_source_84 t_array_source_84;
67635 l_array_source_85 t_array_source_85;
67636 l_array_source_85_meaning t_array_lookup_meaning;
67637
67638 --
67639 CURSOR header_cur
67640 IS
67641 SELECT /*+ leading(xet) cardinality(xet,1) */
67642 -- Event Class Code: COLLECTION_OCC_DOCUMENT
67643 xet.entity_id
67644 ,xet.legal_entity_id
67645 ,xet.entity_code
67646 ,xet.transaction_number
67647 ,xet.event_id
67648 ,xet.event_class_code
67649 ,xet.event_type_code
67650 ,xet.event_number
67651 ,xet.event_date
67652 ,xet.transaction_date
67653 ,xet.reference_num_1
67654 ,xet.reference_num_2
67655 ,xet.reference_num_3
67656 ,xet.reference_num_4
67657 ,xet.reference_char_1
67658 ,xet.reference_char_2
67659 ,xet.reference_char_3
67660 ,xet.reference_char_4
67661 ,xet.reference_date_1
67662 ,xet.reference_date_2
67663 ,xet.reference_date_3
67664 ,xet.reference_date_4
67665 ,xet.event_created_by
67666 ,xet.budgetary_control_flag
67667 , h5.JLBR_BANK_OCC_DESC source_4
67668 , h5.JLBR_DOCUMENT_NUMBER source_5
67669 , h5.JLBR_TRADE_NOTE_NUMBER source_6
67670 , h1.BILL_CUST_ACCOUNT_ID source_37
67671 , h2.BILL_USES_SITE_USE_ID source_38
67672 , h3.XLA_PARTY_TYPE source_39
67673 , h5.JLBR_OCCURRENCE_ID source_82
67674 , h5.JLBR_EXCHG_GAIN_CCID source_113
67675 , h5.JLBR_EXCHG_LOSS_CCID source_114
67676 , h5.JLBR_GL_DATE source_115
67677 , h5.JLBR_TRANSFER_TO_GL_FLAG source_116
67678 , fvl116.meaning source_116_meaning
67679 FROM xla_events_gt xet
67680 , AR_BILL_TO_CUSTOMERS_S_V h1
67681 , AR_BILL_TO_SITE_USES_S_V h2
67682 , AR_TRANSACTIONS_S_V h3
67683 , JL_BR_AR_COLL_OCC_DOCS_H_V h5
67684 , fnd_lookup_values fvl116
67685 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
67686 and xet.event_class_code = C_EVENT_CLASS_CODE
67687 and xet.event_status_code <> 'N' AND h5.event_id = xet.event_id
67688 AND h1.event_id (+) = h5.event_id
67689 AND h2.event_id (+) = h5.event_id
67690 AND h3.event_id (+) = h5.event_id
67691 AND fvl116.lookup_type(+) = 'YES_NO'
67692 AND fvl116.lookup_code(+) = h5.JLBR_TRANSFER_TO_GL_FLAG
67693 AND fvl116.view_application_id(+) = 0
67694 AND fvl116.language(+) = USERENV('LANG')
67695
67696 ORDER BY event_id
67697 ;
67698
67699
67700 --
67701 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
67702 IS
67703 SELECT /*+ leading(xet) cardinality(xet,1) */
67704 -- Event Class Code: COLLECTION_OCC_DOCUMENT
67705 xet.entity_id
67709 ,xet.event_id
67706 ,xet.legal_entity_id
67707 ,xet.entity_code
67708 ,xet.transaction_number
67710 ,xet.event_class_code
67711 ,xet.event_type_code
67712 ,xet.event_number
67713 ,xet.event_date
67714 ,xet.transaction_date
67715 ,xet.reference_num_1
67716 ,xet.reference_num_2
67717 ,xet.reference_num_3
67718 ,xet.reference_num_4
67719 ,xet.reference_char_1
67720 ,xet.reference_char_2
67721 ,xet.reference_char_3
67722 ,xet.reference_char_4
67723 ,xet.reference_date_1
67724 ,xet.reference_date_2
67725 ,xet.reference_date_3
67726 ,xet.reference_date_4
67727 ,xet.event_created_by
67728 ,xet.budgetary_control_flag
67729 , l4.LINE_NUMBER
67730 , l4.JLBR_BORDERO_TYPE source_7
67731 , fvl7.meaning source_7_meaning
67732 , l4.JLBR_CD_BANK_CHARGES_CCID source_15
67733 , l4.JLBR_CD_BIL_UND_COLL_CCID source_16
67734 , l4.JLBR_CD_CASH_CCID source_18
67735 , l4.JLBR_CD_COLL_ENDRSMNT_CCID source_19
67736 , l4.JLBR_DISTRIBUTION_TYPE source_66
67737 , fvl66.meaning source_66_meaning
67738 , l4.JLBR_ACCT_REVERSING_OPTN source_67
67739 , fvl67.meaning source_67_meaning
67740 , l4.JLBR_PRIOR_DIST_LINK_TYPE source_69
67741 , l4.JLBR_PRIOR_DIST_ID source_71
67742 , l4.JLBR_PRIOR_DOCUMENT_ID source_72
67743 , l4.JLBR_PRIOR_OCCURRENCE_ID source_73
67744 , l4.JLBR_DISTRIBUTION_ID source_74
67745 , l4.JLBR_DISTRIBUTION_LINK_TYPE source_75
67746 , l4.JLBR_ENTERED_AMT source_76
67747 , l4.JLBR_ENTERED_CURRENCY_CODE source_77
67748 , l4.JLBR_CONVERSION_DATE source_78
67749 , l4.JLBR_CONVERSION_RATE source_79
67750 , l4.JLBR_CONVERSION_RATE_TYPE source_80
67751 , l4.JLBR_ACCTD_AMT source_81
67752 , l4.JLBR_REVERSED_DIST_ID source_83
67753 , l4.JLBR_REVERSED_DIST_LINK_TYPE source_84
67754 , l4.JLBR_BANK_OCC_TYPE source_85
67755 , fvl85.meaning source_85_meaning
67756 FROM xla_events_gt xet
67757 , JL_BR_AR_COLL_DOC_DISTS_L_V l4
67758 , fnd_lookup_values fvl7
67759 , fnd_lookup_values fvl66
67760 , fnd_lookup_values fvl67
67761 , fnd_lookup_values fvl85
67762 WHERE xet.event_id between x_first_event_id and x_last_event_id
67763 and xet.event_date between p_pad_start_date and p_pad_end_date
67764 and xet.event_class_code = C_EVENT_CLASS_CODE
67765 and xet.event_status_code <> 'N' AND l4.event_id = xet.event_id
67766 AND fvl7.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
67767 AND fvl7.lookup_code(+) = l4.JLBR_BORDERO_TYPE
67768 AND fvl7.view_application_id(+) = 0
67769 AND fvl7.language(+) = USERENV('LANG')
67770 AND fvl66.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
67771 AND fvl66.lookup_code(+) = l4.JLBR_DISTRIBUTION_TYPE
67772 AND fvl66.view_application_id(+) = 0
67773 AND fvl66.language(+) = USERENV('LANG')
67774 AND fvl67.lookup_type(+) = 'YES_NO'
67775 AND fvl67.lookup_code(+) = l4.JLBR_ACCT_REVERSING_OPTN
67776 AND fvl67.view_application_id(+) = 0
67777 AND fvl67.language(+) = USERENV('LANG')
67778 AND fvl85.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
67779 AND fvl85.lookup_code(+) = l4.JLBR_BANK_OCC_TYPE
67780 AND fvl85.view_application_id(+) = 0
67781 AND fvl85.language(+) = USERENV('LANG')
67782 ;
67783
67784 --
67785 BEGIN
67786 IF g_log_enabled THEN
67787 l_log_module := C_DEFAULT_MODULE||'.EventClass_129';
67788 END IF;
67789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67790 trace
67791 (p_msg => 'BEGIN of EventClass_129'
67792 ,p_level => C_LEVEL_PROCEDURE
67793 ,p_module => l_log_module);
67794 END IF;
67795
67796 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67797 trace
67798 (p_msg => 'p_application_id = '||p_application_id||
67799 ' - p_base_ledger_id = '||p_base_ledger_id||
67800 ' - p_target_ledger_id = '||p_target_ledger_id||
67801 ' - p_language = '||p_language||
67802 ' - p_currency_code = '||p_currency_code||
67803 ' - p_sla_ledger_id = '||p_sla_ledger_id
67804 ,p_level => C_LEVEL_STATEMENT
67805 ,p_module => l_log_module);
67806 END IF;
67807 --
67808 -- initialze arrays
67809 --
67810 g_array_event.DELETE;
67811 l_rec_array_event := l_null_rec_array_event;
67812 --
67813 --------------------------------------
67814 -- 4262811 Initialze MPA Line Number
67815 --------------------------------------
67816 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
67817
67818 --
67819
67820 --
67821 OPEN header_cur;
67822 --
67823 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67824 trace
67825 (p_msg => 'SQL - FETCH header_cur'
67826 ,p_level => C_LEVEL_STATEMENT
67827 ,p_module => l_log_module);
67828 END IF;
67829 --
67830 LOOP
67831 FETCH header_cur BULK COLLECT INTO
67832 l_array_entity_id
67833 , l_array_legal_entity_id
67834 , l_array_entity_code
67835 , l_array_transaction_num
67836 , l_array_event_id
67837 , l_array_class_code
67838 , l_array_event_type
67839 , l_array_event_number
67840 , l_array_event_date
67841 , l_array_transaction_date
67842 , l_array_reference_num_1
67843 , l_array_reference_num_2
67844 , l_array_reference_num_3
67845 , l_array_reference_num_4
67846 , l_array_reference_char_1
67847 , l_array_reference_char_2
67848 , l_array_reference_char_3
67849 , l_array_reference_char_4
67850 , l_array_reference_date_1
67854 , l_array_event_created_by
67851 , l_array_reference_date_2
67852 , l_array_reference_date_3
67853 , l_array_reference_date_4
67855 , l_array_budgetary_control_flag
67856 , l_array_source_4
67857 , l_array_source_5
67858 , l_array_source_6
67859 , l_array_source_37
67860 , l_array_source_38
67861 , l_array_source_39
67862 , l_array_source_82
67863 , l_array_source_113
67864 , l_array_source_114
67865 , l_array_source_115
67866 , l_array_source_116
67867 , l_array_source_116_meaning
67868 LIMIT l_rows;
67869 --
67870 IF (C_LEVEL_EVENT >= g_log_level) THEN
67871 trace
67872 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
67873 ,p_level => C_LEVEL_EVENT
67874 ,p_module => l_log_module);
67875 END IF;
67876 --
67877 EXIT WHEN l_array_entity_id.COUNT = 0;
67878
67879 -- initialize arrays
67880 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
67881 XLA_AE_LINES_PKG.g_rec_lines := NULL;
67882
67883 --
67884 -- Bug 4458708
67885 --
67886 XLA_AE_LINES_PKG.g_LineNumber := 0;
67887
67888
67889 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
67890 g_last_hdr_idx := l_array_event_id.LAST;
67891 --
67892 -- loop for the headers. Each iteration is for each header extract row
67893 -- fetched in header cursor
67894 --
67895 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
67896
67897 --
67898 -- set event info as cache for other routines to refer event attributes
67899 --
67900 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67901 (p_application_id => p_application_id
67902 ,p_primary_ledger_id => p_primary_ledger_id
67903 ,p_base_ledger_id => p_base_ledger_id
67904 ,p_target_ledger_id => p_target_ledger_id
67905 ,p_entity_id => l_array_entity_id(hdr_idx)
67906 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
67907 ,p_entity_code => l_array_entity_code(hdr_idx)
67908 ,p_transaction_num => l_array_transaction_num(hdr_idx)
67909 ,p_event_id => l_array_event_id(hdr_idx)
67910 ,p_event_class_code => l_array_class_code(hdr_idx)
67911 ,p_event_type_code => l_array_event_type(hdr_idx)
67912 ,p_event_number => l_array_event_number(hdr_idx)
67913 ,p_event_date => l_array_event_date(hdr_idx)
67914 ,p_transaction_date => l_array_transaction_date(hdr_idx)
67915 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
67916 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
67917 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
67918 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
67919 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
67920 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
67921 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
67922 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
67923 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
67924 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
67925 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
67926 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
67927 ,p_event_created_by => l_array_event_created_by(hdr_idx)
67928 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
67929
67930 --
67931 -- set the status of entry to C_VALID (0)
67932 --
67933 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67934
67935 --
67936 -- initialize a row for ae header
67937 --
67938 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
67939
67940 l_event_id := l_array_event_id(hdr_idx);
67941
67942 --
67943 -- storing the hdr_idx for event. May be used by line cursor.
67944 --
67945 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
67946
67947 --
67948 -- store sources from header extract. This can be improved to
67949 -- store only those sources from header extract that may be used in lines
67950 --
67951
67952 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
67953 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
67954 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
67955 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
67956 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
67957 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
67958 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
67959 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
67960 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
67961 g_array_event(l_event_id).array_value_date('source_115') := l_array_source_115(hdr_idx);
67962 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
67963 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
67964
67965 --
67966 -- initilaize the status of ae headers for diffrent balance types
67967 -- the status is initialised to C_NOT_CREATED (2)
67968 --
67969 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67970 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67974 -- call api to validate and store accounting attributes for header
67971 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67972
67973 --
67975 --
67976
67977 ------------------------------------------------------------
67978 -- Accrual Reversal : to get date for Standard Source (NONE)
67979 ------------------------------------------------------------
67980 l_acc_rev_gl_date_source := NULL;
67981
67982 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
67983 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_115');
67984 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
67985 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_116');
67986
67987
67988 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
67989
67990 XLA_AE_HEADER_PKG.SetJeCategoryName;
67991
67992 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
67993 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
67994 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
67995 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
67996 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
67997
67998
67999 -- No header level analytical criteria
68000
68001 --
68002 --accounting attribute enhancement, bug 3612931
68003 --
68004 l_trx_reversal_source := SUBSTR(NULL, 1,30);
68005
68006 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
68007 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68008
68009 xla_accounting_err_pkg.build_message
68010 (p_appli_s_name => 'XLA'
68011 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
68012 ,p_token_1 => 'ACCT_ATTR_NAME'
68013 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
68014 ,p_token_2 => 'PRODUCT_NAME'
68015 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68016 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68017 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68018 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68019
68020 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
68021 --
68022 -- following sets the accounting attributes needed to reverse
68023 -- accounting for a distributeion
68024 --
68025 xla_ae_lines_pkg.SetTrxReversalAttrs
68026 (p_event_id => l_event_id
68027 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
68028 ,p_trx_reversal_source => l_trx_reversal_source);
68029
68030 END IF;
68031
68032
68033 ----------------------------------------------------------------
68034 -- 4262811 - update the header statuses to invalid in need be
68035 ----------------------------------------------------------------
68036 --
68037 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
68038
68039
68040 -----------------------------------------------
68041 -- No accrual reversal for the event class/type
68042 -----------------------------------------------
68043 ----------------------------------------------------------------
68044
68045 --
68046 -- this ends the header loop iteration for one bulk fetch
68047 --
68048 END LOOP;
68049
68050 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
68051 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
68052
68053 --
68054 -- insert dummy rows into lines gt table that were created due to
68055 -- transaction reversals
68056 --
68057 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
68058 l_result := XLA_AE_LINES_PKG.InsertLines;
68059 END IF;
68060
68061 --
68062 -- reset the temp_line_num for each set of events fetched from header
68063 -- cursor rather than doing it for each new event in line cursor
68064 -- Bug 3939231
68065 --
68066 xla_ae_lines_pkg.g_temp_line_num := 0;
68067
68068
68069
68070 --
68071 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
68072 --
68073 --
68074 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68075
68076 trace
68077 (p_msg => 'SQL - FETCH line_cur'
68078 ,p_level => C_LEVEL_STATEMENT
68079 ,p_module => l_log_module);
68080
68081 END IF;
68082 --
68083 --
68084 LOOP
68085 --
68086 FETCH line_cur BULK COLLECT INTO
68087 l_array_entity_id
68088 , l_array_legal_entity_id
68089 , l_array_entity_code
68090 , l_array_transaction_num
68091 , l_array_event_id
68092 , l_array_class_code
68093 , l_array_event_type
68094 , l_array_event_number
68095 , l_array_event_date
68096 , l_array_transaction_date
68097 , l_array_reference_num_1
68098 , l_array_reference_num_2
68099 , l_array_reference_num_3
68100 , l_array_reference_num_4
68101 , l_array_reference_char_1
68102 , l_array_reference_char_2
68103 , l_array_reference_char_3
68104 , l_array_reference_char_4
68105 , l_array_reference_date_1
68106 , l_array_reference_date_2
68107 , l_array_reference_date_3
68108 , l_array_reference_date_4
68109 , l_array_event_created_by
68113 , l_array_source_7_meaning
68110 , l_array_budgetary_control_flag
68111 , l_array_extract_line_num
68112 , l_array_source_7
68114 , l_array_source_15
68115 , l_array_source_16
68116 , l_array_source_18
68117 , l_array_source_19
68118 , l_array_source_66
68119 , l_array_source_66_meaning
68120 , l_array_source_67
68121 , l_array_source_67_meaning
68122 , l_array_source_69
68123 , l_array_source_71
68124 , l_array_source_72
68125 , l_array_source_73
68126 , l_array_source_74
68127 , l_array_source_75
68128 , l_array_source_76
68129 , l_array_source_77
68130 , l_array_source_78
68131 , l_array_source_79
68132 , l_array_source_80
68133 , l_array_source_81
68134 , l_array_source_83
68135 , l_array_source_84
68136 , l_array_source_85
68137 , l_array_source_85_meaning
68138 LIMIT l_rows;
68139
68140 --
68141 IF (C_LEVEL_EVENT >= g_log_level) THEN
68142 trace
68143 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
68144 ,p_level => C_LEVEL_EVENT
68145 ,p_module => l_log_module);
68146 END IF;
68147 --
68148 EXIT WHEN l_array_entity_id.count = 0;
68149
68150 XLA_AE_LINES_PKG.g_rec_lines := null;
68151
68152 --
68153 -- Bug 4458708
68154 --
68155 XLA_AE_LINES_PKG.g_LineNumber := 0;
68156 --
68157 --
68158
68159 FOR Idx IN 1..l_array_event_id.count LOOP
68160 --
68161 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
68162 --
68163 l_event_id := l_array_event_id(idx); -- 5648433
68164
68165 --
68166 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
68167 --
68168
68169 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
68170 (g_array_event(l_event_id).array_value_num('header_index'))
68171 ,'N'
68172 ) <> 'Y'
68173 THEN
68174 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68175 trace
68176 (p_msg => 'Trancaction revesal option is not Y '
68177 ,p_level => C_LEVEL_STATEMENT
68178 ,p_module => l_log_module);
68179 END IF;
68180
68181 --
68182 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
68183 --
68184 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68185 --
68186 -- set event info as cache for other routines to refer event attributes
68187 --
68188
68189 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
68190 l_previous_event_id := l_event_id;
68191
68192 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68193 (p_application_id => p_application_id
68194 ,p_primary_ledger_id => p_primary_ledger_id
68195 ,p_base_ledger_id => p_base_ledger_id
68196 ,p_target_ledger_id => p_target_ledger_id
68197 ,p_entity_id => l_array_entity_id(Idx)
68198 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
68199 ,p_entity_code => l_array_entity_code(Idx)
68200 ,p_transaction_num => l_array_transaction_num(Idx)
68201 ,p_event_id => l_array_event_id(Idx)
68202 ,p_event_class_code => l_array_class_code(Idx)
68203 ,p_event_type_code => l_array_event_type(Idx)
68204 ,p_event_number => l_array_event_number(Idx)
68205 ,p_event_date => l_array_event_date(Idx)
68206 ,p_transaction_date => l_array_transaction_date(Idx)
68207 ,p_reference_num_1 => l_array_reference_num_1(Idx)
68208 ,p_reference_num_2 => l_array_reference_num_2(Idx)
68209 ,p_reference_num_3 => l_array_reference_num_3(Idx)
68210 ,p_reference_num_4 => l_array_reference_num_4(Idx)
68211 ,p_reference_char_1 => l_array_reference_char_1(Idx)
68212 ,p_reference_char_2 => l_array_reference_char_2(Idx)
68213 ,p_reference_char_3 => l_array_reference_char_3(Idx)
68214 ,p_reference_char_4 => l_array_reference_char_4(Idx)
68215 ,p_reference_date_1 => l_array_reference_date_1(Idx)
68216 ,p_reference_date_2 => l_array_reference_date_2(Idx)
68217 ,p_reference_date_3 => l_array_reference_date_3(Idx)
68218 ,p_reference_date_4 => l_array_reference_date_4(Idx)
68219 ,p_event_created_by => l_array_event_created_by(Idx)
68220 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
68221 --
68222 END IF;
68223
68224
68225
68226 --
68227 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
68228
68229 l_acct_reversal_source := SUBSTR(l_array_source_67(Idx), 1,30);
68230
68231 IF l_continue_with_lines THEN
68232 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
68233 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68234
68235 xla_accounting_err_pkg.build_message
68236 (p_appli_s_name => 'XLA'
68237 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
68238 ,p_token_1 => 'LINE_NUMBER'
68239 ,p_value_1 => l_array_extract_line_num(Idx)
68240 ,p_token_2 => 'PRODUCT_NAME'
68241 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68242 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68246 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
68243 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68244 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68245
68247 --
68248 -- following sets the accounting attributes needed to reverse
68249 -- accounting for a distributeion
68250 --
68251
68252 --
68253 -- 5217187
68254 --
68255 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
68256 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
68257 g_array_event(l_event_id).array_value_num('header_index'));
68258 --
68259 --
68260
68261 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
68262 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_67(Idx);
68263 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
68264 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_74(Idx);
68265 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
68266 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_75(Idx);
68267 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
68268 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_39');
68269 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
68270 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_83(Idx);
68271 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
68272 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_84(Idx);
68273
68274
68275 xla_ae_lines_pkg.SetAcctReversalAttrs
68276 (p_event_id => l_event_id
68277 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
68278 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68279 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
68280 END IF;
68281
68282 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
68283 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
68284
68285 --
68286 AcctLineType_54 (
68287 p_application_id => p_application_id
68288 ,p_event_id => l_event_id
68289 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68290 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68291 ,p_actual_flag => l_actual_flag
68292 ,p_balance_type_code => l_balance_type_code
68293 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68294
68295 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
68296 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
68297 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
68298 , p_source_7 => l_array_source_7(Idx)
68299 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68300 , p_source_15 => l_array_source_15(Idx)
68301 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
68302 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
68303 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68304 , p_source_66 => l_array_source_66(Idx)
68305 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68306 , p_source_67 => l_array_source_67(Idx)
68307 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68308 , p_source_69 => l_array_source_69(Idx)
68309 , p_source_71 => l_array_source_71(Idx)
68310 , p_source_72 => l_array_source_72(Idx)
68311 , p_source_73 => l_array_source_73(Idx)
68312 , p_source_74 => l_array_source_74(Idx)
68313 , p_source_75 => l_array_source_75(Idx)
68314 , p_source_76 => l_array_source_76(Idx)
68315 , p_source_77 => l_array_source_77(Idx)
68316 , p_source_78 => l_array_source_78(Idx)
68317 , p_source_79 => l_array_source_79(Idx)
68318 , p_source_80 => l_array_source_80(Idx)
68319 , p_source_81 => l_array_source_81(Idx)
68320 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68321 , p_source_83 => l_array_source_83(Idx)
68322 , p_source_84 => l_array_source_84(Idx)
68323 );
68324 If(l_balance_type_code = 'A') THEN
68325 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68326 END IF;
68327
68328 --
68329
68330
68331 --
68332 AcctLineType_55 (
68333 p_application_id => p_application_id
68334 ,p_event_id => l_event_id
68335 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68336 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68337 ,p_actual_flag => l_actual_flag
68338 ,p_balance_type_code => l_balance_type_code
68339 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68340
68341 , p_source_7 => l_array_source_7(Idx)
68342 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68343 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68344 , p_source_66 => l_array_source_66(Idx)
68345 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68346 , p_source_67 => l_array_source_67(Idx)
68347 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68348 , p_source_69 => l_array_source_69(Idx)
68349 , p_source_71 => l_array_source_71(Idx)
68350 , p_source_72 => l_array_source_72(Idx)
68351 , p_source_73 => l_array_source_73(Idx)
68352 , p_source_74 => l_array_source_74(Idx)
68353 , p_source_75 => l_array_source_75(Idx)
68354 , p_source_76 => l_array_source_76(Idx)
68355 , p_source_77 => l_array_source_77(Idx)
68356 , p_source_81 => l_array_source_81(Idx)
68357 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68358 , p_source_83 => l_array_source_83(Idx)
68359 , p_source_84 => l_array_source_84(Idx)
68360 , p_source_85 => l_array_source_85(Idx)
68361 , p_source_85_meaning => l_array_source_85_meaning(Idx)
68362 );
68363 If(l_balance_type_code = 'A') THEN
68367 --
68364 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68365 END IF;
68366
68368
68369
68370 --
68371 AcctLineType_56 (
68372 p_application_id => p_application_id
68373 ,p_event_id => l_event_id
68374 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68375 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68376 ,p_actual_flag => l_actual_flag
68377 ,p_balance_type_code => l_balance_type_code
68378 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68379
68380 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
68381 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
68382 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
68383 , p_source_7 => l_array_source_7(Idx)
68384 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68385 , p_source_16 => l_array_source_16(Idx)
68386 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
68387 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
68388 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68389 , p_source_66 => l_array_source_66(Idx)
68390 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68391 , p_source_67 => l_array_source_67(Idx)
68392 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68393 , p_source_69 => l_array_source_69(Idx)
68394 , p_source_71 => l_array_source_71(Idx)
68395 , p_source_72 => l_array_source_72(Idx)
68396 , p_source_73 => l_array_source_73(Idx)
68397 , p_source_74 => l_array_source_74(Idx)
68398 , p_source_75 => l_array_source_75(Idx)
68399 , p_source_76 => l_array_source_76(Idx)
68400 , p_source_77 => l_array_source_77(Idx)
68401 , p_source_78 => l_array_source_78(Idx)
68402 , p_source_79 => l_array_source_79(Idx)
68403 , p_source_80 => l_array_source_80(Idx)
68404 , p_source_81 => l_array_source_81(Idx)
68405 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68406 , p_source_83 => l_array_source_83(Idx)
68407 , p_source_84 => l_array_source_84(Idx)
68408 , p_source_85 => l_array_source_85(Idx)
68409 , p_source_85_meaning => l_array_source_85_meaning(Idx)
68410 );
68411 If(l_balance_type_code = 'A') THEN
68412 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68413 END IF;
68414
68415 --
68416
68417
68418 --
68419 AcctLineType_57 (
68420 p_application_id => p_application_id
68421 ,p_event_id => l_event_id
68422 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68423 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68424 ,p_actual_flag => l_actual_flag
68425 ,p_balance_type_code => l_balance_type_code
68426 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68427
68428 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
68429 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
68430 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
68431 , p_source_7 => l_array_source_7(Idx)
68432 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68433 , p_source_18 => l_array_source_18(Idx)
68434 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
68435 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
68436 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68437 , p_source_66 => l_array_source_66(Idx)
68438 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68439 , p_source_67 => l_array_source_67(Idx)
68440 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68441 , p_source_69 => l_array_source_69(Idx)
68442 , p_source_71 => l_array_source_71(Idx)
68443 , p_source_72 => l_array_source_72(Idx)
68444 , p_source_73 => l_array_source_73(Idx)
68445 , p_source_74 => l_array_source_74(Idx)
68446 , p_source_75 => l_array_source_75(Idx)
68447 , p_source_76 => l_array_source_76(Idx)
68448 , p_source_77 => l_array_source_77(Idx)
68449 , p_source_78 => l_array_source_78(Idx)
68450 , p_source_79 => l_array_source_79(Idx)
68451 , p_source_80 => l_array_source_80(Idx)
68452 , p_source_81 => l_array_source_81(Idx)
68453 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68454 , p_source_83 => l_array_source_83(Idx)
68455 , p_source_84 => l_array_source_84(Idx)
68456 );
68457 If(l_balance_type_code = 'A') THEN
68458 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68459 END IF;
68460
68461 --
68462
68463
68464 --
68465 AcctLineType_58 (
68466 p_application_id => p_application_id
68467 ,p_event_id => l_event_id
68468 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68469 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68470 ,p_actual_flag => l_actual_flag
68471 ,p_balance_type_code => l_balance_type_code
68472 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68473
68474 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
68475 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
68476 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
68477 , p_source_7 => l_array_source_7(Idx)
68478 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68479 , p_source_19 => l_array_source_19(Idx)
68480 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
68481 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
68482 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68483 , p_source_66 => l_array_source_66(Idx)
68484 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68485 , p_source_67 => l_array_source_67(Idx)
68486 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68487 , p_source_69 => l_array_source_69(Idx)
68488 , p_source_71 => l_array_source_71(Idx)
68492 , p_source_75 => l_array_source_75(Idx)
68489 , p_source_72 => l_array_source_72(Idx)
68490 , p_source_73 => l_array_source_73(Idx)
68491 , p_source_74 => l_array_source_74(Idx)
68493 , p_source_76 => l_array_source_76(Idx)
68494 , p_source_77 => l_array_source_77(Idx)
68495 , p_source_78 => l_array_source_78(Idx)
68496 , p_source_79 => l_array_source_79(Idx)
68497 , p_source_80 => l_array_source_80(Idx)
68498 , p_source_81 => l_array_source_81(Idx)
68499 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68500 , p_source_83 => l_array_source_83(Idx)
68501 , p_source_84 => l_array_source_84(Idx)
68502 , p_source_85 => l_array_source_85(Idx)
68503 , p_source_85_meaning => l_array_source_85_meaning(Idx)
68504 );
68505 If(l_balance_type_code = 'A') THEN
68506 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68507 END IF;
68508
68509 --
68510
68511
68512 --
68513 AcctLineType_59 (
68514 p_application_id => p_application_id
68515 ,p_event_id => l_event_id
68516 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68517 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68518 ,p_actual_flag => l_actual_flag
68519 ,p_balance_type_code => l_balance_type_code
68520 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68521
68522 , p_source_7 => l_array_source_7(Idx)
68523 , p_source_7_meaning => l_array_source_7_meaning(Idx)
68524 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
68525 , p_source_66 => l_array_source_66(Idx)
68526 , p_source_66_meaning => l_array_source_66_meaning(Idx)
68527 , p_source_67 => l_array_source_67(Idx)
68528 , p_source_67_meaning => l_array_source_67_meaning(Idx)
68529 , p_source_69 => l_array_source_69(Idx)
68530 , p_source_71 => l_array_source_71(Idx)
68531 , p_source_72 => l_array_source_72(Idx)
68532 , p_source_73 => l_array_source_73(Idx)
68533 , p_source_74 => l_array_source_74(Idx)
68534 , p_source_75 => l_array_source_75(Idx)
68535 , p_source_76 => l_array_source_76(Idx)
68536 , p_source_77 => l_array_source_77(Idx)
68537 , p_source_81 => l_array_source_81(Idx)
68538 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
68539 , p_source_83 => l_array_source_83(Idx)
68540 , p_source_84 => l_array_source_84(Idx)
68541 , p_source_85 => l_array_source_85(Idx)
68542 , p_source_85_meaning => l_array_source_85_meaning(Idx)
68543 );
68544 If(l_balance_type_code = 'A') THEN
68545 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68546 END IF;
68547
68548 --
68549
68550 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
68551 -- or secondary ledger that has different currency with primary
68552 -- or alc that is calculated by sla
68553 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68554 (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'))
68555
68556 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
68557 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
68558 AND (l_actual_flag = 'A')) THEN
68559 XLA_AE_LINES_PKG.CreateGainOrLossLines(
68560 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68561 ,p_application_id => p_application_id
68562 ,p_amb_context_code => 'DEFAULT'
68563 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
68564 ,p_event_class_code => C_EVENT_CLASS_CODE
68565 ,p_event_type_code => C_EVENT_TYPE_CODE
68566
68567 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_113'))
68568 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_114'))
68569
68570 ,p_actual_flag => l_actual_flag
68571 ,p_enc_flag => null
68572 ,p_actual_g_l_ref => l_actual_gain_loss_ref
68573 ,p_enc_g_l_ref => null
68574 );
68575 END IF;
68576 END IF;
68577 END IF;
68578
68579 ELSE
68580 --
68581 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
68582 --
68583 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68584 trace
68585 (p_msg => 'Trancaction revesal option is Y'
68586 ,p_level => C_LEVEL_STATEMENT
68587 ,p_module => l_log_module);
68588 END IF;
68589 END IF;
68590
68591 END LOOP;
68592 l_result := XLA_AE_LINES_PKG.InsertLines ;
68593 end loop;
68594 close line_cur;
68595
68596
68597 --
68598 -- insert headers into xla_ae_headers_gt table
68599 --
68600 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
68601
68602 -- insert into errors table here.
68603
68604 END LOOP;
68605
68606 --
68607 -- 4865292
68608 --
68609 -- Compare g_hdr_extract_count with event count in
68610 -- CreateHeadersAndLines.
68611 --
68612 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
68613
68614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68615 trace (p_msg => '# rows extracted from header extract objects '
68616 || ' (running total): '
68617 || g_hdr_extract_count
68618 ,p_level => C_LEVEL_STATEMENT
68619 ,p_module => l_log_module);
68620 END IF;
68621
68622 CLOSE header_cur;
68623 --
68624
68625 --
68626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68627 trace
68631 END IF;
68628 (p_msg => 'END of EventClass_129'
68629 ,p_level => C_LEVEL_PROCEDURE
68630 ,p_module => l_log_module);
68632 --
68633 RETURN l_result;
68634 EXCEPTION
68635 WHEN xla_exceptions_pkg.application_exception THEN
68636
68637 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
68638
68639
68640 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
68641
68642 RAISE;
68643
68644 WHEN NO_DATA_FOUND THEN
68645
68646 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
68647 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
68648
68649 FOR header_record IN header_cur
68650 LOOP
68651 l_array_header_events(header_record.event_id) := header_record.event_id;
68652 END LOOP;
68653
68654 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
68655 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
68656
68657 fnd_file.put_line(fnd_file.LOG, ' ');
68658 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
68659 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
68660 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
68661
68662 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
68663 LOOP
68664 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
68665 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
68666 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
68667 END IF;
68668 END LOOP;
68669
68670 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
68671 fnd_file.put_line(fnd_file.LOG, ' ');
68672
68673
68674 xla_exceptions_pkg.raise_message
68675 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_129');
68676
68677
68678 WHEN OTHERS THEN
68679 xla_exceptions_pkg.raise_message
68680 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_129');
68681 END EventClass_129;
68682 --
68683
68684 ---------------------------------------
68685 --
68686 -- PRIVATE PROCEDURE
68687 -- insert_sources_130
68688 --
68689 ----------------------------------------
68690 --
68691 PROCEDURE insert_sources_130(
68692 p_target_ledger_id IN NUMBER
68693 , p_language IN VARCHAR2
68694 , p_sla_ledger_id IN NUMBER
68695 , p_pad_start_date IN DATE
68696 , p_pad_end_date IN DATE
68697 )
68698 IS
68699
68700 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO_ALL';
68701 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO';
68702 p_apps_owner VARCHAR2(30);
68703 l_log_module VARCHAR2(240);
68704 BEGIN
68705 IF g_log_enabled THEN
68706 l_log_module := C_DEFAULT_MODULE||'.insert_sources_130';
68707 END IF;
68708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68709
68710 trace
68711 (p_msg => 'BEGIN of insert_sources_130'
68712 ,p_level => C_LEVEL_PROCEDURE
68713 ,p_module => l_log_module);
68714
68715 END IF;
68716
68717 -- select APPS owner
68718 SELECT oracle_username
68719 INTO p_apps_owner
68720 FROM fnd_oracle_userid
68721 WHERE read_only_flag = 'U'
68722 ;
68723
68724 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68725 trace
68726 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
68727 ' - p_language = '||p_language||
68728 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
68729 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
68730 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
68731 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
68732 ,p_level => C_LEVEL_STATEMENT
68733 ,p_module => l_log_module);
68734 END IF;
68735
68736
68737 --
68738 INSERT INTO xla_diag_sources --hdr2
68739 (
68740 event_id
68741 , ledger_id
68742 , sla_ledger_id
68743 , description_language
68744 , object_name
68745 , object_type_code
68746 , line_number
68747 , source_application_id
68748 , source_type_code
68749 , source_code
68750 , source_value
68751 , source_meaning
68752 , created_by
68753 , creation_date
68754 , last_update_date
68755 , last_updated_by
68756 , last_update_login
68757 , program_update_date
68758 , program_application_id
68759 , program_id
68760 , request_id
68761 )
68762 SELECT
68763 event_id
68764 , p_target_ledger_id
68765 , p_sla_ledger_id
68766 , p_language
68767 , object_name
68768 , object_type_code
68769 , line_number
68770 , source_application_id
68771 , source_type_code
68772 , source_code
68773 , SUBSTR(source_value ,1,1996)
68774 , SUBSTR(source_meaning ,1,200)
68775 , xla_environment_pkg.g_Usr_Id
68776 , TRUNC(SYSDATE)
68780 , TRUNC(SYSDATE)
68777 , TRUNC(SYSDATE)
68778 , xla_environment_pkg.g_Usr_Id
68779 , xla_environment_pkg.g_Login_Id
68781 , xla_environment_pkg.g_Prog_Appl_Id
68782 , xla_environment_pkg.g_Prog_Id
68783 , xla_environment_pkg.g_Req_Id
68784 FROM (
68785 SELECT xet.event_id event_id
68786 , 0 line_number
68787 , CASE r
68788 WHEN 1 THEN 'AR_SYSTEM_PARAM_H_V'
68789 WHEN 2 THEN 'AR_SYSTEM_PARAM_H_V'
68790 WHEN 3 THEN 'AR_CREDIT_MEMO_H_V'
68791 WHEN 4 THEN 'AR_CREDIT_MEMO_H_V'
68792 WHEN 5 THEN 'AR_CM_BILL_TO_CUST_H_V'
68793 WHEN 6 THEN 'AR_CM_BILL_SITE_USES_H_V'
68794
68795 ELSE null
68796 END object_name
68797 , CASE r
68798 WHEN 1 THEN 'HEADER'
68799 WHEN 2 THEN 'HEADER'
68800 WHEN 3 THEN 'HEADER'
68801 WHEN 4 THEN 'HEADER'
68802 WHEN 5 THEN 'HEADER'
68803 WHEN 6 THEN 'HEADER'
68804
68805 ELSE null
68806 END object_type_code
68807 , CASE r
68808 WHEN 1 THEN '222'
68809 WHEN 2 THEN '222'
68810 WHEN 3 THEN '222'
68811 WHEN 4 THEN '222'
68812 WHEN 5 THEN '222'
68813 WHEN 6 THEN '222'
68814
68815 ELSE null
68816 END source_application_id
68817 , 'S' source_type_code
68818 , CASE r
68819 WHEN 1 THEN 'CODE_COMBINATION_ID_GAIN'
68820 WHEN 2 THEN 'CODE_COMBINATION_ID_LOSS'
68821 WHEN 3 THEN 'XLA_PARTY_TYPE'
68822 WHEN 4 THEN 'CM_INVOICE_CURRENCY_CODE'
68823 WHEN 5 THEN 'CM_BILL_CUST_ACCOUNT_ID'
68824 WHEN 6 THEN 'CM_BILL_USES_SITE_USE_ID'
68825
68826 ELSE null
68827 END source_code
68828 , CASE r
68829 WHEN 1 THEN TO_CHAR(h9.CODE_COMBINATION_ID_GAIN)
68830 WHEN 2 THEN TO_CHAR(h9.CODE_COMBINATION_ID_LOSS)
68831 WHEN 3 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
68832 WHEN 4 THEN TO_CHAR(h5.CM_INVOICE_CURRENCY_CODE)
68833 WHEN 5 THEN TO_CHAR(h2.CM_BILL_CUST_ACCOUNT_ID)
68834 WHEN 6 THEN TO_CHAR(h1.CM_BILL_USES_SITE_USE_ID)
68835
68836 ELSE null
68837 END source_value
68838 , null source_meaning
68839 FROM xla_events_gt xet
68840 , AR_CM_BILL_SITE_USES_H_V h1
68841 , AR_CM_BILL_TO_CUST_H_V h2
68842 , AR_CREDIT_MEMO_H_V h5
68843 , AR_SYSTEM_PARAM_H_V h9
68844 ,(select rownum r from all_objects where rownum <= 6 and owner = p_apps_owner)
68845 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68846 AND xet.event_class_code = C_EVENT_CLASS_CODE
68847 AND h1.event_id = xet.event_id
68848 AND h2.event_id = h1.event_id
68849 AND h5.event_id = h1.event_id
68850 AND h9.event_id (+) = h1.event_id
68851
68852 )
68853 ;
68854 --
68855 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68856
68857 trace
68858 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
68859 ,p_level => C_LEVEL_STATEMENT
68860 ,p_module => l_log_module);
68861
68862 END IF;
68863 --
68864
68865
68866
68867 --
68868 INSERT INTO xla_diag_sources --line2
68869 (
68870 event_id
68871 , ledger_id
68872 , sla_ledger_id
68873 , description_language
68874 , object_name
68875 , object_type_code
68876 , line_number
68877 , source_application_id
68878 , source_type_code
68879 , source_code
68880 , source_value
68881 , source_meaning
68882 , created_by
68883 , creation_date
68884 , last_update_date
68885 , last_updated_by
68886 , last_update_login
68887 , program_update_date
68888 , program_application_id
68889 , program_id
68890 , request_id
68891 )
68892 SELECT event_id
68893 , p_target_ledger_id
68894 , p_sla_ledger_id
68895 , p_language
68896 , object_name
68897 , object_type_code
68898 , line_number
68899 , source_application_id
68900 , source_type_code
68901 , source_code
68902 , SUBSTR(source_value,1,1996)
68903 , SUBSTR(source_meaning ,1,200)
68904 , xla_environment_pkg.g_Usr_Id
68905 , TRUNC(SYSDATE)
68906 , TRUNC(SYSDATE)
68907 , xla_environment_pkg.g_Usr_Id
68908 , xla_environment_pkg.g_Login_Id
68909 , TRUNC(SYSDATE)
68910 , xla_environment_pkg.g_Prog_Appl_Id
68911 , xla_environment_pkg.g_Prog_Id
68912 , xla_environment_pkg.g_Req_Id
68913 FROM (
68914 SELECT xet.event_id event_id
68915 , l3.line_number line_number
68916 , CASE r
68917 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
68921 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
68918 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
68919 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
68920 WHEN 4 THEN 'AR_CM_LINES_L_V'
68922 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
68923 WHEN 7 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
68924 WHEN 8 THEN 'AR_DISTRIBUTIONS_L_V'
68925 WHEN 9 THEN 'AR_CM_LINES_BASE_V'
68926 WHEN 10 THEN 'AR_CM_LINES_BASE_V'
68927 WHEN 11 THEN 'AR_CM_LINES_BASE_V'
68928 WHEN 12 THEN 'AR_CM_LINES_BASE_V'
68929 WHEN 13 THEN 'AR_CM_LINES_BASE_V'
68930 WHEN 14 THEN 'AR_CM_LINES_BASE_V'
68931 WHEN 15 THEN 'AR_CM_LINES_BASE_V'
68932 WHEN 16 THEN 'AR_CM_LINES_L_V'
68933 WHEN 17 THEN 'AR_CM_LINES_L_V'
68934 WHEN 18 THEN 'AR_CM_LINES_L_V'
68935 WHEN 19 THEN 'AR_CUST_TRX_LINES_L_V'
68936
68937 ELSE null
68938 END object_name
68939 , CASE r
68940 WHEN 1 THEN 'LINE'
68941 WHEN 2 THEN 'LINE'
68942 WHEN 3 THEN 'LINE'
68943 WHEN 4 THEN 'LINE'
68944 WHEN 5 THEN 'LINE'
68945 WHEN 6 THEN 'LINE'
68946 WHEN 7 THEN 'LINE'
68947 WHEN 8 THEN 'LINE'
68948 WHEN 9 THEN 'LINE'
68949 WHEN 10 THEN 'LINE'
68950 WHEN 11 THEN 'LINE'
68951 WHEN 12 THEN 'LINE'
68952 WHEN 13 THEN 'LINE'
68953 WHEN 14 THEN 'LINE'
68954 WHEN 15 THEN 'LINE'
68955 WHEN 16 THEN 'LINE'
68956 WHEN 17 THEN 'LINE'
68957 WHEN 18 THEN 'LINE'
68958 WHEN 19 THEN 'LINE'
68959
68960 ELSE null
68961 END object_type_code
68962 , CASE r
68963 WHEN 1 THEN '222'
68964 WHEN 2 THEN '222'
68965 WHEN 3 THEN '222'
68966 WHEN 4 THEN '222'
68967 WHEN 5 THEN '222'
68968 WHEN 6 THEN '222'
68969 WHEN 7 THEN '222'
68970 WHEN 8 THEN '222'
68971 WHEN 9 THEN '222'
68972 WHEN 10 THEN '222'
68973 WHEN 11 THEN '222'
68974 WHEN 12 THEN '222'
68975 WHEN 13 THEN '222'
68976 WHEN 14 THEN '222'
68977 WHEN 15 THEN '222'
68978 WHEN 16 THEN '222'
68979 WHEN 17 THEN '222'
68980 WHEN 18 THEN '222'
68981 WHEN 19 THEN '222'
68982
68983 ELSE null
68984 END source_application_id
68985 , 'S' source_type_code
68986 , CASE r
68987 WHEN 1 THEN 'TRX_TYPE_NAME'
68988 WHEN 2 THEN 'TRX_NUMBER'
68989 WHEN 3 THEN 'TRX_DOC_SEQUENCE_VALUE'
68990 WHEN 4 THEN 'CM_LINE_DIST_CCID'
68991 WHEN 5 THEN 'DIST_CODE_COMBINATION_ID'
68992 WHEN 6 THEN 'DIST_SOURCE_TYPE'
68993 WHEN 7 THEN 'REC_ACT_TYPE'
68994 WHEN 8 THEN 'DIST_ENT_AMT'
68995 WHEN 9 THEN 'CM_DIST_IDENTIFER'
68996 WHEN 10 THEN 'CM_DIST_TYPE'
68997 WHEN 11 THEN 'CM_LINE_CUR_CONVERSION_DATE'
68998 WHEN 12 THEN 'CM_LINE_CUR_CONVERSION_RATE'
68999 WHEN 13 THEN 'CM_LINE_CUR_CONVERSION_TYPE'
69000 WHEN 14 THEN 'GAIN_LOSS_REF'
69001 WHEN 15 THEN 'CM_LINE_ACCTD_AMT'
69002 WHEN 16 THEN 'CM_TAX_LINE_ID'
69003 WHEN 17 THEN 'CM_LINE_DIST_ACCOUNT_CLASS'
69004 WHEN 18 THEN 'CM_LINE_DIST_AMT'
69005 WHEN 19 THEN 'TRX_LINE_INTERFACE_LINE_ATTR1'
69006
69007 ELSE null
69008 END source_code
69009 , CASE r
69010 WHEN 1 THEN TO_CHAR(l10.TRX_TYPE_NAME)
69011 WHEN 2 THEN TO_CHAR(l10.TRX_NUMBER)
69012 WHEN 3 THEN TO_CHAR(l10.TRX_DOC_SEQUENCE_VALUE)
69013 WHEN 4 THEN TO_CHAR(l4.CM_LINE_DIST_CCID)
69014 WHEN 5 THEN TO_CHAR(l7.DIST_CODE_COMBINATION_ID)
69015 WHEN 6 THEN TO_CHAR(l7.DIST_SOURCE_TYPE)
69016 WHEN 7 THEN TO_CHAR(l8.REC_ACT_TYPE)
69017 WHEN 8 THEN TO_CHAR(l7.DIST_ENT_AMT)
69018 WHEN 9 THEN TO_CHAR(l3.CM_DIST_IDENTIFER)
69019 WHEN 10 THEN TO_CHAR(l3.CM_DIST_TYPE)
69020 WHEN 11 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_DATE)
69021 WHEN 12 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_RATE)
69022 WHEN 13 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_TYPE)
69023 WHEN 14 THEN TO_CHAR(l3.GAIN_LOSS_REF)
69024 WHEN 15 THEN TO_CHAR(l3.CM_LINE_ACCTD_AMT)
69025 WHEN 16 THEN TO_CHAR(l4.CM_TAX_LINE_ID)
69026 WHEN 17 THEN TO_CHAR(l4.CM_LINE_DIST_ACCOUNT_CLASS)
69027 WHEN 18 THEN TO_CHAR(l4.CM_LINE_DIST_AMT)
69028 WHEN 19 THEN TO_CHAR(l6.TRX_LINE_INTERFACE_LINE_ATTR1)
69029
69030 ELSE null
69031 END source_value
69032 , null source_meaning
69033 FROM xla_events_gt xet
69034 , AR_CM_LINES_BASE_V l3
69035 , AR_CM_LINES_L_V l4
69036 , AR_CUST_TRX_LINES_L_V l6
69040 , (select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
69037 , AR_DISTRIBUTIONS_L_V l7
69038 , AR_RECEIVABLES_TRX_ACT_S_V l8
69039 , AR_TRANSACTIONS_S_V l10
69041 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69042 AND xet.event_class_code = C_EVENT_CLASS_CODE
69043 AND l3.event_id = xet.event_id
69044 AND l4.event_id (+) = l3.event_id
69045 AND l4.line_number (+) = l3.line_number
69046 AND l6.event_id (+) = l3.event_id
69047 AND l6.line_number (+) = l3.line_number
69048 AND l7.event_id (+) = l3.event_id
69049 AND l7.line_number (+) = l3.line_number
69050 AND l8.event_id (+) = l3.event_id
69051 AND l8.line_number (+) = l3.line_number
69052 AND l10.event_id (+) = l3.event_id
69053 AND l10.line_number (+) = l3.line_number
69054
69055 )
69056 ;
69057 --
69058 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69059
69060 trace
69061 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
69062 ,p_level => C_LEVEL_STATEMENT
69063 ,p_module => l_log_module);
69064
69065 END IF;
69066
69067
69068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69069 trace
69070 (p_msg => 'END of insert_sources_130'
69071 ,p_level => C_LEVEL_PROCEDURE
69072 ,p_module => l_log_module);
69073 END IF;
69074 EXCEPTION
69075 WHEN xla_exceptions_pkg.application_exception THEN
69076 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69077 trace
69078 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69079 ,p_level => C_LEVEL_EXCEPTION
69080 ,p_module => l_log_module);
69081 END IF;
69082 RAISE;
69083 WHEN OTHERS THEN
69084 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69085 trace
69086 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69087 ,p_level => C_LEVEL_EXCEPTION
69088 ,p_module => l_log_module);
69089 END IF;
69090 xla_exceptions_pkg.raise_message
69091 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_130');
69092 END insert_sources_130;
69093 --
69094
69095 ---------------------------------------
69096 --
69097 -- PRIVATE FUNCTION
69098 -- EventClass_130
69099 --
69100 ----------------------------------------
69101 --
69102 FUNCTION EventClass_130
69103 (p_application_id IN NUMBER
69104 ,p_base_ledger_id IN NUMBER
69105 ,p_target_ledger_id IN NUMBER
69106 ,p_language IN VARCHAR2
69107 ,p_currency_code IN VARCHAR2
69108 ,p_sla_ledger_id IN NUMBER
69109 ,p_pad_start_date IN DATE
69110 ,p_pad_end_date IN DATE
69111 ,p_primary_ledger_id IN NUMBER)
69112 RETURN BOOLEAN IS
69113 --
69114 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO_ALL';
69115 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO';
69116
69117 l_calculate_acctd_flag VARCHAR2(1) :='N';
69118 l_calculate_g_l_flag VARCHAR2(1) :='Y';
69119 --
69120 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69121 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69122 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69123 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69124 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69125 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69126 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69127 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69128 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69129 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69130 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69131 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69132 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69133 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69134 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69135 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69136 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69137 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69138 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69139 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69140 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69141 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69142 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
69143 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69144 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
69145 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
69146
69147 l_event_id NUMBER;
69148 l_previous_event_id NUMBER;
69149 l_first_event_id NUMBER;
69150 l_last_event_id NUMBER;
69151
69152 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
69153 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69154 --
69155 --
69159 l_event_class_name VARCHAR2(80) := 'Credit Memo';
69156 l_result BOOLEAN := TRUE;
69157 l_rows NUMBER := 1000;
69158 l_event_type_name VARCHAR2(80) := 'All';
69160 l_description VARCHAR2(4000);
69161 l_transaction_reversal NUMBER;
69162 l_ae_header_id NUMBER;
69163 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
69164 l_log_module VARCHAR2(240);
69165 --
69166 l_acct_reversal_source VARCHAR2(30);
69167 l_trx_reversal_source VARCHAR2(30);
69168
69169 l_continue_with_lines BOOLEAN := TRUE;
69170 --
69171 l_acc_rev_gl_date_source DATE; -- 4262811
69172 --
69173 type t_array_event_id is table of number index by binary_integer;
69174
69175 l_rec_array_event t_rec_array_event;
69176 l_null_rec_array_event t_rec_array_event;
69177 l_array_ae_header_id xla_number_array_type;
69178 l_actual_flag VARCHAR2(1) := NULL;
69179 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
69180 l_balance_type_code VARCHAR2(1) :=NULL;
69181 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
69182
69183 --
69184 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
69185 --
69186
69187 TYPE t_array_source_24 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
69188 TYPE t_array_source_25 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
69189 TYPE t_array_source_39 IS TABLE OF AR_CREDIT_MEMO_H_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
69190 TYPE t_array_source_54 IS TABLE OF AR_CREDIT_MEMO_H_V.CM_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
69191 TYPE t_array_source_60 IS TABLE OF AR_CM_BILL_TO_CUST_H_V.CM_BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
69192 TYPE t_array_source_61 IS TABLE OF AR_CM_BILL_SITE_USES_H_V.CM_BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
69193
69194 TYPE t_array_source_1 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
69195 TYPE t_array_source_2 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
69196 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
69197 TYPE t_array_source_14 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
69198 TYPE t_array_source_22 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
69199 TYPE t_array_source_27 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
69200 TYPE t_array_source_28 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
69201 TYPE t_array_source_31 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
69202 TYPE t_array_source_52 IS TABLE OF AR_CM_LINES_BASE_V.CM_DIST_IDENTIFER%TYPE INDEX BY BINARY_INTEGER;
69203 TYPE t_array_source_53 IS TABLE OF AR_CM_LINES_BASE_V.CM_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
69204 TYPE t_array_source_55 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
69205 TYPE t_array_source_56 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
69206 TYPE t_array_source_57 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
69207 TYPE t_array_source_58 IS TABLE OF AR_CM_LINES_BASE_V.GAIN_LOSS_REF%TYPE INDEX BY BINARY_INTEGER;
69208 TYPE t_array_source_59 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
69209 TYPE t_array_source_62 IS TABLE OF AR_CM_LINES_L_V.CM_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
69210 TYPE t_array_source_63 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69211 TYPE t_array_source_64 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
69212 TYPE t_array_source_65 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_INTERFACE_LINE_ATTR1%TYPE INDEX BY BINARY_INTEGER;
69213
69214 l_array_source_24 t_array_source_24;
69215 l_array_source_25 t_array_source_25;
69216 l_array_source_39 t_array_source_39;
69217 l_array_source_54 t_array_source_54;
69218 l_array_source_60 t_array_source_60;
69219 l_array_source_61 t_array_source_61;
69220
69221 l_array_source_1 t_array_source_1;
69222 l_array_source_2 t_array_source_2;
69223 l_array_source_3 t_array_source_3;
69224 l_array_source_14 t_array_source_14;
69225 l_array_source_22 t_array_source_22;
69226 l_array_source_27 t_array_source_27;
69227 l_array_source_28 t_array_source_28;
69228 l_array_source_31 t_array_source_31;
69229 l_array_source_52 t_array_source_52;
69230 l_array_source_53 t_array_source_53;
69231 l_array_source_55 t_array_source_55;
69232 l_array_source_56 t_array_source_56;
69233 l_array_source_57 t_array_source_57;
69234 l_array_source_58 t_array_source_58;
69235 l_array_source_59 t_array_source_59;
69236 l_array_source_62 t_array_source_62;
69237 l_array_source_63 t_array_source_63;
69238 l_array_source_64 t_array_source_64;
69239 l_array_source_65 t_array_source_65;
69240
69241 --
69242 CURSOR header_cur
69243 IS
69244 SELECT /*+ leading(xet) cardinality(xet,1) */
69245 -- Event Class Code: CREDIT_MEMO
69246 xet.entity_id
69247 ,xet.legal_entity_id
69248 ,xet.entity_code
69249 ,xet.transaction_number
69250 ,xet.event_id
69251 ,xet.event_class_code
69252 ,xet.event_type_code
69253 ,xet.event_number
69254 ,xet.event_date
69255 ,xet.transaction_date
69256 ,xet.reference_num_1
69257 ,xet.reference_num_2
69258 ,xet.reference_num_3
69259 ,xet.reference_num_4
69263 ,xet.reference_char_4
69260 ,xet.reference_char_1
69261 ,xet.reference_char_2
69262 ,xet.reference_char_3
69264 ,xet.reference_date_1
69265 ,xet.reference_date_2
69266 ,xet.reference_date_3
69267 ,xet.reference_date_4
69268 ,xet.event_created_by
69269 ,xet.budgetary_control_flag
69270 , h9.CODE_COMBINATION_ID_GAIN source_24
69271 , h9.CODE_COMBINATION_ID_LOSS source_25
69272 , h5.XLA_PARTY_TYPE source_39
69273 , h5.CM_INVOICE_CURRENCY_CODE source_54
69274 , h2.CM_BILL_CUST_ACCOUNT_ID source_60
69275 , h1.CM_BILL_USES_SITE_USE_ID source_61
69276 FROM xla_events_gt xet
69277 , AR_CM_BILL_SITE_USES_H_V h1
69278 , AR_CM_BILL_TO_CUST_H_V h2
69279 , AR_CREDIT_MEMO_H_V h5
69280 , AR_SYSTEM_PARAM_H_V h9
69281 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
69282 and xet.event_class_code = C_EVENT_CLASS_CODE
69283 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
69284 AND h2.event_id = h1.event_id
69285 AND h5.event_id = h1.event_id
69286 AND h9.event_id (+) = h1.event_id
69287
69288 ORDER BY event_id
69289 ;
69290
69291
69292 --
69293 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
69294 IS
69295 SELECT /*+ leading(xet) cardinality(xet,1) */
69296 -- Event Class Code: CREDIT_MEMO
69297 xet.entity_id
69298 ,xet.legal_entity_id
69299 ,xet.entity_code
69300 ,xet.transaction_number
69301 ,xet.event_id
69302 ,xet.event_class_code
69303 ,xet.event_type_code
69304 ,xet.event_number
69305 ,xet.event_date
69306 ,xet.transaction_date
69307 ,xet.reference_num_1
69308 ,xet.reference_num_2
69309 ,xet.reference_num_3
69310 ,xet.reference_num_4
69311 ,xet.reference_char_1
69312 ,xet.reference_char_2
69313 ,xet.reference_char_3
69314 ,xet.reference_char_4
69315 ,xet.reference_date_1
69316 ,xet.reference_date_2
69317 ,xet.reference_date_3
69318 ,xet.reference_date_4
69319 ,xet.event_created_by
69320 ,xet.budgetary_control_flag
69321 , l3.LINE_NUMBER
69322 , l10.TRX_TYPE_NAME source_1
69323 , l10.TRX_NUMBER source_2
69324 , l10.TRX_DOC_SEQUENCE_VALUE source_3
69325 , l4.CM_LINE_DIST_CCID source_14
69326 , l7.DIST_CODE_COMBINATION_ID source_22
69327 , l7.DIST_SOURCE_TYPE source_27
69328 , l8.REC_ACT_TYPE source_28
69329 , l7.DIST_ENT_AMT source_31
69330 , l3.CM_DIST_IDENTIFER source_52
69331 , l3.CM_DIST_TYPE source_53
69332 , l3.CM_LINE_CUR_CONVERSION_DATE source_55
69333 , l3.CM_LINE_CUR_CONVERSION_RATE source_56
69334 , l3.CM_LINE_CUR_CONVERSION_TYPE source_57
69335 , l3.GAIN_LOSS_REF source_58
69336 , l3.CM_LINE_ACCTD_AMT source_59
69337 , l4.CM_TAX_LINE_ID source_62
69338 , l4.CM_LINE_DIST_ACCOUNT_CLASS source_63
69339 , l4.CM_LINE_DIST_AMT source_64
69340 , l6.TRX_LINE_INTERFACE_LINE_ATTR1 source_65
69341 FROM xla_events_gt xet
69342 , AR_CM_LINES_BASE_V l3
69343 , AR_CM_LINES_L_V l4
69344 , AR_CUST_TRX_LINES_L_V l6
69345 , AR_DISTRIBUTIONS_L_V l7
69346 , AR_RECEIVABLES_TRX_ACT_S_V l8
69347 , AR_TRANSACTIONS_S_V l10
69348 WHERE xet.event_id between x_first_event_id and x_last_event_id
69349 and xet.event_date between p_pad_start_date and p_pad_end_date
69350 and xet.event_class_code = C_EVENT_CLASS_CODE
69351 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
69352 AND l4.event_id (+) = l3.event_id
69353 AND l4.line_number (+) = l3.line_number
69354 AND l6.event_id (+) = l3.event_id
69355 AND l6.line_number (+) = l3.line_number
69356 AND l7.event_id (+) = l3.event_id
69357 AND l7.line_number (+) = l3.line_number
69358 AND l8.event_id (+) = l3.event_id
69359 AND l8.line_number (+) = l3.line_number
69360 AND l10.event_id (+) = l3.event_id
69361 AND l10.line_number (+) = l3.line_number
69362 ;
69363
69364 --
69365 BEGIN
69366 IF g_log_enabled THEN
69367 l_log_module := C_DEFAULT_MODULE||'.EventClass_130';
69368 END IF;
69369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69370 trace
69371 (p_msg => 'BEGIN of EventClass_130'
69372 ,p_level => C_LEVEL_PROCEDURE
69373 ,p_module => l_log_module);
69374 END IF;
69375
69376 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69377 trace
69378 (p_msg => 'p_application_id = '||p_application_id||
69379 ' - p_base_ledger_id = '||p_base_ledger_id||
69380 ' - p_target_ledger_id = '||p_target_ledger_id||
69381 ' - p_language = '||p_language||
69382 ' - p_currency_code = '||p_currency_code||
69383 ' - p_sla_ledger_id = '||p_sla_ledger_id
69384 ,p_level => C_LEVEL_STATEMENT
69385 ,p_module => l_log_module);
69386 END IF;
69387 --
69388 -- initialze arrays
69389 --
69390 g_array_event.DELETE;
69391 l_rec_array_event := l_null_rec_array_event;
69392 --
69393 --------------------------------------
69394 -- 4262811 Initialze MPA Line Number
69395 --------------------------------------
69396 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
69397
69398 --
69399
69400 --
69401 OPEN header_cur;
69402 --
69403 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69404 trace
69405 (p_msg => 'SQL - FETCH header_cur'
69406 ,p_level => C_LEVEL_STATEMENT
69407 ,p_module => l_log_module);
69411 FETCH header_cur BULK COLLECT INTO
69408 END IF;
69409 --
69410 LOOP
69412 l_array_entity_id
69413 , l_array_legal_entity_id
69414 , l_array_entity_code
69415 , l_array_transaction_num
69416 , l_array_event_id
69417 , l_array_class_code
69418 , l_array_event_type
69419 , l_array_event_number
69420 , l_array_event_date
69421 , l_array_transaction_date
69422 , l_array_reference_num_1
69423 , l_array_reference_num_2
69424 , l_array_reference_num_3
69425 , l_array_reference_num_4
69426 , l_array_reference_char_1
69427 , l_array_reference_char_2
69428 , l_array_reference_char_3
69429 , l_array_reference_char_4
69430 , l_array_reference_date_1
69431 , l_array_reference_date_2
69432 , l_array_reference_date_3
69433 , l_array_reference_date_4
69434 , l_array_event_created_by
69435 , l_array_budgetary_control_flag
69436 , l_array_source_24
69437 , l_array_source_25
69438 , l_array_source_39
69439 , l_array_source_54
69440 , l_array_source_60
69441 , l_array_source_61
69442 LIMIT l_rows;
69443 --
69444 IF (C_LEVEL_EVENT >= g_log_level) THEN
69445 trace
69446 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
69447 ,p_level => C_LEVEL_EVENT
69448 ,p_module => l_log_module);
69449 END IF;
69450 --
69451 EXIT WHEN l_array_entity_id.COUNT = 0;
69452
69453 -- initialize arrays
69454 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
69455 XLA_AE_LINES_PKG.g_rec_lines := NULL;
69456
69457 --
69458 -- Bug 4458708
69459 --
69460 XLA_AE_LINES_PKG.g_LineNumber := 0;
69461
69462
69463 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
69464 g_last_hdr_idx := l_array_event_id.LAST;
69465 --
69466 -- loop for the headers. Each iteration is for each header extract row
69467 -- fetched in header cursor
69468 --
69469 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
69470
69471 --
69472 -- set event info as cache for other routines to refer event attributes
69473 --
69474 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69475 (p_application_id => p_application_id
69476 ,p_primary_ledger_id => p_primary_ledger_id
69477 ,p_base_ledger_id => p_base_ledger_id
69478 ,p_target_ledger_id => p_target_ledger_id
69479 ,p_entity_id => l_array_entity_id(hdr_idx)
69480 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
69481 ,p_entity_code => l_array_entity_code(hdr_idx)
69482 ,p_transaction_num => l_array_transaction_num(hdr_idx)
69483 ,p_event_id => l_array_event_id(hdr_idx)
69484 ,p_event_class_code => l_array_class_code(hdr_idx)
69485 ,p_event_type_code => l_array_event_type(hdr_idx)
69486 ,p_event_number => l_array_event_number(hdr_idx)
69487 ,p_event_date => l_array_event_date(hdr_idx)
69488 ,p_transaction_date => l_array_transaction_date(hdr_idx)
69489 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
69490 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
69491 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
69492 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
69493 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
69494 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
69495 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
69496 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
69497 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
69498 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
69499 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
69500 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
69501 ,p_event_created_by => l_array_event_created_by(hdr_idx)
69502 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
69503
69504 --
69505 -- set the status of entry to C_VALID (0)
69506 --
69507 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69508
69509 --
69510 -- initialize a row for ae header
69511 --
69512 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
69513
69514 l_event_id := l_array_event_id(hdr_idx);
69515
69516 --
69517 -- storing the hdr_idx for event. May be used by line cursor.
69518 --
69519 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
69520
69521 --
69522 -- store sources from header extract. This can be improved to
69523 -- store only those sources from header extract that may be used in lines
69524 --
69525
69526 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
69527 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
69528 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
69529 g_array_event(l_event_id).array_value_char('source_54') := l_array_source_54(hdr_idx);
69530 g_array_event(l_event_id).array_value_num('source_60') := l_array_source_60(hdr_idx);
69531 g_array_event(l_event_id).array_value_num('source_61') := l_array_source_61(hdr_idx);
69532
69533 --
69534 -- initilaize the status of ae headers for diffrent balance types
69535 -- the status is initialised to C_NOT_CREATED (2)
69536 --
69540
69537 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69538 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69539 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69541 --
69542 -- call api to validate and store accounting attributes for header
69543 --
69544
69545 ------------------------------------------------------------
69546 -- Accrual Reversal : to get date for Standard Source (NONE)
69547 ------------------------------------------------------------
69548 l_acc_rev_gl_date_source := NULL;
69549
69550 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
69551 l_rec_acct_attrs.array_date_value(1) :=
69552 xla_ae_sources_pkg.GetSystemSourceDate(
69553 p_source_code => 'XLA_EVENT_DATE'
69554 , p_source_type_code => 'Y'
69555 , p_source_application_id => 602
69556 );
69557
69558
69559 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
69560
69561 XLA_AE_HEADER_PKG.SetJeCategoryName;
69562
69563 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
69564 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
69565 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
69566 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
69567 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
69568
69569
69570 -- No header level analytical criteria
69571
69572 --
69573 --accounting attribute enhancement, bug 3612931
69574 --
69575 l_trx_reversal_source := SUBSTR(NULL, 1,30);
69576
69577 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
69578 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
69579
69580 xla_accounting_err_pkg.build_message
69581 (p_appli_s_name => 'XLA'
69582 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
69583 ,p_token_1 => 'ACCT_ATTR_NAME'
69584 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
69585 ,p_token_2 => 'PRODUCT_NAME'
69586 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
69587 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
69588 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
69589 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
69590
69591 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
69592 --
69593 -- following sets the accounting attributes needed to reverse
69594 -- accounting for a distributeion
69595 --
69596 xla_ae_lines_pkg.SetTrxReversalAttrs
69597 (p_event_id => l_event_id
69598 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
69599 ,p_trx_reversal_source => l_trx_reversal_source);
69600
69601 END IF;
69602
69603
69604 ----------------------------------------------------------------
69605 -- 4262811 - update the header statuses to invalid in need be
69606 ----------------------------------------------------------------
69607 --
69608 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
69609
69610
69611 -----------------------------------------------
69612 -- No accrual reversal for the event class/type
69613 -----------------------------------------------
69614 ----------------------------------------------------------------
69615
69616 --
69617 -- this ends the header loop iteration for one bulk fetch
69618 --
69619 END LOOP;
69620
69621 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
69622 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
69623
69624 --
69625 -- insert dummy rows into lines gt table that were created due to
69626 -- transaction reversals
69627 --
69628 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
69629 l_result := XLA_AE_LINES_PKG.InsertLines;
69630 END IF;
69631
69632 --
69633 -- reset the temp_line_num for each set of events fetched from header
69634 -- cursor rather than doing it for each new event in line cursor
69635 -- Bug 3939231
69636 --
69637 xla_ae_lines_pkg.g_temp_line_num := 0;
69638
69639
69640
69641 --
69642 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
69643 --
69644 --
69645 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69646
69647 trace
69648 (p_msg => 'SQL - FETCH line_cur'
69649 ,p_level => C_LEVEL_STATEMENT
69650 ,p_module => l_log_module);
69651
69652 END IF;
69653 --
69654 --
69655 LOOP
69656 --
69657 FETCH line_cur BULK COLLECT INTO
69658 l_array_entity_id
69659 , l_array_legal_entity_id
69660 , l_array_entity_code
69661 , l_array_transaction_num
69662 , l_array_event_id
69663 , l_array_class_code
69664 , l_array_event_type
69665 , l_array_event_number
69666 , l_array_event_date
69667 , l_array_transaction_date
69668 , l_array_reference_num_1
69669 , l_array_reference_num_2
69670 , l_array_reference_num_3
69671 , l_array_reference_num_4
69672 , l_array_reference_char_1
69673 , l_array_reference_char_2
69674 , l_array_reference_char_3
69675 , l_array_reference_char_4
69679 , l_array_reference_date_4
69676 , l_array_reference_date_1
69677 , l_array_reference_date_2
69678 , l_array_reference_date_3
69680 , l_array_event_created_by
69681 , l_array_budgetary_control_flag
69682 , l_array_extract_line_num
69683 , l_array_source_1
69684 , l_array_source_2
69685 , l_array_source_3
69686 , l_array_source_14
69687 , l_array_source_22
69688 , l_array_source_27
69689 , l_array_source_28
69690 , l_array_source_31
69691 , l_array_source_52
69692 , l_array_source_53
69693 , l_array_source_55
69694 , l_array_source_56
69695 , l_array_source_57
69696 , l_array_source_58
69697 , l_array_source_59
69698 , l_array_source_62
69699 , l_array_source_63
69700 , l_array_source_64
69701 , l_array_source_65
69702 LIMIT l_rows;
69703
69704 --
69705 IF (C_LEVEL_EVENT >= g_log_level) THEN
69706 trace
69707 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
69708 ,p_level => C_LEVEL_EVENT
69709 ,p_module => l_log_module);
69710 END IF;
69711 --
69712 EXIT WHEN l_array_entity_id.count = 0;
69713
69714 XLA_AE_LINES_PKG.g_rec_lines := null;
69715
69716 --
69717 -- Bug 4458708
69718 --
69719 XLA_AE_LINES_PKG.g_LineNumber := 0;
69720 --
69721 --
69722
69723 FOR Idx IN 1..l_array_event_id.count LOOP
69724 --
69725 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
69726 --
69727 l_event_id := l_array_event_id(idx); -- 5648433
69728
69729 --
69730 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
69731 --
69732
69733 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
69734 (g_array_event(l_event_id).array_value_num('header_index'))
69735 ,'N'
69736 ) <> 'Y'
69737 THEN
69738 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69739 trace
69740 (p_msg => 'Trancaction revesal option is not Y '
69741 ,p_level => C_LEVEL_STATEMENT
69742 ,p_module => l_log_module);
69743 END IF;
69744
69745 --
69746 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
69747 --
69748 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69749 --
69750 -- set event info as cache for other routines to refer event attributes
69751 --
69752
69753 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
69754 l_previous_event_id := l_event_id;
69755
69756 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69757 (p_application_id => p_application_id
69758 ,p_primary_ledger_id => p_primary_ledger_id
69759 ,p_base_ledger_id => p_base_ledger_id
69760 ,p_target_ledger_id => p_target_ledger_id
69761 ,p_entity_id => l_array_entity_id(Idx)
69762 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
69763 ,p_entity_code => l_array_entity_code(Idx)
69764 ,p_transaction_num => l_array_transaction_num(Idx)
69765 ,p_event_id => l_array_event_id(Idx)
69766 ,p_event_class_code => l_array_class_code(Idx)
69767 ,p_event_type_code => l_array_event_type(Idx)
69768 ,p_event_number => l_array_event_number(Idx)
69769 ,p_event_date => l_array_event_date(Idx)
69770 ,p_transaction_date => l_array_transaction_date(Idx)
69771 ,p_reference_num_1 => l_array_reference_num_1(Idx)
69772 ,p_reference_num_2 => l_array_reference_num_2(Idx)
69773 ,p_reference_num_3 => l_array_reference_num_3(Idx)
69774 ,p_reference_num_4 => l_array_reference_num_4(Idx)
69775 ,p_reference_char_1 => l_array_reference_char_1(Idx)
69776 ,p_reference_char_2 => l_array_reference_char_2(Idx)
69777 ,p_reference_char_3 => l_array_reference_char_3(Idx)
69778 ,p_reference_char_4 => l_array_reference_char_4(Idx)
69779 ,p_reference_date_1 => l_array_reference_date_1(Idx)
69780 ,p_reference_date_2 => l_array_reference_date_2(Idx)
69781 ,p_reference_date_3 => l_array_reference_date_3(Idx)
69782 ,p_reference_date_4 => l_array_reference_date_4(Idx)
69783 ,p_event_created_by => l_array_event_created_by(Idx)
69784 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
69785 --
69786 END IF;
69787
69788
69789
69790 --
69791 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
69792
69793 l_acct_reversal_source := SUBSTR(NULL, 1,30);
69794
69795 IF l_continue_with_lines THEN
69796 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
69797 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
69798
69799 xla_accounting_err_pkg.build_message
69800 (p_appli_s_name => 'XLA'
69801 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
69802 ,p_token_1 => 'LINE_NUMBER'
69803 ,p_value_1 => l_array_extract_line_num(Idx)
69804 ,p_token_2 => 'PRODUCT_NAME'
69805 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
69806 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
69807 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
69811 --
69808 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
69809
69810 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
69812 -- following sets the accounting attributes needed to reverse
69813 -- accounting for a distributeion
69814 --
69815
69816 --
69817 -- 5217187
69818 --
69819 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
69820 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
69821 g_array_event(l_event_id).array_value_num('header_index'));
69822 --
69823 --
69824
69825 -- No reversal code generated
69826
69827 xla_ae_lines_pkg.SetAcctReversalAttrs
69828 (p_event_id => l_event_id
69829 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
69830 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69831 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
69832 END IF;
69833
69834 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
69835 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
69836
69837 --
69838 AcctLineType_41 (
69839 p_application_id => p_application_id
69840 ,p_event_id => l_event_id
69841 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69842 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69843 ,p_actual_flag => l_actual_flag
69844 ,p_balance_type_code => l_balance_type_code
69845 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69846
69847 , p_source_22 => l_array_source_22(Idx)
69848 , p_source_27 => l_array_source_27(Idx)
69849 , p_source_31 => l_array_source_31(Idx)
69850 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
69851 , p_source_52 => l_array_source_52(Idx)
69852 , p_source_53 => l_array_source_53(Idx)
69853 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
69854 , p_source_55 => l_array_source_55(Idx)
69855 , p_source_56 => l_array_source_56(Idx)
69856 , p_source_57 => l_array_source_57(Idx)
69857 , p_source_58 => l_array_source_58(Idx)
69858 , p_source_59 => l_array_source_59(Idx)
69859 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
69860 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
69861 , p_source_62 => l_array_source_62(Idx)
69862 );
69863 If(l_balance_type_code = 'A') THEN
69864 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69865 END IF;
69866
69867 --
69868
69869
69870 --
69871 AcctLineType_42 (
69872 p_application_id => p_application_id
69873 ,p_event_id => l_event_id
69874 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69875 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69876 ,p_actual_flag => l_actual_flag
69877 ,p_balance_type_code => l_balance_type_code
69878 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69879
69880 , p_source_1 => l_array_source_1(Idx)
69881 , p_source_2 => l_array_source_2(Idx)
69882 , p_source_3 => l_array_source_3(Idx)
69883 , p_source_22 => l_array_source_22(Idx)
69884 , p_source_27 => l_array_source_27(Idx)
69885 , p_source_31 => l_array_source_31(Idx)
69886 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
69887 , p_source_52 => l_array_source_52(Idx)
69888 , p_source_53 => l_array_source_53(Idx)
69889 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
69890 , p_source_55 => l_array_source_55(Idx)
69891 , p_source_56 => l_array_source_56(Idx)
69892 , p_source_57 => l_array_source_57(Idx)
69893 , p_source_58 => l_array_source_58(Idx)
69894 , p_source_59 => l_array_source_59(Idx)
69895 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
69896 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
69897 , p_source_62 => l_array_source_62(Idx)
69898 );
69899 If(l_balance_type_code = 'A') THEN
69900 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69901 END IF;
69902
69903 --
69904
69905
69906 --
69907 AcctLineType_43 (
69908 p_application_id => p_application_id
69909 ,p_event_id => l_event_id
69910 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69911 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69912 ,p_actual_flag => l_actual_flag
69913 ,p_balance_type_code => l_balance_type_code
69914 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69915
69916 , p_source_22 => l_array_source_22(Idx)
69917 , p_source_27 => l_array_source_27(Idx)
69918 , p_source_31 => l_array_source_31(Idx)
69919 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
69920 , p_source_52 => l_array_source_52(Idx)
69921 , p_source_53 => l_array_source_53(Idx)
69922 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
69923 , p_source_55 => l_array_source_55(Idx)
69924 , p_source_56 => l_array_source_56(Idx)
69925 , p_source_57 => l_array_source_57(Idx)
69926 , p_source_58 => l_array_source_58(Idx)
69927 , p_source_59 => l_array_source_59(Idx)
69928 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
69929 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
69930 , p_source_62 => l_array_source_62(Idx)
69931 );
69932 If(l_balance_type_code = 'A') THEN
69933 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69934 END IF;
69935
69936 --
69937
69938
69939 --
69940 AcctLineType_44 (
69941 p_application_id => p_application_id
69942 ,p_event_id => l_event_id
69943 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69944 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69945 ,p_actual_flag => l_actual_flag
69946 ,p_balance_type_code => l_balance_type_code
69950 , p_source_27 => l_array_source_27(Idx)
69947 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69948
69949 , p_source_22 => l_array_source_22(Idx)
69951 , p_source_28 => l_array_source_28(Idx)
69952 , p_source_31 => l_array_source_31(Idx)
69953 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
69954 , p_source_52 => l_array_source_52(Idx)
69955 , p_source_53 => l_array_source_53(Idx)
69956 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
69957 , p_source_55 => l_array_source_55(Idx)
69958 , p_source_56 => l_array_source_56(Idx)
69959 , p_source_57 => l_array_source_57(Idx)
69960 , p_source_58 => l_array_source_58(Idx)
69961 , p_source_59 => l_array_source_59(Idx)
69962 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
69963 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
69964 , p_source_62 => l_array_source_62(Idx)
69965 );
69966 If(l_balance_type_code = 'A') THEN
69967 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69968 END IF;
69969
69970 --
69971
69972
69973 --
69974 AcctLineType_45 (
69975 p_application_id => p_application_id
69976 ,p_event_id => l_event_id
69977 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69978 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69979 ,p_actual_flag => l_actual_flag
69980 ,p_balance_type_code => l_balance_type_code
69981 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69982
69983 , p_source_14 => l_array_source_14(Idx)
69984 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
69985 , p_source_52 => l_array_source_52(Idx)
69986 , p_source_53 => l_array_source_53(Idx)
69987 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
69988 , p_source_55 => l_array_source_55(Idx)
69989 , p_source_56 => l_array_source_56(Idx)
69990 , p_source_57 => l_array_source_57(Idx)
69991 , p_source_58 => l_array_source_58(Idx)
69992 , p_source_59 => l_array_source_59(Idx)
69993 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
69994 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
69995 , p_source_62 => l_array_source_62(Idx)
69996 , p_source_63 => l_array_source_63(Idx)
69997 , p_source_64 => l_array_source_64(Idx)
69998 );
69999 If(l_balance_type_code = 'A') THEN
70000 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70001 END IF;
70002
70003 --
70004
70005
70006 --
70007 AcctLineType_46 (
70008 p_application_id => p_application_id
70009 ,p_event_id => l_event_id
70010 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70011 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70012 ,p_actual_flag => l_actual_flag
70013 ,p_balance_type_code => l_balance_type_code
70014 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70015
70016 , p_source_22 => l_array_source_22(Idx)
70017 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70018 , p_source_52 => l_array_source_52(Idx)
70019 , p_source_53 => l_array_source_53(Idx)
70020 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70021 , p_source_55 => l_array_source_55(Idx)
70022 , p_source_56 => l_array_source_56(Idx)
70023 , p_source_57 => l_array_source_57(Idx)
70024 , p_source_58 => l_array_source_58(Idx)
70025 , p_source_59 => l_array_source_59(Idx)
70026 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70027 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70028 , p_source_62 => l_array_source_62(Idx)
70029 , p_source_63 => l_array_source_63(Idx)
70030 , p_source_64 => l_array_source_64(Idx)
70031 );
70032 If(l_balance_type_code = 'A') THEN
70033 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70034 END IF;
70035
70036 --
70037
70038
70039 --
70040 AcctLineType_47 (
70041 p_application_id => p_application_id
70042 ,p_event_id => l_event_id
70043 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70044 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70045 ,p_actual_flag => l_actual_flag
70046 ,p_balance_type_code => l_balance_type_code
70047 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70048
70049 , p_source_14 => l_array_source_14(Idx)
70050 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70051 , p_source_52 => l_array_source_52(Idx)
70052 , p_source_53 => l_array_source_53(Idx)
70053 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70054 , p_source_55 => l_array_source_55(Idx)
70055 , p_source_56 => l_array_source_56(Idx)
70056 , p_source_57 => l_array_source_57(Idx)
70057 , p_source_58 => l_array_source_58(Idx)
70058 , p_source_59 => l_array_source_59(Idx)
70059 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70060 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70061 , p_source_62 => l_array_source_62(Idx)
70062 , p_source_63 => l_array_source_63(Idx)
70063 , p_source_64 => l_array_source_64(Idx)
70064 );
70065 If(l_balance_type_code = 'A') THEN
70066 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70067 END IF;
70068
70069 --
70070
70071
70072 --
70073 AcctLineType_48 (
70074 p_application_id => p_application_id
70075 ,p_event_id => l_event_id
70076 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70077 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70078 ,p_actual_flag => l_actual_flag
70079 ,p_balance_type_code => l_balance_type_code
70080 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70081
70082 , p_source_14 => l_array_source_14(Idx)
70083 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70084 , p_source_52 => l_array_source_52(Idx)
70088 , p_source_56 => l_array_source_56(Idx)
70085 , p_source_53 => l_array_source_53(Idx)
70086 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70087 , p_source_55 => l_array_source_55(Idx)
70089 , p_source_57 => l_array_source_57(Idx)
70090 , p_source_58 => l_array_source_58(Idx)
70091 , p_source_59 => l_array_source_59(Idx)
70092 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70093 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70094 , p_source_62 => l_array_source_62(Idx)
70095 , p_source_63 => l_array_source_63(Idx)
70096 , p_source_64 => l_array_source_64(Idx)
70097 , p_source_65 => l_array_source_65(Idx)
70098 );
70099 If(l_balance_type_code = 'A') THEN
70100 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70101 END IF;
70102
70103 --
70104
70105
70106 --
70107 AcctLineType_49 (
70108 p_application_id => p_application_id
70109 ,p_event_id => l_event_id
70110 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70111 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70112 ,p_actual_flag => l_actual_flag
70113 ,p_balance_type_code => l_balance_type_code
70114 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70115
70116 , p_source_14 => l_array_source_14(Idx)
70117 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70118 , p_source_52 => l_array_source_52(Idx)
70119 , p_source_53 => l_array_source_53(Idx)
70120 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70121 , p_source_55 => l_array_source_55(Idx)
70122 , p_source_56 => l_array_source_56(Idx)
70123 , p_source_57 => l_array_source_57(Idx)
70124 , p_source_58 => l_array_source_58(Idx)
70125 , p_source_59 => l_array_source_59(Idx)
70126 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70127 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70128 , p_source_62 => l_array_source_62(Idx)
70129 , p_source_63 => l_array_source_63(Idx)
70130 , p_source_64 => l_array_source_64(Idx)
70131 );
70132 If(l_balance_type_code = 'A') THEN
70133 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70134 END IF;
70135
70136 --
70137
70138
70139 --
70140 AcctLineType_50 (
70141 p_application_id => p_application_id
70142 ,p_event_id => l_event_id
70143 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70144 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70145 ,p_actual_flag => l_actual_flag
70146 ,p_balance_type_code => l_balance_type_code
70147 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70148
70149 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70150 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
70151 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70152 , p_source_52 => l_array_source_52(Idx)
70153 , p_source_53 => l_array_source_53(Idx)
70154 , p_source_58 => l_array_source_58(Idx)
70155 , p_source_59 => l_array_source_59(Idx)
70156 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70157 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70158 , p_source_62 => l_array_source_62(Idx)
70159 );
70160 If(l_balance_type_code = 'A') THEN
70161 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70162 END IF;
70163
70164 --
70165
70166
70167 --
70168 AcctLineType_51 (
70169 p_application_id => p_application_id
70170 ,p_event_id => l_event_id
70171 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70172 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70173 ,p_actual_flag => l_actual_flag
70174 ,p_balance_type_code => l_balance_type_code
70175 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70176
70177 , p_source_14 => l_array_source_14(Idx)
70178 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70179 , p_source_52 => l_array_source_52(Idx)
70180 , p_source_53 => l_array_source_53(Idx)
70181 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70182 , p_source_55 => l_array_source_55(Idx)
70183 , p_source_56 => l_array_source_56(Idx)
70184 , p_source_57 => l_array_source_57(Idx)
70185 , p_source_58 => l_array_source_58(Idx)
70186 , p_source_59 => l_array_source_59(Idx)
70187 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70188 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70189 , p_source_62 => l_array_source_62(Idx)
70190 , p_source_63 => l_array_source_63(Idx)
70191 , p_source_64 => l_array_source_64(Idx)
70192 );
70193 If(l_balance_type_code = 'A') THEN
70194 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70195 END IF;
70196
70197 --
70198
70199
70200 --
70201 AcctLineType_52 (
70202 p_application_id => p_application_id
70203 ,p_event_id => l_event_id
70204 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70205 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70206 ,p_actual_flag => l_actual_flag
70207 ,p_balance_type_code => l_balance_type_code
70208 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70209
70210 , p_source_14 => l_array_source_14(Idx)
70211 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70212 , p_source_52 => l_array_source_52(Idx)
70213 , p_source_53 => l_array_source_53(Idx)
70214 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70215 , p_source_55 => l_array_source_55(Idx)
70216 , p_source_56 => l_array_source_56(Idx)
70217 , p_source_57 => l_array_source_57(Idx)
70218 , p_source_58 => l_array_source_58(Idx)
70219 , p_source_59 => l_array_source_59(Idx)
70220 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70224 , p_source_64 => l_array_source_64(Idx)
70221 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70222 , p_source_62 => l_array_source_62(Idx)
70223 , p_source_63 => l_array_source_63(Idx)
70225 );
70226 If(l_balance_type_code = 'A') THEN
70227 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70228 END IF;
70229
70230 --
70231
70232
70233 --
70234 AcctLineType_53 (
70235 p_application_id => p_application_id
70236 ,p_event_id => l_event_id
70237 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70238 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70239 ,p_actual_flag => l_actual_flag
70240 ,p_balance_type_code => l_balance_type_code
70241 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70242
70243 , p_source_14 => l_array_source_14(Idx)
70244 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
70245 , p_source_52 => l_array_source_52(Idx)
70246 , p_source_53 => l_array_source_53(Idx)
70247 , p_source_54 => g_array_event(l_event_id).array_value_char('source_54')
70248 , p_source_55 => l_array_source_55(Idx)
70249 , p_source_56 => l_array_source_56(Idx)
70250 , p_source_57 => l_array_source_57(Idx)
70251 , p_source_58 => l_array_source_58(Idx)
70252 , p_source_59 => l_array_source_59(Idx)
70253 , p_source_60 => g_array_event(l_event_id).array_value_num('source_60')
70254 , p_source_61 => g_array_event(l_event_id).array_value_num('source_61')
70255 , p_source_62 => l_array_source_62(Idx)
70256 , p_source_63 => l_array_source_63(Idx)
70257 , p_source_64 => l_array_source_64(Idx)
70258 , p_source_65 => l_array_source_65(Idx)
70259 );
70260 If(l_balance_type_code = 'A') THEN
70261 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70262 END IF;
70263
70264 --
70265
70266 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
70267 -- or secondary ledger that has different currency with primary
70268 -- or alc that is calculated by sla
70269 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70270 (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'))
70271
70272 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
70273 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
70274 AND (l_actual_flag = 'A')) THEN
70275 XLA_AE_LINES_PKG.CreateGainOrLossLines(
70276 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70277 ,p_application_id => p_application_id
70278 ,p_amb_context_code => 'DEFAULT'
70279 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
70280 ,p_event_class_code => C_EVENT_CLASS_CODE
70281 ,p_event_type_code => C_EVENT_TYPE_CODE
70282
70283 ,p_gain_ccid => -1
70284 ,p_loss_ccid => -1
70285
70286 ,p_actual_flag => l_actual_flag
70287 ,p_enc_flag => null
70288 ,p_actual_g_l_ref => l_actual_gain_loss_ref
70289 ,p_enc_g_l_ref => null
70290 );
70291 END IF;
70292 END IF;
70293 END IF;
70294
70295 ELSE
70296 --
70297 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70298 --
70299 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70300 trace
70301 (p_msg => 'Trancaction revesal option is Y'
70302 ,p_level => C_LEVEL_STATEMENT
70303 ,p_module => l_log_module);
70304 END IF;
70305 END IF;
70306
70307 END LOOP;
70308 l_result := XLA_AE_LINES_PKG.InsertLines ;
70309 end loop;
70310 close line_cur;
70311
70312
70313 --
70314 -- insert headers into xla_ae_headers_gt table
70315 --
70316 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
70317
70318 -- insert into errors table here.
70319
70320 END LOOP;
70321
70322 --
70323 -- 4865292
70324 --
70325 -- Compare g_hdr_extract_count with event count in
70326 -- CreateHeadersAndLines.
70327 --
70328 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
70329
70330 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70331 trace (p_msg => '# rows extracted from header extract objects '
70332 || ' (running total): '
70333 || g_hdr_extract_count
70334 ,p_level => C_LEVEL_STATEMENT
70335 ,p_module => l_log_module);
70336 END IF;
70337
70338 CLOSE header_cur;
70339 --
70340
70341 --
70342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70343 trace
70344 (p_msg => 'END of EventClass_130'
70345 ,p_level => C_LEVEL_PROCEDURE
70346 ,p_module => l_log_module);
70347 END IF;
70348 --
70349 RETURN l_result;
70350 EXCEPTION
70351 WHEN xla_exceptions_pkg.application_exception THEN
70352
70353 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70354
70355
70356 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70357
70358 RAISE;
70359
70360 WHEN NO_DATA_FOUND THEN
70361
70362 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70363 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70364
70365 FOR header_record IN header_cur
70366 LOOP
70367 l_array_header_events(header_record.event_id) := header_record.event_id;
70368 END LOOP;
70369
70373 fnd_file.put_line(fnd_file.LOG, ' ');
70370 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
70371 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
70372
70374 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70375 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
70376 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
70377
70378 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
70379 LOOP
70380 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
70381 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
70382 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
70383 END IF;
70384 END LOOP;
70385
70386 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70387 fnd_file.put_line(fnd_file.LOG, ' ');
70388
70389
70390 xla_exceptions_pkg.raise_message
70391 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_130');
70392
70393
70394 WHEN OTHERS THEN
70395 xla_exceptions_pkg.raise_message
70396 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_130');
70397 END EventClass_130;
70398 --
70399
70400 ---------------------------------------
70401 --
70402 -- PRIVATE PROCEDURE
70403 -- insert_sources_131
70404 --
70405 ----------------------------------------
70406 --
70407 PROCEDURE insert_sources_131(
70408 p_target_ledger_id IN NUMBER
70409 , p_language IN VARCHAR2
70410 , p_sla_ledger_id IN NUMBER
70411 , p_pad_start_date IN DATE
70412 , p_pad_end_date IN DATE
70413 )
70414 IS
70415
70416 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO_ALL';
70417 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO';
70418 p_apps_owner VARCHAR2(30);
70419 l_log_module VARCHAR2(240);
70420 BEGIN
70421 IF g_log_enabled THEN
70422 l_log_module := C_DEFAULT_MODULE||'.insert_sources_131';
70423 END IF;
70424 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70425
70426 trace
70427 (p_msg => 'BEGIN of insert_sources_131'
70428 ,p_level => C_LEVEL_PROCEDURE
70429 ,p_module => l_log_module);
70430
70431 END IF;
70432
70433 -- select APPS owner
70434 SELECT oracle_username
70435 INTO p_apps_owner
70436 FROM fnd_oracle_userid
70437 WHERE read_only_flag = 'U'
70438 ;
70439
70440 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70441 trace
70442 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
70443 ' - p_language = '||p_language||
70444 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
70445 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
70446 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
70447 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
70448 ,p_level => C_LEVEL_STATEMENT
70449 ,p_module => l_log_module);
70450 END IF;
70451
70452
70453 --
70454 INSERT INTO xla_diag_sources --hdr2
70455 (
70456 event_id
70457 , ledger_id
70458 , sla_ledger_id
70459 , description_language
70460 , object_name
70461 , object_type_code
70462 , line_number
70463 , source_application_id
70464 , source_type_code
70465 , source_code
70466 , source_value
70467 , source_meaning
70468 , created_by
70469 , creation_date
70470 , last_update_date
70471 , last_updated_by
70472 , last_update_login
70473 , program_update_date
70474 , program_application_id
70475 , program_id
70476 , request_id
70477 )
70478 SELECT
70479 event_id
70480 , p_target_ledger_id
70481 , p_sla_ledger_id
70482 , p_language
70483 , object_name
70484 , object_type_code
70485 , line_number
70486 , source_application_id
70487 , source_type_code
70488 , source_code
70489 , SUBSTR(source_value ,1,1996)
70490 , SUBSTR(source_meaning ,1,200)
70491 , xla_environment_pkg.g_Usr_Id
70492 , TRUNC(SYSDATE)
70493 , TRUNC(SYSDATE)
70494 , xla_environment_pkg.g_Usr_Id
70495 , xla_environment_pkg.g_Login_Id
70496 , TRUNC(SYSDATE)
70497 , xla_environment_pkg.g_Prog_Appl_Id
70498 , xla_environment_pkg.g_Prog_Id
70499 , xla_environment_pkg.g_Req_Id
70500 FROM (
70501 SELECT xet.event_id event_id
70502 , 0 line_number
70503 , CASE r
70504 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
70505 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
70506 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
70507 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
70508 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
70509 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
70510 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
70511
70515 WHEN 1 THEN 'HEADER'
70512 ELSE null
70513 END object_name
70514 , CASE r
70516 WHEN 2 THEN 'HEADER'
70517 WHEN 3 THEN 'HEADER'
70518 WHEN 4 THEN 'HEADER'
70519 WHEN 5 THEN 'HEADER'
70520 WHEN 6 THEN 'HEADER'
70521 WHEN 7 THEN 'HEADER'
70522
70523 ELSE null
70524 END object_type_code
70525 , CASE r
70526 WHEN 1 THEN '222'
70527 WHEN 2 THEN '222'
70528 WHEN 3 THEN '222'
70529 WHEN 4 THEN '222'
70530 WHEN 5 THEN '222'
70531 WHEN 6 THEN '222'
70532 WHEN 7 THEN '222'
70533
70534 ELSE null
70535 END source_application_id
70536 , 'S' source_type_code
70537 , CASE r
70538 WHEN 1 THEN 'TRX_DOC_SEQUENCE_VALUE'
70539 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
70540 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
70541 WHEN 4 THEN 'XLA_PARTY_TYPE'
70542 WHEN 5 THEN 'TRX_INVOICE_CURRENCY_CODE'
70543 WHEN 6 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
70544 WHEN 7 THEN 'TRX_DOC_SEQUENCE_ID'
70545
70546 ELSE null
70547 END source_code
70548 , CASE r
70549 WHEN 1 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
70550 WHEN 2 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
70551 WHEN 3 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
70552 WHEN 4 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
70553 WHEN 5 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
70554 WHEN 6 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
70555 WHEN 7 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
70556
70557 ELSE null
70558 END source_value
70559 , null source_meaning
70560 FROM xla_events_gt xet
70561 , AR_BILL_TO_CUSTOMERS_S_V h1
70562 , AR_BILL_TO_SITE_USES_S_V h2
70563 , AR_TRANSACTIONS_S_V h5
70564 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
70565 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70566 AND xet.event_class_code = C_EVENT_CLASS_CODE
70567 AND h1.event_id = xet.event_id
70568 AND h2.event_id = h1.event_id
70569 AND h5.event_id = h1.event_id
70570
70571 )
70572 ;
70573 --
70574 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70575
70576 trace
70577 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
70578 ,p_level => C_LEVEL_STATEMENT
70579 ,p_module => l_log_module);
70580
70581 END IF;
70582 --
70583
70584
70585
70586 --
70587 INSERT INTO xla_diag_sources --line2
70588 (
70589 event_id
70590 , ledger_id
70591 , sla_ledger_id
70592 , description_language
70593 , object_name
70594 , object_type_code
70595 , line_number
70596 , source_application_id
70597 , source_type_code
70598 , source_code
70599 , source_value
70600 , source_meaning
70601 , created_by
70602 , creation_date
70603 , last_update_date
70604 , last_updated_by
70605 , last_update_login
70606 , program_update_date
70607 , program_application_id
70608 , program_id
70609 , request_id
70610 )
70611 SELECT event_id
70612 , p_target_ledger_id
70613 , p_sla_ledger_id
70614 , p_language
70615 , object_name
70616 , object_type_code
70617 , line_number
70618 , source_application_id
70619 , source_type_code
70620 , source_code
70621 , SUBSTR(source_value,1,1996)
70622 , SUBSTR(source_meaning ,1,200)
70623 , xla_environment_pkg.g_Usr_Id
70624 , TRUNC(SYSDATE)
70625 , TRUNC(SYSDATE)
70626 , xla_environment_pkg.g_Usr_Id
70627 , xla_environment_pkg.g_Login_Id
70628 , TRUNC(SYSDATE)
70629 , xla_environment_pkg.g_Prog_Appl_Id
70630 , xla_environment_pkg.g_Prog_Id
70631 , xla_environment_pkg.g_Req_Id
70632 FROM (
70633 SELECT xet.event_id event_id
70634 , l4.line_number line_number
70635 , CASE r
70636 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
70637 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
70638 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
70639 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
70640 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
70641 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
70642 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
70643 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
70644 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
70645 WHEN 10 THEN 'AR_CUST_TRX_LINES_L_V'
70646 WHEN 11 THEN 'AR_CUST_TRX_LINES_L_V'
70647
70648 ELSE null
70649 END object_name
70650 , CASE r
70651 WHEN 1 THEN 'LINE'
70652 WHEN 2 THEN 'LINE'
70653 WHEN 3 THEN 'LINE'
70657 WHEN 7 THEN 'LINE'
70654 WHEN 4 THEN 'LINE'
70655 WHEN 5 THEN 'LINE'
70656 WHEN 6 THEN 'LINE'
70658 WHEN 8 THEN 'LINE'
70659 WHEN 9 THEN 'LINE'
70660 WHEN 10 THEN 'LINE'
70661 WHEN 11 THEN 'LINE'
70662
70663 ELSE null
70664 END object_type_code
70665 , CASE r
70666 WHEN 1 THEN '222'
70667 WHEN 2 THEN '222'
70668 WHEN 3 THEN '222'
70669 WHEN 4 THEN '222'
70670 WHEN 5 THEN '222'
70671 WHEN 6 THEN '222'
70672 WHEN 7 THEN '222'
70673 WHEN 8 THEN '222'
70674 WHEN 9 THEN '222'
70675 WHEN 10 THEN '222'
70676 WHEN 11 THEN '222'
70677
70678 ELSE null
70679 END source_application_id
70680 , 'S' source_type_code
70681 , CASE r
70682 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
70683 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
70684 WHEN 3 THEN 'TRX_LINE_DIST_ID'
70685 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
70686 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
70687 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
70688 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
70689 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
70690 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
70691 WHEN 10 THEN 'TRX_LINE_INTERFACE_LINE_ATTR1'
70692 WHEN 11 THEN 'TRX_TAX_LINE_ID'
70693
70694 ELSE null
70695 END source_code
70696 , CASE r
70697 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
70698 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
70699 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
70700 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
70701 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
70702 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
70703 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
70704 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
70705 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
70706 WHEN 10 THEN TO_CHAR(l4.TRX_LINE_INTERFACE_LINE_ATTR1)
70707 WHEN 11 THEN TO_CHAR(l4.TRX_TAX_LINE_ID)
70708
70709 ELSE null
70710 END source_value
70711 , null source_meaning
70712 FROM xla_events_gt xet
70713 , AR_CUST_TRX_LINES_BASE_V l3
70714 , AR_CUST_TRX_LINES_L_V l4
70715 , (select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
70716 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70717 AND xet.event_class_code = C_EVENT_CLASS_CODE
70718 AND l3.event_id = xet.event_id
70719 AND l4.event_id = l3.event_id
70720 AND l4.line_number = l3.line_number
70721
70722 )
70723 ;
70724 --
70725 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70726
70727 trace
70728 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
70729 ,p_level => C_LEVEL_STATEMENT
70730 ,p_module => l_log_module);
70731
70732 END IF;
70733
70734
70735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70736 trace
70737 (p_msg => 'END of insert_sources_131'
70738 ,p_level => C_LEVEL_PROCEDURE
70739 ,p_module => l_log_module);
70740 END IF;
70741 EXCEPTION
70742 WHEN xla_exceptions_pkg.application_exception THEN
70743 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70744 trace
70745 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70746 ,p_level => C_LEVEL_EXCEPTION
70747 ,p_module => l_log_module);
70748 END IF;
70749 RAISE;
70750 WHEN OTHERS THEN
70751 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70752 trace
70753 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70754 ,p_level => C_LEVEL_EXCEPTION
70755 ,p_module => l_log_module);
70756 END IF;
70757 xla_exceptions_pkg.raise_message
70758 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_131');
70759 END insert_sources_131;
70760 --
70761
70762 ---------------------------------------
70763 --
70764 -- PRIVATE FUNCTION
70765 -- EventClass_131
70766 --
70767 ----------------------------------------
70768 --
70769 FUNCTION EventClass_131
70770 (p_application_id IN NUMBER
70771 ,p_base_ledger_id IN NUMBER
70772 ,p_target_ledger_id IN NUMBER
70773 ,p_language IN VARCHAR2
70774 ,p_currency_code IN VARCHAR2
70775 ,p_sla_ledger_id IN NUMBER
70776 ,p_pad_start_date IN DATE
70777 ,p_pad_end_date IN DATE
70778 ,p_primary_ledger_id IN NUMBER)
70779 RETURN BOOLEAN IS
70780 --
70781 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO_ALL';
70782 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO';
70783
70784 l_calculate_acctd_flag VARCHAR2(1) :='N';
70785 l_calculate_g_l_flag VARCHAR2(1) :='N';
70786 --
70790 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70787 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70788 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70789 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70791 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70792 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70793 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70794 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70795 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70796 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70797 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70798 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70799 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70800 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70801 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70802 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70803 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70804 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70805 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70806 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70807 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70808 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70809 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
70810 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70811 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
70812 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
70813
70814 l_event_id NUMBER;
70815 l_previous_event_id NUMBER;
70816 l_first_event_id NUMBER;
70817 l_last_event_id NUMBER;
70818
70819 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
70820 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70821 --
70822 --
70823 l_result BOOLEAN := TRUE;
70824 l_rows NUMBER := 1000;
70825 l_event_type_name VARCHAR2(80) := 'All';
70826 l_event_class_name VARCHAR2(80) := 'Debit Memo';
70827 l_description VARCHAR2(4000);
70828 l_transaction_reversal NUMBER;
70829 l_ae_header_id NUMBER;
70830 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
70831 l_log_module VARCHAR2(240);
70832 --
70833 l_acct_reversal_source VARCHAR2(30);
70834 l_trx_reversal_source VARCHAR2(30);
70835
70836 l_continue_with_lines BOOLEAN := TRUE;
70837 --
70838 l_acc_rev_gl_date_source DATE; -- 4262811
70839 --
70840 type t_array_event_id is table of number index by binary_integer;
70841
70842 l_rec_array_event t_rec_array_event;
70843 l_null_rec_array_event t_rec_array_event;
70844 l_array_ae_header_id xla_number_array_type;
70845 l_actual_flag VARCHAR2(1) := NULL;
70846 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
70847 l_balance_type_code VARCHAR2(1) :=NULL;
70848 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
70849
70850 --
70851 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
70852 --
70853
70854 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
70855 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
70856 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
70857 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
70858 TYPE t_array_source_47 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
70859 TYPE t_array_source_111 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
70860 TYPE t_array_source_112 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
70861
70862 TYPE t_array_source_26 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
70863 TYPE t_array_source_43 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
70864 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
70865 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
70866 TYPE t_array_source_46 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
70867 TYPE t_array_source_48 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
70868 TYPE t_array_source_49 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
70869 TYPE t_array_source_50 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
70870 TYPE t_array_source_51 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
70871 TYPE t_array_source_65 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_INTERFACE_LINE_ATTR1%TYPE INDEX BY BINARY_INTEGER;
70872 TYPE t_array_source_86 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
70873
70874 l_array_source_3 t_array_source_3;
70875 l_array_source_37 t_array_source_37;
70879 l_array_source_111 t_array_source_111;
70876 l_array_source_38 t_array_source_38;
70877 l_array_source_39 t_array_source_39;
70878 l_array_source_47 t_array_source_47;
70880 l_array_source_112 t_array_source_112;
70881
70882 l_array_source_26 t_array_source_26;
70883 l_array_source_43 t_array_source_43;
70884 l_array_source_44 t_array_source_44;
70885 l_array_source_45 t_array_source_45;
70886 l_array_source_46 t_array_source_46;
70887 l_array_source_48 t_array_source_48;
70888 l_array_source_49 t_array_source_49;
70889 l_array_source_50 t_array_source_50;
70890 l_array_source_51 t_array_source_51;
70891 l_array_source_65 t_array_source_65;
70892 l_array_source_86 t_array_source_86;
70893
70894 --
70895 CURSOR header_cur
70896 IS
70897 SELECT /*+ leading(xet) cardinality(xet,1) */
70898 -- Event Class Code: DEBIT_MEMO
70899 xet.entity_id
70900 ,xet.legal_entity_id
70901 ,xet.entity_code
70902 ,xet.transaction_number
70903 ,xet.event_id
70904 ,xet.event_class_code
70905 ,xet.event_type_code
70906 ,xet.event_number
70907 ,xet.event_date
70908 ,xet.transaction_date
70909 ,xet.reference_num_1
70910 ,xet.reference_num_2
70911 ,xet.reference_num_3
70912 ,xet.reference_num_4
70913 ,xet.reference_char_1
70914 ,xet.reference_char_2
70915 ,xet.reference_char_3
70916 ,xet.reference_char_4
70917 ,xet.reference_date_1
70918 ,xet.reference_date_2
70919 ,xet.reference_date_3
70920 ,xet.reference_date_4
70921 ,xet.event_created_by
70922 ,xet.budgetary_control_flag
70923 , h5.TRX_DOC_SEQUENCE_VALUE source_3
70924 , h1.BILL_CUST_ACCOUNT_ID source_37
70925 , h2.BILL_USES_SITE_USE_ID source_38
70926 , h5.XLA_PARTY_TYPE source_39
70927 , h5.TRX_INVOICE_CURRENCY_CODE source_47
70928 , h5.TRX_DOC_SEQUENCE_CATEGORY source_111
70929 , h5.TRX_DOC_SEQUENCE_ID source_112
70930 FROM xla_events_gt xet
70931 , AR_BILL_TO_CUSTOMERS_S_V h1
70932 , AR_BILL_TO_SITE_USES_S_V h2
70933 , AR_TRANSACTIONS_S_V h5
70934 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
70935 and xet.event_class_code = C_EVENT_CLASS_CODE
70936 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
70937 AND h2.event_id = h1.event_id
70938 AND h5.event_id = h1.event_id
70939
70940 ORDER BY event_id
70941 ;
70942
70943
70944 --
70945 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
70946 IS
70947 SELECT /*+ leading(xet) cardinality(xet,1) */
70948 -- Event Class Code: DEBIT_MEMO
70949 xet.entity_id
70950 ,xet.legal_entity_id
70951 ,xet.entity_code
70952 ,xet.transaction_number
70953 ,xet.event_id
70954 ,xet.event_class_code
70955 ,xet.event_type_code
70956 ,xet.event_number
70957 ,xet.event_date
70958 ,xet.transaction_date
70959 ,xet.reference_num_1
70960 ,xet.reference_num_2
70961 ,xet.reference_num_3
70962 ,xet.reference_num_4
70963 ,xet.reference_char_1
70964 ,xet.reference_char_2
70965 ,xet.reference_char_3
70966 ,xet.reference_char_4
70967 ,xet.reference_date_1
70968 ,xet.reference_date_2
70969 ,xet.reference_date_3
70970 ,xet.reference_date_4
70971 ,xet.event_created_by
70972 ,xet.budgetary_control_flag
70973 , l3.LINE_NUMBER
70974 , l4.TRX_LINE_DIST_CCID source_26
70975 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_43
70976 , l4.TRX_LINE_DIST_ID source_44
70977 , l4.TRX_DISTRIBUTION_TYPE source_45
70978 , l4.TRX_LINE_DIST_AMT source_46
70979 , l3.TRX_LINE_CUR_CONVERSION_DATE source_48
70980 , l3.TRX_LINE_CUR_CONVERSION_RATE source_49
70981 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_50
70982 , l3.TRX_LINE_ACCTD_AMT source_51
70983 , l4.TRX_LINE_INTERFACE_LINE_ATTR1 source_65
70984 , l4.TRX_TAX_LINE_ID source_86
70985 FROM xla_events_gt xet
70986 , AR_CUST_TRX_LINES_BASE_V l3
70987 , AR_CUST_TRX_LINES_L_V l4
70988 WHERE xet.event_id between x_first_event_id and x_last_event_id
70989 and xet.event_date between p_pad_start_date and p_pad_end_date
70990 and xet.event_class_code = C_EVENT_CLASS_CODE
70991 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
70992 AND l4.event_id = l3.event_id
70993 AND l4.line_number = l3.line_number
70994 ;
70995
70996 --
70997 BEGIN
70998 IF g_log_enabled THEN
70999 l_log_module := C_DEFAULT_MODULE||'.EventClass_131';
71000 END IF;
71001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71002 trace
71003 (p_msg => 'BEGIN of EventClass_131'
71004 ,p_level => C_LEVEL_PROCEDURE
71005 ,p_module => l_log_module);
71006 END IF;
71007
71008 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71009 trace
71010 (p_msg => 'p_application_id = '||p_application_id||
71011 ' - p_base_ledger_id = '||p_base_ledger_id||
71012 ' - p_target_ledger_id = '||p_target_ledger_id||
71013 ' - p_language = '||p_language||
71014 ' - p_currency_code = '||p_currency_code||
71015 ' - p_sla_ledger_id = '||p_sla_ledger_id
71016 ,p_level => C_LEVEL_STATEMENT
71017 ,p_module => l_log_module);
71018 END IF;
71019 --
71020 -- initialze arrays
71021 --
71022 g_array_event.DELETE;
71023 l_rec_array_event := l_null_rec_array_event;
71024 --
71025 --------------------------------------
71029
71026 -- 4262811 Initialze MPA Line Number
71027 --------------------------------------
71028 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
71030 --
71031
71032 --
71033 OPEN header_cur;
71034 --
71035 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71036 trace
71037 (p_msg => 'SQL - FETCH header_cur'
71038 ,p_level => C_LEVEL_STATEMENT
71039 ,p_module => l_log_module);
71040 END IF;
71041 --
71042 LOOP
71043 FETCH header_cur BULK COLLECT INTO
71044 l_array_entity_id
71045 , l_array_legal_entity_id
71046 , l_array_entity_code
71047 , l_array_transaction_num
71048 , l_array_event_id
71049 , l_array_class_code
71050 , l_array_event_type
71051 , l_array_event_number
71052 , l_array_event_date
71053 , l_array_transaction_date
71054 , l_array_reference_num_1
71055 , l_array_reference_num_2
71056 , l_array_reference_num_3
71057 , l_array_reference_num_4
71058 , l_array_reference_char_1
71059 , l_array_reference_char_2
71060 , l_array_reference_char_3
71061 , l_array_reference_char_4
71062 , l_array_reference_date_1
71063 , l_array_reference_date_2
71064 , l_array_reference_date_3
71065 , l_array_reference_date_4
71066 , l_array_event_created_by
71067 , l_array_budgetary_control_flag
71068 , l_array_source_3
71069 , l_array_source_37
71070 , l_array_source_38
71071 , l_array_source_39
71072 , l_array_source_47
71073 , l_array_source_111
71074 , l_array_source_112
71075 LIMIT l_rows;
71076 --
71077 IF (C_LEVEL_EVENT >= g_log_level) THEN
71078 trace
71079 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
71080 ,p_level => C_LEVEL_EVENT
71081 ,p_module => l_log_module);
71082 END IF;
71083 --
71084 EXIT WHEN l_array_entity_id.COUNT = 0;
71085
71086 -- initialize arrays
71087 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
71088 XLA_AE_LINES_PKG.g_rec_lines := NULL;
71089
71090 --
71091 -- Bug 4458708
71092 --
71093 XLA_AE_LINES_PKG.g_LineNumber := 0;
71094
71095
71096 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
71097 g_last_hdr_idx := l_array_event_id.LAST;
71098 --
71099 -- loop for the headers. Each iteration is for each header extract row
71100 -- fetched in header cursor
71101 --
71102 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
71103
71104 --
71105 -- set event info as cache for other routines to refer event attributes
71106 --
71107 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71108 (p_application_id => p_application_id
71109 ,p_primary_ledger_id => p_primary_ledger_id
71110 ,p_base_ledger_id => p_base_ledger_id
71111 ,p_target_ledger_id => p_target_ledger_id
71112 ,p_entity_id => l_array_entity_id(hdr_idx)
71113 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
71114 ,p_entity_code => l_array_entity_code(hdr_idx)
71115 ,p_transaction_num => l_array_transaction_num(hdr_idx)
71116 ,p_event_id => l_array_event_id(hdr_idx)
71117 ,p_event_class_code => l_array_class_code(hdr_idx)
71118 ,p_event_type_code => l_array_event_type(hdr_idx)
71119 ,p_event_number => l_array_event_number(hdr_idx)
71120 ,p_event_date => l_array_event_date(hdr_idx)
71121 ,p_transaction_date => l_array_transaction_date(hdr_idx)
71122 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
71123 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
71124 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
71125 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
71126 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
71127 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
71128 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
71129 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
71130 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
71131 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
71132 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
71133 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
71134 ,p_event_created_by => l_array_event_created_by(hdr_idx)
71135 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
71136
71137 --
71138 -- set the status of entry to C_VALID (0)
71139 --
71140 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71141
71142 --
71143 -- initialize a row for ae header
71144 --
71145 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
71146
71147 l_event_id := l_array_event_id(hdr_idx);
71148
71149 --
71150 -- storing the hdr_idx for event. May be used by line cursor.
71151 --
71152 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
71153
71154 --
71155 -- store sources from header extract. This can be improved to
71156 -- store only those sources from header extract that may be used in lines
71157 --
71158
71159 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
71160 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
71161 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
71162 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
71166
71163 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
71164 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
71165 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
71167 --
71168 -- initilaize the status of ae headers for diffrent balance types
71169 -- the status is initialised to C_NOT_CREATED (2)
71170 --
71171 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71172 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71173 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71174
71175 --
71176 -- call api to validate and store accounting attributes for header
71177 --
71178
71179 ------------------------------------------------------------
71180 -- Accrual Reversal : to get date for Standard Source (NONE)
71181 ------------------------------------------------------------
71182 l_acc_rev_gl_date_source := NULL;
71183
71184 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
71185 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_111');
71186 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
71187 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_112');
71188 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
71189 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_3');
71190 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
71191 l_rec_acct_attrs.array_date_value(4) :=
71192 xla_ae_sources_pkg.GetSystemSourceDate(
71193 p_source_code => 'XLA_EVENT_DATE'
71194 , p_source_type_code => 'Y'
71195 , p_source_application_id => 602
71196 );
71197
71198
71199 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
71200
71201 XLA_AE_HEADER_PKG.SetJeCategoryName;
71202
71203 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
71204 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
71205 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
71206 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
71207 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
71208
71209
71210 -- No header level analytical criteria
71211
71212 --
71213 --accounting attribute enhancement, bug 3612931
71214 --
71215 l_trx_reversal_source := SUBSTR(NULL, 1,30);
71216
71217 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
71218 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71219
71220 xla_accounting_err_pkg.build_message
71221 (p_appli_s_name => 'XLA'
71222 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
71223 ,p_token_1 => 'ACCT_ATTR_NAME'
71224 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
71225 ,p_token_2 => 'PRODUCT_NAME'
71226 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71227 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71228 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71229 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71230
71231 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
71232 --
71233 -- following sets the accounting attributes needed to reverse
71234 -- accounting for a distributeion
71235 --
71236 xla_ae_lines_pkg.SetTrxReversalAttrs
71237 (p_event_id => l_event_id
71238 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
71239 ,p_trx_reversal_source => l_trx_reversal_source);
71240
71241 END IF;
71242
71243
71244 ----------------------------------------------------------------
71245 -- 4262811 - update the header statuses to invalid in need be
71246 ----------------------------------------------------------------
71247 --
71248 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
71249
71250
71251 -----------------------------------------------
71252 -- No accrual reversal for the event class/type
71253 -----------------------------------------------
71254 ----------------------------------------------------------------
71255
71256 --
71257 -- this ends the header loop iteration for one bulk fetch
71258 --
71259 END LOOP;
71260
71261 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
71262 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
71263
71264 --
71265 -- insert dummy rows into lines gt table that were created due to
71266 -- transaction reversals
71267 --
71268 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
71269 l_result := XLA_AE_LINES_PKG.InsertLines;
71270 END IF;
71271
71272 --
71273 -- reset the temp_line_num for each set of events fetched from header
71274 -- cursor rather than doing it for each new event in line cursor
71275 -- Bug 3939231
71276 --
71277 xla_ae_lines_pkg.g_temp_line_num := 0;
71278
71279
71280
71281 --
71282 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
71283 --
71284 --
71285 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71286
71287 trace
71288 (p_msg => 'SQL - FETCH line_cur'
71289 ,p_level => C_LEVEL_STATEMENT
71293 --
71290 ,p_module => l_log_module);
71291
71292 END IF;
71294 --
71295 LOOP
71296 --
71297 FETCH line_cur BULK COLLECT INTO
71298 l_array_entity_id
71299 , l_array_legal_entity_id
71300 , l_array_entity_code
71301 , l_array_transaction_num
71302 , l_array_event_id
71303 , l_array_class_code
71304 , l_array_event_type
71305 , l_array_event_number
71306 , l_array_event_date
71307 , l_array_transaction_date
71308 , l_array_reference_num_1
71309 , l_array_reference_num_2
71310 , l_array_reference_num_3
71311 , l_array_reference_num_4
71312 , l_array_reference_char_1
71313 , l_array_reference_char_2
71314 , l_array_reference_char_3
71315 , l_array_reference_char_4
71316 , l_array_reference_date_1
71317 , l_array_reference_date_2
71318 , l_array_reference_date_3
71319 , l_array_reference_date_4
71320 , l_array_event_created_by
71321 , l_array_budgetary_control_flag
71322 , l_array_extract_line_num
71323 , l_array_source_26
71324 , l_array_source_43
71325 , l_array_source_44
71326 , l_array_source_45
71327 , l_array_source_46
71328 , l_array_source_48
71329 , l_array_source_49
71330 , l_array_source_50
71331 , l_array_source_51
71332 , l_array_source_65
71333 , l_array_source_86
71334 LIMIT l_rows;
71335
71336 --
71337 IF (C_LEVEL_EVENT >= g_log_level) THEN
71338 trace
71339 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
71340 ,p_level => C_LEVEL_EVENT
71341 ,p_module => l_log_module);
71342 END IF;
71343 --
71344 EXIT WHEN l_array_entity_id.count = 0;
71345
71346 XLA_AE_LINES_PKG.g_rec_lines := null;
71347
71348 --
71349 -- Bug 4458708
71350 --
71351 XLA_AE_LINES_PKG.g_LineNumber := 0;
71352 --
71353 --
71354
71355 FOR Idx IN 1..l_array_event_id.count LOOP
71356 --
71357 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
71358 --
71359 l_event_id := l_array_event_id(idx); -- 5648433
71360
71361 --
71362 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71363 --
71364
71365 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
71366 (g_array_event(l_event_id).array_value_num('header_index'))
71367 ,'N'
71368 ) <> 'Y'
71369 THEN
71370 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71371 trace
71372 (p_msg => 'Trancaction revesal option is not Y '
71373 ,p_level => C_LEVEL_STATEMENT
71374 ,p_module => l_log_module);
71375 END IF;
71376
71377 --
71378 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
71379 --
71380 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71381 --
71382 -- set event info as cache for other routines to refer event attributes
71383 --
71384
71385 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
71386 l_previous_event_id := l_event_id;
71387
71388 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71389 (p_application_id => p_application_id
71390 ,p_primary_ledger_id => p_primary_ledger_id
71391 ,p_base_ledger_id => p_base_ledger_id
71392 ,p_target_ledger_id => p_target_ledger_id
71393 ,p_entity_id => l_array_entity_id(Idx)
71394 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
71395 ,p_entity_code => l_array_entity_code(Idx)
71396 ,p_transaction_num => l_array_transaction_num(Idx)
71397 ,p_event_id => l_array_event_id(Idx)
71398 ,p_event_class_code => l_array_class_code(Idx)
71399 ,p_event_type_code => l_array_event_type(Idx)
71400 ,p_event_number => l_array_event_number(Idx)
71401 ,p_event_date => l_array_event_date(Idx)
71402 ,p_transaction_date => l_array_transaction_date(Idx)
71403 ,p_reference_num_1 => l_array_reference_num_1(Idx)
71404 ,p_reference_num_2 => l_array_reference_num_2(Idx)
71405 ,p_reference_num_3 => l_array_reference_num_3(Idx)
71406 ,p_reference_num_4 => l_array_reference_num_4(Idx)
71407 ,p_reference_char_1 => l_array_reference_char_1(Idx)
71408 ,p_reference_char_2 => l_array_reference_char_2(Idx)
71409 ,p_reference_char_3 => l_array_reference_char_3(Idx)
71410 ,p_reference_char_4 => l_array_reference_char_4(Idx)
71411 ,p_reference_date_1 => l_array_reference_date_1(Idx)
71412 ,p_reference_date_2 => l_array_reference_date_2(Idx)
71413 ,p_reference_date_3 => l_array_reference_date_3(Idx)
71414 ,p_reference_date_4 => l_array_reference_date_4(Idx)
71415 ,p_event_created_by => l_array_event_created_by(Idx)
71416 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
71417 --
71418 END IF;
71419
71420
71421
71422 --
71423 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
71424
71425 l_acct_reversal_source := SUBSTR(NULL, 1,30);
71426
71427 IF l_continue_with_lines THEN
71428 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
71429 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71430
71434 ,p_token_1 => 'LINE_NUMBER'
71431 xla_accounting_err_pkg.build_message
71432 (p_appli_s_name => 'XLA'
71433 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
71435 ,p_value_1 => l_array_extract_line_num(Idx)
71436 ,p_token_2 => 'PRODUCT_NAME'
71437 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71438 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71439 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71440 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71441
71442 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
71443 --
71444 -- following sets the accounting attributes needed to reverse
71445 -- accounting for a distributeion
71446 --
71447
71448 --
71449 -- 5217187
71450 --
71451 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
71452 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
71453 g_array_event(l_event_id).array_value_num('header_index'));
71454 --
71455 --
71456
71457 -- No reversal code generated
71458
71459 xla_ae_lines_pkg.SetAcctReversalAttrs
71460 (p_event_id => l_event_id
71461 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
71462 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71463 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
71464 END IF;
71465
71466 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
71467 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
71468
71469 --
71470 AcctLineType_62 (
71471 p_application_id => p_application_id
71472 ,p_event_id => l_event_id
71473 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71474 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71475 ,p_actual_flag => l_actual_flag
71476 ,p_balance_type_code => l_balance_type_code
71477 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71478
71479 , p_source_26 => l_array_source_26(Idx)
71480 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71481 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71482 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71483 , p_source_43 => l_array_source_43(Idx)
71484 , p_source_44 => l_array_source_44(Idx)
71485 , p_source_45 => l_array_source_45(Idx)
71486 , p_source_46 => l_array_source_46(Idx)
71487 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71488 , p_source_48 => l_array_source_48(Idx)
71489 , p_source_49 => l_array_source_49(Idx)
71490 , p_source_50 => l_array_source_50(Idx)
71491 , p_source_51 => l_array_source_51(Idx)
71492 , p_source_86 => l_array_source_86(Idx)
71493 );
71494 If(l_balance_type_code = 'A') THEN
71495 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71496 END IF;
71497
71498 --
71499
71500
71501 --
71502 AcctLineType_63 (
71503 p_application_id => p_application_id
71504 ,p_event_id => l_event_id
71505 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71506 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71507 ,p_actual_flag => l_actual_flag
71508 ,p_balance_type_code => l_balance_type_code
71509 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71510
71511 , p_source_26 => l_array_source_26(Idx)
71512 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71513 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71514 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71515 , p_source_43 => l_array_source_43(Idx)
71516 , p_source_44 => l_array_source_44(Idx)
71517 , p_source_45 => l_array_source_45(Idx)
71518 , p_source_46 => l_array_source_46(Idx)
71519 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71520 , p_source_48 => l_array_source_48(Idx)
71521 , p_source_49 => l_array_source_49(Idx)
71522 , p_source_50 => l_array_source_50(Idx)
71523 , p_source_51 => l_array_source_51(Idx)
71524 , p_source_86 => l_array_source_86(Idx)
71525 );
71526 If(l_balance_type_code = 'A') THEN
71527 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71528 END IF;
71529
71530 --
71531
71532
71533 --
71534 AcctLineType_64 (
71535 p_application_id => p_application_id
71536 ,p_event_id => l_event_id
71537 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71538 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71539 ,p_actual_flag => l_actual_flag
71540 ,p_balance_type_code => l_balance_type_code
71541 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71542
71543 , p_source_26 => l_array_source_26(Idx)
71544 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71545 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71546 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71547 , p_source_43 => l_array_source_43(Idx)
71548 , p_source_44 => l_array_source_44(Idx)
71549 , p_source_45 => l_array_source_45(Idx)
71550 , p_source_46 => l_array_source_46(Idx)
71551 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71552 , p_source_48 => l_array_source_48(Idx)
71553 , p_source_49 => l_array_source_49(Idx)
71554 , p_source_50 => l_array_source_50(Idx)
71555 , p_source_51 => l_array_source_51(Idx)
71556 , p_source_86 => l_array_source_86(Idx)
71557 );
71558 If(l_balance_type_code = 'A') THEN
71559 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71560 END IF;
71561
71562 --
71563
71567 p_application_id => p_application_id
71564
71565 --
71566 AcctLineType_65 (
71568 ,p_event_id => l_event_id
71569 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71570 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71571 ,p_actual_flag => l_actual_flag
71572 ,p_balance_type_code => l_balance_type_code
71573 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71574
71575 , p_source_26 => l_array_source_26(Idx)
71576 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71577 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71578 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71579 , p_source_43 => l_array_source_43(Idx)
71580 , p_source_44 => l_array_source_44(Idx)
71581 , p_source_45 => l_array_source_45(Idx)
71582 , p_source_46 => l_array_source_46(Idx)
71583 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71584 , p_source_48 => l_array_source_48(Idx)
71585 , p_source_49 => l_array_source_49(Idx)
71586 , p_source_50 => l_array_source_50(Idx)
71587 , p_source_51 => l_array_source_51(Idx)
71588 , p_source_65 => l_array_source_65(Idx)
71589 , p_source_86 => l_array_source_86(Idx)
71590 );
71591 If(l_balance_type_code = 'A') THEN
71592 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71593 END IF;
71594
71595 --
71596
71597
71598 --
71599 AcctLineType_66 (
71600 p_application_id => p_application_id
71601 ,p_event_id => l_event_id
71602 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71603 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71604 ,p_actual_flag => l_actual_flag
71605 ,p_balance_type_code => l_balance_type_code
71606 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71607
71608 , p_source_26 => l_array_source_26(Idx)
71609 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71610 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71611 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71612 , p_source_43 => l_array_source_43(Idx)
71613 , p_source_44 => l_array_source_44(Idx)
71614 , p_source_45 => l_array_source_45(Idx)
71615 , p_source_46 => l_array_source_46(Idx)
71616 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71617 , p_source_48 => l_array_source_48(Idx)
71618 , p_source_49 => l_array_source_49(Idx)
71619 , p_source_50 => l_array_source_50(Idx)
71620 , p_source_51 => l_array_source_51(Idx)
71621 , p_source_86 => l_array_source_86(Idx)
71622 );
71623 If(l_balance_type_code = 'A') THEN
71624 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71625 END IF;
71626
71627 --
71628
71629
71630 --
71631 AcctLineType_67 (
71632 p_application_id => p_application_id
71633 ,p_event_id => l_event_id
71634 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71635 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71636 ,p_actual_flag => l_actual_flag
71637 ,p_balance_type_code => l_balance_type_code
71638 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71639
71640 , p_source_26 => l_array_source_26(Idx)
71641 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71642 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71643 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71644 , p_source_43 => l_array_source_43(Idx)
71645 , p_source_44 => l_array_source_44(Idx)
71646 , p_source_45 => l_array_source_45(Idx)
71647 , p_source_46 => l_array_source_46(Idx)
71648 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71649 , p_source_48 => l_array_source_48(Idx)
71650 , p_source_49 => l_array_source_49(Idx)
71651 , p_source_50 => l_array_source_50(Idx)
71652 , p_source_51 => l_array_source_51(Idx)
71653 , p_source_86 => l_array_source_86(Idx)
71654 );
71655 If(l_balance_type_code = 'A') THEN
71656 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71657 END IF;
71658
71659 --
71660
71661
71662 --
71663 AcctLineType_68 (
71664 p_application_id => p_application_id
71665 ,p_event_id => l_event_id
71666 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71667 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71668 ,p_actual_flag => l_actual_flag
71669 ,p_balance_type_code => l_balance_type_code
71670 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71671
71672 , p_source_26 => l_array_source_26(Idx)
71673 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71674 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71675 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71676 , p_source_43 => l_array_source_43(Idx)
71677 , p_source_44 => l_array_source_44(Idx)
71678 , p_source_45 => l_array_source_45(Idx)
71679 , p_source_46 => l_array_source_46(Idx)
71680 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71681 , p_source_48 => l_array_source_48(Idx)
71682 , p_source_49 => l_array_source_49(Idx)
71683 , p_source_50 => l_array_source_50(Idx)
71684 , p_source_51 => l_array_source_51(Idx)
71685 , p_source_86 => l_array_source_86(Idx)
71686 );
71687 If(l_balance_type_code = 'A') THEN
71688 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71689 END IF;
71690
71691 --
71692
71693
71694 --
71695 AcctLineType_69 (
71696 p_application_id => p_application_id
71697 ,p_event_id => l_event_id
71698 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71699 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71700 ,p_actual_flag => l_actual_flag
71704 , p_source_26 => l_array_source_26(Idx)
71701 ,p_balance_type_code => l_balance_type_code
71702 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71703
71705 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
71706 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
71707 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
71708 , p_source_43 => l_array_source_43(Idx)
71709 , p_source_44 => l_array_source_44(Idx)
71710 , p_source_45 => l_array_source_45(Idx)
71711 , p_source_46 => l_array_source_46(Idx)
71712 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
71713 , p_source_48 => l_array_source_48(Idx)
71714 , p_source_49 => l_array_source_49(Idx)
71715 , p_source_50 => l_array_source_50(Idx)
71716 , p_source_51 => l_array_source_51(Idx)
71717 , p_source_65 => l_array_source_65(Idx)
71718 , p_source_86 => l_array_source_86(Idx)
71719 );
71720 If(l_balance_type_code = 'A') THEN
71721 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71722 END IF;
71723
71724 --
71725
71726 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
71727 -- or secondary ledger that has different currency with primary
71728 -- or alc that is calculated by sla
71729 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71730 (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'))
71731
71732 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
71733 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
71734 AND (l_actual_flag = 'A')) THEN
71735 XLA_AE_LINES_PKG.CreateGainOrLossLines(
71736 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71737 ,p_application_id => p_application_id
71738 ,p_amb_context_code => 'DEFAULT'
71739 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
71740 ,p_event_class_code => C_EVENT_CLASS_CODE
71741 ,p_event_type_code => C_EVENT_TYPE_CODE
71742
71743 ,p_gain_ccid => -1
71744 ,p_loss_ccid => -1
71745
71746 ,p_actual_flag => l_actual_flag
71747 ,p_enc_flag => null
71748 ,p_actual_g_l_ref => l_actual_gain_loss_ref
71749 ,p_enc_g_l_ref => null
71750 );
71751 END IF;
71752 END IF;
71753 END IF;
71754
71755 ELSE
71756 --
71757 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71758 --
71759 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71760 trace
71761 (p_msg => 'Trancaction revesal option is Y'
71762 ,p_level => C_LEVEL_STATEMENT
71763 ,p_module => l_log_module);
71764 END IF;
71765 END IF;
71766
71767 END LOOP;
71768 l_result := XLA_AE_LINES_PKG.InsertLines ;
71769 end loop;
71770 close line_cur;
71771
71772
71773 --
71774 -- insert headers into xla_ae_headers_gt table
71775 --
71776 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
71777
71778 -- insert into errors table here.
71779
71780 END LOOP;
71781
71782 --
71783 -- 4865292
71784 --
71785 -- Compare g_hdr_extract_count with event count in
71786 -- CreateHeadersAndLines.
71787 --
71788 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
71789
71790 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71791 trace (p_msg => '# rows extracted from header extract objects '
71792 || ' (running total): '
71793 || g_hdr_extract_count
71794 ,p_level => C_LEVEL_STATEMENT
71795 ,p_module => l_log_module);
71796 END IF;
71797
71798 CLOSE header_cur;
71799 --
71800
71801 --
71802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71803 trace
71804 (p_msg => 'END of EventClass_131'
71805 ,p_level => C_LEVEL_PROCEDURE
71806 ,p_module => l_log_module);
71807 END IF;
71808 --
71809 RETURN l_result;
71810 EXCEPTION
71811 WHEN xla_exceptions_pkg.application_exception THEN
71812
71813 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
71814
71815
71816 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
71817
71818 RAISE;
71819
71820 WHEN NO_DATA_FOUND THEN
71821
71822 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
71823 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
71824
71825 FOR header_record IN header_cur
71826 LOOP
71827 l_array_header_events(header_record.event_id) := header_record.event_id;
71828 END LOOP;
71829
71830 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
71831 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
71832
71833 fnd_file.put_line(fnd_file.LOG, ' ');
71834 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
71835 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
71836 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
71837
71838 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
71839 LOOP
71840 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
71841 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
71845
71842 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
71843 END IF;
71844 END LOOP;
71846 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
71847 fnd_file.put_line(fnd_file.LOG, ' ');
71848
71849
71850 xla_exceptions_pkg.raise_message
71851 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_131');
71852
71853
71854 WHEN OTHERS THEN
71855 xla_exceptions_pkg.raise_message
71856 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_131');
71857 END EventClass_131;
71858 --
71859
71860 ---------------------------------------
71861 --
71862 -- PRIVATE PROCEDURE
71863 -- insert_sources_132
71864 --
71865 ----------------------------------------
71866 --
71867 PROCEDURE insert_sources_132(
71868 p_target_ledger_id IN NUMBER
71869 , p_language IN VARCHAR2
71870 , p_sla_ledger_id IN NUMBER
71871 , p_pad_start_date IN DATE
71872 , p_pad_end_date IN DATE
71873 )
71874 IS
71875
71876 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT_ALL';
71877 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT';
71878 p_apps_owner VARCHAR2(30);
71879 l_log_module VARCHAR2(240);
71880 BEGIN
71881 IF g_log_enabled THEN
71882 l_log_module := C_DEFAULT_MODULE||'.insert_sources_132';
71883 END IF;
71884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71885
71886 trace
71887 (p_msg => 'BEGIN of insert_sources_132'
71888 ,p_level => C_LEVEL_PROCEDURE
71889 ,p_module => l_log_module);
71890
71891 END IF;
71892
71893 -- select APPS owner
71894 SELECT oracle_username
71895 INTO p_apps_owner
71896 FROM fnd_oracle_userid
71897 WHERE read_only_flag = 'U'
71898 ;
71899
71900 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71904 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
71901 trace
71902 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
71903 ' - p_language = '||p_language||
71905 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
71906 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
71907 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
71908 ,p_level => C_LEVEL_STATEMENT
71909 ,p_module => l_log_module);
71910 END IF;
71911
71912
71913 --
71914 INSERT INTO xla_diag_sources --hdr2
71915 (
71916 event_id
71917 , ledger_id
71918 , sla_ledger_id
71919 , description_language
71920 , object_name
71921 , object_type_code
71922 , line_number
71923 , source_application_id
71924 , source_type_code
71925 , source_code
71926 , source_value
71927 , source_meaning
71928 , created_by
71929 , creation_date
71930 , last_update_date
71931 , last_updated_by
71932 , last_update_login
71933 , program_update_date
71934 , program_application_id
71935 , program_id
71936 , request_id
71937 )
71938 SELECT
71939 event_id
71940 , p_target_ledger_id
71941 , p_sla_ledger_id
71942 , p_language
71943 , object_name
71944 , object_type_code
71945 , line_number
71946 , source_application_id
71947 , source_type_code
71948 , source_code
71949 , SUBSTR(source_value ,1,1996)
71950 , SUBSTR(source_meaning ,1,200)
71951 , xla_environment_pkg.g_Usr_Id
71952 , TRUNC(SYSDATE)
71953 , TRUNC(SYSDATE)
71954 , xla_environment_pkg.g_Usr_Id
71955 , xla_environment_pkg.g_Login_Id
71956 , TRUNC(SYSDATE)
71957 , xla_environment_pkg.g_Prog_Appl_Id
71958 , xla_environment_pkg.g_Prog_Id
71959 , xla_environment_pkg.g_Req_Id
71960 FROM (
71961 SELECT xet.event_id event_id
71962 , 0 line_number
71963 , CASE r
71964 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
71965 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
71966 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
71967 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
71968 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
71969 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
71973 END object_name
71970 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
71971
71972 ELSE null
71974 , CASE r
71975 WHEN 1 THEN 'HEADER'
71976 WHEN 2 THEN 'HEADER'
71977 WHEN 3 THEN 'HEADER'
71978 WHEN 4 THEN 'HEADER'
71979 WHEN 5 THEN 'HEADER'
71980 WHEN 6 THEN 'HEADER'
71981 WHEN 7 THEN 'HEADER'
71982
71983 ELSE null
71984 END object_type_code
71985 , CASE r
71986 WHEN 1 THEN '222'
71987 WHEN 2 THEN '222'
71988 WHEN 3 THEN '222'
71989 WHEN 4 THEN '222'
71990 WHEN 5 THEN '222'
71991 WHEN 6 THEN '222'
71992 WHEN 7 THEN '222'
71993
71994 ELSE null
71995 END source_application_id
71996 , 'S' source_type_code
71997 , CASE r
71998 WHEN 1 THEN 'TRX_DOC_SEQUENCE_VALUE'
71999 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
72000 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
72001 WHEN 4 THEN 'XLA_PARTY_TYPE'
72002 WHEN 5 THEN 'TRX_INVOICE_CURRENCY_CODE'
72003 WHEN 6 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
72004 WHEN 7 THEN 'TRX_DOC_SEQUENCE_ID'
72005
72006 ELSE null
72007 END source_code
72008 , CASE r
72009 WHEN 1 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
72010 WHEN 2 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
72011 WHEN 3 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
72012 WHEN 4 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
72013 WHEN 5 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
72014 WHEN 6 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
72015 WHEN 7 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
72016
72017 ELSE null
72018 END source_value
72019 , null source_meaning
72020 FROM xla_events_gt xet
72021 , AR_BILL_TO_CUSTOMERS_S_V h1
72022 , AR_BILL_TO_SITE_USES_S_V h2
72023 , AR_TRANSACTIONS_S_V h5
72024 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
72025 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72026 AND xet.event_class_code = C_EVENT_CLASS_CODE
72027 AND h1.event_id = xet.event_id
72028 AND h2.event_id = h1.event_id
72029 AND h5.event_id = h1.event_id
72030
72031 )
72032 ;
72033 --
72034 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72035
72036 trace
72037 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
72038 ,p_level => C_LEVEL_STATEMENT
72039 ,p_module => l_log_module);
72040
72041 END IF;
72042 --
72043
72044
72045
72046 --
72047 INSERT INTO xla_diag_sources --line2
72048 (
72049 event_id
72050 , ledger_id
72051 , sla_ledger_id
72052 , description_language
72053 , object_name
72054 , object_type_code
72055 , line_number
72056 , source_application_id
72057 , source_type_code
72058 , source_code
72059 , source_value
72060 , source_meaning
72061 , created_by
72062 , creation_date
72063 , last_update_date
72064 , last_updated_by
72065 , last_update_login
72066 , program_update_date
72067 , program_application_id
72068 , program_id
72069 , request_id
72070 )
72071 SELECT event_id
72072 , p_target_ledger_id
72073 , p_sla_ledger_id
72074 , p_language
72075 , object_name
72079 , source_type_code
72076 , object_type_code
72077 , line_number
72078 , source_application_id
72080 , source_code
72081 , SUBSTR(source_value,1,1996)
72082 , SUBSTR(source_meaning ,1,200)
72083 , xla_environment_pkg.g_Usr_Id
72084 , TRUNC(SYSDATE)
72085 , TRUNC(SYSDATE)
72086 , xla_environment_pkg.g_Usr_Id
72087 , xla_environment_pkg.g_Login_Id
72088 , TRUNC(SYSDATE)
72089 , xla_environment_pkg.g_Prog_Appl_Id
72090 , xla_environment_pkg.g_Prog_Id
72091 , xla_environment_pkg.g_Req_Id
72092 FROM (
72093 SELECT xet.event_id event_id
72094 , l4.line_number line_number
72095 , CASE r
72096 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
72097 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
72098 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
72099 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
72100 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
72101 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
72102 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
72103 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
72104 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
72105
72106 ELSE null
72107 END object_name
72108 , CASE r
72109 WHEN 1 THEN 'LINE'
72110 WHEN 2 THEN 'LINE'
72111 WHEN 3 THEN 'LINE'
72112 WHEN 4 THEN 'LINE'
72113 WHEN 5 THEN 'LINE'
72114 WHEN 6 THEN 'LINE'
72115 WHEN 7 THEN 'LINE'
72116 WHEN 8 THEN 'LINE'
72117 WHEN 9 THEN 'LINE'
72118
72119 ELSE null
72120 END object_type_code
72121 , CASE r
72122 WHEN 1 THEN '222'
72123 WHEN 2 THEN '222'
72124 WHEN 3 THEN '222'
72125 WHEN 4 THEN '222'
72126 WHEN 5 THEN '222'
72127 WHEN 6 THEN '222'
72128 WHEN 7 THEN '222'
72129 WHEN 8 THEN '222'
72130 WHEN 9 THEN '222'
72131
72132 ELSE null
72133 END source_application_id
72134 , 'S' source_type_code
72135 , CASE r
72136 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
72137 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
72138 WHEN 3 THEN 'TRX_LINE_DIST_ID'
72139 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
72140 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
72141 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
72142 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
72143 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
72144 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
72145
72146 ELSE null
72147 END source_code
72148 , CASE r
72149 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
72150 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
72151 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
72152 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
72153 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
72154 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
72155 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
72156 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
72157 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
72158
72159 ELSE null
72160 END source_value
72161 , null source_meaning
72162 FROM xla_events_gt xet
72163 , AR_CUST_TRX_LINES_BASE_V l3
72164 , AR_CUST_TRX_LINES_L_V l4
72165 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
72166 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72167 AND xet.event_class_code = C_EVENT_CLASS_CODE
72168 AND l3.event_id = xet.event_id
72169 AND l4.event_id = l3.event_id
72170 AND l4.line_number = l3.line_number
72171
72172 )
72173 ;
72174 --
72175 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72176
72177 trace
72178 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
72179 ,p_level => C_LEVEL_STATEMENT
72180 ,p_module => l_log_module);
72181
72182 END IF;
72183
72184
72185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72186 trace
72187 (p_msg => 'END of insert_sources_132'
72188 ,p_level => C_LEVEL_PROCEDURE
72189 ,p_module => l_log_module);
72190 END IF;
72191 EXCEPTION
72192 WHEN xla_exceptions_pkg.application_exception THEN
72193 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72197 ,p_module => l_log_module);
72194 trace
72195 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72196 ,p_level => C_LEVEL_EXCEPTION
72198 END IF;
72199 RAISE;
72200 WHEN OTHERS THEN
72201 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72202 trace
72203 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72204 ,p_level => C_LEVEL_EXCEPTION
72205 ,p_module => l_log_module);
72206 END IF;
72207 xla_exceptions_pkg.raise_message
72208 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_132');
72209 END insert_sources_132;
72210 --
72211
72212 ---------------------------------------
72213 --
72214 -- PRIVATE FUNCTION
72215 -- EventClass_132
72216 --
72217 ----------------------------------------
72218 --
72219 FUNCTION EventClass_132
72220 (p_application_id IN NUMBER
72221 ,p_base_ledger_id IN NUMBER
72222 ,p_target_ledger_id IN NUMBER
72223 ,p_language IN VARCHAR2
72224 ,p_currency_code IN VARCHAR2
72225 ,p_sla_ledger_id IN NUMBER
72226 ,p_pad_start_date IN DATE
72227 ,p_pad_end_date IN DATE
72228 ,p_primary_ledger_id IN NUMBER)
72229 RETURN BOOLEAN IS
72230 --
72231 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT_ALL';
72232 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT';
72233
72234 l_calculate_acctd_flag VARCHAR2(1) :='N';
72235 l_calculate_g_l_flag VARCHAR2(1) :='N';
72236 --
72237 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72238 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72239 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72240 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72241 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72242 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72243 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72244 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72245 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72246 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72247 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72248 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72249 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72250 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72251 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72252 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72253 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72254 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72255 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72256 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72257 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72258 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72259 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
72260 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72261 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
72262 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
72263
72264 l_event_id NUMBER;
72265 l_previous_event_id NUMBER;
72266 l_first_event_id NUMBER;
72267 l_last_event_id NUMBER;
72268
72269 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
72270 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72271 --
72272 --
72273 l_result BOOLEAN := TRUE;
72274 l_rows NUMBER := 1000;
72275 l_event_type_name VARCHAR2(80) := 'All';
72276 l_event_class_name VARCHAR2(80) := 'Deposit';
72277 l_description VARCHAR2(4000);
72278 l_transaction_reversal NUMBER;
72279 l_ae_header_id NUMBER;
72280 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
72281 l_log_module VARCHAR2(240);
72282 --
72283 l_acct_reversal_source VARCHAR2(30);
72284 l_trx_reversal_source VARCHAR2(30);
72285
72286 l_continue_with_lines BOOLEAN := TRUE;
72287 --
72288 l_acc_rev_gl_date_source DATE; -- 4262811
72289 --
72290 type t_array_event_id is table of number index by binary_integer;
72291
72292 l_rec_array_event t_rec_array_event;
72293 l_null_rec_array_event t_rec_array_event;
72294 l_array_ae_header_id xla_number_array_type;
72295 l_actual_flag VARCHAR2(1) := NULL;
72296 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
72297 l_balance_type_code VARCHAR2(1) :=NULL;
72298 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
72299
72300 --
72301 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
72302 --
72303
72304 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
72308 TYPE t_array_source_47 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
72305 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
72306 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
72307 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
72309 TYPE t_array_source_111 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
72310 TYPE t_array_source_112 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
72311
72312 TYPE t_array_source_26 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
72313 TYPE t_array_source_43 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72314 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
72315 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
72316 TYPE t_array_source_46 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
72317 TYPE t_array_source_48 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
72318 TYPE t_array_source_49 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
72319 TYPE t_array_source_50 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
72320 TYPE t_array_source_51 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
72321
72322 l_array_source_3 t_array_source_3;
72323 l_array_source_37 t_array_source_37;
72324 l_array_source_38 t_array_source_38;
72325 l_array_source_39 t_array_source_39;
72326 l_array_source_47 t_array_source_47;
72327 l_array_source_111 t_array_source_111;
72328 l_array_source_112 t_array_source_112;
72329
72330 l_array_source_26 t_array_source_26;
72331 l_array_source_43 t_array_source_43;
72332 l_array_source_44 t_array_source_44;
72333 l_array_source_45 t_array_source_45;
72334 l_array_source_46 t_array_source_46;
72335 l_array_source_48 t_array_source_48;
72336 l_array_source_49 t_array_source_49;
72337 l_array_source_50 t_array_source_50;
72338 l_array_source_51 t_array_source_51;
72339
72340 --
72341 CURSOR header_cur
72342 IS
72343 SELECT /*+ leading(xet) cardinality(xet,1) */
72344 -- Event Class Code: DEPOSIT
72345 xet.entity_id
72346 ,xet.legal_entity_id
72347 ,xet.entity_code
72348 ,xet.transaction_number
72349 ,xet.event_id
72350 ,xet.event_class_code
72351 ,xet.event_type_code
72352 ,xet.event_number
72353 ,xet.event_date
72354 ,xet.transaction_date
72355 ,xet.reference_num_1
72356 ,xet.reference_num_2
72357 ,xet.reference_num_3
72358 ,xet.reference_num_4
72359 ,xet.reference_char_1
72360 ,xet.reference_char_2
72361 ,xet.reference_char_3
72362 ,xet.reference_char_4
72363 ,xet.reference_date_1
72364 ,xet.reference_date_2
72365 ,xet.reference_date_3
72366 ,xet.reference_date_4
72367 ,xet.event_created_by
72368 ,xet.budgetary_control_flag
72369 , h5.TRX_DOC_SEQUENCE_VALUE source_3
72370 , h1.BILL_CUST_ACCOUNT_ID source_37
72371 , h2.BILL_USES_SITE_USE_ID source_38
72372 , h5.XLA_PARTY_TYPE source_39
72373 , h5.TRX_INVOICE_CURRENCY_CODE source_47
72374 , h5.TRX_DOC_SEQUENCE_CATEGORY source_111
72375 , h5.TRX_DOC_SEQUENCE_ID source_112
72376 FROM xla_events_gt xet
72377 , AR_BILL_TO_CUSTOMERS_S_V h1
72378 , AR_BILL_TO_SITE_USES_S_V h2
72379 , AR_TRANSACTIONS_S_V h5
72380 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
72381 and xet.event_class_code = C_EVENT_CLASS_CODE
72382 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
72383 AND h2.event_id = h1.event_id
72384 AND h5.event_id = h1.event_id
72385
72386 ORDER BY event_id
72387 ;
72388
72389
72390 --
72391 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
72392 IS
72393 SELECT /*+ leading(xet) cardinality(xet,1) */
72394 -- Event Class Code: DEPOSIT
72395 xet.entity_id
72396 ,xet.legal_entity_id
72397 ,xet.entity_code
72398 ,xet.transaction_number
72399 ,xet.event_id
72400 ,xet.event_class_code
72401 ,xet.event_type_code
72402 ,xet.event_number
72403 ,xet.event_date
72404 ,xet.transaction_date
72405 ,xet.reference_num_1
72406 ,xet.reference_num_2
72407 ,xet.reference_num_3
72408 ,xet.reference_num_4
72409 ,xet.reference_char_1
72410 ,xet.reference_char_2
72411 ,xet.reference_char_3
72412 ,xet.reference_char_4
72413 ,xet.reference_date_1
72414 ,xet.reference_date_2
72415 ,xet.reference_date_3
72416 ,xet.reference_date_4
72417 ,xet.event_created_by
72418 ,xet.budgetary_control_flag
72419 , l3.LINE_NUMBER
72420 , l4.TRX_LINE_DIST_CCID source_26
72421 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_43
72422 , l4.TRX_LINE_DIST_ID source_44
72423 , l4.TRX_DISTRIBUTION_TYPE source_45
72424 , l4.TRX_LINE_DIST_AMT source_46
72425 , l3.TRX_LINE_CUR_CONVERSION_DATE source_48
72426 , l3.TRX_LINE_CUR_CONVERSION_RATE source_49
72427 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_50
72428 , l3.TRX_LINE_ACCTD_AMT source_51
72429 FROM xla_events_gt xet
72430 , AR_CUST_TRX_LINES_BASE_V l3
72431 , AR_CUST_TRX_LINES_L_V l4
72432 WHERE xet.event_id between x_first_event_id and x_last_event_id
72433 and xet.event_date between p_pad_start_date and p_pad_end_date
72434 and xet.event_class_code = C_EVENT_CLASS_CODE
72435 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
72436 AND l4.event_id = l3.event_id
72437 AND l4.line_number = l3.line_number
72438 ;
72439
72440 --
72441 BEGIN
72442 IF g_log_enabled THEN
72443 l_log_module := C_DEFAULT_MODULE||'.EventClass_132';
72444 END IF;
72445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72446 trace
72447 (p_msg => 'BEGIN of EventClass_132'
72448 ,p_level => C_LEVEL_PROCEDURE
72449 ,p_module => l_log_module);
72450 END IF;
72451
72452 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72453 trace
72454 (p_msg => 'p_application_id = '||p_application_id||
72455 ' - p_base_ledger_id = '||p_base_ledger_id||
72456 ' - p_target_ledger_id = '||p_target_ledger_id||
72457 ' - p_language = '||p_language||
72458 ' - p_currency_code = '||p_currency_code||
72459 ' - p_sla_ledger_id = '||p_sla_ledger_id
72460 ,p_level => C_LEVEL_STATEMENT
72461 ,p_module => l_log_module);
72462 END IF;
72463 --
72464 -- initialze arrays
72465 --
72466 g_array_event.DELETE;
72467 l_rec_array_event := l_null_rec_array_event;
72468 --
72469 --------------------------------------
72470 -- 4262811 Initialze MPA Line Number
72471 --------------------------------------
72472 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
72473
72474 --
72475
72476 --
72477 OPEN header_cur;
72478 --
72479 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72480 trace
72481 (p_msg => 'SQL - FETCH header_cur'
72482 ,p_level => C_LEVEL_STATEMENT
72483 ,p_module => l_log_module);
72484 END IF;
72485 --
72486 LOOP
72487 FETCH header_cur BULK COLLECT INTO
72488 l_array_entity_id
72489 , l_array_legal_entity_id
72490 , l_array_entity_code
72491 , l_array_transaction_num
72492 , l_array_event_id
72493 , l_array_class_code
72494 , l_array_event_type
72495 , l_array_event_number
72496 , l_array_event_date
72497 , l_array_transaction_date
72498 , l_array_reference_num_1
72499 , l_array_reference_num_2
72500 , l_array_reference_num_3
72501 , l_array_reference_num_4
72502 , l_array_reference_char_1
72503 , l_array_reference_char_2
72504 , l_array_reference_char_3
72505 , l_array_reference_char_4
72506 , l_array_reference_date_1
72507 , l_array_reference_date_2
72508 , l_array_reference_date_3
72509 , l_array_reference_date_4
72510 , l_array_event_created_by
72511 , l_array_budgetary_control_flag
72512 , l_array_source_3
72513 , l_array_source_37
72514 , l_array_source_38
72515 , l_array_source_39
72516 , l_array_source_47
72517 , l_array_source_111
72518 , l_array_source_112
72519 LIMIT l_rows;
72520 --
72521 IF (C_LEVEL_EVENT >= g_log_level) THEN
72522 trace
72523 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
72524 ,p_level => C_LEVEL_EVENT
72525 ,p_module => l_log_module);
72526 END IF;
72527 --
72528 EXIT WHEN l_array_entity_id.COUNT = 0;
72529
72530 -- initialize arrays
72531 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
72532 XLA_AE_LINES_PKG.g_rec_lines := NULL;
72533
72534 --
72535 -- Bug 4458708
72539
72536 --
72537 XLA_AE_LINES_PKG.g_LineNumber := 0;
72538
72540 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
72541 g_last_hdr_idx := l_array_event_id.LAST;
72542 --
72543 -- loop for the headers. Each iteration is for each header extract row
72544 -- fetched in header cursor
72545 --
72546 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
72547
72548 --
72549 -- set event info as cache for other routines to refer event attributes
72550 --
72551 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72552 (p_application_id => p_application_id
72553 ,p_primary_ledger_id => p_primary_ledger_id
72554 ,p_base_ledger_id => p_base_ledger_id
72555 ,p_target_ledger_id => p_target_ledger_id
72556 ,p_entity_id => l_array_entity_id(hdr_idx)
72557 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
72558 ,p_entity_code => l_array_entity_code(hdr_idx)
72559 ,p_transaction_num => l_array_transaction_num(hdr_idx)
72560 ,p_event_id => l_array_event_id(hdr_idx)
72561 ,p_event_class_code => l_array_class_code(hdr_idx)
72562 ,p_event_type_code => l_array_event_type(hdr_idx)
72563 ,p_event_number => l_array_event_number(hdr_idx)
72564 ,p_event_date => l_array_event_date(hdr_idx)
72565 ,p_transaction_date => l_array_transaction_date(hdr_idx)
72566 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
72567 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
72568 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
72569 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
72570 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
72571 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
72572 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
72573 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
72574 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
72575 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
72576 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
72577 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
72578 ,p_event_created_by => l_array_event_created_by(hdr_idx)
72579 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
72580
72581 --
72582 -- set the status of entry to C_VALID (0)
72583 --
72584 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72585
72586 --
72587 -- initialize a row for ae header
72588 --
72589 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
72590
72591 l_event_id := l_array_event_id(hdr_idx);
72592
72593 --
72594 -- storing the hdr_idx for event. May be used by line cursor.
72595 --
72596 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
72597
72598 --
72599 -- store sources from header extract. This can be improved to
72600 -- store only those sources from header extract that may be used in lines
72601 --
72602
72603 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
72604 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
72605 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
72606 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
72607 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
72608 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
72609 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
72610
72611 --
72612 -- initilaize the status of ae headers for diffrent balance types
72613 -- the status is initialised to C_NOT_CREATED (2)
72614 --
72615 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72616 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72617 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72618
72619 --
72620 -- call api to validate and store accounting attributes for header
72621 --
72622
72623 ------------------------------------------------------------
72624 -- Accrual Reversal : to get date for Standard Source (NONE)
72625 ------------------------------------------------------------
72626 l_acc_rev_gl_date_source := NULL;
72627
72628 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
72629 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_111');
72630 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
72634 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
72631 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_112');
72632 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
72633 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_3');
72635 l_rec_acct_attrs.array_date_value(4) :=
72636 xla_ae_sources_pkg.GetSystemSourceDate(
72637 p_source_code => 'XLA_EVENT_DATE'
72638 , p_source_type_code => 'Y'
72639 , p_source_application_id => 602
72640 );
72641
72642
72643 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
72644
72645 XLA_AE_HEADER_PKG.SetJeCategoryName;
72646
72647 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
72648 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
72649 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
72650 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
72651 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
72652
72653
72654 -- No header level analytical criteria
72655
72656 --
72657 --accounting attribute enhancement, bug 3612931
72658 --
72659 l_trx_reversal_source := SUBSTR(NULL, 1,30);
72660
72661 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
72662 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72663
72664 xla_accounting_err_pkg.build_message
72665 (p_appli_s_name => 'XLA'
72666 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
72667 ,p_token_1 => 'ACCT_ATTR_NAME'
72668 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
72669 ,p_token_2 => 'PRODUCT_NAME'
72670 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72671 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72672 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72673 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72674
72675 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
72676 --
72677 -- following sets the accounting attributes needed to reverse
72678 -- accounting for a distributeion
72679 --
72680 xla_ae_lines_pkg.SetTrxReversalAttrs
72681 (p_event_id => l_event_id
72682 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
72683 ,p_trx_reversal_source => l_trx_reversal_source);
72684
72685 END IF;
72686
72687
72688 ----------------------------------------------------------------
72689 -- 4262811 - update the header statuses to invalid in need be
72690 ----------------------------------------------------------------
72691 --
72692 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
72693
72694
72695 -----------------------------------------------
72696 -- No accrual reversal for the event class/type
72697 -----------------------------------------------
72698 ----------------------------------------------------------------
72699
72700 --
72701 -- this ends the header loop iteration for one bulk fetch
72702 --
72703 END LOOP;
72704
72705 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
72706 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
72707
72708 --
72709 -- insert dummy rows into lines gt table that were created due to
72710 -- transaction reversals
72711 --
72712 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
72713 l_result := XLA_AE_LINES_PKG.InsertLines;
72714 END IF;
72715
72716 --
72717 -- reset the temp_line_num for each set of events fetched from header
72718 -- cursor rather than doing it for each new event in line cursor
72719 -- Bug 3939231
72720 --
72721 xla_ae_lines_pkg.g_temp_line_num := 0;
72722
72723
72724
72725 --
72726 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
72727 --
72728 --
72729 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72730
72731 trace
72732 (p_msg => 'SQL - FETCH line_cur'
72733 ,p_level => C_LEVEL_STATEMENT
72734 ,p_module => l_log_module);
72735
72736 END IF;
72737 --
72738 --
72739 LOOP
72740 --
72741 FETCH line_cur BULK COLLECT INTO
72742 l_array_entity_id
72743 , l_array_legal_entity_id
72744 , l_array_entity_code
72745 , l_array_transaction_num
72746 , l_array_event_id
72747 , l_array_class_code
72748 , l_array_event_type
72749 , l_array_event_number
72750 , l_array_event_date
72751 , l_array_transaction_date
72752 , l_array_reference_num_1
72753 , l_array_reference_num_2
72754 , l_array_reference_num_3
72755 , l_array_reference_num_4
72756 , l_array_reference_char_1
72757 , l_array_reference_char_2
72758 , l_array_reference_char_3
72759 , l_array_reference_char_4
72760 , l_array_reference_date_1
72761 , l_array_reference_date_2
72762 , l_array_reference_date_3
72763 , l_array_reference_date_4
72764 , l_array_event_created_by
72765 , l_array_budgetary_control_flag
72766 , l_array_extract_line_num
72767 , l_array_source_26
72768 , l_array_source_43
72769 , l_array_source_44
72770 , l_array_source_45
72771 , l_array_source_46
72775 , l_array_source_51
72772 , l_array_source_48
72773 , l_array_source_49
72774 , l_array_source_50
72776 LIMIT l_rows;
72777
72778 --
72779 IF (C_LEVEL_EVENT >= g_log_level) THEN
72780 trace
72781 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
72782 ,p_level => C_LEVEL_EVENT
72783 ,p_module => l_log_module);
72784 END IF;
72785 --
72786 EXIT WHEN l_array_entity_id.count = 0;
72787
72788 XLA_AE_LINES_PKG.g_rec_lines := null;
72789
72790 --
72791 -- Bug 4458708
72792 --
72793 XLA_AE_LINES_PKG.g_LineNumber := 0;
72794 --
72795 --
72796
72797 FOR Idx IN 1..l_array_event_id.count LOOP
72798 --
72799 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
72800 --
72801 l_event_id := l_array_event_id(idx); -- 5648433
72802
72803 --
72804 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72805 --
72806
72807 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
72808 (g_array_event(l_event_id).array_value_num('header_index'))
72809 ,'N'
72810 ) <> 'Y'
72811 THEN
72812 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72813 trace
72814 (p_msg => 'Trancaction revesal option is not Y '
72815 ,p_level => C_LEVEL_STATEMENT
72816 ,p_module => l_log_module);
72817 END IF;
72818
72819 --
72820 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
72821 --
72822 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72823 --
72824 -- set event info as cache for other routines to refer event attributes
72825 --
72826
72827 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
72828 l_previous_event_id := l_event_id;
72829
72830 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72831 (p_application_id => p_application_id
72832 ,p_primary_ledger_id => p_primary_ledger_id
72833 ,p_base_ledger_id => p_base_ledger_id
72834 ,p_target_ledger_id => p_target_ledger_id
72835 ,p_entity_id => l_array_entity_id(Idx)
72836 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
72837 ,p_entity_code => l_array_entity_code(Idx)
72838 ,p_transaction_num => l_array_transaction_num(Idx)
72839 ,p_event_id => l_array_event_id(Idx)
72840 ,p_event_class_code => l_array_class_code(Idx)
72841 ,p_event_type_code => l_array_event_type(Idx)
72842 ,p_event_number => l_array_event_number(Idx)
72843 ,p_event_date => l_array_event_date(Idx)
72844 ,p_transaction_date => l_array_transaction_date(Idx)
72845 ,p_reference_num_1 => l_array_reference_num_1(Idx)
72846 ,p_reference_num_2 => l_array_reference_num_2(Idx)
72847 ,p_reference_num_3 => l_array_reference_num_3(Idx)
72848 ,p_reference_num_4 => l_array_reference_num_4(Idx)
72849 ,p_reference_char_1 => l_array_reference_char_1(Idx)
72850 ,p_reference_char_2 => l_array_reference_char_2(Idx)
72851 ,p_reference_char_3 => l_array_reference_char_3(Idx)
72852 ,p_reference_char_4 => l_array_reference_char_4(Idx)
72853 ,p_reference_date_1 => l_array_reference_date_1(Idx)
72854 ,p_reference_date_2 => l_array_reference_date_2(Idx)
72855 ,p_reference_date_3 => l_array_reference_date_3(Idx)
72856 ,p_reference_date_4 => l_array_reference_date_4(Idx)
72857 ,p_event_created_by => l_array_event_created_by(Idx)
72858 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
72859 --
72860 END IF;
72861
72862
72863
72864 --
72865 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
72866
72867 l_acct_reversal_source := SUBSTR(NULL, 1,30);
72868
72869 IF l_continue_with_lines THEN
72870 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
72871 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72872
72873 xla_accounting_err_pkg.build_message
72874 (p_appli_s_name => 'XLA'
72875 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
72876 ,p_token_1 => 'LINE_NUMBER'
72877 ,p_value_1 => l_array_extract_line_num(Idx)
72878 ,p_token_2 => 'PRODUCT_NAME'
72879 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72880 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72881 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72882 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72883
72884 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
72885 --
72886 -- following sets the accounting attributes needed to reverse
72887 -- accounting for a distributeion
72888 --
72889
72890 --
72891 -- 5217187
72892 --
72893 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
72894 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
72895 g_array_event(l_event_id).array_value_num('header_index'));
72896 --
72897 --
72898
72899 -- No reversal code generated
72900
72901 xla_ae_lines_pkg.SetAcctReversalAttrs
72905 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
72902 (p_event_id => l_event_id
72903 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
72904 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72906 END IF;
72907
72908 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
72909 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
72910
72911 --
72912 AcctLineType_60 (
72913 p_application_id => p_application_id
72914 ,p_event_id => l_event_id
72915 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72916 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72917 ,p_actual_flag => l_actual_flag
72918 ,p_balance_type_code => l_balance_type_code
72919 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72920
72921 , p_source_26 => l_array_source_26(Idx)
72922 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
72923 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
72924 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
72925 , p_source_43 => l_array_source_43(Idx)
72926 , p_source_44 => l_array_source_44(Idx)
72927 , p_source_45 => l_array_source_45(Idx)
72928 , p_source_46 => l_array_source_46(Idx)
72929 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
72930 , p_source_48 => l_array_source_48(Idx)
72931 , p_source_49 => l_array_source_49(Idx)
72932 , p_source_50 => l_array_source_50(Idx)
72933 , p_source_51 => l_array_source_51(Idx)
72934 );
72935 If(l_balance_type_code = 'A') THEN
72936 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72937 END IF;
72938
72939 --
72940
72941
72942 --
72943 AcctLineType_61 (
72944 p_application_id => p_application_id
72945 ,p_event_id => l_event_id
72946 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72947 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72948 ,p_actual_flag => l_actual_flag
72949 ,p_balance_type_code => l_balance_type_code
72950 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72951
72952 , p_source_26 => l_array_source_26(Idx)
72953 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
72954 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
72955 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
72956 , p_source_43 => l_array_source_43(Idx)
72957 , p_source_44 => l_array_source_44(Idx)
72958 , p_source_45 => l_array_source_45(Idx)
72959 , p_source_46 => l_array_source_46(Idx)
72960 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
72961 , p_source_48 => l_array_source_48(Idx)
72962 , p_source_49 => l_array_source_49(Idx)
72963 , p_source_50 => l_array_source_50(Idx)
72964 , p_source_51 => l_array_source_51(Idx)
72965 );
72966 If(l_balance_type_code = 'A') THEN
72967 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72968 END IF;
72969
72970 --
72971
72972 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
72973 -- or secondary ledger that has different currency with primary
72974 -- or alc that is calculated by sla
72975 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72976 (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'))
72977
72978 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
72979 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
72980 AND (l_actual_flag = 'A')) THEN
72981 XLA_AE_LINES_PKG.CreateGainOrLossLines(
72982 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72983 ,p_application_id => p_application_id
72984 ,p_amb_context_code => 'DEFAULT'
72985 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
72986 ,p_event_class_code => C_EVENT_CLASS_CODE
72987 ,p_event_type_code => C_EVENT_TYPE_CODE
72988
72989 ,p_gain_ccid => -1
72990 ,p_loss_ccid => -1
72991
72992 ,p_actual_flag => l_actual_flag
72993 ,p_enc_flag => null
72994 ,p_actual_g_l_ref => l_actual_gain_loss_ref
72995 ,p_enc_g_l_ref => null
72996 );
72997 END IF;
72998 END IF;
72999 END IF;
73000
73001 ELSE
73002 --
73003 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
73004 --
73005 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73006 trace
73007 (p_msg => 'Trancaction revesal option is Y'
73008 ,p_level => C_LEVEL_STATEMENT
73009 ,p_module => l_log_module);
73010 END IF;
73011 END IF;
73012
73013 END LOOP;
73014 l_result := XLA_AE_LINES_PKG.InsertLines ;
73015 end loop;
73016 close line_cur;
73017
73018
73019 --
73020 -- insert headers into xla_ae_headers_gt table
73021 --
73022 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
73023
73024 -- insert into errors table here.
73025
73026 END LOOP;
73027
73028 --
73029 -- 4865292
73030 --
73031 -- Compare g_hdr_extract_count with event count in
73032 -- CreateHeadersAndLines.
73033 --
73034 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
73035
73036 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73037 trace (p_msg => '# rows extracted from header extract objects '
73038 || ' (running total): '
73039 || g_hdr_extract_count
73043
73040 ,p_level => C_LEVEL_STATEMENT
73041 ,p_module => l_log_module);
73042 END IF;
73044 CLOSE header_cur;
73045 --
73046
73047 --
73048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73049 trace
73050 (p_msg => 'END of EventClass_132'
73051 ,p_level => C_LEVEL_PROCEDURE
73052 ,p_module => l_log_module);
73053 END IF;
73054 --
73055 RETURN l_result;
73056 EXCEPTION
73057 WHEN xla_exceptions_pkg.application_exception THEN
73058
73059 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
73060
73061
73062 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
73063
73064 RAISE;
73065
73066 WHEN NO_DATA_FOUND THEN
73067
73068 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
73069 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
73070
73071 FOR header_record IN header_cur
73072 LOOP
73073 l_array_header_events(header_record.event_id) := header_record.event_id;
73074 END LOOP;
73075
73076 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
73077 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
73078
73079 fnd_file.put_line(fnd_file.LOG, ' ');
73080 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
73081 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
73082 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
73083
73084 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
73085 LOOP
73086 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
73087 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
73088 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
73089 END IF;
73090 END LOOP;
73091
73092 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
73093 fnd_file.put_line(fnd_file.LOG, ' ');
73094
73095
73096 xla_exceptions_pkg.raise_message
73097 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_132');
73098
73099
73100 WHEN OTHERS THEN
73101 xla_exceptions_pkg.raise_message
73102 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_132');
73103 END EventClass_132;
73104 --
73105
73106 ---------------------------------------
73107 --
73108 -- PRIVATE PROCEDURE
73109 -- insert_sources_133
73110 --
73111 ----------------------------------------
73112 --
73113 PROCEDURE insert_sources_133(
73114 p_target_ledger_id IN NUMBER
73115 , p_language IN VARCHAR2
73116 , p_sla_ledger_id IN NUMBER
73117 , p_pad_start_date IN DATE
73118 , p_pad_end_date IN DATE
73119 )
73120 IS
73121
73122 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT_ALL';
73123 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT';
73124 p_apps_owner VARCHAR2(30);
73125 l_log_module VARCHAR2(240);
73126 BEGIN
73127 IF g_log_enabled THEN
73128 l_log_module := C_DEFAULT_MODULE||'.insert_sources_133';
73129 END IF;
73130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73131
73132 trace
73133 (p_msg => 'BEGIN of insert_sources_133'
73134 ,p_level => C_LEVEL_PROCEDURE
73135 ,p_module => l_log_module);
73136
73137 END IF;
73138
73139 -- select APPS owner
73140 SELECT oracle_username
73141 INTO p_apps_owner
73142 FROM fnd_oracle_userid
73143 WHERE read_only_flag = 'U'
73144 ;
73145
73146 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73147 trace
73148 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
73149 ' - p_language = '||p_language||
73150 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
73151 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
73152 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
73153 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
73154 ,p_level => C_LEVEL_STATEMENT
73155 ,p_module => l_log_module);
73156 END IF;
73157
73158
73159 --
73160 INSERT INTO xla_diag_sources --hdr2
73161 (
73162 event_id
73163 , ledger_id
73164 , sla_ledger_id
73165 , description_language
73166 , object_name
73167 , object_type_code
73168 , line_number
73169 , source_application_id
73170 , source_type_code
73171 , source_code
73172 , source_value
73173 , source_meaning
73174 , created_by
73175 , creation_date
73176 , last_update_date
73177 , last_updated_by
73178 , last_update_login
73179 , program_update_date
73180 , program_application_id
73181 , program_id
73182 , request_id
73183 )
73184 SELECT
73185 event_id
73186 , p_target_ledger_id
73187 , p_sla_ledger_id
73188 , p_language
73189 , object_name
73190 , object_type_code
73191 , line_number
73195 , SUBSTR(source_value ,1,1996)
73192 , source_application_id
73193 , source_type_code
73194 , source_code
73196 , SUBSTR(source_meaning ,1,200)
73197 , xla_environment_pkg.g_Usr_Id
73198 , TRUNC(SYSDATE)
73199 , TRUNC(SYSDATE)
73200 , xla_environment_pkg.g_Usr_Id
73201 , xla_environment_pkg.g_Login_Id
73202 , TRUNC(SYSDATE)
73203 , xla_environment_pkg.g_Prog_Appl_Id
73204 , xla_environment_pkg.g_Prog_Id
73205 , xla_environment_pkg.g_Req_Id
73206 FROM (
73207 SELECT xet.event_id event_id
73208 , 0 line_number
73209 , CASE r
73210 WHEN 1 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73211 WHEN 2 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73212 WHEN 3 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73213 WHEN 4 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
73214 WHEN 5 THEN 'AR_BILL_TO_SITE_USES_S_V'
73215 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
73216 WHEN 7 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73217 WHEN 8 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73218 WHEN 9 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73219 WHEN 10 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73220 WHEN 11 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
73221
73222 ELSE null
73223 END object_name
73224 , CASE r
73225 WHEN 1 THEN 'HEADER'
73226 WHEN 2 THEN 'HEADER'
73227 WHEN 3 THEN 'HEADER'
73228 WHEN 4 THEN 'HEADER'
73229 WHEN 5 THEN 'HEADER'
73230 WHEN 6 THEN 'HEADER'
73231 WHEN 7 THEN 'HEADER'
73232 WHEN 8 THEN 'HEADER'
73233 WHEN 9 THEN 'HEADER'
73234 WHEN 10 THEN 'HEADER'
73235 WHEN 11 THEN 'HEADER'
73236
73237 ELSE null
73238 END object_type_code
73239 , CASE r
73240 WHEN 1 THEN '222'
73241 WHEN 2 THEN '222'
73242 WHEN 3 THEN '222'
73243 WHEN 4 THEN '222'
73244 WHEN 5 THEN '222'
73245 WHEN 6 THEN '222'
73246 WHEN 7 THEN '222'
73247 WHEN 8 THEN '222'
73248 WHEN 9 THEN '222'
73249 WHEN 10 THEN '222'
73250 WHEN 11 THEN '222'
73251
73252 ELSE null
73253 END source_application_id
73254 , 'S' source_type_code
73255 , CASE r
73256 WHEN 1 THEN 'JLBR_BANK_OCC_DESC'
73257 WHEN 2 THEN 'JLBR_DOCUMENT_NUMBER'
73258 WHEN 3 THEN 'JLBR_TRADE_NOTE_NUMBER'
73259 WHEN 4 THEN 'BILL_CUST_ACCOUNT_ID'
73260 WHEN 5 THEN 'BILL_USES_SITE_USE_ID'
73261 WHEN 6 THEN 'XLA_PARTY_TYPE'
73262 WHEN 7 THEN 'JLBR_OCCURRENCE_ID'
73263 WHEN 8 THEN 'JLBR_EXCHG_GAIN_CCID'
73264 WHEN 9 THEN 'JLBR_EXCHG_LOSS_CCID'
73265 WHEN 10 THEN 'JLBR_GL_DATE'
73266 WHEN 11 THEN 'JLBR_TRANSFER_TO_GL_FLAG'
73267
73268 ELSE null
73269 END source_code
73270 , CASE r
73271 WHEN 1 THEN TO_CHAR(h5.JLBR_BANK_OCC_DESC)
73272 WHEN 2 THEN TO_CHAR(h5.JLBR_DOCUMENT_NUMBER)
73273 WHEN 3 THEN TO_CHAR(h5.JLBR_TRADE_NOTE_NUMBER)
73274 WHEN 4 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
73275 WHEN 5 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
73276 WHEN 6 THEN TO_CHAR(h3.XLA_PARTY_TYPE)
73277 WHEN 7 THEN TO_CHAR(h5.JLBR_OCCURRENCE_ID)
73278 WHEN 8 THEN TO_CHAR(h5.JLBR_EXCHG_GAIN_CCID)
73279 WHEN 9 THEN TO_CHAR(h5.JLBR_EXCHG_LOSS_CCID)
73280 WHEN 10 THEN TO_CHAR(h5.JLBR_GL_DATE)
73281 WHEN 11 THEN TO_CHAR(h5.JLBR_TRANSFER_TO_GL_FLAG)
73282
73283 ELSE null
73284 END source_value
73285 , CASE r
73286 WHEN 11 THEN fvl116.meaning
73287
73288 ELSE null
73289 END source_meaning
73290 FROM xla_events_gt xet
73291 , AR_BILL_TO_CUSTOMERS_S_V h1
73292 , AR_BILL_TO_SITE_USES_S_V h2
73293 , AR_TRANSACTIONS_S_V h3
73294 , JL_BR_AR_COLL_OCC_DOCS_H_V h5
73295 , fnd_lookup_values fvl116
73296 ,(select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
73297 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73298 AND xet.event_class_code = C_EVENT_CLASS_CODE
73299 AND h5.event_id = xet.event_id
73300 AND h1.event_id (+) = h5.event_id
73301 AND h2.event_id (+) = h5.event_id
73302 AND h3.event_id (+) = h5.event_id
73303 AND fvl116.lookup_type(+) = 'YES_NO'
73304 AND fvl116.lookup_code(+) = h5.JLBR_TRANSFER_TO_GL_FLAG
73305 AND fvl116.view_application_id(+) = 0
73306 AND fvl116.language(+) = USERENV('LANG')
73307
73308 )
73309 ;
73310 --
73311 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73312
73313 trace
73317
73314 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
73315 ,p_level => C_LEVEL_STATEMENT
73316 ,p_module => l_log_module);
73318 END IF;
73319 --
73320
73321
73322
73323 --
73324 INSERT INTO xla_diag_sources --line2
73325 (
73326 event_id
73327 , ledger_id
73328 , sla_ledger_id
73329 , description_language
73330 , object_name
73331 , object_type_code
73332 , line_number
73333 , source_application_id
73334 , source_type_code
73335 , source_code
73336 , source_value
73337 , source_meaning
73338 , created_by
73339 , creation_date
73340 , last_update_date
73341 , last_updated_by
73342 , last_update_login
73343 , program_update_date
73344 , program_application_id
73345 , program_id
73346 , request_id
73347 )
73348 SELECT event_id
73349 , p_target_ledger_id
73350 , p_sla_ledger_id
73351 , p_language
73352 , object_name
73353 , object_type_code
73354 , line_number
73355 , source_application_id
73356 , source_type_code
73357 , source_code
73358 , SUBSTR(source_value,1,1996)
73359 , SUBSTR(source_meaning ,1,200)
73360 , xla_environment_pkg.g_Usr_Id
73361 , TRUNC(SYSDATE)
73362 , TRUNC(SYSDATE)
73363 , xla_environment_pkg.g_Usr_Id
73364 , xla_environment_pkg.g_Login_Id
73365 , TRUNC(SYSDATE)
73366 , xla_environment_pkg.g_Prog_Appl_Id
73367 , xla_environment_pkg.g_Prog_Id
73368 , xla_environment_pkg.g_Req_Id
73369 FROM (
73370 SELECT xet.event_id event_id
73371 , l4.line_number line_number
73372 , CASE r
73373 WHEN 1 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73374 WHEN 2 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73375 WHEN 3 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73376 WHEN 4 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73377 WHEN 5 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73378 WHEN 6 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73379 WHEN 7 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73380 WHEN 8 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73381 WHEN 9 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73382 WHEN 10 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73383 WHEN 11 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73384 WHEN 12 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73385 WHEN 13 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73386 WHEN 14 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73387 WHEN 15 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73388 WHEN 16 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73389 WHEN 17 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73390 WHEN 18 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73391 WHEN 19 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73392 WHEN 20 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73393 WHEN 21 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73394 WHEN 22 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73395 WHEN 23 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
73396
73397 ELSE null
73398 END object_name
73399 , CASE r
73400 WHEN 1 THEN 'LINE'
73401 WHEN 2 THEN 'LINE'
73402 WHEN 3 THEN 'LINE'
73403 WHEN 4 THEN 'LINE'
73404 WHEN 5 THEN 'LINE'
73405 WHEN 6 THEN 'LINE'
73406 WHEN 7 THEN 'LINE'
73407 WHEN 8 THEN 'LINE'
73408 WHEN 9 THEN 'LINE'
73409 WHEN 10 THEN 'LINE'
73410 WHEN 11 THEN 'LINE'
73411 WHEN 12 THEN 'LINE'
73412 WHEN 13 THEN 'LINE'
73413 WHEN 14 THEN 'LINE'
73414 WHEN 15 THEN 'LINE'
73415 WHEN 16 THEN 'LINE'
73416 WHEN 17 THEN 'LINE'
73417 WHEN 18 THEN 'LINE'
73418 WHEN 19 THEN 'LINE'
73419 WHEN 20 THEN 'LINE'
73420 WHEN 21 THEN 'LINE'
73421 WHEN 22 THEN 'LINE'
73422 WHEN 23 THEN 'LINE'
73423
73424 ELSE null
73425 END object_type_code
73426 , CASE r
73427 WHEN 1 THEN '222'
73428 WHEN 2 THEN '222'
73429 WHEN 3 THEN '222'
73430 WHEN 4 THEN '222'
73431 WHEN 5 THEN '222'
73432 WHEN 6 THEN '222'
73433 WHEN 7 THEN '222'
73434 WHEN 8 THEN '222'
73435 WHEN 9 THEN '222'
73436 WHEN 10 THEN '222'
73437 WHEN 11 THEN '222'
73438 WHEN 12 THEN '222'
73439 WHEN 13 THEN '222'
73440 WHEN 14 THEN '222'
73441 WHEN 15 THEN '222'
73442 WHEN 16 THEN '222'
73443 WHEN 17 THEN '222'
73444 WHEN 18 THEN '222'
73445 WHEN 19 THEN '222'
73446 WHEN 20 THEN '222'
73447 WHEN 21 THEN '222'
73448 WHEN 22 THEN '222'
73449 WHEN 23 THEN '222'
73450
73451 ELSE null
73452 END source_application_id
73453 , 'S' source_type_code
73454 , CASE r
73458 WHEN 4 THEN 'JLBR_CD_CASH_CCID'
73455 WHEN 1 THEN 'JLBR_BORDERO_TYPE'
73456 WHEN 2 THEN 'JLBR_CD_BANK_CHARGES_CCID'
73457 WHEN 3 THEN 'JLBR_CD_BIL_UND_DISC_CCID'
73459 WHEN 5 THEN 'JLBR_CD_DISC_ENDRSMNT_CCID'
73460 WHEN 6 THEN 'JLBR_CD_FACT_CHARGES_CCID'
73461 WHEN 7 THEN 'JLBR_DISTRIBUTION_TYPE'
73462 WHEN 8 THEN 'JLBR_ACCT_REVERSING_OPTN'
73463 WHEN 9 THEN 'JLBR_PRIOR_DIST_LINK_TYPE'
73464 WHEN 10 THEN 'JLBR_PRIOR_DIST_ID'
73465 WHEN 11 THEN 'JLBR_PRIOR_DOCUMENT_ID'
73466 WHEN 12 THEN 'JLBR_PRIOR_OCCURRENCE_ID'
73467 WHEN 13 THEN 'JLBR_DISTRIBUTION_ID'
73468 WHEN 14 THEN 'JLBR_DISTRIBUTION_LINK_TYPE'
73469 WHEN 15 THEN 'JLBR_ENTERED_AMT'
73470 WHEN 16 THEN 'JLBR_ENTERED_CURRENCY_CODE'
73471 WHEN 17 THEN 'JLBR_CONVERSION_DATE'
73472 WHEN 18 THEN 'JLBR_CONVERSION_RATE'
73473 WHEN 19 THEN 'JLBR_CONVERSION_RATE_TYPE'
73474 WHEN 20 THEN 'JLBR_ACCTD_AMT'
73478
73475 WHEN 21 THEN 'JLBR_REVERSED_DIST_ID'
73476 WHEN 22 THEN 'JLBR_REVERSED_DIST_LINK_TYPE'
73477 WHEN 23 THEN 'JLBR_BANK_OCC_TYPE'
73479 ELSE null
73480 END source_code
73481 , CASE r
73482 WHEN 1 THEN TO_CHAR(l4.JLBR_BORDERO_TYPE)
73483 WHEN 2 THEN TO_CHAR(l4.JLBR_CD_BANK_CHARGES_CCID)
73484 WHEN 3 THEN TO_CHAR(l4.JLBR_CD_BIL_UND_DISC_CCID)
73485 WHEN 4 THEN TO_CHAR(l4.JLBR_CD_CASH_CCID)
73486 WHEN 5 THEN TO_CHAR(l4.JLBR_CD_DISC_ENDRSMNT_CCID)
73487 WHEN 6 THEN TO_CHAR(l4.JLBR_CD_FACT_CHARGES_CCID)
73488 WHEN 7 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_TYPE)
73489 WHEN 8 THEN TO_CHAR(l4.JLBR_ACCT_REVERSING_OPTN)
73490 WHEN 9 THEN TO_CHAR(l4.JLBR_PRIOR_DIST_LINK_TYPE)
73491 WHEN 10 THEN TO_CHAR(l4.JLBR_PRIOR_DIST_ID)
73492 WHEN 11 THEN TO_CHAR(l4.JLBR_PRIOR_DOCUMENT_ID)
73493 WHEN 12 THEN TO_CHAR(l4.JLBR_PRIOR_OCCURRENCE_ID)
73494 WHEN 13 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_ID)
73495 WHEN 14 THEN TO_CHAR(l4.JLBR_DISTRIBUTION_LINK_TYPE)
73496 WHEN 15 THEN TO_CHAR(l4.JLBR_ENTERED_AMT)
73497 WHEN 16 THEN TO_CHAR(l4.JLBR_ENTERED_CURRENCY_CODE)
73498 WHEN 17 THEN TO_CHAR(l4.JLBR_CONVERSION_DATE)
73499 WHEN 18 THEN TO_CHAR(l4.JLBR_CONVERSION_RATE)
73500 WHEN 19 THEN TO_CHAR(l4.JLBR_CONVERSION_RATE_TYPE)
73501 WHEN 20 THEN TO_CHAR(l4.JLBR_ACCTD_AMT)
73502 WHEN 21 THEN TO_CHAR(l4.JLBR_REVERSED_DIST_ID)
73503 WHEN 22 THEN TO_CHAR(l4.JLBR_REVERSED_DIST_LINK_TYPE)
73504 WHEN 23 THEN TO_CHAR(l4.JLBR_BANK_OCC_TYPE)
73505
73506 ELSE null
73507 END source_value
73508 , CASE r
73509 WHEN 1 THEN fvl7.meaning
73510 WHEN 7 THEN fvl66.meaning
73511 WHEN 8 THEN fvl67.meaning
73512 WHEN 23 THEN fvl85.meaning
73513
73514 ELSE null
73515 END source_meaning
73516 FROM xla_events_gt xet
73517 , JL_BR_AR_COLL_DOC_DISTS_L_V l4
73518 , fnd_lookup_values fvl7
73519 , fnd_lookup_values fvl66
73520 , fnd_lookup_values fvl67
73521 , fnd_lookup_values fvl85
73522 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
73523 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73524 AND xet.event_class_code = C_EVENT_CLASS_CODE
73525 AND l4.event_id = xet.event_id
73526 AND fvl7.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
73527 AND fvl7.lookup_code(+) = l4.JLBR_BORDERO_TYPE
73528 AND fvl7.view_application_id(+) = 0
73529 AND fvl7.language(+) = USERENV('LANG')
73530 AND fvl66.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
73531 AND fvl66.lookup_code(+) = l4.JLBR_DISTRIBUTION_TYPE
73532 AND fvl66.view_application_id(+) = 0
73533 AND fvl66.language(+) = USERENV('LANG')
73534 AND fvl67.lookup_type(+) = 'YES_NO'
73535 AND fvl67.lookup_code(+) = l4.JLBR_ACCT_REVERSING_OPTN
73536 AND fvl67.view_application_id(+) = 0
73537 AND fvl67.language(+) = USERENV('LANG')
73538 AND fvl85.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
73539 AND fvl85.lookup_code(+) = l4.JLBR_BANK_OCC_TYPE
73540 AND fvl85.view_application_id(+) = 0
73541 AND fvl85.language(+) = USERENV('LANG')
73542
73543 )
73544 ;
73545 --
73549 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
73546 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73547
73548 trace
73550 ,p_level => C_LEVEL_STATEMENT
73551 ,p_module => l_log_module);
73552
73553 END IF;
73554
73555
73556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73557 trace
73558 (p_msg => 'END of insert_sources_133'
73559 ,p_level => C_LEVEL_PROCEDURE
73560 ,p_module => l_log_module);
73561 END IF;
73562 EXCEPTION
73563 WHEN xla_exceptions_pkg.application_exception THEN
73564 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73565 trace
73566 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73567 ,p_level => C_LEVEL_EXCEPTION
73568 ,p_module => l_log_module);
73569 END IF;
73570 RAISE;
73571 WHEN OTHERS THEN
73572 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73573 trace
73574 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73575 ,p_level => C_LEVEL_EXCEPTION
73576 ,p_module => l_log_module);
73577 END IF;
73578 xla_exceptions_pkg.raise_message
73579 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_133');
73580 END insert_sources_133;
73581 --
73582
73583 ---------------------------------------
73584 --
73585 -- PRIVATE FUNCTION
73586 -- EventClass_133
73587 --
73588 ----------------------------------------
73589 --
73590 FUNCTION EventClass_133
73591 (p_application_id IN NUMBER
73592 ,p_base_ledger_id IN NUMBER
73593 ,p_target_ledger_id IN NUMBER
73594 ,p_language IN VARCHAR2
73595 ,p_currency_code IN VARCHAR2
73596 ,p_sla_ledger_id IN NUMBER
73597 ,p_pad_start_date IN DATE
73598 ,p_pad_end_date IN DATE
73599 ,p_primary_ledger_id IN NUMBER)
73600 RETURN BOOLEAN IS
73601 --
73602 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT_ALL';
73603 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT';
73604
73605 l_calculate_acctd_flag VARCHAR2(1) :='Y';
73606 l_calculate_g_l_flag VARCHAR2(1) :='Y';
73607 --
73608 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73609 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73610 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73611 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73612 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73613 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73614 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73615 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73616 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73617 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73618 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73619 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73620 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73621 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73622 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73623 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73624 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73625 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73626 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73627 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73628 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73629 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73630 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
73631 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73632 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
73633 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
73634
73635 l_event_id NUMBER;
73636 l_previous_event_id NUMBER;
73637 l_first_event_id NUMBER;
73638 l_last_event_id NUMBER;
73639
73640 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
73641 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73642 --
73643 --
73644 l_result BOOLEAN := TRUE;
73645 l_rows NUMBER := 1000;
73646 l_event_type_name VARCHAR2(80) := 'All';
73647 l_event_class_name VARCHAR2(80) := 'Factoring Collection Occurrence Documents';
73648 l_description VARCHAR2(4000);
73649 l_transaction_reversal NUMBER;
73650 l_ae_header_id NUMBER;
73651 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
73652 l_log_module VARCHAR2(240);
73653 --
73654 l_acct_reversal_source VARCHAR2(30);
73655 l_trx_reversal_source VARCHAR2(30);
73656
73657 l_continue_with_lines BOOLEAN := TRUE;
73658 --
73659 l_acc_rev_gl_date_source DATE; -- 4262811
73660 --
73661 type t_array_event_id is table of number index by binary_integer;
73662
73663 l_rec_array_event t_rec_array_event;
73664 l_null_rec_array_event t_rec_array_event;
73668 l_balance_type_code VARCHAR2(1) :=NULL;
73665 l_array_ae_header_id xla_number_array_type;
73666 l_actual_flag VARCHAR2(1) := NULL;
73667 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
73669 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
73670
73671 --
73672 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
73673 --
73674
73675 TYPE t_array_source_4 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_BANK_OCC_DESC%TYPE INDEX BY BINARY_INTEGER;
73676 TYPE t_array_source_5 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_DOCUMENT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
73677 TYPE t_array_source_6 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRADE_NOTE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
73678 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
73679 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
73680 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
73681 TYPE t_array_source_82 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
73682 TYPE t_array_source_113 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
73683 TYPE t_array_source_114 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
73684 TYPE t_array_source_115 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_GL_DATE%TYPE INDEX BY BINARY_INTEGER;
73685 TYPE t_array_source_116 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRANSFER_TO_GL_FLAG%TYPE INDEX BY BINARY_INTEGER;
73686
73687 TYPE t_array_source_7 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BORDERO_TYPE%TYPE INDEX BY BINARY_INTEGER;
73688 TYPE t_array_source_15 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
73689 TYPE t_array_source_17 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BIL_UND_DISC_CCID%TYPE INDEX BY BINARY_INTEGER;
73690 TYPE t_array_source_18 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_CASH_CCID%TYPE INDEX BY BINARY_INTEGER;
73691 TYPE t_array_source_20 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_DISC_ENDRSMNT_CCID%TYPE INDEX BY BINARY_INTEGER;
73692 TYPE t_array_source_21 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_FACT_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
73693 TYPE t_array_source_66 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
73694 TYPE t_array_source_67 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCT_REVERSING_OPTN%TYPE INDEX BY BINARY_INTEGER;
73695 TYPE t_array_source_69 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
73696 TYPE t_array_source_71 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73697 TYPE t_array_source_72 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DOCUMENT_ID%TYPE INDEX BY BINARY_INTEGER;
73698 TYPE t_array_source_73 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
73699 TYPE t_array_source_74 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
73700 TYPE t_array_source_75 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
73701 TYPE t_array_source_76 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
73702 TYPE t_array_source_77 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
73703 TYPE t_array_source_78 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
73704 TYPE t_array_source_79 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
73705 TYPE t_array_source_80 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
73706 TYPE t_array_source_81 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
73707 TYPE t_array_source_83 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73711 l_array_source_4 t_array_source_4;
73708 TYPE t_array_source_84 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
73709 TYPE t_array_source_85 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BANK_OCC_TYPE%TYPE INDEX BY BINARY_INTEGER;
73710
73712 l_array_source_5 t_array_source_5;
73713 l_array_source_6 t_array_source_6;
73714 l_array_source_37 t_array_source_37;
73715 l_array_source_38 t_array_source_38;
73716 l_array_source_39 t_array_source_39;
73717 l_array_source_82 t_array_source_82;
73718 l_array_source_113 t_array_source_113;
73719 l_array_source_114 t_array_source_114;
73720 l_array_source_115 t_array_source_115;
73721 l_array_source_116 t_array_source_116;
73722 l_array_source_116_meaning t_array_lookup_meaning;
73723
73727 l_array_source_17 t_array_source_17;
73724 l_array_source_7 t_array_source_7;
73725 l_array_source_7_meaning t_array_lookup_meaning;
73726 l_array_source_15 t_array_source_15;
73728 l_array_source_18 t_array_source_18;
73729 l_array_source_20 t_array_source_20;
73730 l_array_source_21 t_array_source_21;
73731 l_array_source_66 t_array_source_66;
73732 l_array_source_66_meaning t_array_lookup_meaning;
73733 l_array_source_67 t_array_source_67;
73734 l_array_source_67_meaning t_array_lookup_meaning;
73735 l_array_source_69 t_array_source_69;
73736 l_array_source_71 t_array_source_71;
73737 l_array_source_72 t_array_source_72;
73738 l_array_source_73 t_array_source_73;
73739 l_array_source_74 t_array_source_74;
73740 l_array_source_75 t_array_source_75;
73741 l_array_source_76 t_array_source_76;
73742 l_array_source_77 t_array_source_77;
73743 l_array_source_78 t_array_source_78;
73744 l_array_source_79 t_array_source_79;
73745 l_array_source_80 t_array_source_80;
73746 l_array_source_81 t_array_source_81;
73747 l_array_source_83 t_array_source_83;
73748 l_array_source_84 t_array_source_84;
73749 l_array_source_85 t_array_source_85;
73750 l_array_source_85_meaning t_array_lookup_meaning;
73751
73752 --
73753 CURSOR header_cur
73754 IS
73755 SELECT /*+ leading(xet) cardinality(xet,1) */
73756 -- Event Class Code: FACTORING_OCC_DOCUMENT
73757 xet.entity_id
73758 ,xet.legal_entity_id
73759 ,xet.entity_code
73760 ,xet.transaction_number
73761 ,xet.event_id
73762 ,xet.event_class_code
73763 ,xet.event_type_code
73764 ,xet.event_number
73765 ,xet.event_date
73766 ,xet.transaction_date
73767 ,xet.reference_num_1
73768 ,xet.reference_num_2
73769 ,xet.reference_num_3
73770 ,xet.reference_num_4
73771 ,xet.reference_char_1
73772 ,xet.reference_char_2
73773 ,xet.reference_char_3
73774 ,xet.reference_char_4
73775 ,xet.reference_date_1
73776 ,xet.reference_date_2
73777 ,xet.reference_date_3
73778 ,xet.reference_date_4
73779 ,xet.event_created_by
73780 ,xet.budgetary_control_flag
73781 , h5.JLBR_BANK_OCC_DESC source_4
73782 , h5.JLBR_DOCUMENT_NUMBER source_5
73783 , h5.JLBR_TRADE_NOTE_NUMBER source_6
73784 , h1.BILL_CUST_ACCOUNT_ID source_37
73785 , h2.BILL_USES_SITE_USE_ID source_38
73786 , h3.XLA_PARTY_TYPE source_39
73787 , h5.JLBR_OCCURRENCE_ID source_82
73788 , h5.JLBR_EXCHG_GAIN_CCID source_113
73789 , h5.JLBR_EXCHG_LOSS_CCID source_114
73790 , h5.JLBR_GL_DATE source_115
73791 , h5.JLBR_TRANSFER_TO_GL_FLAG source_116
73792 , fvl116.meaning source_116_meaning
73793 FROM xla_events_gt xet
73794 , AR_BILL_TO_CUSTOMERS_S_V h1
73795 , AR_BILL_TO_SITE_USES_S_V h2
73796 , AR_TRANSACTIONS_S_V h3
73797 , JL_BR_AR_COLL_OCC_DOCS_H_V h5
73798 , fnd_lookup_values fvl116
73799 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
73800 and xet.event_class_code = C_EVENT_CLASS_CODE
73801 and xet.event_status_code <> 'N' AND h5.event_id = xet.event_id
73802 AND h1.event_id (+) = h5.event_id
73803 AND h2.event_id (+) = h5.event_id
73804 AND h3.event_id (+) = h5.event_id
73805 AND fvl116.lookup_type(+) = 'YES_NO'
73806 AND fvl116.lookup_code(+) = h5.JLBR_TRANSFER_TO_GL_FLAG
73807 AND fvl116.view_application_id(+) = 0
73808 AND fvl116.language(+) = USERENV('LANG')
73809
73810 ORDER BY event_id
73811 ;
73812
73813
73814 --
73815 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
73816 IS
73817 SELECT /*+ leading(xet) cardinality(xet,1) */
73818 -- Event Class Code: FACTORING_OCC_DOCUMENT
73819 xet.entity_id
73820 ,xet.legal_entity_id
73821 ,xet.entity_code
73822 ,xet.transaction_number
73823 ,xet.event_id
73824 ,xet.event_class_code
73825 ,xet.event_type_code
73826 ,xet.event_number
73827 ,xet.event_date
73828 ,xet.transaction_date
73829 ,xet.reference_num_1
73830 ,xet.reference_num_2
73831 ,xet.reference_num_3
73832 ,xet.reference_num_4
73833 ,xet.reference_char_1
73834 ,xet.reference_char_2
73835 ,xet.reference_char_3
73836 ,xet.reference_char_4
73837 ,xet.reference_date_1
73838 ,xet.reference_date_2
73839 ,xet.reference_date_3
73840 ,xet.reference_date_4
73841 ,xet.event_created_by
73842 ,xet.budgetary_control_flag
73843 , l4.LINE_NUMBER
73844 , l4.JLBR_BORDERO_TYPE source_7
73845 , fvl7.meaning source_7_meaning
73846 , l4.JLBR_CD_BANK_CHARGES_CCID source_15
73847 , l4.JLBR_CD_BIL_UND_DISC_CCID source_17
73848 , l4.JLBR_CD_CASH_CCID source_18
73849 , l4.JLBR_CD_DISC_ENDRSMNT_CCID source_20
73850 , l4.JLBR_CD_FACT_CHARGES_CCID source_21
73851 , l4.JLBR_DISTRIBUTION_TYPE source_66
73852 , fvl66.meaning source_66_meaning
73853 , l4.JLBR_ACCT_REVERSING_OPTN source_67
73854 , fvl67.meaning source_67_meaning
73855 , l4.JLBR_PRIOR_DIST_LINK_TYPE source_69
73856 , l4.JLBR_PRIOR_DIST_ID source_71
73857 , l4.JLBR_PRIOR_DOCUMENT_ID source_72
73858 , l4.JLBR_PRIOR_OCCURRENCE_ID source_73
73859 , l4.JLBR_DISTRIBUTION_ID source_74
73860 , l4.JLBR_DISTRIBUTION_LINK_TYPE source_75
73861 , l4.JLBR_ENTERED_AMT source_76
73862 , l4.JLBR_ENTERED_CURRENCY_CODE source_77
73863 , l4.JLBR_CONVERSION_DATE source_78
73864 , l4.JLBR_CONVERSION_RATE source_79
73865 , l4.JLBR_CONVERSION_RATE_TYPE source_80
73866 , l4.JLBR_ACCTD_AMT source_81
73869 , l4.JLBR_BANK_OCC_TYPE source_85
73870 , fvl85.meaning source_85_meaning
73871 FROM xla_events_gt xet
73872 , JL_BR_AR_COLL_DOC_DISTS_L_V l4
73873 , fnd_lookup_values fvl7
73874 , fnd_lookup_values fvl66
73875 , fnd_lookup_values fvl67
73876 , fnd_lookup_values fvl85
73877 WHERE xet.event_id between x_first_event_id and x_last_event_id
73878 and xet.event_date between p_pad_start_date and p_pad_end_date
73879 and xet.event_class_code = C_EVENT_CLASS_CODE
73880 and xet.event_status_code <> 'N' AND l4.event_id = xet.event_id
73881 AND fvl7.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
73882 AND fvl7.lookup_code(+) = l4.JLBR_BORDERO_TYPE
73883 AND fvl7.view_application_id(+) = 0
73884 AND fvl7.language(+) = USERENV('LANG')
73885 AND fvl66.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
73886 AND fvl66.lookup_code(+) = l4.JLBR_DISTRIBUTION_TYPE
73887 AND fvl66.view_application_id(+) = 0
73888 AND fvl66.language(+) = USERENV('LANG')
73889 AND fvl67.lookup_type(+) = 'YES_NO'
73890 AND fvl67.lookup_code(+) = l4.JLBR_ACCT_REVERSING_OPTN
73891 AND fvl67.view_application_id(+) = 0
73892 AND fvl67.language(+) = USERENV('LANG')
73893 AND fvl85.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
73894 AND fvl85.lookup_code(+) = l4.JLBR_BANK_OCC_TYPE
73895 AND fvl85.view_application_id(+) = 0
73896 AND fvl85.language(+) = USERENV('LANG')
73897 ;
73898
73899 --
73900 BEGIN
73901 IF g_log_enabled THEN
73902 l_log_module := C_DEFAULT_MODULE||'.EventClass_133';
73903 END IF;
73904 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73905 trace
73906 (p_msg => 'BEGIN of EventClass_133'
73907 ,p_level => C_LEVEL_PROCEDURE
73908 ,p_module => l_log_module);
73909 END IF;
73910
73911 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73912 trace
73913 (p_msg => 'p_application_id = '||p_application_id||
73914 ' - p_base_ledger_id = '||p_base_ledger_id||
73915 ' - p_target_ledger_id = '||p_target_ledger_id||
73916 ' - p_language = '||p_language||
73917 ' - p_currency_code = '||p_currency_code||
73918 ' - p_sla_ledger_id = '||p_sla_ledger_id
73919 ,p_level => C_LEVEL_STATEMENT
73920 ,p_module => l_log_module);
73921 END IF;
73922 --
73923 -- initialze arrays
73924 --
73925 g_array_event.DELETE;
73926 l_rec_array_event := l_null_rec_array_event;
73927 --
73928 --------------------------------------
73929 -- 4262811 Initialze MPA Line Number
73930 --------------------------------------
73931 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
73932
73933 --
73934
73935 --
73936 OPEN header_cur;
73937 --
73938 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73939 trace
73940 (p_msg => 'SQL - FETCH header_cur'
73941 ,p_level => C_LEVEL_STATEMENT
73942 ,p_module => l_log_module);
73943 END IF;
73944 --
73945 LOOP
73946 FETCH header_cur BULK COLLECT INTO
73947 l_array_entity_id
73948 , l_array_legal_entity_id
73949 , l_array_entity_code
73950 , l_array_transaction_num
73951 , l_array_event_id
73952 , l_array_class_code
73953 , l_array_event_type
73954 , l_array_event_number
73955 , l_array_event_date
73956 , l_array_transaction_date
73957 , l_array_reference_num_1
73958 , l_array_reference_num_2
73959 , l_array_reference_num_3
73960 , l_array_reference_num_4
73961 , l_array_reference_char_1
73962 , l_array_reference_char_2
73963 , l_array_reference_char_3
73964 , l_array_reference_char_4
73965 , l_array_reference_date_1
73966 , l_array_reference_date_2
73967 , l_array_reference_date_3
73968 , l_array_reference_date_4
73969 , l_array_event_created_by
73970 , l_array_budgetary_control_flag
73971 , l_array_source_4
73972 , l_array_source_5
73973 , l_array_source_6
73974 , l_array_source_37
73975 , l_array_source_38
73976 , l_array_source_39
73977 , l_array_source_82
73978 , l_array_source_113
73979 , l_array_source_114
73980 , l_array_source_115
73981 , l_array_source_116
73982 , l_array_source_116_meaning
73983 LIMIT l_rows;
73984 --
73985 IF (C_LEVEL_EVENT >= g_log_level) THEN
73986 trace
73987 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
73988 ,p_level => C_LEVEL_EVENT
73989 ,p_module => l_log_module);
73990 END IF;
73991 --
73992 EXIT WHEN l_array_entity_id.COUNT = 0;
73993
73994 -- initialize arrays
73995 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
73996 XLA_AE_LINES_PKG.g_rec_lines := NULL;
73997
73998 --
73999 -- Bug 4458708
74000 --
74001 XLA_AE_LINES_PKG.g_LineNumber := 0;
74002
74003
74004 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
74005 g_last_hdr_idx := l_array_event_id.LAST;
74006 --
74007 -- loop for the headers. Each iteration is for each header extract row
74008 -- fetched in header cursor
74009 --
74010 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
74011
74012 --
74013 -- set event info as cache for other routines to refer event attributes
74014 --
74015 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74016 (p_application_id => p_application_id
74017 ,p_primary_ledger_id => p_primary_ledger_id
74018 ,p_base_ledger_id => p_base_ledger_id
74019 ,p_target_ledger_id => p_target_ledger_id
74020 ,p_entity_id => l_array_entity_id(hdr_idx)
74021 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
74022 ,p_entity_code => l_array_entity_code(hdr_idx)
74023 ,p_transaction_num => l_array_transaction_num(hdr_idx)
74024 ,p_event_id => l_array_event_id(hdr_idx)
74025 ,p_event_class_code => l_array_class_code(hdr_idx)
74026 ,p_event_type_code => l_array_event_type(hdr_idx)
74027 ,p_event_number => l_array_event_number(hdr_idx)
74028 ,p_event_date => l_array_event_date(hdr_idx)
74029 ,p_transaction_date => l_array_transaction_date(hdr_idx)
74030 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
74031 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
74032 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
74033 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
74034 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
74035 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
74036 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
74037 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
74038 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
74039 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
74040 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
74041 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
74042 ,p_event_created_by => l_array_event_created_by(hdr_idx)
74043 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
74044
74045 --
74046 -- set the status of entry to C_VALID (0)
74047 --
74048 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74049
74050 --
74051 -- initialize a row for ae header
74052 --
74053 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
74054
74055 l_event_id := l_array_event_id(hdr_idx);
74056
74057 --
74058 -- storing the hdr_idx for event. May be used by line cursor.
74059 --
74063 -- store sources from header extract. This can be improved to
73867 , l4.JLBR_REVERSED_DIST_ID source_83
73868 , l4.JLBR_REVERSED_DIST_LINK_TYPE source_84
74060 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
74061
74062 --
74064 -- store only those sources from header extract that may be used in lines
74065 --
74066
74067 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
74068 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
74069 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
74070 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
74071 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
74072 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
74073 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
74074 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
74075 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
74076 g_array_event(l_event_id).array_value_date('source_115') := l_array_source_115(hdr_idx);
74077 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
74078 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
74079
74080 --
74081 -- initilaize the status of ae headers for diffrent balance types
74082 -- the status is initialised to C_NOT_CREATED (2)
74083 --
74084 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74085 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74086 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74087
74088 --
74089 -- call api to validate and store accounting attributes for header
74090 --
74091
74092 ------------------------------------------------------------
74093 -- Accrual Reversal : to get date for Standard Source (NONE)
74094 ------------------------------------------------------------
74095 l_acc_rev_gl_date_source := NULL;
74096
74097 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
74098 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_115');
74099 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
74100 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_116');
74101
74102
74103 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
74104
74105 XLA_AE_HEADER_PKG.SetJeCategoryName;
74106
74107 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
74108 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
74109 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
74110 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
74111 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
74112
74113
74114 -- No header level analytical criteria
74115
74116 --
74117 --accounting attribute enhancement, bug 3612931
74118 --
74119 l_trx_reversal_source := SUBSTR(NULL, 1,30);
74120
74121 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
74122 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74123
74124 xla_accounting_err_pkg.build_message
74125 (p_appli_s_name => 'XLA'
74126 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
74127 ,p_token_1 => 'ACCT_ATTR_NAME'
74128 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
74129 ,p_token_2 => 'PRODUCT_NAME'
74130 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74131 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74132 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74133 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74134
74135 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
74136 --
74137 -- following sets the accounting attributes needed to reverse
74138 -- accounting for a distributeion
74139 --
74140 xla_ae_lines_pkg.SetTrxReversalAttrs
74141 (p_event_id => l_event_id
74142 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
74143 ,p_trx_reversal_source => l_trx_reversal_source);
74144
74145 END IF;
74146
74147
74148 ----------------------------------------------------------------
74149 -- 4262811 - update the header statuses to invalid in need be
74150 ----------------------------------------------------------------
74151 --
74152 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
74153
74154
74155 -----------------------------------------------
74156 -- No accrual reversal for the event class/type
74157 -----------------------------------------------
74158 ----------------------------------------------------------------
74159
74160 --
74161 -- this ends the header loop iteration for one bulk fetch
74162 --
74163 END LOOP;
74164
74165 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
74166 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
74167
74168 --
74169 -- insert dummy rows into lines gt table that were created due to
74173 l_result := XLA_AE_LINES_PKG.InsertLines;
74170 -- transaction reversals
74171 --
74172 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
74174 END IF;
74175
74176 --
74177 -- reset the temp_line_num for each set of events fetched from header
74178 -- cursor rather than doing it for each new event in line cursor
74179 -- Bug 3939231
74180 --
74181 xla_ae_lines_pkg.g_temp_line_num := 0;
74182
74183
74184
74185 --
74186 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
74187 --
74188 --
74189 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74190
74191 trace
74192 (p_msg => 'SQL - FETCH line_cur'
74193 ,p_level => C_LEVEL_STATEMENT
74194 ,p_module => l_log_module);
74195
74196 END IF;
74197 --
74198 --
74199 LOOP
74200 --
74201 FETCH line_cur BULK COLLECT INTO
74202 l_array_entity_id
74203 , l_array_legal_entity_id
74204 , l_array_entity_code
74205 , l_array_transaction_num
74206 , l_array_event_id
74207 , l_array_class_code
74208 , l_array_event_type
74209 , l_array_event_number
74210 , l_array_event_date
74211 , l_array_transaction_date
74212 , l_array_reference_num_1
74213 , l_array_reference_num_2
74214 , l_array_reference_num_3
74215 , l_array_reference_num_4
74216 , l_array_reference_char_1
74217 , l_array_reference_char_2
74218 , l_array_reference_char_3
74219 , l_array_reference_char_4
74220 , l_array_reference_date_1
74221 , l_array_reference_date_2
74222 , l_array_reference_date_3
74223 , l_array_reference_date_4
74224 , l_array_event_created_by
74225 , l_array_budgetary_control_flag
74226 , l_array_extract_line_num
74227 , l_array_source_7
74228 , l_array_source_7_meaning
74229 , l_array_source_15
74230 , l_array_source_17
74231 , l_array_source_18
74232 , l_array_source_20
74233 , l_array_source_21
74234 , l_array_source_66
74235 , l_array_source_66_meaning
74236 , l_array_source_67
74237 , l_array_source_67_meaning
74238 , l_array_source_69
74239 , l_array_source_71
74240 , l_array_source_72
74241 , l_array_source_73
74242 , l_array_source_74
74243 , l_array_source_75
74244 , l_array_source_76
74245 , l_array_source_77
74246 , l_array_source_78
74247 , l_array_source_79
74248 , l_array_source_80
74249 , l_array_source_81
74250 , l_array_source_83
74251 , l_array_source_84
74252 , l_array_source_85
74253 , l_array_source_85_meaning
74254 LIMIT l_rows;
74255
74256 --
74257 IF (C_LEVEL_EVENT >= g_log_level) THEN
74258 trace
74259 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
74260 ,p_level => C_LEVEL_EVENT
74261 ,p_module => l_log_module);
74262 END IF;
74263 --
74264 EXIT WHEN l_array_entity_id.count = 0;
74265
74266 XLA_AE_LINES_PKG.g_rec_lines := null;
74267
74268 --
74269 -- Bug 4458708
74270 --
74271 XLA_AE_LINES_PKG.g_LineNumber := 0;
74272 --
74273 --
74274
74275 FOR Idx IN 1..l_array_event_id.count LOOP
74276 --
74277 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
74278 --
74279 l_event_id := l_array_event_id(idx); -- 5648433
74280
74281 --
74282 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74283 --
74284
74285 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
74286 (g_array_event(l_event_id).array_value_num('header_index'))
74287 ,'N'
74288 ) <> 'Y'
74289 THEN
74290 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74291 trace
74292 (p_msg => 'Trancaction revesal option is not Y '
74293 ,p_level => C_LEVEL_STATEMENT
74294 ,p_module => l_log_module);
74295 END IF;
74296
74297 --
74298 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
74299 --
74300 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74301 --
74302 -- set event info as cache for other routines to refer event attributes
74303 --
74304
74305 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
74306 l_previous_event_id := l_event_id;
74307
74308 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74309 (p_application_id => p_application_id
74310 ,p_primary_ledger_id => p_primary_ledger_id
74311 ,p_base_ledger_id => p_base_ledger_id
74312 ,p_target_ledger_id => p_target_ledger_id
74313 ,p_entity_id => l_array_entity_id(Idx)
74314 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
74315 ,p_entity_code => l_array_entity_code(Idx)
74316 ,p_transaction_num => l_array_transaction_num(Idx)
74317 ,p_event_id => l_array_event_id(Idx)
74318 ,p_event_class_code => l_array_class_code(Idx)
74319 ,p_event_type_code => l_array_event_type(Idx)
74323 ,p_reference_num_1 => l_array_reference_num_1(Idx)
74320 ,p_event_number => l_array_event_number(Idx)
74321 ,p_event_date => l_array_event_date(Idx)
74322 ,p_transaction_date => l_array_transaction_date(Idx)
74324 ,p_reference_num_2 => l_array_reference_num_2(Idx)
74325 ,p_reference_num_3 => l_array_reference_num_3(Idx)
74326 ,p_reference_num_4 => l_array_reference_num_4(Idx)
74327 ,p_reference_char_1 => l_array_reference_char_1(Idx)
74328 ,p_reference_char_2 => l_array_reference_char_2(Idx)
74329 ,p_reference_char_3 => l_array_reference_char_3(Idx)
74330 ,p_reference_char_4 => l_array_reference_char_4(Idx)
74331 ,p_reference_date_1 => l_array_reference_date_1(Idx)
74332 ,p_reference_date_2 => l_array_reference_date_2(Idx)
74333 ,p_reference_date_3 => l_array_reference_date_3(Idx)
74334 ,p_reference_date_4 => l_array_reference_date_4(Idx)
74335 ,p_event_created_by => l_array_event_created_by(Idx)
74336 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
74337 --
74338 END IF;
74339
74343 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
74340
74341
74342 --
74344
74345 l_acct_reversal_source := SUBSTR(l_array_source_67(Idx), 1,30);
74346
74347 IF l_continue_with_lines THEN
74348 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
74349 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74350
74351 xla_accounting_err_pkg.build_message
74352 (p_appli_s_name => 'XLA'
74353 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
74354 ,p_token_1 => 'LINE_NUMBER'
74355 ,p_value_1 => l_array_extract_line_num(Idx)
74356 ,p_token_2 => 'PRODUCT_NAME'
74357 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74358 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74359 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74360 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74361
74362 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
74363 --
74364 -- following sets the accounting attributes needed to reverse
74365 -- accounting for a distributeion
74366 --
74367
74368 --
74369 -- 5217187
74370 --
74371 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
74372 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
74373 g_array_event(l_event_id).array_value_num('header_index'));
74374 --
74375 --
74376
74377 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
74378 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_67(Idx);
74379 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
74380 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_74(Idx);
74381 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
74382 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_75(Idx);
74383 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
74384 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_39');
74385 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
74386 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_83(Idx);
74387 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
74391 xla_ae_lines_pkg.SetAcctReversalAttrs
74388 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_84(Idx);
74389
74390
74392 (p_event_id => l_event_id
74393 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
74394 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74395 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
74396 END IF;
74397
74398 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
74399 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
74400
74401 --
74402 AcctLineType_70 (
74403 p_application_id => p_application_id
74404 ,p_event_id => l_event_id
74405 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74406 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74407 ,p_actual_flag => l_actual_flag
74408 ,p_balance_type_code => l_balance_type_code
74409 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74410
74411 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74412 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
74413 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
74414 , p_source_7 => l_array_source_7(Idx)
74415 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74416 , p_source_15 => l_array_source_15(Idx)
74417 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
74418 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
74419 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74420 , p_source_66 => l_array_source_66(Idx)
74421 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74422 , p_source_67 => l_array_source_67(Idx)
74423 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74424 , p_source_69 => l_array_source_69(Idx)
74425 , p_source_71 => l_array_source_71(Idx)
74426 , p_source_72 => l_array_source_72(Idx)
74427 , p_source_73 => l_array_source_73(Idx)
74428 , p_source_74 => l_array_source_74(Idx)
74429 , p_source_75 => l_array_source_75(Idx)
74430 , p_source_76 => l_array_source_76(Idx)
74431 , p_source_77 => l_array_source_77(Idx)
74432 , p_source_78 => l_array_source_78(Idx)
74433 , p_source_79 => l_array_source_79(Idx)
74434 , p_source_80 => l_array_source_80(Idx)
74435 , p_source_81 => l_array_source_81(Idx)
74436 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74437 , p_source_83 => l_array_source_83(Idx)
74438 , p_source_84 => l_array_source_84(Idx)
74439 );
74440 If(l_balance_type_code = 'A') THEN
74441 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74442 END IF;
74443
74444 --
74445
74446
74447 --
74448 AcctLineType_71 (
74449 p_application_id => p_application_id
74450 ,p_event_id => l_event_id
74451 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74452 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74453 ,p_actual_flag => l_actual_flag
74454 ,p_balance_type_code => l_balance_type_code
74455 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74456
74457 , p_source_7 => l_array_source_7(Idx)
74458 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74459 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74460 , p_source_66 => l_array_source_66(Idx)
74461 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74462 , p_source_67 => l_array_source_67(Idx)
74463 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74464 , p_source_69 => l_array_source_69(Idx)
74465 , p_source_71 => l_array_source_71(Idx)
74466 , p_source_72 => l_array_source_72(Idx)
74467 , p_source_73 => l_array_source_73(Idx)
74468 , p_source_74 => l_array_source_74(Idx)
74469 , p_source_75 => l_array_source_75(Idx)
74470 , p_source_76 => l_array_source_76(Idx)
74471 , p_source_77 => l_array_source_77(Idx)
74472 , p_source_81 => l_array_source_81(Idx)
74473 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74474 , p_source_83 => l_array_source_83(Idx)
74475 , p_source_84 => l_array_source_84(Idx)
74476 , p_source_85 => l_array_source_85(Idx)
74477 , p_source_85_meaning => l_array_source_85_meaning(Idx)
74478 );
74479 If(l_balance_type_code = 'A') THEN
74480 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74481 END IF;
74482
74483 --
74484
74485
74486 --
74487 AcctLineType_72 (
74488 p_application_id => p_application_id
74489 ,p_event_id => l_event_id
74490 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74491 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74492 ,p_actual_flag => l_actual_flag
74493 ,p_balance_type_code => l_balance_type_code
74494 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74495
74496 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74497 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
74498 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
74499 , p_source_7 => l_array_source_7(Idx)
74500 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74501 , p_source_17 => l_array_source_17(Idx)
74502 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
74503 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
74504 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74505 , p_source_66 => l_array_source_66(Idx)
74506 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74507 , p_source_67 => l_array_source_67(Idx)
74508 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74509 , p_source_69 => l_array_source_69(Idx)
74510 , p_source_71 => l_array_source_71(Idx)
74511 , p_source_72 => l_array_source_72(Idx)
74512 , p_source_73 => l_array_source_73(Idx)
74513 , p_source_74 => l_array_source_74(Idx)
74517 , p_source_78 => l_array_source_78(Idx)
74514 , p_source_75 => l_array_source_75(Idx)
74515 , p_source_76 => l_array_source_76(Idx)
74516 , p_source_77 => l_array_source_77(Idx)
74518 , p_source_79 => l_array_source_79(Idx)
74519 , p_source_80 => l_array_source_80(Idx)
74520 , p_source_81 => l_array_source_81(Idx)
74521 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74522 , p_source_83 => l_array_source_83(Idx)
74523 , p_source_84 => l_array_source_84(Idx)
74524 , p_source_85 => l_array_source_85(Idx)
74525 , p_source_85_meaning => l_array_source_85_meaning(Idx)
74526 );
74527 If(l_balance_type_code = 'A') THEN
74528 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74529 END IF;
74530
74531 --
74532
74533
74534 --
74535 AcctLineType_73 (
74536 p_application_id => p_application_id
74537 ,p_event_id => l_event_id
74538 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74539 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74540 ,p_actual_flag => l_actual_flag
74541 ,p_balance_type_code => l_balance_type_code
74542 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74543
74544 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74545 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
74546 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
74547 , p_source_7 => l_array_source_7(Idx)
74548 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74549 , p_source_18 => l_array_source_18(Idx)
74550 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
74551 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
74552 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74553 , p_source_66 => l_array_source_66(Idx)
74554 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74555 , p_source_67 => l_array_source_67(Idx)
74556 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74557 , p_source_69 => l_array_source_69(Idx)
74558 , p_source_71 => l_array_source_71(Idx)
74559 , p_source_72 => l_array_source_72(Idx)
74560 , p_source_73 => l_array_source_73(Idx)
74561 , p_source_74 => l_array_source_74(Idx)
74562 , p_source_75 => l_array_source_75(Idx)
74563 , p_source_76 => l_array_source_76(Idx)
74564 , p_source_77 => l_array_source_77(Idx)
74565 , p_source_78 => l_array_source_78(Idx)
74566 , p_source_79 => l_array_source_79(Idx)
74567 , p_source_80 => l_array_source_80(Idx)
74568 , p_source_81 => l_array_source_81(Idx)
74569 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74570 , p_source_83 => l_array_source_83(Idx)
74571 , p_source_84 => l_array_source_84(Idx)
74572 );
74573 If(l_balance_type_code = 'A') THEN
74574 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74575 END IF;
74576
74577 --
74578
74579
74580 --
74581 AcctLineType_74 (
74582 p_application_id => p_application_id
74583 ,p_event_id => l_event_id
74584 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74585 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74586 ,p_actual_flag => l_actual_flag
74587 ,p_balance_type_code => l_balance_type_code
74588 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74589
74590 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74591 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
74592 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
74593 , p_source_7 => l_array_source_7(Idx)
74594 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74595 , p_source_20 => l_array_source_20(Idx)
74596 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
74597 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
74598 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74599 , p_source_66 => l_array_source_66(Idx)
74600 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74601 , p_source_67 => l_array_source_67(Idx)
74602 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74603 , p_source_69 => l_array_source_69(Idx)
74604 , p_source_71 => l_array_source_71(Idx)
74605 , p_source_72 => l_array_source_72(Idx)
74606 , p_source_73 => l_array_source_73(Idx)
74607 , p_source_74 => l_array_source_74(Idx)
74608 , p_source_75 => l_array_source_75(Idx)
74609 , p_source_76 => l_array_source_76(Idx)
74610 , p_source_77 => l_array_source_77(Idx)
74611 , p_source_78 => l_array_source_78(Idx)
74612 , p_source_79 => l_array_source_79(Idx)
74613 , p_source_80 => l_array_source_80(Idx)
74614 , p_source_81 => l_array_source_81(Idx)
74615 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74616 , p_source_83 => l_array_source_83(Idx)
74617 , p_source_84 => l_array_source_84(Idx)
74618 , p_source_85 => l_array_source_85(Idx)
74619 , p_source_85_meaning => l_array_source_85_meaning(Idx)
74620 );
74621 If(l_balance_type_code = 'A') THEN
74622 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74623 END IF;
74624
74625 --
74626
74627
74628 --
74629 AcctLineType_75 (
74630 p_application_id => p_application_id
74631 ,p_event_id => l_event_id
74635 ,p_balance_type_code => l_balance_type_code
74632 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74633 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74634 ,p_actual_flag => l_actual_flag
74636 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74637
74638 , p_source_7 => l_array_source_7(Idx)
74639 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74640 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74641 , p_source_66 => l_array_source_66(Idx)
74642 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74643 , p_source_67 => l_array_source_67(Idx)
74644 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74645 , p_source_69 => l_array_source_69(Idx)
74646 , p_source_71 => l_array_source_71(Idx)
74647 , p_source_72 => l_array_source_72(Idx)
74648 , p_source_73 => l_array_source_73(Idx)
74649 , p_source_74 => l_array_source_74(Idx)
74650 , p_source_75 => l_array_source_75(Idx)
74651 , p_source_76 => l_array_source_76(Idx)
74652 , p_source_77 => l_array_source_77(Idx)
74653 , p_source_81 => l_array_source_81(Idx)
74654 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74655 , p_source_83 => l_array_source_83(Idx)
74656 , p_source_84 => l_array_source_84(Idx)
74657 , p_source_85 => l_array_source_85(Idx)
74658 , p_source_85_meaning => l_array_source_85_meaning(Idx)
74659 );
74660 If(l_balance_type_code = 'A') THEN
74661 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74662 END IF;
74663
74664 --
74665
74666
74667 --
74668 AcctLineType_76 (
74669 p_application_id => p_application_id
74670 ,p_event_id => l_event_id
74671 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74672 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74673 ,p_actual_flag => l_actual_flag
74674 ,p_balance_type_code => l_balance_type_code
74675 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74676
74677 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74678 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
74679 , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
74680 , p_source_7 => l_array_source_7(Idx)
74681 , p_source_7_meaning => l_array_source_7_meaning(Idx)
74682 , p_source_21 => l_array_source_21(Idx)
74683 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
74687 , p_source_66_meaning => l_array_source_66_meaning(Idx)
74684 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
74685 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
74686 , p_source_66 => l_array_source_66(Idx)
74688 , p_source_67 => l_array_source_67(Idx)
74689 , p_source_67_meaning => l_array_source_67_meaning(Idx)
74690 , p_source_69 => l_array_source_69(Idx)
74691 , p_source_71 => l_array_source_71(Idx)
74692 , p_source_72 => l_array_source_72(Idx)
74693 , p_source_73 => l_array_source_73(Idx)
74694 , p_source_74 => l_array_source_74(Idx)
74695 , p_source_75 => l_array_source_75(Idx)
74696 , p_source_76 => l_array_source_76(Idx)
74697 , p_source_77 => l_array_source_77(Idx)
74698 , p_source_78 => l_array_source_78(Idx)
74699 , p_source_79 => l_array_source_79(Idx)
74700 , p_source_80 => l_array_source_80(Idx)
74701 , p_source_81 => l_array_source_81(Idx)
74702 , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
74703 , p_source_83 => l_array_source_83(Idx)
74704 , p_source_84 => l_array_source_84(Idx)
74705 );
74706 If(l_balance_type_code = 'A') THEN
74707 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74708 END IF;
74709
74710 --
74711
74712 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
74713 -- or secondary ledger that has different currency with primary
74714 -- or alc that is calculated by sla
74715 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
74716 (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'))
74717
74718 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
74719 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
74720 AND (l_actual_flag = 'A')) THEN
74721 XLA_AE_LINES_PKG.CreateGainOrLossLines(
74722 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74723 ,p_application_id => p_application_id
74724 ,p_amb_context_code => 'DEFAULT'
74725 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
74726 ,p_event_class_code => C_EVENT_CLASS_CODE
74727 ,p_event_type_code => C_EVENT_TYPE_CODE
74728
74729 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_113'))
74730 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_114'))
74731
74732 ,p_actual_flag => l_actual_flag
74733 ,p_enc_flag => null
74734 ,p_actual_g_l_ref => l_actual_gain_loss_ref
74735 ,p_enc_g_l_ref => null
74736 );
74737 END IF;
74738 END IF;
74739 END IF;
74740
74741 ELSE
74742 --
74743 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74744 --
74745 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74746 trace
74747 (p_msg => 'Trancaction revesal option is Y'
74748 ,p_level => C_LEVEL_STATEMENT
74749 ,p_module => l_log_module);
74750 END IF;
74751 END IF;
74752
74753 END LOOP;
74754 l_result := XLA_AE_LINES_PKG.InsertLines ;
74755 end loop;
74756 close line_cur;
74757
74758
74759 --
74760 -- insert headers into xla_ae_headers_gt table
74761 --
74762 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
74763
74764 -- insert into errors table here.
74765
74766 END LOOP;
74767
74768 --
74769 -- 4865292
74770 --
74771 -- Compare g_hdr_extract_count with event count in
74772 -- CreateHeadersAndLines.
74773 --
74774 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
74775
74776 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74777 trace (p_msg => '# rows extracted from header extract objects '
74778 || ' (running total): '
74779 || g_hdr_extract_count
74780 ,p_level => C_LEVEL_STATEMENT
74781 ,p_module => l_log_module);
74782 END IF;
74783
74784 CLOSE header_cur;
74785 --
74786
74787 --
74788 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74789 trace
74790 (p_msg => 'END of EventClass_133'
74791 ,p_level => C_LEVEL_PROCEDURE
74792 ,p_module => l_log_module);
74793 END IF;
74794 --
74795 RETURN l_result;
74796 EXCEPTION
74797 WHEN xla_exceptions_pkg.application_exception THEN
74798
74799 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74800
74801
74802 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74803
74804 RAISE;
74805
74806 WHEN NO_DATA_FOUND THEN
74807
74808 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74809 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74810
74811 FOR header_record IN header_cur
74812 LOOP
74813 l_array_header_events(header_record.event_id) := header_record.event_id;
74814 END LOOP;
74815
74816 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
74817 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
74818
74819 fnd_file.put_line(fnd_file.LOG, ' ');
74820 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
74821 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
74825 LOOP
74822 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
74823
74824 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
74826 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
74827 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
74828 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
74829 END IF;
74830 END LOOP;
74831
74832 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
74833 fnd_file.put_line(fnd_file.LOG, ' ');
74834
74835
74836 xla_exceptions_pkg.raise_message
74837 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_133');
74838
74839
74840 WHEN OTHERS THEN
74841 xla_exceptions_pkg.raise_message
74842 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_133');
74843 END EventClass_133;
74844 --
74845
74846 ---------------------------------------
74847 --
74848 -- PRIVATE PROCEDURE
74849 -- insert_sources_134
74850 --
74851 ----------------------------------------
74852 --
74853 PROCEDURE insert_sources_134(
74854 p_target_ledger_id IN NUMBER
74855 , p_language IN VARCHAR2
74856 , p_sla_ledger_id IN NUMBER
74857 , p_pad_start_date IN DATE
74858 , p_pad_end_date IN DATE
74859 )
74860 IS
74861
74862 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE_ALL';
74863 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE';
74864 p_apps_owner VARCHAR2(30);
74865 l_log_module VARCHAR2(240);
74866 BEGIN
74867 IF g_log_enabled THEN
74868 l_log_module := C_DEFAULT_MODULE||'.insert_sources_134';
74869 END IF;
74870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74871
74872 trace
74873 (p_msg => 'BEGIN of insert_sources_134'
74874 ,p_level => C_LEVEL_PROCEDURE
74875 ,p_module => l_log_module);
74876
74877 END IF;
74878
74879 -- select APPS owner
74880 SELECT oracle_username
74881 INTO p_apps_owner
74882 FROM fnd_oracle_userid
74883 WHERE read_only_flag = 'U'
74884 ;
74885
74886 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74887 trace
74888 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
74889 ' - p_language = '||p_language||
74890 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
74891 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
74892 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
74893 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
74894 ,p_level => C_LEVEL_STATEMENT
74895 ,p_module => l_log_module);
74896 END IF;
74897
74898
74899 --
74900 INSERT INTO xla_diag_sources --hdr2
74901 (
74902 event_id
74903 , ledger_id
74904 , sla_ledger_id
74905 , description_language
74906 , object_name
74907 , object_type_code
74908 , line_number
74909 , source_application_id
74910 , source_type_code
74911 , source_code
74912 , source_value
74913 , source_meaning
74914 , created_by
74915 , creation_date
74916 , last_update_date
74917 , last_updated_by
74918 , last_update_login
74919 , program_update_date
74920 , program_application_id
74921 , program_id
74922 , request_id
74923 )
74924 SELECT
74925 event_id
74926 , p_target_ledger_id
74927 , p_sla_ledger_id
74928 , p_language
74929 , object_name
74930 , object_type_code
74931 , line_number
74932 , source_application_id
74933 , source_type_code
74934 , source_code
74935 , SUBSTR(source_value ,1,1996)
74936 , SUBSTR(source_meaning ,1,200)
74937 , xla_environment_pkg.g_Usr_Id
74938 , TRUNC(SYSDATE)
74939 , TRUNC(SYSDATE)
74940 , xla_environment_pkg.g_Usr_Id
74941 , xla_environment_pkg.g_Login_Id
74942 , TRUNC(SYSDATE)
74943 , xla_environment_pkg.g_Prog_Appl_Id
74944 , xla_environment_pkg.g_Prog_Id
74945 , xla_environment_pkg.g_Req_Id
74946 FROM (
74947 SELECT xet.event_id event_id
74948 , 0 line_number
74949 , CASE r
74950 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
74951 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
74952 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
74953 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
74954 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
74955 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
74956 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
74957
74958 ELSE null
74959 END object_name
74960 , CASE r
74961 WHEN 1 THEN 'HEADER'
74962 WHEN 2 THEN 'HEADER'
74963 WHEN 3 THEN 'HEADER'
74964 WHEN 4 THEN 'HEADER'
74965 WHEN 5 THEN 'HEADER'
74969 ELSE null
74966 WHEN 6 THEN 'HEADER'
74967 WHEN 7 THEN 'HEADER'
74968
74970 END object_type_code
74971 , CASE r
74972 WHEN 1 THEN '222'
74973 WHEN 2 THEN '222'
74974 WHEN 3 THEN '222'
74975 WHEN 4 THEN '222'
74976 WHEN 5 THEN '222'
74977 WHEN 6 THEN '222'
74978 WHEN 7 THEN '222'
74979
74980 ELSE null
74981 END source_application_id
74982 , 'S' source_type_code
74983 , CASE r
74984 WHEN 1 THEN 'TRX_DOC_SEQUENCE_VALUE'
74985 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
74986 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
74987 WHEN 4 THEN 'XLA_PARTY_TYPE'
74988 WHEN 5 THEN 'TRX_INVOICE_CURRENCY_CODE'
74989 WHEN 6 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
74990 WHEN 7 THEN 'TRX_DOC_SEQUENCE_ID'
74991
74992 ELSE null
74993 END source_code
74994 , CASE r
74995 WHEN 1 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
74996 WHEN 2 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
74997 WHEN 3 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
74998 WHEN 4 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
74999 WHEN 5 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
75000 WHEN 6 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
75001 WHEN 7 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
75002
75003 ELSE null
75004 END source_value
75005 , null source_meaning
75006 FROM xla_events_gt xet
75007 , AR_BILL_TO_CUSTOMERS_S_V h1
75008 , AR_BILL_TO_SITE_USES_S_V h2
75009 , AR_TRANSACTIONS_S_V h5
75010 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
75011 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75012 AND xet.event_class_code = C_EVENT_CLASS_CODE
75013 AND h1.event_id = xet.event_id
75014 AND h2.event_id = h1.event_id
75015 AND h5.event_id = h1.event_id
75016
75017 )
75018 ;
75019 --
75020 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75021
75022 trace
75026
75023 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
75024 ,p_level => C_LEVEL_STATEMENT
75025 ,p_module => l_log_module);
75027 END IF;
75028 --
75029
75030
75031
75032 --
75033 INSERT INTO xla_diag_sources --line2
75034 (
75035 event_id
75036 , ledger_id
75037 , sla_ledger_id
75038 , description_language
75039 , object_name
75040 , object_type_code
75041 , line_number
75042 , source_application_id
75043 , source_type_code
75044 , source_code
75045 , source_value
75046 , source_meaning
75047 , created_by
75048 , creation_date
75049 , last_update_date
75050 , last_updated_by
75051 , last_update_login
75052 , program_update_date
75053 , program_application_id
75054 , program_id
75055 , request_id
75056 )
75057 SELECT event_id
75058 , p_target_ledger_id
75059 , p_sla_ledger_id
75060 , p_language
75061 , object_name
75062 , object_type_code
75063 , line_number
75064 , source_application_id
75065 , source_type_code
75066 , source_code
75067 , SUBSTR(source_value,1,1996)
75068 , SUBSTR(source_meaning ,1,200)
75069 , xla_environment_pkg.g_Usr_Id
75070 , TRUNC(SYSDATE)
75071 , TRUNC(SYSDATE)
75072 , xla_environment_pkg.g_Usr_Id
75073 , xla_environment_pkg.g_Login_Id
75074 , TRUNC(SYSDATE)
75075 , xla_environment_pkg.g_Prog_Appl_Id
75076 , xla_environment_pkg.g_Prog_Id
75077 , xla_environment_pkg.g_Req_Id
75078 FROM (
75079 SELECT xet.event_id event_id
75080 , l4.line_number line_number
75081 , CASE r
75082 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
75083 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
75084 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
75085 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
75086 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
75087 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
75088 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
75089 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
75090 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
75091
75092 ELSE null
75093 END object_name
75094 , CASE r
75095 WHEN 1 THEN 'LINE'
75096 WHEN 2 THEN 'LINE'
75097 WHEN 3 THEN 'LINE'
75098 WHEN 4 THEN 'LINE'
75099 WHEN 5 THEN 'LINE'
75100 WHEN 6 THEN 'LINE'
75101 WHEN 7 THEN 'LINE'
75102 WHEN 8 THEN 'LINE'
75103 WHEN 9 THEN 'LINE'
75104
75105 ELSE null
75106 END object_type_code
75107 , CASE r
75108 WHEN 1 THEN '222'
75109 WHEN 2 THEN '222'
75110 WHEN 3 THEN '222'
75111 WHEN 4 THEN '222'
75112 WHEN 5 THEN '222'
75113 WHEN 6 THEN '222'
75114 WHEN 7 THEN '222'
75115 WHEN 8 THEN '222'
75116 WHEN 9 THEN '222'
75117
75118 ELSE null
75119 END source_application_id
75120 , 'S' source_type_code
75121 , CASE r
75122 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
75123 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
75124 WHEN 3 THEN 'TRX_LINE_DIST_ID'
75125 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
75126 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
75127 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
75128 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
75129 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
75130 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
75131
75132 ELSE null
75133 END source_code
75134 , CASE r
75135 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
75136 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
75137 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
75138 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
75139 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
75140 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
75141 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
75142 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
75143 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
75144
75145 ELSE null
75146 END source_value
75147 , null source_meaning
75148 FROM xla_events_gt xet
75149 , AR_CUST_TRX_LINES_BASE_V l3
75150 , AR_CUST_TRX_LINES_L_V l4
75151 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
75152 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75153 AND xet.event_class_code = C_EVENT_CLASS_CODE
75154 AND l3.event_id = xet.event_id
75155 AND l4.event_id = l3.event_id
75156 AND l4.line_number = l3.line_number
75157
75158 )
75162
75159 ;
75160 --
75161 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75163 trace
75164 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
75165 ,p_level => C_LEVEL_STATEMENT
75166 ,p_module => l_log_module);
75167
75168 END IF;
75169
75170
75171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75172 trace
75173 (p_msg => 'END of insert_sources_134'
75174 ,p_level => C_LEVEL_PROCEDURE
75175 ,p_module => l_log_module);
75176 END IF;
75177 EXCEPTION
75178 WHEN xla_exceptions_pkg.application_exception THEN
75179 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75180 trace
75181 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75182 ,p_level => C_LEVEL_EXCEPTION
75183 ,p_module => l_log_module);
75184 END IF;
75185 RAISE;
75186 WHEN OTHERS THEN
75187 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75188 trace
75189 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75190 ,p_level => C_LEVEL_EXCEPTION
75191 ,p_module => l_log_module);
75192 END IF;
75193 xla_exceptions_pkg.raise_message
75194 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_134');
75195 END insert_sources_134;
75196 --
75197
75198 ---------------------------------------
75199 --
75200 -- PRIVATE FUNCTION
75201 -- EventClass_134
75202 --
75203 ----------------------------------------
75204 --
75205 FUNCTION EventClass_134
75206 (p_application_id IN NUMBER
75207 ,p_base_ledger_id IN NUMBER
75208 ,p_target_ledger_id IN NUMBER
75209 ,p_language IN VARCHAR2
75210 ,p_currency_code IN VARCHAR2
75211 ,p_sla_ledger_id IN NUMBER
75212 ,p_pad_start_date IN DATE
75213 ,p_pad_end_date IN DATE
75214 ,p_primary_ledger_id IN NUMBER)
75215 RETURN BOOLEAN IS
75216 --
75217 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE_ALL';
75218 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE';
75219
75220 l_calculate_acctd_flag VARCHAR2(1) :='N';
75221 l_calculate_g_l_flag VARCHAR2(1) :='N';
75222 --
75223 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75224 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75225 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75226 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75227 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75228 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75229 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75230 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75231 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75232 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75233 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75234 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75235 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75236 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75237 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75238 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75239 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75240 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75241 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75242 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75243 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75244 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75245 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
75246 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75247 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
75248 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
75249
75250 l_event_id NUMBER;
75251 l_previous_event_id NUMBER;
75252 l_first_event_id NUMBER;
75253 l_last_event_id NUMBER;
75254
75255 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
75256 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75257 --
75258 --
75259 l_result BOOLEAN := TRUE;
75260 l_rows NUMBER := 1000;
75261 l_event_type_name VARCHAR2(80) := 'All';
75262 l_event_class_name VARCHAR2(80) := 'Guarantee';
75263 l_description VARCHAR2(4000);
75264 l_transaction_reversal NUMBER;
75265 l_ae_header_id NUMBER;
75269 l_acct_reversal_source VARCHAR2(30);
75266 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
75267 l_log_module VARCHAR2(240);
75268 --
75270 l_trx_reversal_source VARCHAR2(30);
75271
75272 l_continue_with_lines BOOLEAN := TRUE;
75273 --
75274 l_acc_rev_gl_date_source DATE; -- 4262811
75275 --
75276 type t_array_event_id is table of number index by binary_integer;
75277
75278 l_rec_array_event t_rec_array_event;
75279 l_null_rec_array_event t_rec_array_event;
75280 l_array_ae_header_id xla_number_array_type;
75281 l_actual_flag VARCHAR2(1) := NULL;
75282 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
75283 l_balance_type_code VARCHAR2(1) :=NULL;
75284 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
75285
75286 --
75287 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
75288 --
75289
75290 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
75291 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
75292 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
75293 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
75294 TYPE t_array_source_47 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
75295 TYPE t_array_source_111 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
75296 TYPE t_array_source_112 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
75297
75298 TYPE t_array_source_26 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
75299 TYPE t_array_source_43 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
75300 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
75301 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
75302 TYPE t_array_source_46 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
75303 TYPE t_array_source_48 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
75304 TYPE t_array_source_49 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
75305 TYPE t_array_source_50 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
75306 TYPE t_array_source_51 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
75307
75308 l_array_source_3 t_array_source_3;
75309 l_array_source_37 t_array_source_37;
75310 l_array_source_38 t_array_source_38;
75311 l_array_source_39 t_array_source_39;
75312 l_array_source_47 t_array_source_47;
75313 l_array_source_111 t_array_source_111;
75314 l_array_source_112 t_array_source_112;
75315
75316 l_array_source_26 t_array_source_26;
75317 l_array_source_43 t_array_source_43;
75318 l_array_source_44 t_array_source_44;
75319 l_array_source_45 t_array_source_45;
75320 l_array_source_46 t_array_source_46;
75321 l_array_source_48 t_array_source_48;
75322 l_array_source_49 t_array_source_49;
75323 l_array_source_50 t_array_source_50;
75324 l_array_source_51 t_array_source_51;
75325
75326 --
75327 CURSOR header_cur
75328 IS
75329 SELECT /*+ leading(xet) cardinality(xet,1) */
75330 -- Event Class Code: GUARANTEE
75331 xet.entity_id
75332 ,xet.legal_entity_id
75333 ,xet.entity_code
75334 ,xet.transaction_number
75335 ,xet.event_id
75336 ,xet.event_class_code
75337 ,xet.event_type_code
75338 ,xet.event_number
75339 ,xet.event_date
75340 ,xet.transaction_date
75341 ,xet.reference_num_1
75342 ,xet.reference_num_2
75343 ,xet.reference_num_3
75344 ,xet.reference_num_4
75345 ,xet.reference_char_1
75346 ,xet.reference_char_2
75347 ,xet.reference_char_3
75348 ,xet.reference_char_4
75349 ,xet.reference_date_1
75350 ,xet.reference_date_2
75351 ,xet.reference_date_3
75352 ,xet.reference_date_4
75353 ,xet.event_created_by
75354 ,xet.budgetary_control_flag
75355 , h5.TRX_DOC_SEQUENCE_VALUE source_3
75356 , h1.BILL_CUST_ACCOUNT_ID source_37
75357 , h2.BILL_USES_SITE_USE_ID source_38
75358 , h5.XLA_PARTY_TYPE source_39
75359 , h5.TRX_INVOICE_CURRENCY_CODE source_47
75360 , h5.TRX_DOC_SEQUENCE_CATEGORY source_111
75361 , h5.TRX_DOC_SEQUENCE_ID source_112
75362 FROM xla_events_gt xet
75363 , AR_BILL_TO_CUSTOMERS_S_V h1
75364 , AR_BILL_TO_SITE_USES_S_V h2
75365 , AR_TRANSACTIONS_S_V h5
75366 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
75367 and xet.event_class_code = C_EVENT_CLASS_CODE
75371
75368 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
75369 AND h2.event_id = h1.event_id
75370 AND h5.event_id = h1.event_id
75372 ORDER BY event_id
75373 ;
75374
75375
75376 --
75377 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
75378 IS
75379 SELECT /*+ leading(xet) cardinality(xet,1) */
75380 -- Event Class Code: GUARANTEE
75381 xet.entity_id
75382 ,xet.legal_entity_id
75383 ,xet.entity_code
75384 ,xet.transaction_number
75385 ,xet.event_id
75386 ,xet.event_class_code
75387 ,xet.event_type_code
75388 ,xet.event_number
75389 ,xet.event_date
75390 ,xet.transaction_date
75391 ,xet.reference_num_1
75392 ,xet.reference_num_2
75393 ,xet.reference_num_3
75394 ,xet.reference_num_4
75395 ,xet.reference_char_1
75396 ,xet.reference_char_2
75397 ,xet.reference_char_3
75398 ,xet.reference_char_4
75399 ,xet.reference_date_1
75400 ,xet.reference_date_2
75401 ,xet.reference_date_3
75402 ,xet.reference_date_4
75403 ,xet.event_created_by
75404 ,xet.budgetary_control_flag
75405 , l3.LINE_NUMBER
75406 , l4.TRX_LINE_DIST_CCID source_26
75407 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_43
75408 , l4.TRX_LINE_DIST_ID source_44
75409 , l4.TRX_DISTRIBUTION_TYPE source_45
75410 , l4.TRX_LINE_DIST_AMT source_46
75411 , l3.TRX_LINE_CUR_CONVERSION_DATE source_48
75412 , l3.TRX_LINE_CUR_CONVERSION_RATE source_49
75413 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_50
75414 , l3.TRX_LINE_ACCTD_AMT source_51
75415 FROM xla_events_gt xet
75419 and xet.event_date between p_pad_start_date and p_pad_end_date
75416 , AR_CUST_TRX_LINES_BASE_V l3
75417 , AR_CUST_TRX_LINES_L_V l4
75418 WHERE xet.event_id between x_first_event_id and x_last_event_id
75420 and xet.event_class_code = C_EVENT_CLASS_CODE
75421 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
75422 AND l4.event_id = l3.event_id
75423 AND l4.line_number = l3.line_number
75424 ;
75425
75426 --
75427 BEGIN
75428 IF g_log_enabled THEN
75429 l_log_module := C_DEFAULT_MODULE||'.EventClass_134';
75430 END IF;
75431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75432 trace
75433 (p_msg => 'BEGIN of EventClass_134'
75434 ,p_level => C_LEVEL_PROCEDURE
75435 ,p_module => l_log_module);
75436 END IF;
75437
75438 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75439 trace
75440 (p_msg => 'p_application_id = '||p_application_id||
75441 ' - p_base_ledger_id = '||p_base_ledger_id||
75442 ' - p_target_ledger_id = '||p_target_ledger_id||
75443 ' - p_language = '||p_language||
75444 ' - p_currency_code = '||p_currency_code||
75445 ' - p_sla_ledger_id = '||p_sla_ledger_id
75446 ,p_level => C_LEVEL_STATEMENT
75447 ,p_module => l_log_module);
75448 END IF;
75449 --
75450 -- initialze arrays
75451 --
75452 g_array_event.DELETE;
75453 l_rec_array_event := l_null_rec_array_event;
75454 --
75455 --------------------------------------
75456 -- 4262811 Initialze MPA Line Number
75457 --------------------------------------
75458 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
75459
75460 --
75461
75462 --
75463 OPEN header_cur;
75464 --
75465 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75466 trace
75467 (p_msg => 'SQL - FETCH header_cur'
75468 ,p_level => C_LEVEL_STATEMENT
75469 ,p_module => l_log_module);
75470 END IF;
75471 --
75472 LOOP
75473 FETCH header_cur BULK COLLECT INTO
75474 l_array_entity_id
75475 , l_array_legal_entity_id
75476 , l_array_entity_code
75477 , l_array_transaction_num
75478 , l_array_event_id
75479 , l_array_class_code
75480 , l_array_event_type
75481 , l_array_event_number
75482 , l_array_event_date
75483 , l_array_transaction_date
75484 , l_array_reference_num_1
75485 , l_array_reference_num_2
75486 , l_array_reference_num_3
75487 , l_array_reference_num_4
75488 , l_array_reference_char_1
75489 , l_array_reference_char_2
75490 , l_array_reference_char_3
75491 , l_array_reference_char_4
75492 , l_array_reference_date_1
75493 , l_array_reference_date_2
75494 , l_array_reference_date_3
75495 , l_array_reference_date_4
75499 , l_array_source_37
75496 , l_array_event_created_by
75497 , l_array_budgetary_control_flag
75498 , l_array_source_3
75500 , l_array_source_38
75501 , l_array_source_39
75502 , l_array_source_47
75503 , l_array_source_111
75504 , l_array_source_112
75505 LIMIT l_rows;
75506 --
75507 IF (C_LEVEL_EVENT >= g_log_level) THEN
75508 trace
75509 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
75510 ,p_level => C_LEVEL_EVENT
75511 ,p_module => l_log_module);
75512 END IF;
75513 --
75514 EXIT WHEN l_array_entity_id.COUNT = 0;
75515
75516 -- initialize arrays
75517 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
75518 XLA_AE_LINES_PKG.g_rec_lines := NULL;
75519
75520 --
75521 -- Bug 4458708
75522 --
75523 XLA_AE_LINES_PKG.g_LineNumber := 0;
75524
75525
75526 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
75527 g_last_hdr_idx := l_array_event_id.LAST;
75528 --
75529 -- loop for the headers. Each iteration is for each header extract row
75530 -- fetched in header cursor
75531 --
75532 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
75533
75534 --
75535 -- set event info as cache for other routines to refer event attributes
75536 --
75537 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75538 (p_application_id => p_application_id
75539 ,p_primary_ledger_id => p_primary_ledger_id
75540 ,p_base_ledger_id => p_base_ledger_id
75541 ,p_target_ledger_id => p_target_ledger_id
75542 ,p_entity_id => l_array_entity_id(hdr_idx)
75543 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
75544 ,p_entity_code => l_array_entity_code(hdr_idx)
75545 ,p_transaction_num => l_array_transaction_num(hdr_idx)
75546 ,p_event_id => l_array_event_id(hdr_idx)
75547 ,p_event_class_code => l_array_class_code(hdr_idx)
75548 ,p_event_type_code => l_array_event_type(hdr_idx)
75549 ,p_event_number => l_array_event_number(hdr_idx)
75550 ,p_event_date => l_array_event_date(hdr_idx)
75551 ,p_transaction_date => l_array_transaction_date(hdr_idx)
75552 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
75553 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
75554 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
75555 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
75556 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
75557 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
75558 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
75559 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
75560 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
75561 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
75562 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
75563 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
75564 ,p_event_created_by => l_array_event_created_by(hdr_idx)
75565 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
75566
75567 --
75568 -- set the status of entry to C_VALID (0)
75569 --
75570 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75571
75572 --
75573 -- initialize a row for ae header
75574 --
75575 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
75576
75577 l_event_id := l_array_event_id(hdr_idx);
75578
75579 --
75580 -- storing the hdr_idx for event. May be used by line cursor.
75581 --
75582 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
75583
75584 --
75585 -- store sources from header extract. This can be improved to
75586 -- store only those sources from header extract that may be used in lines
75587 --
75588
75589 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
75590 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
75591 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
75592 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
75593 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
75594 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
75595 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
75596
75597 --
75598 -- initilaize the status of ae headers for diffrent balance types
75599 -- the status is initialised to C_NOT_CREATED (2)
75600 --
75601 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75602 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75603 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75604
75605 --
75606 -- call api to validate and store accounting attributes for header
75607 --
75608
75609 ------------------------------------------------------------
75610 -- Accrual Reversal : to get date for Standard Source (NONE)
75611 ------------------------------------------------------------
75612 l_acc_rev_gl_date_source := NULL;
75613
75614 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
75615 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_111');
75619 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_3');
75616 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
75617 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_112');
75618 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
75620 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
75621 l_rec_acct_attrs.array_date_value(4) :=
75622 xla_ae_sources_pkg.GetSystemSourceDate(
75623 p_source_code => 'XLA_EVENT_DATE'
75624 , p_source_type_code => 'Y'
75625 , p_source_application_id => 602
75626 );
75627
75628
75629 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
75630
75631 XLA_AE_HEADER_PKG.SetJeCategoryName;
75632
75633 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
75634 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
75635 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
75636 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
75637 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
75638
75639
75640 -- No header level analytical criteria
75641
75642 --
75643 --accounting attribute enhancement, bug 3612931
75644 --
75645 l_trx_reversal_source := SUBSTR(NULL, 1,30);
75646
75647 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
75648 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75649
75650 xla_accounting_err_pkg.build_message
75651 (p_appli_s_name => 'XLA'
75652 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
75653 ,p_token_1 => 'ACCT_ATTR_NAME'
75654 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
75655 ,p_token_2 => 'PRODUCT_NAME'
75656 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75657 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75658 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75659 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75660
75661 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
75662 --
75663 -- following sets the accounting attributes needed to reverse
75664 -- accounting for a distributeion
75665 --
75666 xla_ae_lines_pkg.SetTrxReversalAttrs
75667 (p_event_id => l_event_id
75668 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
75669 ,p_trx_reversal_source => l_trx_reversal_source);
75670
75671 END IF;
75672
75673
75674 ----------------------------------------------------------------
75675 -- 4262811 - update the header statuses to invalid in need be
75676 ----------------------------------------------------------------
75677 --
75678 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
75679
75680
75681 -----------------------------------------------
75682 -- No accrual reversal for the event class/type
75683 -----------------------------------------------
75684 ----------------------------------------------------------------
75685
75686 --
75687 -- this ends the header loop iteration for one bulk fetch
75688 --
75689 END LOOP;
75690
75691 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
75692 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
75693
75694 --
75695 -- insert dummy rows into lines gt table that were created due to
75696 -- transaction reversals
75697 --
75698 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
75699 l_result := XLA_AE_LINES_PKG.InsertLines;
75700 END IF;
75701
75702 --
75703 -- reset the temp_line_num for each set of events fetched from header
75704 -- cursor rather than doing it for each new event in line cursor
75705 -- Bug 3939231
75706 --
75707 xla_ae_lines_pkg.g_temp_line_num := 0;
75708
75709
75710
75711 --
75712 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
75713 --
75714 --
75715 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75716
75717 trace
75718 (p_msg => 'SQL - FETCH line_cur'
75719 ,p_level => C_LEVEL_STATEMENT
75720 ,p_module => l_log_module);
75721
75722 END IF;
75723 --
75724 --
75725 LOOP
75726 --
75727 FETCH line_cur BULK COLLECT INTO
75728 l_array_entity_id
75729 , l_array_legal_entity_id
75730 , l_array_entity_code
75734 , l_array_event_type
75731 , l_array_transaction_num
75732 , l_array_event_id
75733 , l_array_class_code
75735 , l_array_event_number
75736 , l_array_event_date
75737 , l_array_transaction_date
75738 , l_array_reference_num_1
75739 , l_array_reference_num_2
75740 , l_array_reference_num_3
75741 , l_array_reference_num_4
75742 , l_array_reference_char_1
75743 , l_array_reference_char_2
75744 , l_array_reference_char_3
75745 , l_array_reference_char_4
75746 , l_array_reference_date_1
75747 , l_array_reference_date_2
75748 , l_array_reference_date_3
75749 , l_array_reference_date_4
75750 , l_array_event_created_by
75751 , l_array_budgetary_control_flag
75752 , l_array_extract_line_num
75753 , l_array_source_26
75754 , l_array_source_43
75755 , l_array_source_44
75756 , l_array_source_45
75757 , l_array_source_46
75758 , l_array_source_48
75759 , l_array_source_49
75760 , l_array_source_50
75761 , l_array_source_51
75762 LIMIT l_rows;
75763
75764 --
75765 IF (C_LEVEL_EVENT >= g_log_level) THEN
75766 trace
75767 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
75768 ,p_level => C_LEVEL_EVENT
75769 ,p_module => l_log_module);
75770 END IF;
75771 --
75772 EXIT WHEN l_array_entity_id.count = 0;
75773
75774 XLA_AE_LINES_PKG.g_rec_lines := null;
75775
75776 --
75777 -- Bug 4458708
75778 --
75779 XLA_AE_LINES_PKG.g_LineNumber := 0;
75780 --
75781 --
75782
75783 FOR Idx IN 1..l_array_event_id.count LOOP
75784 --
75785 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
75786 --
75787 l_event_id := l_array_event_id(idx); -- 5648433
75788
75789 --
75790 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75791 --
75792
75793 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
75794 (g_array_event(l_event_id).array_value_num('header_index'))
75795 ,'N'
75796 ) <> 'Y'
75797 THEN
75798 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75799 trace
75800 (p_msg => 'Trancaction revesal option is not Y '
75801 ,p_level => C_LEVEL_STATEMENT
75802 ,p_module => l_log_module);
75803 END IF;
75804
75805 --
75806 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
75807 --
75808 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75809 --
75810 -- set event info as cache for other routines to refer event attributes
75811 --
75812
75813 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
75814 l_previous_event_id := l_event_id;
75815
75816 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75817 (p_application_id => p_application_id
75818 ,p_primary_ledger_id => p_primary_ledger_id
75819 ,p_base_ledger_id => p_base_ledger_id
75820 ,p_target_ledger_id => p_target_ledger_id
75821 ,p_entity_id => l_array_entity_id(Idx)
75822 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
75823 ,p_entity_code => l_array_entity_code(Idx)
75824 ,p_transaction_num => l_array_transaction_num(Idx)
75825 ,p_event_id => l_array_event_id(Idx)
75826 ,p_event_class_code => l_array_class_code(Idx)
75827 ,p_event_type_code => l_array_event_type(Idx)
75828 ,p_event_number => l_array_event_number(Idx)
75829 ,p_event_date => l_array_event_date(Idx)
75830 ,p_transaction_date => l_array_transaction_date(Idx)
75831 ,p_reference_num_1 => l_array_reference_num_1(Idx)
75832 ,p_reference_num_2 => l_array_reference_num_2(Idx)
75833 ,p_reference_num_3 => l_array_reference_num_3(Idx)
75834 ,p_reference_num_4 => l_array_reference_num_4(Idx)
75835 ,p_reference_char_1 => l_array_reference_char_1(Idx)
75836 ,p_reference_char_2 => l_array_reference_char_2(Idx)
75837 ,p_reference_char_3 => l_array_reference_char_3(Idx)
75838 ,p_reference_char_4 => l_array_reference_char_4(Idx)
75839 ,p_reference_date_1 => l_array_reference_date_1(Idx)
75840 ,p_reference_date_2 => l_array_reference_date_2(Idx)
75841 ,p_reference_date_3 => l_array_reference_date_3(Idx)
75842 ,p_reference_date_4 => l_array_reference_date_4(Idx)
75843 ,p_event_created_by => l_array_event_created_by(Idx)
75844 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
75845 --
75846 END IF;
75847
75848
75849
75850 --
75851 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
75852
75853 l_acct_reversal_source := SUBSTR(NULL, 1,30);
75854
75855 IF l_continue_with_lines THEN
75856 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
75857 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75858
75859 xla_accounting_err_pkg.build_message
75863 ,p_value_1 => l_array_extract_line_num(Idx)
75860 (p_appli_s_name => 'XLA'
75861 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
75862 ,p_token_1 => 'LINE_NUMBER'
75864 ,p_token_2 => 'PRODUCT_NAME'
75865 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75866 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75867 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75868 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75869
75870 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75871 --
75872 -- following sets the accounting attributes needed to reverse
75873 -- accounting for a distributeion
75874 --
75875
75876 --
75877 -- 5217187
75878 --
75879 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75880 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75881 g_array_event(l_event_id).array_value_num('header_index'));
75882 --
75883 --
75884
75885 -- No reversal code generated
75886
75890 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75887 xla_ae_lines_pkg.SetAcctReversalAttrs
75888 (p_event_id => l_event_id
75889 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
75891 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
75892 END IF;
75893
75894 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75895 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
75896
75897 --
75898 AcctLineType_77 (
75899 p_application_id => p_application_id
75900 ,p_event_id => l_event_id
75901 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75902 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75903 ,p_actual_flag => l_actual_flag
75904 ,p_balance_type_code => l_balance_type_code
75905 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75906
75907 , p_source_26 => l_array_source_26(Idx)
75908 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
75909 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
75910 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
75911 , p_source_43 => l_array_source_43(Idx)
75912 , p_source_44 => l_array_source_44(Idx)
75913 , p_source_45 => l_array_source_45(Idx)
75914 , p_source_46 => l_array_source_46(Idx)
75915 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
75916 , p_source_48 => l_array_source_48(Idx)
75917 , p_source_49 => l_array_source_49(Idx)
75918 , p_source_50 => l_array_source_50(Idx)
75919 , p_source_51 => l_array_source_51(Idx)
75920 );
75921 If(l_balance_type_code = 'A') THEN
75922 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75923 END IF;
75924
75925 --
75926
75927
75928 --
75929 AcctLineType_78 (
75930 p_application_id => p_application_id
75931 ,p_event_id => l_event_id
75932 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75933 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75934 ,p_actual_flag => l_actual_flag
75935 ,p_balance_type_code => l_balance_type_code
75936 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75937
75938 , p_source_26 => l_array_source_26(Idx)
75939 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
75940 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
75941 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
75942 , p_source_43 => l_array_source_43(Idx)
75943 , p_source_44 => l_array_source_44(Idx)
75944 , p_source_45 => l_array_source_45(Idx)
75945 , p_source_46 => l_array_source_46(Idx)
75946 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
75947 , p_source_48 => l_array_source_48(Idx)
75948 , p_source_49 => l_array_source_49(Idx)
75949 , p_source_50 => l_array_source_50(Idx)
75950 , p_source_51 => l_array_source_51(Idx)
75951 );
75952 If(l_balance_type_code = 'A') THEN
75953 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75954 END IF;
75955
75956 --
75957
75958 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
75959 -- or secondary ledger that has different currency with primary
75960 -- or alc that is calculated by sla
75961 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
75962 (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'))
75963
75964 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
75968 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75965 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
75966 AND (l_actual_flag = 'A')) THEN
75967 XLA_AE_LINES_PKG.CreateGainOrLossLines(
75969 ,p_application_id => p_application_id
75970 ,p_amb_context_code => 'DEFAULT'
75971 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
75972 ,p_event_class_code => C_EVENT_CLASS_CODE
75973 ,p_event_type_code => C_EVENT_TYPE_CODE
75974
75975 ,p_gain_ccid => -1
75976 ,p_loss_ccid => -1
75977
75978 ,p_actual_flag => l_actual_flag
75979 ,p_enc_flag => null
75980 ,p_actual_g_l_ref => l_actual_gain_loss_ref
75981 ,p_enc_g_l_ref => null
75982 );
75983 END IF;
75984 END IF;
75985 END IF;
75986
75987 ELSE
75988 --
75989 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75990 --
75991 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75992 trace
75993 (p_msg => 'Trancaction revesal option is Y'
75994 ,p_level => C_LEVEL_STATEMENT
75995 ,p_module => l_log_module);
75996 END IF;
75997 END IF;
75998
75999 END LOOP;
76000 l_result := XLA_AE_LINES_PKG.InsertLines ;
76001 end loop;
76002 close line_cur;
76003
76004
76005 --
76006 -- insert headers into xla_ae_headers_gt table
76007 --
76008 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
76009
76010 -- insert into errors table here.
76011
76012 END LOOP;
76013
76014 --
76015 -- 4865292
76016 --
76017 -- Compare g_hdr_extract_count with event count in
76018 -- CreateHeadersAndLines.
76019 --
76020 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
76021
76022 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76023 trace (p_msg => '# rows extracted from header extract objects '
76024 || ' (running total): '
76025 || g_hdr_extract_count
76026 ,p_level => C_LEVEL_STATEMENT
76027 ,p_module => l_log_module);
76028 END IF;
76029
76030 CLOSE header_cur;
76031 --
76032
76033 --
76034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76035 trace
76036 (p_msg => 'END of EventClass_134'
76037 ,p_level => C_LEVEL_PROCEDURE
76038 ,p_module => l_log_module);
76039 END IF;
76040 --
76041 RETURN l_result;
76042 EXCEPTION
76043 WHEN xla_exceptions_pkg.application_exception THEN
76044
76045 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76046
76047
76048 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76049
76050 RAISE;
76051
76052 WHEN NO_DATA_FOUND THEN
76053
76054 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76055 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76056
76057 FOR header_record IN header_cur
76058 LOOP
76062 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
76059 l_array_header_events(header_record.event_id) := header_record.event_id;
76060 END LOOP;
76061
76063 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
76064
76065 fnd_file.put_line(fnd_file.LOG, ' ');
76066 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
76067 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
76068 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
76069
76070 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
76071 LOOP
76072 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
76073 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
76074 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
76075 END IF;
76076 END LOOP;
76077
76078 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
76079 fnd_file.put_line(fnd_file.LOG, ' ');
76080
76081
76082 xla_exceptions_pkg.raise_message
76083 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_134');
76084
76085
76089 END EventClass_134;
76086 WHEN OTHERS THEN
76087 xla_exceptions_pkg.raise_message
76088 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_134');
76090 --
76091
76092 ---------------------------------------
76093 --
76094 -- PRIVATE PROCEDURE
76095 -- insert_sources_135
76096 --
76097 ----------------------------------------
76098 --
76099 PROCEDURE insert_sources_135(
76100 p_target_ledger_id IN NUMBER
76101 , p_language IN VARCHAR2
76102 , p_sla_ledger_id IN NUMBER
76103 , p_pad_start_date IN DATE
76104 , p_pad_end_date IN DATE
76105 )
76106 IS
76107
76108 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_ALL';
76109 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE';
76110 p_apps_owner VARCHAR2(30);
76111 l_log_module VARCHAR2(240);
76112 BEGIN
76113 IF g_log_enabled THEN
76114 l_log_module := C_DEFAULT_MODULE||'.insert_sources_135';
76115 END IF;
76116 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76117
76118 trace
76119 (p_msg => 'BEGIN of insert_sources_135'
76120 ,p_level => C_LEVEL_PROCEDURE
76121 ,p_module => l_log_module);
76122
76123 END IF;
76124
76125 -- select APPS owner
76126 SELECT oracle_username
76127 INTO p_apps_owner
76128 FROM fnd_oracle_userid
76129 WHERE read_only_flag = 'U'
76130 ;
76131
76132 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76133 trace
76134 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
76135 ' - p_language = '||p_language||
76136 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
76137 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
76138 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
76139 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
76140 ,p_level => C_LEVEL_STATEMENT
76141 ,p_module => l_log_module);
76142 END IF;
76143
76144
76145 --
76146 INSERT INTO xla_diag_sources --hdr2
76147 (
76148 event_id
76149 , ledger_id
76150 , sla_ledger_id
76151 , description_language
76152 , object_name
76153 , object_type_code
76154 , line_number
76155 , source_application_id
76156 , source_type_code
76157 , source_code
76158 , source_value
76159 , source_meaning
76160 , created_by
76161 , creation_date
76162 , last_update_date
76163 , last_updated_by
76164 , last_update_login
76165 , program_update_date
76166 , program_application_id
76167 , program_id
76168 , request_id
76169 )
76170 SELECT
76171 event_id
76172 , p_target_ledger_id
76173 , p_sla_ledger_id
76174 , p_language
76175 , object_name
76176 , object_type_code
76177 , line_number
76178 , source_application_id
76179 , source_type_code
76180 , source_code
76181 , SUBSTR(source_value ,1,1996)
76182 , SUBSTR(source_meaning ,1,200)
76183 , xla_environment_pkg.g_Usr_Id
76184 , TRUNC(SYSDATE)
76185 , TRUNC(SYSDATE)
76186 , xla_environment_pkg.g_Usr_Id
76187 , xla_environment_pkg.g_Login_Id
76188 , TRUNC(SYSDATE)
76189 , xla_environment_pkg.g_Prog_Appl_Id
76190 , xla_environment_pkg.g_Prog_Id
76191 , xla_environment_pkg.g_Req_Id
76192 FROM (
76193 SELECT xet.event_id event_id
76194 , 0 line_number
76195 , CASE r
76196 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
76197 WHEN 2 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
76198 WHEN 3 THEN 'AR_BILL_TO_SITE_USES_S_V'
76199 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
76200 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
76201 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
76202 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
76203
76204 ELSE null
76205 END object_name
76206 , CASE r
76207 WHEN 1 THEN 'HEADER'
76208 WHEN 2 THEN 'HEADER'
76209 WHEN 3 THEN 'HEADER'
76210 WHEN 4 THEN 'HEADER'
76211 WHEN 5 THEN 'HEADER'
76212 WHEN 6 THEN 'HEADER'
76213 WHEN 7 THEN 'HEADER'
76214
76215 ELSE null
76216 END object_type_code
76217 , CASE r
76218 WHEN 1 THEN '222'
76219 WHEN 2 THEN '222'
76220 WHEN 3 THEN '222'
76221 WHEN 4 THEN '222'
76222 WHEN 5 THEN '222'
76223 WHEN 6 THEN '222'
76224 WHEN 7 THEN '222'
76225
76226 ELSE null
76230 WHEN 1 THEN 'TRX_DOC_SEQUENCE_VALUE'
76227 END source_application_id
76228 , 'S' source_type_code
76229 , CASE r
76231 WHEN 2 THEN 'BILL_CUST_ACCOUNT_ID'
76232 WHEN 3 THEN 'BILL_USES_SITE_USE_ID'
76233 WHEN 4 THEN 'XLA_PARTY_TYPE'
76234 WHEN 5 THEN 'TRX_INVOICE_CURRENCY_CODE'
76235 WHEN 6 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
76236 WHEN 7 THEN 'TRX_DOC_SEQUENCE_ID'
76237
76238 ELSE null
76239 END source_code
76240 , CASE r
76241 WHEN 1 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
76242 WHEN 2 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
76243 WHEN 3 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
76244 WHEN 4 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
76245 WHEN 5 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
76246 WHEN 6 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
76247 WHEN 7 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
76248
76249 ELSE null
76250 END source_value
76251 , null source_meaning
76252 FROM xla_events_gt xet
76253 , AR_BILL_TO_CUSTOMERS_S_V h1
76254 , AR_BILL_TO_SITE_USES_S_V h2
76255 , AR_TRANSACTIONS_S_V h5
76256 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
76257 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76258 AND xet.event_class_code = C_EVENT_CLASS_CODE
76259 AND h1.event_id = xet.event_id
76260 AND h2.event_id = h1.event_id
76261 AND h5.event_id = h1.event_id
76262
76263 )
76264 ;
76265 --
76266 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76267
76268 trace
76269 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
76270 ,p_level => C_LEVEL_STATEMENT
76271 ,p_module => l_log_module);
76272
76273 END IF;
76274 --
76275
76276
76277
76278 --
76279 INSERT INTO xla_diag_sources --line2
76280 (
76281 event_id
76282 , ledger_id
76283 , sla_ledger_id
76284 , description_language
76285 , object_name
76286 , object_type_code
76287 , line_number
76288 , source_application_id
76289 , source_type_code
76290 , source_code
76291 , source_value
76292 , source_meaning
76293 , created_by
76294 , creation_date
76295 , last_update_date
76296 , last_updated_by
76297 , last_update_login
76298 , program_update_date
76299 , program_application_id
76300 , program_id
76301 , request_id
76302 )
76303 SELECT event_id
76304 , p_target_ledger_id
76305 , p_sla_ledger_id
76306 , p_language
76307 , object_name
76308 , object_type_code
76309 , line_number
76310 , source_application_id
76311 , source_type_code
76312 , source_code
76313 , SUBSTR(source_value,1,1996)
76314 , SUBSTR(source_meaning ,1,200)
76315 , xla_environment_pkg.g_Usr_Id
76316 , TRUNC(SYSDATE)
76317 , TRUNC(SYSDATE)
76318 , xla_environment_pkg.g_Usr_Id
76319 , xla_environment_pkg.g_Login_Id
76320 , TRUNC(SYSDATE)
76321 , xla_environment_pkg.g_Prog_Appl_Id
76322 , xla_environment_pkg.g_Prog_Id
76323 , xla_environment_pkg.g_Req_Id
76324 FROM (
76325 SELECT xet.event_id event_id
76326 , l4.line_number line_number
76327 , CASE r
76328 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
76332 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
76329 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
76330 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
76331 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
76333 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
76334 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
76335 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
76336 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
76337 WHEN 10 THEN 'AR_CUST_TRX_LINES_L_V'
76338 WHEN 11 THEN 'AR_CUST_TRX_LINES_L_V'
76339 WHEN 12 THEN 'AR_CUST_TRX_LINES_BASE_V'
76340
76341 ELSE null
76342 END object_name
76343 , CASE r
76344 WHEN 1 THEN 'LINE'
76345 WHEN 2 THEN 'LINE'
76346 WHEN 3 THEN 'LINE'
76347 WHEN 4 THEN 'LINE'
76348 WHEN 5 THEN 'LINE'
76349 WHEN 6 THEN 'LINE'
76350 WHEN 7 THEN 'LINE'
76351 WHEN 8 THEN 'LINE'
76352 WHEN 9 THEN 'LINE'
76353 WHEN 10 THEN 'LINE'
76354 WHEN 11 THEN 'LINE'
76355 WHEN 12 THEN 'LINE'
76356
76357 ELSE null
76358 END object_type_code
76359 , CASE r
76360 WHEN 1 THEN '222'
76361 WHEN 2 THEN '222'
76362 WHEN 3 THEN '222'
76363 WHEN 4 THEN '222'
76364 WHEN 5 THEN '222'
76365 WHEN 6 THEN '222'
76366 WHEN 7 THEN '222'
76367 WHEN 8 THEN '222'
76368 WHEN 9 THEN '222'
76369 WHEN 10 THEN '222'
76370 WHEN 11 THEN '222'
76371 WHEN 12 THEN '222'
76372
76373 ELSE null
76374 END source_application_id
76375 , 'S' source_type_code
76376 , CASE r
76377 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
76378 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
76379 WHEN 3 THEN 'TRX_LINE_DIST_ID'
76380 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
76381 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
76382 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
76383 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
76384 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
76385 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
76386 WHEN 10 THEN 'TRX_LINE_INTERFACE_LINE_ATTR1'
76387 WHEN 11 THEN 'TRX_TAX_LINE_ID'
76388 WHEN 12 THEN 'ROUNDING_CORRECTION_FLAG'
76389
76390 ELSE null
76391 END source_code
76392 , CASE r
76393 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
76394 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
76395 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
76396 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
76397 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
76398 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
76399 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
76400 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
76401 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
76402 WHEN 10 THEN TO_CHAR(l4.TRX_LINE_INTERFACE_LINE_ATTR1)
76403 WHEN 11 THEN TO_CHAR(l4.TRX_TAX_LINE_ID)
76404 WHEN 12 THEN TO_CHAR(l3.ROUNDING_CORRECTION_FLAG)
76405
76406 ELSE null
76407 END source_value
76408 , null source_meaning
76409 FROM xla_events_gt xet
76410 , AR_CUST_TRX_LINES_BASE_V l3
76411 , AR_CUST_TRX_LINES_L_V l4
76412 , (select rownum r from all_objects where rownum <= 12 and owner = p_apps_owner)
76413 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76414 AND xet.event_class_code = C_EVENT_CLASS_CODE
76415 AND l3.event_id = xet.event_id
76416 AND l4.event_id = l3.event_id
76417 AND l4.line_number = l3.line_number
76418
76419 )
76420 ;
76421 --
76422 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76423
76424 trace
76425 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
76426 ,p_level => C_LEVEL_STATEMENT
76427 ,p_module => l_log_module);
76428
76429 END IF;
76430
76431
76432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76433 trace
76434 (p_msg => 'END of insert_sources_135'
76435 ,p_level => C_LEVEL_PROCEDURE
76436 ,p_module => l_log_module);
76437 END IF;
76438 EXCEPTION
76439 WHEN xla_exceptions_pkg.application_exception THEN
76440 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76441 trace
76442 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76443 ,p_level => C_LEVEL_EXCEPTION
76444 ,p_module => l_log_module);
76445 END IF;
76446 RAISE;
76447 WHEN OTHERS THEN
76448 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76449 trace
76450 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76451 ,p_level => C_LEVEL_EXCEPTION
76452 ,p_module => l_log_module);
76453 END IF;
76457 --
76454 xla_exceptions_pkg.raise_message
76455 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_135');
76456 END insert_sources_135;
76458
76459 ---------------------------------------
76460 --
76461 -- PRIVATE FUNCTION
76462 -- EventClass_135
76463 --
76464 ----------------------------------------
76465 --
76466 FUNCTION EventClass_135
76467 (p_application_id IN NUMBER
76468 ,p_base_ledger_id IN NUMBER
76469 ,p_target_ledger_id IN NUMBER
76470 ,p_language IN VARCHAR2
76471 ,p_currency_code IN VARCHAR2
76472 ,p_sla_ledger_id IN NUMBER
76473 ,p_pad_start_date IN DATE
76474 ,p_pad_end_date IN DATE
76475 ,p_primary_ledger_id IN NUMBER)
76476 RETURN BOOLEAN IS
76477 --
76478 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_ALL';
76479 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE';
76480
76481 l_calculate_acctd_flag VARCHAR2(1) :='N';
76482 l_calculate_g_l_flag VARCHAR2(1) :='N';
76483 --
76484 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76485 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76486 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76487 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76488 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76489 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76490 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76491 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76492 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76493 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76494 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76495 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76496 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76497 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76498 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76499 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76500 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76501 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76502 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76503 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76504 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76505 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76506 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
76507 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76508 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
76509 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
76510
76511 l_event_id NUMBER;
76512 l_previous_event_id NUMBER;
76513 l_first_event_id NUMBER;
76514 l_last_event_id NUMBER;
76515
76516 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
76517 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76518 --
76519 --
76520 l_result BOOLEAN := TRUE;
76521 l_rows NUMBER := 1000;
76522 l_event_type_name VARCHAR2(80) := 'All';
76523 l_event_class_name VARCHAR2(80) := 'Invoice';
76524 l_description VARCHAR2(4000);
76525 l_transaction_reversal NUMBER;
76526 l_ae_header_id NUMBER;
76527 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
76528 l_log_module VARCHAR2(240);
76529 --
76530 l_acct_reversal_source VARCHAR2(30);
76531 l_trx_reversal_source VARCHAR2(30);
76532
76533 l_continue_with_lines BOOLEAN := TRUE;
76534 --
76535 l_acc_rev_gl_date_source DATE; -- 4262811
76536 --
76537 type t_array_event_id is table of number index by binary_integer;
76538
76539 l_rec_array_event t_rec_array_event;
76540 l_null_rec_array_event t_rec_array_event;
76541 l_array_ae_header_id xla_number_array_type;
76542 l_actual_flag VARCHAR2(1) := NULL;
76543 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
76544 l_balance_type_code VARCHAR2(1) :=NULL;
76545 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
76546
76547 --
76548 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
76549 --
76550
76551 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
76552 TYPE t_array_source_37 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
76553 TYPE t_array_source_38 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
76554 TYPE t_array_source_39 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
76555 TYPE t_array_source_47 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
76556 TYPE t_array_source_111 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
76557 TYPE t_array_source_112 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
76558
76562 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
76559 TYPE t_array_source_26 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
76560 TYPE t_array_source_43 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76561 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
76563 TYPE t_array_source_46 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
76564 TYPE t_array_source_48 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
76565 TYPE t_array_source_49 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
76566 TYPE t_array_source_50 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
76567 TYPE t_array_source_51 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
76568 TYPE t_array_source_65 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_INTERFACE_LINE_ATTR1%TYPE INDEX BY BINARY_INTEGER;
76569 TYPE t_array_source_86 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
76570 TYPE t_array_source_87 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.ROUNDING_CORRECTION_FLAG%TYPE INDEX BY BINARY_INTEGER;
76571
76572 l_array_source_3 t_array_source_3;
76573 l_array_source_37 t_array_source_37;
76574 l_array_source_38 t_array_source_38;
76575 l_array_source_39 t_array_source_39;
76576 l_array_source_47 t_array_source_47;
76577 l_array_source_111 t_array_source_111;
76578 l_array_source_112 t_array_source_112;
76579
76580 l_array_source_26 t_array_source_26;
76581 l_array_source_43 t_array_source_43;
76582 l_array_source_44 t_array_source_44;
76583 l_array_source_45 t_array_source_45;
76584 l_array_source_46 t_array_source_46;
76585 l_array_source_48 t_array_source_48;
76586 l_array_source_49 t_array_source_49;
76587 l_array_source_50 t_array_source_50;
76588 l_array_source_51 t_array_source_51;
76589 l_array_source_65 t_array_source_65;
76590 l_array_source_86 t_array_source_86;
76591 l_array_source_87 t_array_source_87;
76592
76593 --
76594 CURSOR header_cur
76595 IS
76596 SELECT /*+ leading(xet) cardinality(xet,1) */
76597 -- Event Class Code: INVOICE
76598 xet.entity_id
76599 ,xet.legal_entity_id
76600 ,xet.entity_code
76601 ,xet.transaction_number
76602 ,xet.event_id
76603 ,xet.event_class_code
76604 ,xet.event_type_code
76605 ,xet.event_number
76606 ,xet.event_date
76607 ,xet.transaction_date
76608 ,xet.reference_num_1
76609 ,xet.reference_num_2
76610 ,xet.reference_num_3
76611 ,xet.reference_num_4
76612 ,xet.reference_char_1
76613 ,xet.reference_char_2
76614 ,xet.reference_char_3
76615 ,xet.reference_char_4
76616 ,xet.reference_date_1
76617 ,xet.reference_date_2
76618 ,xet.reference_date_3
76619 ,xet.reference_date_4
76620 ,xet.event_created_by
76621 ,xet.budgetary_control_flag
76622 , h5.TRX_DOC_SEQUENCE_VALUE source_3
76623 , h1.BILL_CUST_ACCOUNT_ID source_37
76624 , h2.BILL_USES_SITE_USE_ID source_38
76625 , h5.XLA_PARTY_TYPE source_39
76626 , h5.TRX_INVOICE_CURRENCY_CODE source_47
76627 , h5.TRX_DOC_SEQUENCE_CATEGORY source_111
76628 , h5.TRX_DOC_SEQUENCE_ID source_112
76629 FROM xla_events_gt xet
76630 , AR_BILL_TO_CUSTOMERS_S_V h1
76631 , AR_BILL_TO_SITE_USES_S_V h2
76632 , AR_TRANSACTIONS_S_V h5
76633 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
76634 and xet.event_class_code = C_EVENT_CLASS_CODE
76635 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
76636 AND h2.event_id = h1.event_id
76637 AND h5.event_id = h1.event_id
76638
76639 ORDER BY event_id
76640 ;
76641
76642
76643 --
76644 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
76645 IS
76646 SELECT /*+ leading(xet) cardinality(xet,1) */
76647 -- Event Class Code: INVOICE
76648 xet.entity_id
76649 ,xet.legal_entity_id
76650 ,xet.entity_code
76651 ,xet.transaction_number
76652 ,xet.event_id
76653 ,xet.event_class_code
76654 ,xet.event_type_code
76655 ,xet.event_number
76656 ,xet.event_date
76657 ,xet.transaction_date
76658 ,xet.reference_num_1
76659 ,xet.reference_num_2
76660 ,xet.reference_num_3
76661 ,xet.reference_num_4
76662 ,xet.reference_char_1
76663 ,xet.reference_char_2
76664 ,xet.reference_char_3
76665 ,xet.reference_char_4
76666 ,xet.reference_date_1
76667 ,xet.reference_date_2
76668 ,xet.reference_date_3
76669 ,xet.reference_date_4
76670 ,xet.event_created_by
76671 ,xet.budgetary_control_flag
76672 , l3.LINE_NUMBER
76673 , l4.TRX_LINE_DIST_CCID source_26
76674 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_43
76675 , l4.TRX_LINE_DIST_ID source_44
76676 , l4.TRX_DISTRIBUTION_TYPE source_45
76677 , l4.TRX_LINE_DIST_AMT source_46
76678 , l3.TRX_LINE_CUR_CONVERSION_DATE source_48
76679 , l3.TRX_LINE_CUR_CONVERSION_RATE source_49
76680 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_50
76681 , l3.TRX_LINE_ACCTD_AMT source_51
76682 , l4.TRX_LINE_INTERFACE_LINE_ATTR1 source_65
76683 , l4.TRX_TAX_LINE_ID source_86
76684 , l3.ROUNDING_CORRECTION_FLAG source_87
76685 FROM xla_events_gt xet
76686 , AR_CUST_TRX_LINES_BASE_V l3
76690 and xet.event_class_code = C_EVENT_CLASS_CODE
76687 , AR_CUST_TRX_LINES_L_V l4
76688 WHERE xet.event_id between x_first_event_id and x_last_event_id
76689 and xet.event_date between p_pad_start_date and p_pad_end_date
76691 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
76692 AND l4.event_id = l3.event_id
76693 AND l4.line_number = l3.line_number
76694 ;
76695
76696 --
76697 BEGIN
76698 IF g_log_enabled THEN
76699 l_log_module := C_DEFAULT_MODULE||'.EventClass_135';
76700 END IF;
76701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76702 trace
76703 (p_msg => 'BEGIN of EventClass_135'
76704 ,p_level => C_LEVEL_PROCEDURE
76705 ,p_module => l_log_module);
76706 END IF;
76707
76708 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76709 trace
76710 (p_msg => 'p_application_id = '||p_application_id||
76711 ' - p_base_ledger_id = '||p_base_ledger_id||
76712 ' - p_target_ledger_id = '||p_target_ledger_id||
76713 ' - p_language = '||p_language||
76714 ' - p_currency_code = '||p_currency_code||
76715 ' - p_sla_ledger_id = '||p_sla_ledger_id
76716 ,p_level => C_LEVEL_STATEMENT
76717 ,p_module => l_log_module);
76718 END IF;
76719 --
76720 -- initialze arrays
76721 --
76722 g_array_event.DELETE;
76723 l_rec_array_event := l_null_rec_array_event;
76724 --
76725 --------------------------------------
76726 -- 4262811 Initialze MPA Line Number
76727 --------------------------------------
76728 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76729
76730 --
76731
76732 --
76733 OPEN header_cur;
76734 --
76735 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76736 trace
76737 (p_msg => 'SQL - FETCH header_cur'
76738 ,p_level => C_LEVEL_STATEMENT
76739 ,p_module => l_log_module);
76740 END IF;
76741 --
76742 LOOP
76743 FETCH header_cur BULK COLLECT INTO
76744 l_array_entity_id
76745 , l_array_legal_entity_id
76746 , l_array_entity_code
76747 , l_array_transaction_num
76748 , l_array_event_id
76749 , l_array_class_code
76750 , l_array_event_type
76751 , l_array_event_number
76752 , l_array_event_date
76753 , l_array_transaction_date
76754 , l_array_reference_num_1
76755 , l_array_reference_num_2
76756 , l_array_reference_num_3
76757 , l_array_reference_num_4
76758 , l_array_reference_char_1
76759 , l_array_reference_char_2
76760 , l_array_reference_char_3
76761 , l_array_reference_char_4
76762 , l_array_reference_date_1
76763 , l_array_reference_date_2
76764 , l_array_reference_date_3
76765 , l_array_reference_date_4
76766 , l_array_event_created_by
76767 , l_array_budgetary_control_flag
76768 , l_array_source_3
76769 , l_array_source_37
76770 , l_array_source_38
76771 , l_array_source_39
76772 , l_array_source_47
76773 , l_array_source_111
76774 , l_array_source_112
76775 LIMIT l_rows;
76776 --
76777 IF (C_LEVEL_EVENT >= g_log_level) THEN
76778 trace
76779 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76780 ,p_level => C_LEVEL_EVENT
76781 ,p_module => l_log_module);
76782 END IF;
76783 --
76784 EXIT WHEN l_array_entity_id.COUNT = 0;
76785
76786 -- initialize arrays
76787 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
76788 XLA_AE_LINES_PKG.g_rec_lines := NULL;
76789
76790 --
76791 -- Bug 4458708
76792 --
76793 XLA_AE_LINES_PKG.g_LineNumber := 0;
76794
76795
76796 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76797 g_last_hdr_idx := l_array_event_id.LAST;
76798 --
76799 -- loop for the headers. Each iteration is for each header extract row
76800 -- fetched in header cursor
76801 --
76802 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76803
76804 --
76805 -- set event info as cache for other routines to refer event attributes
76806 --
76807 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76808 (p_application_id => p_application_id
76809 ,p_primary_ledger_id => p_primary_ledger_id
76810 ,p_base_ledger_id => p_base_ledger_id
76811 ,p_target_ledger_id => p_target_ledger_id
76812 ,p_entity_id => l_array_entity_id(hdr_idx)
76813 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
76814 ,p_entity_code => l_array_entity_code(hdr_idx)
76815 ,p_transaction_num => l_array_transaction_num(hdr_idx)
76816 ,p_event_id => l_array_event_id(hdr_idx)
76817 ,p_event_class_code => l_array_class_code(hdr_idx)
76818 ,p_event_type_code => l_array_event_type(hdr_idx)
76819 ,p_event_number => l_array_event_number(hdr_idx)
76820 ,p_event_date => l_array_event_date(hdr_idx)
76821 ,p_transaction_date => l_array_transaction_date(hdr_idx)
76822 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
76823 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
76824 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
76825 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
76826 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
76830 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
76827 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
76828 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
76829 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
76831 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
76835 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
76832 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
76833 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
76834 ,p_event_created_by => l_array_event_created_by(hdr_idx)
76836
76837 --
76838 -- set the status of entry to C_VALID (0)
76839 --
76840 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76841
76842 --
76843 -- initialize a row for ae header
76844 --
76845 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
76846
76847 l_event_id := l_array_event_id(hdr_idx);
76848
76849 --
76850 -- storing the hdr_idx for event. May be used by line cursor.
76851 --
76852 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
76853
76854 --
76855 -- store sources from header extract. This can be improved to
76856 -- store only those sources from header extract that may be used in lines
76857 --
76858
76859 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
76860 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
76861 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
76862 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
76863 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
76864 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
76865 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
76866
76867 --
76868 -- initilaize the status of ae headers for diffrent balance types
76869 -- the status is initialised to C_NOT_CREATED (2)
76870 --
76871 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76872 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76873 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76874
76875 --
76876 -- call api to validate and store accounting attributes for header
76877 --
76878
76879 ------------------------------------------------------------
76880 -- Accrual Reversal : to get date for Standard Source (NONE)
76881 ------------------------------------------------------------
76882 l_acc_rev_gl_date_source := NULL;
76883
76884 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
76885 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_111');
76886 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
76887 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_112');
76888 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
76889 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_3');
76890 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
76891 l_rec_acct_attrs.array_date_value(4) :=
76892 xla_ae_sources_pkg.GetSystemSourceDate(
76893 p_source_code => 'XLA_EVENT_DATE'
76894 , p_source_type_code => 'Y'
76895 , p_source_application_id => 602
76896 );
76897
76898
76899 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
76900
76901 XLA_AE_HEADER_PKG.SetJeCategoryName;
76902
76903 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
76907 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
76904 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
76905 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
76906 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
76908
76909
76910 -- No header level analytical criteria
76911
76912 --
76913 --accounting attribute enhancement, bug 3612931
76914 --
76915 l_trx_reversal_source := SUBSTR(NULL, 1,30);
76916
76917 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
76918 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76919
76920 xla_accounting_err_pkg.build_message
76921 (p_appli_s_name => 'XLA'
76922 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
76923 ,p_token_1 => 'ACCT_ATTR_NAME'
76924 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
76925 ,p_token_2 => 'PRODUCT_NAME'
76926 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76927 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76928 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76929 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76930
76931 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
76932 --
76933 -- following sets the accounting attributes needed to reverse
76934 -- accounting for a distributeion
76935 --
76936 xla_ae_lines_pkg.SetTrxReversalAttrs
76937 (p_event_id => l_event_id
76938 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
76939 ,p_trx_reversal_source => l_trx_reversal_source);
76940
76941 END IF;
76942
76943
76944 ----------------------------------------------------------------
76945 -- 4262811 - update the header statuses to invalid in need be
76946 ----------------------------------------------------------------
76947 --
76948 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
76949
76950
76951 -----------------------------------------------
76952 -- No accrual reversal for the event class/type
76953 -----------------------------------------------
76954 ----------------------------------------------------------------
76955
76956 --
76957 -- this ends the header loop iteration for one bulk fetch
76958 --
76959 END LOOP;
76960
76961 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
76962 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
76963
76964 --
76965 -- insert dummy rows into lines gt table that were created due to
76966 -- transaction reversals
76967 --
76968 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
76969 l_result := XLA_AE_LINES_PKG.InsertLines;
76970 END IF;
76971
76972 --
76973 -- reset the temp_line_num for each set of events fetched from header
76974 -- cursor rather than doing it for each new event in line cursor
76975 -- Bug 3939231
76976 --
76980
76977 xla_ae_lines_pkg.g_temp_line_num := 0;
76978
76979
76981 --
76982 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
76983 --
76984 --
76985 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76986
76987 trace
76988 (p_msg => 'SQL - FETCH line_cur'
76989 ,p_level => C_LEVEL_STATEMENT
76990 ,p_module => l_log_module);
76991
76992 END IF;
76993 --
76994 --
76995 LOOP
76996 --
76997 FETCH line_cur BULK COLLECT INTO
76998 l_array_entity_id
76999 , l_array_legal_entity_id
77000 , l_array_entity_code
77001 , l_array_transaction_num
77002 , l_array_event_id
77003 , l_array_class_code
77004 , l_array_event_type
77005 , l_array_event_number
77006 , l_array_event_date
77007 , l_array_transaction_date
77008 , l_array_reference_num_1
77009 , l_array_reference_num_2
77010 , l_array_reference_num_3
77011 , l_array_reference_num_4
77012 , l_array_reference_char_1
77013 , l_array_reference_char_2
77014 , l_array_reference_char_3
77015 , l_array_reference_char_4
77016 , l_array_reference_date_1
77017 , l_array_reference_date_2
77018 , l_array_reference_date_3
77019 , l_array_reference_date_4
77020 , l_array_event_created_by
77021 , l_array_budgetary_control_flag
77025 , l_array_source_44
77022 , l_array_extract_line_num
77023 , l_array_source_26
77024 , l_array_source_43
77026 , l_array_source_45
77027 , l_array_source_46
77028 , l_array_source_48
77029 , l_array_source_49
77030 , l_array_source_50
77031 , l_array_source_51
77032 , l_array_source_65
77033 , l_array_source_86
77034 , l_array_source_87
77035 LIMIT l_rows;
77036
77037 --
77038 IF (C_LEVEL_EVENT >= g_log_level) THEN
77039 trace
77040 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
77041 ,p_level => C_LEVEL_EVENT
77042 ,p_module => l_log_module);
77043 END IF;
77044 --
77045 EXIT WHEN l_array_entity_id.count = 0;
77046
77047 XLA_AE_LINES_PKG.g_rec_lines := null;
77048
77049 --
77050 -- Bug 4458708
77051 --
77052 XLA_AE_LINES_PKG.g_LineNumber := 0;
77053 --
77054 --
77055
77056 FOR Idx IN 1..l_array_event_id.count LOOP
77057 --
77058 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
77059 --
77060 l_event_id := l_array_event_id(idx); -- 5648433
77061
77062 --
77063 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77064 --
77065
77066 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
77067 (g_array_event(l_event_id).array_value_num('header_index'))
77068 ,'N'
77069 ) <> 'Y'
77070 THEN
77071 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77072 trace
77073 (p_msg => 'Trancaction revesal option is not Y '
77074 ,p_level => C_LEVEL_STATEMENT
77075 ,p_module => l_log_module);
77076 END IF;
77077
77078 --
77079 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
77080 --
77081 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77082 --
77083 -- set event info as cache for other routines to refer event attributes
77084 --
77085
77086 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
77087 l_previous_event_id := l_event_id;
77088
77089 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77090 (p_application_id => p_application_id
77091 ,p_primary_ledger_id => p_primary_ledger_id
77092 ,p_base_ledger_id => p_base_ledger_id
77093 ,p_target_ledger_id => p_target_ledger_id
77094 ,p_entity_id => l_array_entity_id(Idx)
77095 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
77096 ,p_entity_code => l_array_entity_code(Idx)
77097 ,p_transaction_num => l_array_transaction_num(Idx)
77098 ,p_event_id => l_array_event_id(Idx)
77099 ,p_event_class_code => l_array_class_code(Idx)
77100 ,p_event_type_code => l_array_event_type(Idx)
77101 ,p_event_number => l_array_event_number(Idx)
77102 ,p_event_date => l_array_event_date(Idx)
77103 ,p_transaction_date => l_array_transaction_date(Idx)
77104 ,p_reference_num_1 => l_array_reference_num_1(Idx)
77105 ,p_reference_num_2 => l_array_reference_num_2(Idx)
77106 ,p_reference_num_3 => l_array_reference_num_3(Idx)
77107 ,p_reference_num_4 => l_array_reference_num_4(Idx)
77108 ,p_reference_char_1 => l_array_reference_char_1(Idx)
77109 ,p_reference_char_2 => l_array_reference_char_2(Idx)
77110 ,p_reference_char_3 => l_array_reference_char_3(Idx)
77111 ,p_reference_char_4 => l_array_reference_char_4(Idx)
77112 ,p_reference_date_1 => l_array_reference_date_1(Idx)
77113 ,p_reference_date_2 => l_array_reference_date_2(Idx)
77114 ,p_reference_date_3 => l_array_reference_date_3(Idx)
77115 ,p_reference_date_4 => l_array_reference_date_4(Idx)
77116 ,p_event_created_by => l_array_event_created_by(Idx)
77117 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
77118 --
77119 END IF;
77120
77121
77122
77123 --
77124 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
77125
77126 l_acct_reversal_source := SUBSTR(NULL, 1,30);
77127
77128 IF l_continue_with_lines THEN
77129 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
77130 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77131
77132 xla_accounting_err_pkg.build_message
77133 (p_appli_s_name => 'XLA'
77134 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
77135 ,p_token_1 => 'LINE_NUMBER'
77136 ,p_value_1 => l_array_extract_line_num(Idx)
77137 ,p_token_2 => 'PRODUCT_NAME'
77138 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77139 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77143 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
77140 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77141 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77142
77144 --
77145 -- following sets the accounting attributes needed to reverse
77146 -- accounting for a distributeion
77147 --
77148
77149 --
77150 -- 5217187
77151 --
77152 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
77153 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
77154 g_array_event(l_event_id).array_value_num('header_index'));
77155 --
77156 --
77157
77158 -- No reversal code generated
77159
77160 xla_ae_lines_pkg.SetAcctReversalAttrs
77161 (p_event_id => l_event_id
77162 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
77163 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77164 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
77165 END IF;
77166
77167 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
77168 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
77169
77170 --
77171 AcctLineType_79 (
77172 p_application_id => p_application_id
77173 ,p_event_id => l_event_id
77174 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77175 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77176 ,p_actual_flag => l_actual_flag
77177 ,p_balance_type_code => l_balance_type_code
77178 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77179
77180 , p_source_26 => l_array_source_26(Idx)
77181 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77182 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77183 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77184 , p_source_43 => l_array_source_43(Idx)
77185 , p_source_44 => l_array_source_44(Idx)
77186 , p_source_45 => l_array_source_45(Idx)
77187 , p_source_46 => l_array_source_46(Idx)
77188 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77189 , p_source_48 => l_array_source_48(Idx)
77190 , p_source_49 => l_array_source_49(Idx)
77191 , p_source_50 => l_array_source_50(Idx)
77192 , p_source_51 => l_array_source_51(Idx)
77193 , p_source_86 => l_array_source_86(Idx)
77194 );
77195 If(l_balance_type_code = 'A') THEN
77196 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77197 END IF;
77198
77199 --
77200
77201
77202 --
77203 AcctLineType_80 (
77204 p_application_id => p_application_id
77205 ,p_event_id => l_event_id
77206 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77207 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77208 ,p_actual_flag => l_actual_flag
77209 ,p_balance_type_code => l_balance_type_code
77210 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77211
77212 , p_source_26 => l_array_source_26(Idx)
77213 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77214 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77215 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77216 , p_source_43 => l_array_source_43(Idx)
77217 , p_source_44 => l_array_source_44(Idx)
77218 , p_source_45 => l_array_source_45(Idx)
77219 , p_source_46 => l_array_source_46(Idx)
77220 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77221 , p_source_48 => l_array_source_48(Idx)
77222 , p_source_49 => l_array_source_49(Idx)
77223 , p_source_50 => l_array_source_50(Idx)
77224 , p_source_51 => l_array_source_51(Idx)
77225 , p_source_86 => l_array_source_86(Idx)
77226 );
77227 If(l_balance_type_code = 'A') THEN
77228 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77229 END IF;
77230
77231 --
77232
77233
77234 --
77235 AcctLineType_81 (
77236 p_application_id => p_application_id
77237 ,p_event_id => l_event_id
77238 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77239 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77240 ,p_actual_flag => l_actual_flag
77241 ,p_balance_type_code => l_balance_type_code
77242 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77243
77244 , p_source_26 => l_array_source_26(Idx)
77245 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77246 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77247 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77248 , p_source_43 => l_array_source_43(Idx)
77249 , p_source_44 => l_array_source_44(Idx)
77250 , p_source_45 => l_array_source_45(Idx)
77251 , p_source_46 => l_array_source_46(Idx)
77252 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77253 , p_source_48 => l_array_source_48(Idx)
77254 , p_source_49 => l_array_source_49(Idx)
77255 , p_source_50 => l_array_source_50(Idx)
77256 , p_source_51 => l_array_source_51(Idx)
77257 , p_source_86 => l_array_source_86(Idx)
77258 );
77259 If(l_balance_type_code = 'A') THEN
77263 --
77260 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77261 END IF;
77262
77264
77265
77266 --
77267 AcctLineType_82 (
77268 p_application_id => p_application_id
77269 ,p_event_id => l_event_id
77270 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77271 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77272 ,p_actual_flag => l_actual_flag
77273 ,p_balance_type_code => l_balance_type_code
77274 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77275
77276 , p_source_26 => l_array_source_26(Idx)
77277 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77278 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77279 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77280 , p_source_43 => l_array_source_43(Idx)
77281 , p_source_44 => l_array_source_44(Idx)
77282 , p_source_45 => l_array_source_45(Idx)
77283 , p_source_46 => l_array_source_46(Idx)
77284 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77285 , p_source_48 => l_array_source_48(Idx)
77286 , p_source_49 => l_array_source_49(Idx)
77287 , p_source_50 => l_array_source_50(Idx)
77288 , p_source_51 => l_array_source_51(Idx)
77289 , p_source_65 => l_array_source_65(Idx)
77290 , p_source_86 => l_array_source_86(Idx)
77291 , p_source_87 => l_array_source_87(Idx)
77292 );
77293 If(l_balance_type_code = 'A') THEN
77294 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77295 END IF;
77296
77297 --
77298
77299
77300 --
77301 AcctLineType_83 (
77305 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77302 p_application_id => p_application_id
77303 ,p_event_id => l_event_id
77304 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77306 ,p_actual_flag => l_actual_flag
77307 ,p_balance_type_code => l_balance_type_code
77308 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77309
77310 , p_source_26 => l_array_source_26(Idx)
77311 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77312 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77313 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77314 , p_source_43 => l_array_source_43(Idx)
77315 , p_source_44 => l_array_source_44(Idx)
77316 , p_source_45 => l_array_source_45(Idx)
77317 , p_source_46 => l_array_source_46(Idx)
77318 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77319 , p_source_48 => l_array_source_48(Idx)
77320 , p_source_49 => l_array_source_49(Idx)
77321 , p_source_50 => l_array_source_50(Idx)
77322 , p_source_51 => l_array_source_51(Idx)
77323 , p_source_86 => l_array_source_86(Idx)
77324 , p_source_87 => l_array_source_87(Idx)
77325 );
77326 If(l_balance_type_code = 'A') THEN
77327 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77328 END IF;
77329
77330 --
77331
77332
77333 --
77334 AcctLineType_84 (
77335 p_application_id => p_application_id
77336 ,p_event_id => l_event_id
77337 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77338 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77339 ,p_actual_flag => l_actual_flag
77340 ,p_balance_type_code => l_balance_type_code
77341 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77342
77343 , p_source_26 => l_array_source_26(Idx)
77344 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77345 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77346 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77347 , p_source_43 => l_array_source_43(Idx)
77348 , p_source_44 => l_array_source_44(Idx)
77349 , p_source_45 => l_array_source_45(Idx)
77350 , p_source_46 => l_array_source_46(Idx)
77351 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77352 , p_source_48 => l_array_source_48(Idx)
77353 , p_source_49 => l_array_source_49(Idx)
77354 , p_source_50 => l_array_source_50(Idx)
77355 , p_source_51 => l_array_source_51(Idx)
77356 , p_source_86 => l_array_source_86(Idx)
77357 );
77358 If(l_balance_type_code = 'A') THEN
77359 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77360 END IF;
77361
77362 --
77363
77364
77365 --
77366 AcctLineType_85 (
77367 p_application_id => p_application_id
77368 ,p_event_id => l_event_id
77369 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77370 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77371 ,p_actual_flag => l_actual_flag
77372 ,p_balance_type_code => l_balance_type_code
77373 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77374
77375 , p_source_26 => l_array_source_26(Idx)
77376 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77380 , p_source_44 => l_array_source_44(Idx)
77377 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77378 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77379 , p_source_43 => l_array_source_43(Idx)
77381 , p_source_45 => l_array_source_45(Idx)
77382 , p_source_46 => l_array_source_46(Idx)
77383 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77384 , p_source_48 => l_array_source_48(Idx)
77385 , p_source_49 => l_array_source_49(Idx)
77386 , p_source_50 => l_array_source_50(Idx)
77387 , p_source_51 => l_array_source_51(Idx)
77388 , p_source_86 => l_array_source_86(Idx)
77389 );
77390 If(l_balance_type_code = 'A') THEN
77391 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77392 END IF;
77393
77394 --
77395
77396
77397 --
77398 AcctLineType_86 (
77399 p_application_id => p_application_id
77400 ,p_event_id => l_event_id
77401 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77402 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77403 ,p_actual_flag => l_actual_flag
77404 ,p_balance_type_code => l_balance_type_code
77405 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77406
77407 , p_source_26 => l_array_source_26(Idx)
77408 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77409 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77410 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77411 , p_source_43 => l_array_source_43(Idx)
77412 , p_source_44 => l_array_source_44(Idx)
77413 , p_source_45 => l_array_source_45(Idx)
77414 , p_source_46 => l_array_source_46(Idx)
77415 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77416 , p_source_48 => l_array_source_48(Idx)
77417 , p_source_49 => l_array_source_49(Idx)
77418 , p_source_50 => l_array_source_50(Idx)
77419 , p_source_51 => l_array_source_51(Idx)
77420 , p_source_86 => l_array_source_86(Idx)
77421 , p_source_87 => l_array_source_87(Idx)
77422 );
77423 If(l_balance_type_code = 'A') THEN
77424 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77425 END IF;
77426
77427 --
77428
77429
77430 --
77431 AcctLineType_87 (
77432 p_application_id => p_application_id
77433 ,p_event_id => l_event_id
77434 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77435 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77436 ,p_actual_flag => l_actual_flag
77437 ,p_balance_type_code => l_balance_type_code
77438 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77439
77440 , p_source_26 => l_array_source_26(Idx)
77441 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77442 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77443 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77444 , p_source_43 => l_array_source_43(Idx)
77445 , p_source_44 => l_array_source_44(Idx)
77446 , p_source_45 => l_array_source_45(Idx)
77447 , p_source_46 => l_array_source_46(Idx)
77448 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77449 , p_source_48 => l_array_source_48(Idx)
77450 , p_source_49 => l_array_source_49(Idx)
77451 , p_source_50 => l_array_source_50(Idx)
77452 , p_source_51 => l_array_source_51(Idx)
77453 , p_source_86 => l_array_source_86(Idx)
77454 , p_source_87 => l_array_source_87(Idx)
77455 );
77456 If(l_balance_type_code = 'A') THEN
77457 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77458 END IF;
77459
77460 --
77461
77462
77463 --
77464 AcctLineType_88 (
77468 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77465 p_application_id => p_application_id
77466 ,p_event_id => l_event_id
77467 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77469 ,p_actual_flag => l_actual_flag
77470 ,p_balance_type_code => l_balance_type_code
77471 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77472
77473 , p_source_26 => l_array_source_26(Idx)
77474 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77475 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77476 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77477 , p_source_43 => l_array_source_43(Idx)
77478 , p_source_44 => l_array_source_44(Idx)
77479 , p_source_45 => l_array_source_45(Idx)
77480 , p_source_46 => l_array_source_46(Idx)
77481 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77485 , p_source_51 => l_array_source_51(Idx)
77482 , p_source_48 => l_array_source_48(Idx)
77483 , p_source_49 => l_array_source_49(Idx)
77484 , p_source_50 => l_array_source_50(Idx)
77486 , p_source_86 => l_array_source_86(Idx)
77487 , p_source_87 => l_array_source_87(Idx)
77488 );
77489 If(l_balance_type_code = 'A') THEN
77490 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77491 END IF;
77492
77493 --
77494
77495
77496 --
77497 AcctLineType_89 (
77498 p_application_id => p_application_id
77499 ,p_event_id => l_event_id
77500 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77501 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77502 ,p_actual_flag => l_actual_flag
77503 ,p_balance_type_code => l_balance_type_code
77504 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77505
77506 , p_source_26 => l_array_source_26(Idx)
77507 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
77508 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
77509 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77510 , p_source_43 => l_array_source_43(Idx)
77511 , p_source_44 => l_array_source_44(Idx)
77512 , p_source_45 => l_array_source_45(Idx)
77513 , p_source_46 => l_array_source_46(Idx)
77514 , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
77515 , p_source_48 => l_array_source_48(Idx)
77516 , p_source_49 => l_array_source_49(Idx)
77517 , p_source_50 => l_array_source_50(Idx)
77518 , p_source_51 => l_array_source_51(Idx)
77519 , p_source_86 => l_array_source_86(Idx)
77520 , p_source_87 => l_array_source_87(Idx)
77521 );
77522 If(l_balance_type_code = 'A') THEN
77523 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77524 END IF;
77525
77526 --
77527
77528 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
77529 -- or secondary ledger that has different currency with primary
77530 -- or alc that is calculated by sla
77531 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77532 (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'))
77533
77534 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
77535 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
77536 AND (l_actual_flag = 'A')) THEN
77537 XLA_AE_LINES_PKG.CreateGainOrLossLines(
77538 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77539 ,p_application_id => p_application_id
77540 ,p_amb_context_code => 'DEFAULT'
77541 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
77542 ,p_event_class_code => C_EVENT_CLASS_CODE
77543 ,p_event_type_code => C_EVENT_TYPE_CODE
77544
77545 ,p_gain_ccid => -1
77546 ,p_loss_ccid => -1
77547
77548 ,p_actual_flag => l_actual_flag
77549 ,p_enc_flag => null
77550 ,p_actual_g_l_ref => l_actual_gain_loss_ref
77551 ,p_enc_g_l_ref => null
77552 );
77553 END IF;
77554 END IF;
77555 END IF;
77556
77557 ELSE
77558 --
77559 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77560 --
77561 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77562 trace
77563 (p_msg => 'Trancaction revesal option is Y'
77564 ,p_level => C_LEVEL_STATEMENT
77565 ,p_module => l_log_module);
77566 END IF;
77567 END IF;
77568
77569 END LOOP;
77570 l_result := XLA_AE_LINES_PKG.InsertLines ;
77571 end loop;
77572 close line_cur;
77573
77574
77575 --
77576 -- insert headers into xla_ae_headers_gt table
77577 --
77578 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
77579
77580 -- insert into errors table here.
77581
77582 END LOOP;
77583
77584 --
77585 -- 4865292
77586 --
77587 -- Compare g_hdr_extract_count with event count in
77588 -- CreateHeadersAndLines.
77589 --
77590 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
77591
77592 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77593 trace (p_msg => '# rows extracted from header extract objects '
77594 || ' (running total): '
77595 || g_hdr_extract_count
77596 ,p_level => C_LEVEL_STATEMENT
77597 ,p_module => l_log_module);
77598 END IF;
77599
77600 CLOSE header_cur;
77601 --
77602
77603 --
77604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77605 trace
77606 (p_msg => 'END of EventClass_135'
77607 ,p_level => C_LEVEL_PROCEDURE
77608 ,p_module => l_log_module);
77609 END IF;
77610 --
77611 RETURN l_result;
77612 EXCEPTION
77613 WHEN xla_exceptions_pkg.application_exception THEN
77614
77615 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77616
77617
77618 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
77619
77620 RAISE;
77621
77622 WHEN NO_DATA_FOUND THEN
77623
77624 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77625 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
77626
77627 FOR header_record IN header_cur
77631
77628 LOOP
77629 l_array_header_events(header_record.event_id) := header_record.event_id;
77630 END LOOP;
77632 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
77633 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
77634
77635 fnd_file.put_line(fnd_file.LOG, ' ');
77636 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
77637 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
77638 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
77639
77640 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
77641 LOOP
77642 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
77643 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
77644 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
77645 END IF;
77646 END LOOP;
77647
77648 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
77649 fnd_file.put_line(fnd_file.LOG, ' ');
77650
77651
77652 xla_exceptions_pkg.raise_message
77653 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_135');
77654
77655
77656 WHEN OTHERS THEN
77657 xla_exceptions_pkg.raise_message
77658 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_135');
77659 END EventClass_135;
77660 --
77661
77662 ---------------------------------------
77663 --
77664 -- PRIVATE PROCEDURE
77665 -- insert_sources_136
77666 --
77667 ----------------------------------------
77668 --
77669 PROCEDURE insert_sources_136(
77670 p_target_ledger_id IN NUMBER
77671 , p_language IN VARCHAR2
77672 , p_sla_ledger_id IN NUMBER
77673 , p_pad_start_date IN DATE
77674 , p_pad_end_date IN DATE
77675 )
77676 IS
77677
77678 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT_ALL';
77679 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT';
77680 p_apps_owner VARCHAR2(30);
77681 l_log_module VARCHAR2(240);
77682 BEGIN
77683 IF g_log_enabled THEN
77684 l_log_module := C_DEFAULT_MODULE||'.insert_sources_136';
77685 END IF;
77686 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77687
77688 trace
77689 (p_msg => 'BEGIN of insert_sources_136'
77690 ,p_level => C_LEVEL_PROCEDURE
77691 ,p_module => l_log_module);
77692
77693 END IF;
77694
77695 -- select APPS owner
77696 SELECT oracle_username
77697 INTO p_apps_owner
77698 FROM fnd_oracle_userid
77699 WHERE read_only_flag = 'U'
77700 ;
77701
77702 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77703 trace
77704 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
77705 ' - p_language = '||p_language||
77706 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
77707 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
77708 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
77709 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
77710 ,p_level => C_LEVEL_STATEMENT
77711 ,p_module => l_log_module);
77712 END IF;
77713
77714
77715 --
77716 INSERT INTO xla_diag_sources --hdr2
77717 (
77718 event_id
77719 , ledger_id
77720 , sla_ledger_id
77721 , description_language
77722 , object_name
77723 , object_type_code
77724 , line_number
77725 , source_application_id
77726 , source_type_code
77727 , source_code
77728 , source_value
77729 , source_meaning
77730 , created_by
77731 , creation_date
77732 , last_update_date
77733 , last_updated_by
77734 , last_update_login
77735 , program_update_date
77736 , program_application_id
77737 , program_id
77738 , request_id
77739 )
77740 SELECT
77741 event_id
77742 , p_target_ledger_id
77743 , p_sla_ledger_id
77744 , p_language
77745 , object_name
77746 , object_type_code
77747 , line_number
77748 , source_application_id
77749 , source_type_code
77750 , source_code
77751 , SUBSTR(source_value ,1,1996)
77752 , SUBSTR(source_meaning ,1,200)
77753 , xla_environment_pkg.g_Usr_Id
77754 , TRUNC(SYSDATE)
77755 , TRUNC(SYSDATE)
77756 , xla_environment_pkg.g_Usr_Id
77757 , xla_environment_pkg.g_Login_Id
77758 , TRUNC(SYSDATE)
77759 , xla_environment_pkg.g_Prog_Appl_Id
77760 , xla_environment_pkg.g_Prog_Id
77761 , xla_environment_pkg.g_Req_Id
77762 FROM (
77763 SELECT xet.event_id event_id
77764 , 0 line_number
77765 , CASE r
77766 WHEN 1 THEN 'AR_CASH_RECEIPTS_H_V'
77767 WHEN 2 THEN 'AR_CASH_RECEIPTS_H_V'
77768 WHEN 3 THEN 'AR_RCT_METHOD_H_V'
77769 WHEN 4 THEN 'AR_CASH_RECEIPTS_H_V'
77770 WHEN 5 THEN 'AR_REMIT_BANK_ACCT_H_V'
77771 WHEN 6 THEN 'AR_REMIT_BANK_ACCT_H_V'
77772 WHEN 7 THEN 'AR_CASH_RECEIPTS_H_V'
77776 WHEN 11 THEN 'AR_CASH_RECEIPTS_H_V'
77773 WHEN 8 THEN 'AR_RECEIVABLES_TRX_MISC_H_V'
77774 WHEN 9 THEN 'AR_CASH_RECEIPTS_H_V'
77775 WHEN 10 THEN 'AR_CASH_RECEIPTS_H_V'
77777
77778 ELSE null
77779 END object_name
77780 , CASE r
77781 WHEN 1 THEN 'HEADER'
77782 WHEN 2 THEN 'HEADER'
77783 WHEN 3 THEN 'HEADER'
77784 WHEN 4 THEN 'HEADER'
77785 WHEN 5 THEN 'HEADER'
77786 WHEN 6 THEN 'HEADER'
77787 WHEN 7 THEN 'HEADER'
77788 WHEN 8 THEN 'HEADER'
77789 WHEN 9 THEN 'HEADER'
77790 WHEN 10 THEN 'HEADER'
77791 WHEN 11 THEN 'HEADER'
77792
77793 ELSE null
77794 END object_type_code
77795 , CASE r
77796 WHEN 1 THEN '222'
77797 WHEN 2 THEN '222'
77798 WHEN 3 THEN '222'
77799 WHEN 4 THEN '222'
77800 WHEN 5 THEN '222'
77801 WHEN 6 THEN '222'
77802 WHEN 7 THEN '222'
77803 WHEN 8 THEN '222'
77804 WHEN 9 THEN '222'
77805 WHEN 10 THEN '222'
77806 WHEN 11 THEN '222'
77807
77808 ELSE null
77809 END source_application_id
77810 , 'S' source_type_code
77811 , CASE r
77812 WHEN 1 THEN 'RCT_RECEIPT_NUMBER'
77813 WHEN 2 THEN 'RCT_DOC_SEQUENCE_VALUE'
77814 WHEN 3 THEN 'RCT_MTHD_NAME'
77815 WHEN 4 THEN 'RCT_RECEIPT_DATE'
77816 WHEN 5 THEN 'RMT_BANK_NAME'
77817 WHEN 6 THEN 'RMT_BNK_ACCOUNT_NAME'
77818 WHEN 7 THEN 'RCT_CASH_RECEIPT_ID'
77819 WHEN 8 THEN 'MC_ACT_NAME'
77820 WHEN 9 THEN 'RCT_DOC_SEQUENCE_CATEGORY'
77821 WHEN 10 THEN 'RCT_DOC_SEQUENCE_ID'
77822 WHEN 11 THEN 'RCT_TRX_ACCT_REVERSAL'
77823
77824 ELSE null
77825 END source_code
77826 , CASE r
77827 WHEN 1 THEN TO_CHAR(h1.RCT_RECEIPT_NUMBER)
77828 WHEN 2 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_VALUE)
77829 WHEN 3 THEN TO_CHAR(h4.RCT_MTHD_NAME)
77830 WHEN 4 THEN TO_CHAR(h1.RCT_RECEIPT_DATE)
77831 WHEN 5 THEN TO_CHAR(h6.RMT_BANK_NAME)
77832 WHEN 6 THEN TO_CHAR(h6.RMT_BNK_ACCOUNT_NAME)
77833 WHEN 7 THEN TO_CHAR(h1.RCT_CASH_RECEIPT_ID)
77834 WHEN 8 THEN TO_CHAR(h5.MC_ACT_NAME)
77835 WHEN 9 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_CATEGORY)
77836 WHEN 10 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_ID)
77837 WHEN 11 THEN TO_CHAR(h1.RCT_TRX_ACCT_REVERSAL)
77838
77839 ELSE null
77840 END source_value
77841 , null source_meaning
77842 FROM xla_events_gt xet
77843 , AR_CASH_RECEIPTS_H_V h1
77844 , AR_RCT_METHOD_H_V h4
77845 , AR_RECEIVABLES_TRX_MISC_H_V h5
77846 , AR_REMIT_BANK_ACCT_H_V h6
77847 ,(select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
77848 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77849 AND xet.event_class_code = C_EVENT_CLASS_CODE
77850 AND h5.event_id = xet.event_id
77851 AND h1.event_id (+) = h5.event_id
77852 AND h4.event_id (+) = h5.event_id
77853 AND h6.event_id (+) = h5.event_id
77854
77855 )
77856 ;
77857 --
77858 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77859
77860 trace
77861 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
77862 ,p_level => C_LEVEL_STATEMENT
77863 ,p_module => l_log_module);
77864
77865 END IF;
77866 --
77867
77868
77869
77870 --
77871 INSERT INTO xla_diag_sources --line2
77872 (
77873 event_id
77874 , ledger_id
77875 , sla_ledger_id
77876 , description_language
77877 , object_name
77878 , object_type_code
77879 , line_number
77880 , source_application_id
77881 , source_type_code
77882 , source_code
77883 , source_value
77884 , source_meaning
77885 , created_by
77886 , creation_date
77887 , last_update_date
77888 , last_updated_by
77889 , last_update_login
77890 , program_update_date
77891 , program_application_id
77892 , program_id
77893 , request_id
77894 )
77895 SELECT event_id
77896 , p_target_ledger_id
77897 , p_sla_ledger_id
77898 , p_language
77899 , object_name
77900 , object_type_code
77901 , line_number
77902 , source_application_id
77903 , source_type_code
77904 , source_code
77905 , SUBSTR(source_value,1,1996)
77906 , SUBSTR(source_meaning ,1,200)
77907 , xla_environment_pkg.g_Usr_Id
77908 , TRUNC(SYSDATE)
77909 , TRUNC(SYSDATE)
77910 , xla_environment_pkg.g_Usr_Id
77911 , xla_environment_pkg.g_Login_Id
77912 , TRUNC(SYSDATE)
77913 , xla_environment_pkg.g_Prog_Appl_Id
77914 , xla_environment_pkg.g_Prog_Id
77918 , l3.line_number line_number
77915 , xla_environment_pkg.g_Req_Id
77916 FROM (
77917 SELECT xet.event_id event_id
77919 , CASE r
77920 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
77921 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
77922 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
77923 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
77924 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
77925 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
77926 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
77927 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
77928 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
77929 WHEN 10 THEN 'AR_DISTRIBUTIONS_L_V'
77930 WHEN 11 THEN 'AR_DISTRIBUTIONS_BASE_V'
77931
77932 ELSE null
77933 END object_name
77934 , CASE r
77935 WHEN 1 THEN 'LINE'
77936 WHEN 2 THEN 'LINE'
77937 WHEN 3 THEN 'LINE'
77938 WHEN 4 THEN 'LINE'
77939 WHEN 5 THEN 'LINE'
77940 WHEN 6 THEN 'LINE'
77941 WHEN 7 THEN 'LINE'
77942 WHEN 8 THEN 'LINE'
77943 WHEN 9 THEN 'LINE'
77944 WHEN 10 THEN 'LINE'
77945 WHEN 11 THEN 'LINE'
77946
77947 ELSE null
77948 END object_type_code
77949 , CASE r
77950 WHEN 1 THEN '222'
77951 WHEN 2 THEN '222'
77952 WHEN 3 THEN '222'
77953 WHEN 4 THEN '222'
77954 WHEN 5 THEN '222'
77955 WHEN 6 THEN '222'
77956 WHEN 7 THEN '222'
77957 WHEN 8 THEN '222'
77958 WHEN 9 THEN '222'
77959 WHEN 10 THEN '222'
77960 WHEN 11 THEN '222'
77961
77962 ELSE null
77963 END source_application_id
77964 , 'S' source_type_code
77965 , CASE r
77966 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
77967 WHEN 2 THEN 'DIST_SOURCE_TYPE'
77971 WHEN 6 THEN 'DIST_CURRENCY_CODE'
77968 WHEN 3 THEN 'DIST_LINE_ID'
77969 WHEN 4 THEN 'DISTRIBUTION_TYPE'
77970 WHEN 5 THEN 'DIST_ENT_AMT'
77972 WHEN 7 THEN 'DIST_CUR_CONVERSION_RATE'
77973 WHEN 8 THEN 'DIST_CUR_CONVERSION_TYPE'
77974 WHEN 9 THEN 'DIST_TO_ACCTD_AMT'
77975 WHEN 10 THEN 'DIST_MFAR_ADDITIONAL_ENTRY'
77976 WHEN 11 THEN 'DIST_TO_CUR_CONVERSION_DATE'
77977
77978 ELSE null
77979 END source_code
77980 , CASE r
77981 WHEN 1 THEN TO_CHAR(l3.DIST_CODE_COMBINATION_ID)
77982 WHEN 2 THEN TO_CHAR(l3.DIST_SOURCE_TYPE)
77983 WHEN 3 THEN TO_CHAR(l3.DIST_LINE_ID)
77984 WHEN 4 THEN TO_CHAR(l3.DISTRIBUTION_TYPE)
77985 WHEN 5 THEN TO_CHAR(l3.DIST_ENT_AMT)
77986 WHEN 6 THEN TO_CHAR(l3.DIST_CURRENCY_CODE)
77987 WHEN 7 THEN TO_CHAR(l2.DIST_CUR_CONVERSION_RATE)
77991 WHEN 11 THEN TO_CHAR(l2.DIST_TO_CUR_CONVERSION_DATE)
77988 WHEN 8 THEN TO_CHAR(l2.DIST_CUR_CONVERSION_TYPE)
77989 WHEN 9 THEN TO_CHAR(l2.DIST_TO_ACCTD_AMT)
77990 WHEN 10 THEN TO_CHAR(l3.DIST_MFAR_ADDITIONAL_ENTRY)
77992
77993 ELSE null
77994 END source_value
77995 , null source_meaning
77996 FROM xla_events_gt xet
77997 , AR_DISTRIBUTIONS_BASE_V l2
77998 , AR_DISTRIBUTIONS_L_V l3
77999 , (select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
78000 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
78001 AND xet.event_class_code = C_EVENT_CLASS_CODE
78002 AND l2.event_id = xet.event_id
78003 AND l3.event_id = l2.event_id
78004 AND l3.line_number = l2.line_number
78005
78006 )
78007 ;
78008 --
78009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78010
78011 trace
78012 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
78013 ,p_level => C_LEVEL_STATEMENT
78014 ,p_module => l_log_module);
78015
78016 END IF;
78017
78018
78019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78020 trace
78021 (p_msg => 'END of insert_sources_136'
78022 ,p_level => C_LEVEL_PROCEDURE
78023 ,p_module => l_log_module);
78024 END IF;
78025 EXCEPTION
78026 WHEN xla_exceptions_pkg.application_exception THEN
78027 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78028 trace
78029 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78030 ,p_level => C_LEVEL_EXCEPTION
78031 ,p_module => l_log_module);
78032 END IF;
78033 RAISE;
78034 WHEN OTHERS THEN
78035 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78036 trace
78037 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78038 ,p_level => C_LEVEL_EXCEPTION
78039 ,p_module => l_log_module);
78040 END IF;
78041 xla_exceptions_pkg.raise_message
78042 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_136');
78043 END insert_sources_136;
78044 --
78045
78046 ---------------------------------------
78047 --
78048 -- PRIVATE FUNCTION
78049 -- EventClass_136
78050 --
78051 ----------------------------------------
78052 --
78053 FUNCTION EventClass_136
78054 (p_application_id IN NUMBER
78055 ,p_base_ledger_id IN NUMBER
78056 ,p_target_ledger_id IN NUMBER
78057 ,p_language IN VARCHAR2
78058 ,p_currency_code IN VARCHAR2
78059 ,p_sla_ledger_id IN NUMBER
78060 ,p_pad_start_date IN DATE
78061 ,p_pad_end_date IN DATE
78062 ,p_primary_ledger_id IN NUMBER)
78063 RETURN BOOLEAN IS
78064 --
78065 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT_ALL';
78066 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT';
78067
78068 l_calculate_acctd_flag VARCHAR2(1) :='N';
78069 l_calculate_g_l_flag VARCHAR2(1) :='N';
78070 --
78071 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78072 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78073 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78074 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78075 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78076 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78077 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78078 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78079 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78080 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78081 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78082 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78083 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78084 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78085 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78086 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78087 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78088 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78089 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78090 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78091 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78092 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78093 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
78094 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78095 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
78096 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
78097
78098 l_event_id NUMBER;
78099 l_previous_event_id NUMBER;
78100 l_first_event_id NUMBER;
78101 l_last_event_id NUMBER;
78102
78103 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
78107 l_result BOOLEAN := TRUE;
78104 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78105 --
78106 --
78108 l_rows NUMBER := 1000;
78109 l_event_type_name VARCHAR2(80) := 'All';
78110 l_event_class_name VARCHAR2(80) := 'Miscellaneous Receipt';
78111 l_description VARCHAR2(4000);
78112 l_transaction_reversal NUMBER;
78113 l_ae_header_id NUMBER;
78114 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
78115 l_log_module VARCHAR2(240);
78116 --
78117 l_acct_reversal_source VARCHAR2(30);
78118 l_trx_reversal_source VARCHAR2(30);
78119
78120 l_continue_with_lines BOOLEAN := TRUE;
78121 --
78122 l_acc_rev_gl_date_source DATE; -- 4262811
78123 --
78124 type t_array_event_id is table of number index by binary_integer;
78125
78126 l_rec_array_event t_rec_array_event;
78127 l_null_rec_array_event t_rec_array_event;
78128 l_array_ae_header_id xla_number_array_type;
78129 l_actual_flag VARCHAR2(1) := NULL;
78130 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
78131 l_balance_type_code VARCHAR2(1) :=NULL;
78132 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
78133
78134 --
78135 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
78136 --
78137
78138 TYPE t_array_source_8 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
78139 TYPE t_array_source_9 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
78140 TYPE t_array_source_10 IS TABLE OF AR_RCT_METHOD_H_V.RCT_MTHD_NAME%TYPE INDEX BY BINARY_INTEGER;
78141 TYPE t_array_source_11 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_DATE%TYPE INDEX BY BINARY_INTEGER;
78142 TYPE t_array_source_12 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
78143 TYPE t_array_source_13 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
78144 TYPE t_array_source_90 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_CASH_RECEIPT_ID%TYPE INDEX BY BINARY_INTEGER;
78145 TYPE t_array_source_91 IS TABLE OF AR_RECEIVABLES_TRX_MISC_H_V.MC_ACT_NAME%TYPE INDEX BY BINARY_INTEGER;
78146 TYPE t_array_source_117 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
78147 TYPE t_array_source_118 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
78148 TYPE t_array_source_119 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_TRX_ACCT_REVERSAL%TYPE INDEX BY BINARY_INTEGER;
78149
78150 TYPE t_array_source_22 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
78151 TYPE t_array_source_27 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78152 TYPE t_array_source_29 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
78153 TYPE t_array_source_30 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
78154 TYPE t_array_source_31 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
78155 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
78156 TYPE t_array_source_34 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
78157 TYPE t_array_source_35 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
78158 TYPE t_array_source_36 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
78159 TYPE t_array_source_88 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_MFAR_ADDITIONAL_ENTRY%TYPE INDEX BY BINARY_INTEGER;
78160 TYPE t_array_source_89 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
78161
78162 l_array_source_8 t_array_source_8;
78163 l_array_source_9 t_array_source_9;
78164 l_array_source_10 t_array_source_10;
78168 l_array_source_90 t_array_source_90;
78165 l_array_source_11 t_array_source_11;
78166 l_array_source_12 t_array_source_12;
78167 l_array_source_13 t_array_source_13;
78169 l_array_source_91 t_array_source_91;
78170 l_array_source_117 t_array_source_117;
78171 l_array_source_118 t_array_source_118;
78172 l_array_source_119 t_array_source_119;
78173
78174 l_array_source_22 t_array_source_22;
78175 l_array_source_27 t_array_source_27;
78176 l_array_source_29 t_array_source_29;
78177 l_array_source_30 t_array_source_30;
78178 l_array_source_31 t_array_source_31;
78179 l_array_source_32 t_array_source_32;
78180 l_array_source_34 t_array_source_34;
78181 l_array_source_35 t_array_source_35;
78182 l_array_source_36 t_array_source_36;
78183 l_array_source_88 t_array_source_88;
78184 l_array_source_89 t_array_source_89;
78185
78186 --
78187 CURSOR header_cur
78188 IS
78189 SELECT /*+ leading(xet) cardinality(xet,1) */
78190 -- Event Class Code: MISC_RECEIPT
78191 xet.entity_id
78192 ,xet.legal_entity_id
78193 ,xet.entity_code
78194 ,xet.transaction_number
78195 ,xet.event_id
78196 ,xet.event_class_code
78197 ,xet.event_type_code
78198 ,xet.event_number
78199 ,xet.event_date
78200 ,xet.transaction_date
78201 ,xet.reference_num_1
78202 ,xet.reference_num_2
78203 ,xet.reference_num_3
78204 ,xet.reference_num_4
78205 ,xet.reference_char_1
78206 ,xet.reference_char_2
78207 ,xet.reference_char_3
78208 ,xet.reference_char_4
78209 ,xet.reference_date_1
78210 ,xet.reference_date_2
78211 ,xet.reference_date_3
78212 ,xet.reference_date_4
78213 ,xet.event_created_by
78214 ,xet.budgetary_control_flag
78215 , h1.RCT_RECEIPT_NUMBER source_8
78216 , h1.RCT_DOC_SEQUENCE_VALUE source_9
78217 , h4.RCT_MTHD_NAME source_10
78218 , h1.RCT_RECEIPT_DATE source_11
78219 , h6.RMT_BANK_NAME source_12
78220 , h6.RMT_BNK_ACCOUNT_NAME source_13
78221 , h1.RCT_CASH_RECEIPT_ID source_90
78222 , h5.MC_ACT_NAME source_91
78223 , h1.RCT_DOC_SEQUENCE_CATEGORY source_117
78224 , h1.RCT_DOC_SEQUENCE_ID source_118
78225 , h1.RCT_TRX_ACCT_REVERSAL source_119
78226 FROM xla_events_gt xet
78227 , AR_CASH_RECEIPTS_H_V h1
78228 , AR_RCT_METHOD_H_V h4
78229 , AR_RECEIVABLES_TRX_MISC_H_V h5
78230 , AR_REMIT_BANK_ACCT_H_V h6
78231 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
78232 and xet.event_class_code = C_EVENT_CLASS_CODE
78233 and xet.event_status_code <> 'N' AND h5.event_id = xet.event_id
78234 AND h1.event_id (+) = h5.event_id
78235 AND h4.event_id (+) = h5.event_id
78239 ;
78236 AND h6.event_id (+) = h5.event_id
78237
78238 ORDER BY event_id
78240
78241
78242 --
78243 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
78244 IS
78245 SELECT /*+ leading(xet) cardinality(xet,1) */
78246 -- Event Class Code: MISC_RECEIPT
78247 xet.entity_id
78248 ,xet.legal_entity_id
78249 ,xet.entity_code
78250 ,xet.transaction_number
78251 ,xet.event_id
78252 ,xet.event_class_code
78253 ,xet.event_type_code
78254 ,xet.event_number
78255 ,xet.event_date
78256 ,xet.transaction_date
78257 ,xet.reference_num_1
78258 ,xet.reference_num_2
78259 ,xet.reference_num_3
78260 ,xet.reference_num_4
78261 ,xet.reference_char_1
78262 ,xet.reference_char_2
78263 ,xet.reference_char_3
78264 ,xet.reference_char_4
78265 ,xet.reference_date_1
78266 ,xet.reference_date_2
78267 ,xet.reference_date_3
78268 ,xet.reference_date_4
78269 ,xet.event_created_by
78270 ,xet.budgetary_control_flag
78271 , l2.LINE_NUMBER
78272 , l3.DIST_CODE_COMBINATION_ID source_22
78273 , l3.DIST_SOURCE_TYPE source_27
78274 , l3.DIST_LINE_ID source_29
78275 , l3.DISTRIBUTION_TYPE source_30
78276 , l3.DIST_ENT_AMT source_31
78277 , l3.DIST_CURRENCY_CODE source_32
78278 , l2.DIST_CUR_CONVERSION_RATE source_34
78279 , l2.DIST_CUR_CONVERSION_TYPE source_35
78280 , l2.DIST_TO_ACCTD_AMT source_36
78281 , l3.DIST_MFAR_ADDITIONAL_ENTRY source_88
78282 , l2.DIST_TO_CUR_CONVERSION_DATE source_89
78283 FROM xla_events_gt xet
78284 , AR_DISTRIBUTIONS_BASE_V l2
78285 , AR_DISTRIBUTIONS_L_V l3
78286 WHERE xet.event_id between x_first_event_id and x_last_event_id
78290 AND l3.event_id = l2.event_id
78287 and xet.event_date between p_pad_start_date and p_pad_end_date
78288 and xet.event_class_code = C_EVENT_CLASS_CODE
78289 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
78291 AND l3.line_number = l2.line_number
78292 ;
78293
78294 --
78295 BEGIN
78296 IF g_log_enabled THEN
78297 l_log_module := C_DEFAULT_MODULE||'.EventClass_136';
78298 END IF;
78299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78300 trace
78301 (p_msg => 'BEGIN of EventClass_136'
78302 ,p_level => C_LEVEL_PROCEDURE
78303 ,p_module => l_log_module);
78304 END IF;
78305
78306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78307 trace
78308 (p_msg => 'p_application_id = '||p_application_id||
78309 ' - p_base_ledger_id = '||p_base_ledger_id||
78310 ' - p_target_ledger_id = '||p_target_ledger_id||
78311 ' - p_language = '||p_language||
78312 ' - p_currency_code = '||p_currency_code||
78313 ' - p_sla_ledger_id = '||p_sla_ledger_id
78314 ,p_level => C_LEVEL_STATEMENT
78315 ,p_module => l_log_module);
78316 END IF;
78317 --
78318 -- initialze arrays
78319 --
78320 g_array_event.DELETE;
78321 l_rec_array_event := l_null_rec_array_event;
78322 --
78323 --------------------------------------
78324 -- 4262811 Initialze MPA Line Number
78325 --------------------------------------
78326 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
78327
78328 --
78329
78330 --
78331 OPEN header_cur;
78332 --
78333 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78334 trace
78335 (p_msg => 'SQL - FETCH header_cur'
78336 ,p_level => C_LEVEL_STATEMENT
78337 ,p_module => l_log_module);
78338 END IF;
78339 --
78340 LOOP
78341 FETCH header_cur BULK COLLECT INTO
78342 l_array_entity_id
78343 , l_array_legal_entity_id
78344 , l_array_entity_code
78345 , l_array_transaction_num
78346 , l_array_event_id
78347 , l_array_class_code
78348 , l_array_event_type
78349 , l_array_event_number
78350 , l_array_event_date
78351 , l_array_transaction_date
78352 , l_array_reference_num_1
78353 , l_array_reference_num_2
78354 , l_array_reference_num_3
78355 , l_array_reference_num_4
78356 , l_array_reference_char_1
78357 , l_array_reference_char_2
78358 , l_array_reference_char_3
78359 , l_array_reference_char_4
78360 , l_array_reference_date_1
78361 , l_array_reference_date_2
78362 , l_array_reference_date_3
78363 , l_array_reference_date_4
78364 , l_array_event_created_by
78365 , l_array_budgetary_control_flag
78366 , l_array_source_8
78367 , l_array_source_9
78368 , l_array_source_10
78369 , l_array_source_11
78370 , l_array_source_12
78371 , l_array_source_13
78372 , l_array_source_90
78373 , l_array_source_91
78374 , l_array_source_117
78375 , l_array_source_118
78376 , l_array_source_119
78377 LIMIT l_rows;
78378 --
78379 IF (C_LEVEL_EVENT >= g_log_level) THEN
78380 trace
78381 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
78382 ,p_level => C_LEVEL_EVENT
78383 ,p_module => l_log_module);
78384 END IF;
78385 --
78386 EXIT WHEN l_array_entity_id.COUNT = 0;
78387
78388 -- initialize arrays
78389 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
78390 XLA_AE_LINES_PKG.g_rec_lines := NULL;
78391
78392 --
78393 -- Bug 4458708
78394 --
78395 XLA_AE_LINES_PKG.g_LineNumber := 0;
78396
78397
78398 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
78399 g_last_hdr_idx := l_array_event_id.LAST;
78400 --
78401 -- loop for the headers. Each iteration is for each header extract row
78402 -- fetched in header cursor
78403 --
78404 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
78405
78406 --
78407 -- set event info as cache for other routines to refer event attributes
78408 --
78409 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78410 (p_application_id => p_application_id
78411 ,p_primary_ledger_id => p_primary_ledger_id
78412 ,p_base_ledger_id => p_base_ledger_id
78413 ,p_target_ledger_id => p_target_ledger_id
78414 ,p_entity_id => l_array_entity_id(hdr_idx)
78415 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
78416 ,p_entity_code => l_array_entity_code(hdr_idx)
78417 ,p_transaction_num => l_array_transaction_num(hdr_idx)
78421 ,p_event_number => l_array_event_number(hdr_idx)
78418 ,p_event_id => l_array_event_id(hdr_idx)
78419 ,p_event_class_code => l_array_class_code(hdr_idx)
78420 ,p_event_type_code => l_array_event_type(hdr_idx)
78422 ,p_event_date => l_array_event_date(hdr_idx)
78423 ,p_transaction_date => l_array_transaction_date(hdr_idx)
78424 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
78425 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
78426 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
78427 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
78428 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
78429 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
78430 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
78431 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
78432 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
78433 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
78434 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
78435 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
78436 ,p_event_created_by => l_array_event_created_by(hdr_idx)
78437 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
78438
78439 --
78440 -- set the status of entry to C_VALID (0)
78441 --
78442 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78443
78444 --
78445 -- initialize a row for ae header
78446 --
78447 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
78448
78449 l_event_id := l_array_event_id(hdr_idx);
78450
78451 --
78452 -- storing the hdr_idx for event. May be used by line cursor.
78453 --
78454 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
78455
78456 --
78457 -- store sources from header extract. This can be improved to
78458 -- store only those sources from header extract that may be used in lines
78459 --
78460
78461 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
78462 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
78463 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
78464 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
78465 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
78466 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
78467 g_array_event(l_event_id).array_value_num('source_90') := l_array_source_90(hdr_idx);
78468 g_array_event(l_event_id).array_value_char('source_91') := l_array_source_91(hdr_idx);
78469 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
78470 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
78471 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
78472
78473 --
78474 -- initilaize the status of ae headers for diffrent balance types
78475 -- the status is initialised to C_NOT_CREATED (2)
78476 --
78477 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78478 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78479 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78480
78481 --
78482 -- call api to validate and store accounting attributes for header
78483 --
78484
78485 ------------------------------------------------------------
78486 -- Accrual Reversal : to get date for Standard Source (NONE)
78487 ------------------------------------------------------------
78488 l_acc_rev_gl_date_source := NULL;
78489
78490 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
78491 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_117');
78492 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
78493 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_118');
78494 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
78495 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
78496 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
78497 l_rec_acct_attrs.array_date_value(4) :=
78498 xla_ae_sources_pkg.GetSystemSourceDate(
78499 p_source_code => 'XLA_EVENT_DATE'
78500 , p_source_type_code => 'Y'
78501 , p_source_application_id => 602
78502 );
78503 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
78504 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_119');
78505
78506
78507 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
78508
78509 XLA_AE_HEADER_PKG.SetJeCategoryName;
78510
78511 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
78512 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
78513 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
78517
78514 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
78515 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
78516
78518 --
78519 xla_ae_header_pkg.SetHdrDescription(
78520 p_description => Description_9 (
78521 p_application_id => p_application_id
78522 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
78523 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
78524 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78525 , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
78526 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78527 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
78528 )
78529 );
78530 --
78531
78532 -- No header level analytical criteria
78533
78534 --
78535 --accounting attribute enhancement, bug 3612931
78536 --
78537 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_119'), 1,30);
78538
78539 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
78540 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78541
78542 xla_accounting_err_pkg.build_message
78543 (p_appli_s_name => 'XLA'
78544 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
78545 ,p_token_1 => 'ACCT_ATTR_NAME'
78546 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
78547 ,p_token_2 => 'PRODUCT_NAME'
78548 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78549 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78550 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78551 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78552
78553 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
78554 --
78555 -- following sets the accounting attributes needed to reverse
78556 -- accounting for a distributeion
78557 --
78558 xla_ae_lines_pkg.SetTrxReversalAttrs
78559 (p_event_id => l_event_id
78560 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
78561 ,p_trx_reversal_source => l_trx_reversal_source);
78562
78563 END IF;
78564
78565
78566 ----------------------------------------------------------------
78570 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
78567 -- 4262811 - update the header statuses to invalid in need be
78568 ----------------------------------------------------------------
78569 --
78571
78572
78573 -----------------------------------------------
78574 -- No accrual reversal for the event class/type
78575 -----------------------------------------------
78576 ----------------------------------------------------------------
78577
78578 --
78579 -- this ends the header loop iteration for one bulk fetch
78580 --
78581 END LOOP;
78582
78583 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
78584 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
78585
78586 --
78587 -- insert dummy rows into lines gt table that were created due to
78588 -- transaction reversals
78589 --
78590 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
78591 l_result := XLA_AE_LINES_PKG.InsertLines;
78592 END IF;
78593
78594 --
78595 -- reset the temp_line_num for each set of events fetched from header
78596 -- cursor rather than doing it for each new event in line cursor
78597 -- Bug 3939231
78598 --
78599 xla_ae_lines_pkg.g_temp_line_num := 0;
78600
78601
78602
78603 --
78604 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
78605 --
78606 --
78607 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78608
78609 trace
78610 (p_msg => 'SQL - FETCH line_cur'
78611 ,p_level => C_LEVEL_STATEMENT
78612 ,p_module => l_log_module);
78613
78614 END IF;
78615 --
78616 --
78617 LOOP
78618 --
78619 FETCH line_cur BULK COLLECT INTO
78620 l_array_entity_id
78621 , l_array_legal_entity_id
78622 , l_array_entity_code
78623 , l_array_transaction_num
78624 , l_array_event_id
78625 , l_array_class_code
78626 , l_array_event_type
78627 , l_array_event_number
78628 , l_array_event_date
78629 , l_array_transaction_date
78630 , l_array_reference_num_1
78631 , l_array_reference_num_2
78632 , l_array_reference_num_3
78633 , l_array_reference_num_4
78634 , l_array_reference_char_1
78635 , l_array_reference_char_2
78636 , l_array_reference_char_3
78637 , l_array_reference_char_4
78638 , l_array_reference_date_1
78639 , l_array_reference_date_2
78640 , l_array_reference_date_3
78641 , l_array_reference_date_4
78642 , l_array_event_created_by
78643 , l_array_budgetary_control_flag
78644 , l_array_extract_line_num
78645 , l_array_source_22
78646 , l_array_source_27
78647 , l_array_source_29
78648 , l_array_source_30
78649 , l_array_source_31
78650 , l_array_source_32
78651 , l_array_source_34
78652 , l_array_source_35
78653 , l_array_source_36
78654 , l_array_source_88
78655 , l_array_source_89
78656 LIMIT l_rows;
78657
78658 --
78659 IF (C_LEVEL_EVENT >= g_log_level) THEN
78660 trace
78661 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
78662 ,p_level => C_LEVEL_EVENT
78663 ,p_module => l_log_module);
78664 END IF;
78665 --
78666 EXIT WHEN l_array_entity_id.count = 0;
78667
78668 XLA_AE_LINES_PKG.g_rec_lines := null;
78669
78670 --
78671 -- Bug 4458708
78672 --
78673 XLA_AE_LINES_PKG.g_LineNumber := 0;
78674 --
78675 --
78676
78677 FOR Idx IN 1..l_array_event_id.count LOOP
78678 --
78679 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
78680 --
78681 l_event_id := l_array_event_id(idx); -- 5648433
78682
78683 --
78684 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78685 --
78686
78687 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
78688 (g_array_event(l_event_id).array_value_num('header_index'))
78689 ,'N'
78690 ) <> 'Y'
78691 THEN
78692 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78693 trace
78694 (p_msg => 'Trancaction revesal option is not Y '
78695 ,p_level => C_LEVEL_STATEMENT
78696 ,p_module => l_log_module);
78697 END IF;
78698
78699 --
78700 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
78701 --
78702 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78703 --
78704 -- set event info as cache for other routines to refer event attributes
78705 --
78706
78707 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
78708 l_previous_event_id := l_event_id;
78709
78710 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78711 (p_application_id => p_application_id
78712 ,p_primary_ledger_id => p_primary_ledger_id
78713 ,p_base_ledger_id => p_base_ledger_id
78714 ,p_target_ledger_id => p_target_ledger_id
78715 ,p_entity_id => l_array_entity_id(Idx)
78716 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
78717 ,p_entity_code => l_array_entity_code(Idx)
78718 ,p_transaction_num => l_array_transaction_num(Idx)
78724 ,p_transaction_date => l_array_transaction_date(Idx)
78719 ,p_event_id => l_array_event_id(Idx)
78720 ,p_event_class_code => l_array_class_code(Idx)
78721 ,p_event_type_code => l_array_event_type(Idx)
78722 ,p_event_number => l_array_event_number(Idx)
78723 ,p_event_date => l_array_event_date(Idx)
78725 ,p_reference_num_1 => l_array_reference_num_1(Idx)
78726 ,p_reference_num_2 => l_array_reference_num_2(Idx)
78727 ,p_reference_num_3 => l_array_reference_num_3(Idx)
78728 ,p_reference_num_4 => l_array_reference_num_4(Idx)
78729 ,p_reference_char_1 => l_array_reference_char_1(Idx)
78730 ,p_reference_char_2 => l_array_reference_char_2(Idx)
78731 ,p_reference_char_3 => l_array_reference_char_3(Idx)
78732 ,p_reference_char_4 => l_array_reference_char_4(Idx)
78733 ,p_reference_date_1 => l_array_reference_date_1(Idx)
78734 ,p_reference_date_2 => l_array_reference_date_2(Idx)
78735 ,p_reference_date_3 => l_array_reference_date_3(Idx)
78736 ,p_reference_date_4 => l_array_reference_date_4(Idx)
78737 ,p_event_created_by => l_array_event_created_by(Idx)
78738 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
78739 --
78740 END IF;
78741
78742
78743
78744 --
78745 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
78746
78747 l_acct_reversal_source := SUBSTR(NULL, 1,30);
78748
78749 IF l_continue_with_lines THEN
78750 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
78751 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78752
78753 xla_accounting_err_pkg.build_message
78754 (p_appli_s_name => 'XLA'
78755 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
78756 ,p_token_1 => 'LINE_NUMBER'
78757 ,p_value_1 => l_array_extract_line_num(Idx)
78758 ,p_token_2 => 'PRODUCT_NAME'
78759 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78760 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78761 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78762 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78763
78764 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
78765 --
78766 -- following sets the accounting attributes needed to reverse
78767 -- accounting for a distributeion
78768 --
78769
78770 --
78771 -- 5217187
78772 --
78773 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
78774 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
78775 g_array_event(l_event_id).array_value_num('header_index'));
78776 --
78777 --
78778
78779 -- No reversal code generated
78780
78781 xla_ae_lines_pkg.SetAcctReversalAttrs
78782 (p_event_id => l_event_id
78783 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
78784 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78785 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
78786 END IF;
78787
78788 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
78789 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
78790
78791 --
78792 AcctLineType_90 (
78793 p_application_id => p_application_id
78794 ,p_event_id => l_event_id
78795 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78796 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78797 ,p_actual_flag => l_actual_flag
78798 ,p_balance_type_code => l_balance_type_code
78799 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78800
78801 , p_source_22 => l_array_source_22(Idx)
78802 , p_source_27 => l_array_source_27(Idx)
78803 , p_source_29 => l_array_source_29(Idx)
78804 , p_source_30 => l_array_source_30(Idx)
78805 , p_source_31 => l_array_source_31(Idx)
78806 , p_source_32 => l_array_source_32(Idx)
78807 , p_source_34 => l_array_source_34(Idx)
78808 , p_source_35 => l_array_source_35(Idx)
78809 , p_source_36 => l_array_source_36(Idx)
78810 , p_source_88 => l_array_source_88(Idx)
78811 , p_source_89 => l_array_source_89(Idx)
78812 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78813 );
78814 If(l_balance_type_code = 'A') THEN
78815 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78816 END IF;
78817
78818 --
78819
78820
78821 --
78822 AcctLineType_91 (
78826 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78823 p_application_id => p_application_id
78824 ,p_event_id => l_event_id
78825 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78827 ,p_actual_flag => l_actual_flag
78828 ,p_balance_type_code => l_balance_type_code
78829 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78830
78831 , p_source_22 => l_array_source_22(Idx)
78832 , p_source_27 => l_array_source_27(Idx)
78833 , p_source_29 => l_array_source_29(Idx)
78834 , p_source_30 => l_array_source_30(Idx)
78835 , p_source_31 => l_array_source_31(Idx)
78836 , p_source_32 => l_array_source_32(Idx)
78837 , p_source_34 => l_array_source_34(Idx)
78838 , p_source_35 => l_array_source_35(Idx)
78839 , p_source_36 => l_array_source_36(Idx)
78840 , p_source_88 => l_array_source_88(Idx)
78841 , p_source_89 => l_array_source_89(Idx)
78842 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78843 );
78844 If(l_balance_type_code = 'A') THEN
78845 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78846 END IF;
78847
78848 --
78849
78850
78851 --
78852 AcctLineType_92 (
78853 p_application_id => p_application_id
78854 ,p_event_id => l_event_id
78855 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78856 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78857 ,p_actual_flag => l_actual_flag
78858 ,p_balance_type_code => l_balance_type_code
78859 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78860
78861 , p_source_22 => l_array_source_22(Idx)
78862 , p_source_27 => l_array_source_27(Idx)
78863 , p_source_29 => l_array_source_29(Idx)
78864 , p_source_30 => l_array_source_30(Idx)
78865 , p_source_31 => l_array_source_31(Idx)
78866 , p_source_32 => l_array_source_32(Idx)
78867 , p_source_34 => l_array_source_34(Idx)
78868 , p_source_35 => l_array_source_35(Idx)
78869 , p_source_36 => l_array_source_36(Idx)
78870 , p_source_88 => l_array_source_88(Idx)
78871 , p_source_89 => l_array_source_89(Idx)
78875 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78872 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78873 );
78874 If(l_balance_type_code = 'A') THEN
78876 END IF;
78877
78878 --
78879
78880
78881 --
78882 AcctLineType_93 (
78883 p_application_id => p_application_id
78884 ,p_event_id => l_event_id
78885 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78886 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78887 ,p_actual_flag => l_actual_flag
78888 ,p_balance_type_code => l_balance_type_code
78889 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78890
78891 , p_source_22 => l_array_source_22(Idx)
78892 , p_source_27 => l_array_source_27(Idx)
78893 , p_source_29 => l_array_source_29(Idx)
78894 , p_source_30 => l_array_source_30(Idx)
78895 , p_source_31 => l_array_source_31(Idx)
78896 , p_source_32 => l_array_source_32(Idx)
78897 , p_source_34 => l_array_source_34(Idx)
78898 , p_source_35 => l_array_source_35(Idx)
78899 , p_source_36 => l_array_source_36(Idx)
78900 , p_source_88 => l_array_source_88(Idx)
78901 , p_source_89 => l_array_source_89(Idx)
78902 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78903 );
78904 If(l_balance_type_code = 'A') THEN
78905 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78906 END IF;
78907
78908 --
78909
78910
78911 --
78912 AcctLineType_94 (
78913 p_application_id => p_application_id
78914 ,p_event_id => l_event_id
78915 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78916 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78917 ,p_actual_flag => l_actual_flag
78918 ,p_balance_type_code => l_balance_type_code
78919 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78920
78921 , p_source_22 => l_array_source_22(Idx)
78922 , p_source_27 => l_array_source_27(Idx)
78923 , p_source_29 => l_array_source_29(Idx)
78924 , p_source_30 => l_array_source_30(Idx)
78925 , p_source_31 => l_array_source_31(Idx)
78926 , p_source_32 => l_array_source_32(Idx)
78927 , p_source_34 => l_array_source_34(Idx)
78928 , p_source_35 => l_array_source_35(Idx)
78929 , p_source_36 => l_array_source_36(Idx)
78930 , p_source_88 => l_array_source_88(Idx)
78931 , p_source_89 => l_array_source_89(Idx)
78932 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78933 );
78934 If(l_balance_type_code = 'A') THEN
78935 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78936 END IF;
78937
78938 --
78939
78940
78941 --
78942 AcctLineType_95 (
78943 p_application_id => p_application_id
78947 ,p_actual_flag => l_actual_flag
78944 ,p_event_id => l_event_id
78945 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78946 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78948 ,p_balance_type_code => l_balance_type_code
78949 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78950
78951 , p_source_22 => l_array_source_22(Idx)
78952 , p_source_27 => l_array_source_27(Idx)
78953 , p_source_29 => l_array_source_29(Idx)
78954 , p_source_30 => l_array_source_30(Idx)
78955 , p_source_31 => l_array_source_31(Idx)
78956 , p_source_32 => l_array_source_32(Idx)
78957 , p_source_34 => l_array_source_34(Idx)
78958 , p_source_35 => l_array_source_35(Idx)
78959 , p_source_36 => l_array_source_36(Idx)
78960 , p_source_88 => l_array_source_88(Idx)
78961 , p_source_89 => l_array_source_89(Idx)
78962 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78963 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
78964 );
78965 If(l_balance_type_code = 'A') THEN
78966 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78967 END IF;
78968
78969 --
78970
78971
78972 --
78973 AcctLineType_96 (
78974 p_application_id => p_application_id
78975 ,p_event_id => l_event_id
78976 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78977 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78978 ,p_actual_flag => l_actual_flag
78979 ,p_balance_type_code => l_balance_type_code
78980 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78981
78982 , p_source_22 => l_array_source_22(Idx)
78983 , p_source_27 => l_array_source_27(Idx)
78984 , p_source_29 => l_array_source_29(Idx)
78985 , p_source_30 => l_array_source_30(Idx)
78986 , p_source_31 => l_array_source_31(Idx)
78987 , p_source_32 => l_array_source_32(Idx)
78988 , p_source_34 => l_array_source_34(Idx)
78989 , p_source_35 => l_array_source_35(Idx)
78990 , p_source_36 => l_array_source_36(Idx)
78991 , p_source_88 => l_array_source_88(Idx)
78992 , p_source_89 => l_array_source_89(Idx)
78993 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
78994 );
78995 If(l_balance_type_code = 'A') THEN
78996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78997 END IF;
78998
78999 --
79000
79001
79002 --
79003 AcctLineType_97 (
79004 p_application_id => p_application_id
79005 ,p_event_id => l_event_id
79006 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79007 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79008 ,p_actual_flag => l_actual_flag
79009 ,p_balance_type_code => l_balance_type_code
79010 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79011
79012 , p_source_22 => l_array_source_22(Idx)
79013 , p_source_27 => l_array_source_27(Idx)
79014 , p_source_29 => l_array_source_29(Idx)
79015 , p_source_30 => l_array_source_30(Idx)
79016 , p_source_31 => l_array_source_31(Idx)
79017 , p_source_32 => l_array_source_32(Idx)
79018 , p_source_34 => l_array_source_34(Idx)
79019 , p_source_35 => l_array_source_35(Idx)
79020 , p_source_36 => l_array_source_36(Idx)
79021 , p_source_88 => l_array_source_88(Idx)
79022 , p_source_89 => l_array_source_89(Idx)
79023 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
79024 );
79025 If(l_balance_type_code = 'A') THEN
79026 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79027 END IF;
79028
79029 --
79030
79031 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
79032 -- or secondary ledger that has different currency with primary
79033 -- or alc that is calculated by sla
79034 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
79035 (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'))
79036
79037 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
79038 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
79039 AND (l_actual_flag = 'A')) THEN
79043 ,p_amb_context_code => 'DEFAULT'
79040 XLA_AE_LINES_PKG.CreateGainOrLossLines(
79041 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79042 ,p_application_id => p_application_id
79044 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
79045 ,p_event_class_code => C_EVENT_CLASS_CODE
79049 ,p_loss_ccid => -1
79046 ,p_event_type_code => C_EVENT_TYPE_CODE
79047
79048 ,p_gain_ccid => -1
79050
79051 ,p_actual_flag => l_actual_flag
79052 ,p_enc_flag => null
79053 ,p_actual_g_l_ref => l_actual_gain_loss_ref
79054 ,p_enc_g_l_ref => null
79055 );
79056 END IF;
79057 END IF;
79058 END IF;
79059
79060 ELSE
79061 --
79062 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
79063 --
79064 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79065 trace
79066 (p_msg => 'Trancaction revesal option is Y'
79067 ,p_level => C_LEVEL_STATEMENT
79068 ,p_module => l_log_module);
79069 END IF;
79070 END IF;
79071
79072 END LOOP;
79073 l_result := XLA_AE_LINES_PKG.InsertLines ;
79074 end loop;
79075 close line_cur;
79076
79077
79078 --
79079 -- insert headers into xla_ae_headers_gt table
79080 --
79081 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
79082
79083 -- insert into errors table here.
79084
79085 END LOOP;
79086
79087 --
79088 -- 4865292
79089 --
79090 -- Compare g_hdr_extract_count with event count in
79091 -- CreateHeadersAndLines.
79092 --
79093 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
79094
79095 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79096 trace (p_msg => '# rows extracted from header extract objects '
79097 || ' (running total): '
79098 || g_hdr_extract_count
79099 ,p_level => C_LEVEL_STATEMENT
79100 ,p_module => l_log_module);
79101 END IF;
79102
79103 CLOSE header_cur;
79104 --
79105
79106 --
79107 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79108 trace
79109 (p_msg => 'END of EventClass_136'
79110 ,p_level => C_LEVEL_PROCEDURE
79111 ,p_module => l_log_module);
79112 END IF;
79113 --
79114 RETURN l_result;
79115 EXCEPTION
79116 WHEN xla_exceptions_pkg.application_exception THEN
79117
79118 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79119
79120
79121 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79122
79123 RAISE;
79124
79125 WHEN NO_DATA_FOUND THEN
79126
79127 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79128 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79129
79130 FOR header_record IN header_cur
79131 LOOP
79132 l_array_header_events(header_record.event_id) := header_record.event_id;
79133 END LOOP;
79134
79135 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
79136 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
79137
79138 fnd_file.put_line(fnd_file.LOG, ' ');
79139 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
79140 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
79141 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
79142
79143 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
79144 LOOP
79145 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
79146 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
79147 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
79148 END IF;
79149 END LOOP;
79150
79151 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
79152 fnd_file.put_line(fnd_file.LOG, ' ');
79153
79154
79155 xla_exceptions_pkg.raise_message
79156 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_136');
79157
79158
79159 WHEN OTHERS THEN
79160 xla_exceptions_pkg.raise_message
79161 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_136');
79162 END EventClass_136;
79163 --
79164
79165 ---------------------------------------
79166 --
79167 -- PRIVATE PROCEDURE
79168 -- insert_sources_137
79169 --
79170 ----------------------------------------
79171 --
79172 PROCEDURE insert_sources_137(
79173 p_target_ledger_id IN NUMBER
79174 , p_language IN VARCHAR2
79175 , p_sla_ledger_id IN NUMBER
79176 , p_pad_start_date IN DATE
79177 , p_pad_end_date IN DATE
79178 )
79179 IS
79180
79181 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECEIPT_ALL';
79182 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECEIPT';
79183 p_apps_owner VARCHAR2(30);
79184 l_log_module VARCHAR2(240);
79185 BEGIN
79186 IF g_log_enabled THEN
79187 l_log_module := C_DEFAULT_MODULE||'.insert_sources_137';
79188 END IF;
79189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79190
79191 trace
79192 (p_msg => 'BEGIN of insert_sources_137'
79193 ,p_level => C_LEVEL_PROCEDURE
79194 ,p_module => l_log_module);
79195
79196 END IF;
79197
79198 -- select APPS owner
79199 SELECT oracle_username
79203 ;
79200 INTO p_apps_owner
79201 FROM fnd_oracle_userid
79202 WHERE read_only_flag = 'U'
79204
79205 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79206 trace
79207 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
79208 ' - p_language = '||p_language||
79209 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
79210 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
79211 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
79212 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
79213 ,p_level => C_LEVEL_STATEMENT
79214 ,p_module => l_log_module);
79215 END IF;
79216
79217
79218 --
79222 , ledger_id
79219 INSERT INTO xla_diag_sources --hdr2
79220 (
79221 event_id
79223 , sla_ledger_id
79224 , description_language
79225 , object_name
79226 , object_type_code
79227 , line_number
79228 , source_application_id
79229 , source_type_code
79230 , source_code
79231 , source_value
79232 , source_meaning
79233 , created_by
79234 , creation_date
79235 , last_update_date
79236 , last_updated_by
79237 , last_update_login
79238 , program_update_date
79239 , program_application_id
79240 , program_id
79241 , request_id
79242 )
79243 SELECT
79244 event_id
79245 , p_target_ledger_id
79246 , p_sla_ledger_id
79247 , p_language
79248 , object_name
79249 , object_type_code
79250 , line_number
79251 , source_application_id
79252 , source_type_code
79253 , source_code
79254 , SUBSTR(source_value ,1,1996)
79255 , SUBSTR(source_meaning ,1,200)
79256 , xla_environment_pkg.g_Usr_Id
79257 , TRUNC(SYSDATE)
79258 , TRUNC(SYSDATE)
79259 , xla_environment_pkg.g_Usr_Id
79260 , xla_environment_pkg.g_Login_Id
79261 , TRUNC(SYSDATE)
79262 , xla_environment_pkg.g_Prog_Appl_Id
79263 , xla_environment_pkg.g_Prog_Id
79264 , xla_environment_pkg.g_Req_Id
79265 FROM (
79266 SELECT xet.event_id event_id
79267 , 0 line_number
79268 , CASE r
79269 WHEN 1 THEN 'AR_CASH_RECEIPTS_H_V'
79270 WHEN 2 THEN 'AR_CASH_RECEIPTS_H_V'
79271 WHEN 3 THEN 'AR_RCT_METHOD_H_V'
79272 WHEN 4 THEN 'AR_CASH_RECEIPTS_H_V'
79273 WHEN 5 THEN 'AR_REMIT_BANK_ACCT_H_V'
79274 WHEN 6 THEN 'AR_REMIT_BANK_ACCT_H_V'
79275 WHEN 7 THEN 'AR_REMIT_BANK_ACCT_H_V'
79276 WHEN 8 THEN 'AR_SYSTEM_PARAM_H_V'
79277 WHEN 9 THEN 'AR_SYSTEM_PARAM_H_V'
79278 WHEN 10 THEN 'AR_CASH_RECEIPTS_H_V'
79279 WHEN 11 THEN 'AR_CASH_RECEIPTS_H_V'
79280 WHEN 12 THEN 'AR_CASH_RECEIPTS_H_V'
79281 WHEN 13 THEN 'AR_RCT_SITE_USES_H_V'
79282 WHEN 14 THEN 'AR_CASH_RECEIPTS_H_V'
79283 WHEN 15 THEN 'AR_CASH_RECEIPTS_H_V'
79284 WHEN 16 THEN 'AR_CASH_RECEIPTS_H_V'
79285 WHEN 17 THEN 'AR_CASH_RECEIPTS_H_V'
79286
79287 ELSE null
79288 END object_name
79289 , CASE r
79290 WHEN 1 THEN 'HEADER'
79291 WHEN 2 THEN 'HEADER'
79292 WHEN 3 THEN 'HEADER'
79293 WHEN 4 THEN 'HEADER'
79294 WHEN 5 THEN 'HEADER'
79295 WHEN 6 THEN 'HEADER'
79296 WHEN 7 THEN 'HEADER'
79297 WHEN 8 THEN 'HEADER'
79298 WHEN 9 THEN 'HEADER'
79299 WHEN 10 THEN 'HEADER'
79300 WHEN 11 THEN 'HEADER'
79301 WHEN 12 THEN 'HEADER'
79302 WHEN 13 THEN 'HEADER'
79303 WHEN 14 THEN 'HEADER'
79304 WHEN 15 THEN 'HEADER'
79305 WHEN 16 THEN 'HEADER'
79306 WHEN 17 THEN 'HEADER'
79307
79308 ELSE null
79309 END object_type_code
79310 , CASE r
79311 WHEN 1 THEN '222'
79312 WHEN 2 THEN '222'
79313 WHEN 3 THEN '222'
79314 WHEN 4 THEN '222'
79315 WHEN 5 THEN '222'
79316 WHEN 6 THEN '222'
79317 WHEN 7 THEN '222'
79318 WHEN 8 THEN '222'
79319 WHEN 9 THEN '222'
79323 WHEN 13 THEN '222'
79320 WHEN 10 THEN '222'
79321 WHEN 11 THEN '222'
79322 WHEN 12 THEN '222'
79324 WHEN 14 THEN '222'
79325 WHEN 15 THEN '222'
79326 WHEN 16 THEN '222'
79327 WHEN 17 THEN '222'
79328
79329 ELSE null
79330 END source_application_id
79331 , 'S' source_type_code
79332 , CASE r
79333 WHEN 1 THEN 'RCT_RECEIPT_NUMBER'
79334 WHEN 2 THEN 'RCT_DOC_SEQUENCE_VALUE'
79335 WHEN 3 THEN 'RCT_MTHD_NAME'
79336 WHEN 4 THEN 'RCT_RECEIPT_DATE'
79337 WHEN 5 THEN 'RMT_BANK_NAME'
79338 WHEN 6 THEN 'RMT_BNK_ACCOUNT_NAME'
79339 WHEN 7 THEN 'RMT_BNK_UNAPPLIED_CCID'
79340 WHEN 8 THEN 'CODE_COMBINATION_ID_GAIN'
79341 WHEN 9 THEN 'CODE_COMBINATION_ID_LOSS'
79342 WHEN 10 THEN 'RCT_CASH_RECEIPT_ID'
79343 WHEN 11 THEN 'RCT_XLA_APPLIED_TO_APP_ID'
79344 WHEN 12 THEN 'RCT_PAY_FROM_CUSTOMER'
79345 WHEN 13 THEN 'RCT_SITE_SITE_USE_ID'
79346 WHEN 14 THEN 'RCT_APP_STATUS'
79347 WHEN 15 THEN 'RCT_DOC_SEQUENCE_CATEGORY'
79348 WHEN 16 THEN 'RCT_DOC_SEQUENCE_ID'
79349 WHEN 17 THEN 'RCT_TRX_ACCT_REVERSAL'
79350
79351 ELSE null
79352 END source_code
79353 , CASE r
79354 WHEN 1 THEN TO_CHAR(h1.RCT_RECEIPT_NUMBER)
79355 WHEN 2 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_VALUE)
79356 WHEN 3 THEN TO_CHAR(h5.RCT_MTHD_NAME)
79357 WHEN 4 THEN TO_CHAR(h1.RCT_RECEIPT_DATE)
79358 WHEN 5 THEN TO_CHAR(h8.RMT_BANK_NAME)
79359 WHEN 6 THEN TO_CHAR(h8.RMT_BNK_ACCOUNT_NAME)
79360 WHEN 7 THEN TO_CHAR(h8.RMT_BNK_UNAPPLIED_CCID)
79361 WHEN 8 THEN TO_CHAR(h9.CODE_COMBINATION_ID_GAIN)
79362 WHEN 9 THEN TO_CHAR(h9.CODE_COMBINATION_ID_LOSS)
79363 WHEN 10 THEN TO_CHAR(h1.RCT_CASH_RECEIPT_ID)
79364 WHEN 11 THEN TO_CHAR(h1.RCT_XLA_APPLIED_TO_APP_ID)
79365 WHEN 12 THEN TO_CHAR(h1.RCT_PAY_FROM_CUSTOMER)
79366 WHEN 13 THEN TO_CHAR(h6.RCT_SITE_SITE_USE_ID)
79367 WHEN 14 THEN TO_CHAR(h1.RCT_APP_STATUS)
79368 WHEN 15 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_CATEGORY)
79369 WHEN 16 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_ID)
79370 WHEN 17 THEN TO_CHAR(h1.RCT_TRX_ACCT_REVERSAL)
79374 , null source_meaning
79371
79372 ELSE null
79373 END source_value
79375 FROM xla_events_gt xet
79376 , AR_CASH_RECEIPTS_H_V h1
79377 , AR_RCT_METHOD_H_V h5
79378 , AR_RCT_SITE_USES_H_V h6
79379 , AR_REMIT_BANK_ACCT_H_V h8
79380 , AR_SYSTEM_PARAM_H_V h9
79381 ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
79382 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79383 AND xet.event_class_code = C_EVENT_CLASS_CODE
79384 AND h1.event_id = xet.event_id
79385 AND h5.event_id (+) = h1.event_id
79386 AND h6.event_id (+) = h1.event_id
79387 AND h8.event_id (+) = h1.event_id
79388 AND h9.event_id (+) = h1.event_id
79389
79390 )
79391 ;
79392 --
79393 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79394
79395 trace
79396 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
79397 ,p_level => C_LEVEL_STATEMENT
79398 ,p_module => l_log_module);
79399
79400 END IF;
79401 --
79402
79403
79404
79405 --
79409 , ledger_id
79406 INSERT INTO xla_diag_sources --line2
79407 (
79408 event_id
79410 , sla_ledger_id
79411 , description_language
79412 , object_name
79413 , object_type_code
79414 , line_number
79415 , source_application_id
79416 , source_type_code
79417 , source_code
79418 , source_value
79419 , source_meaning
79420 , created_by
79421 , creation_date
79422 , last_update_date
79423 , last_updated_by
79424 , last_update_login
79425 , program_update_date
79426 , program_application_id
79427 , program_id
79428 , request_id
79429 )
79430 SELECT event_id
79431 , p_target_ledger_id
79432 , p_sla_ledger_id
79433 , p_language
79434 , object_name
79435 , object_type_code
79436 , line_number
79437 , source_application_id
79438 , source_type_code
79439 , source_code
79440 , SUBSTR(source_value,1,1996)
79441 , SUBSTR(source_meaning ,1,200)
79442 , xla_environment_pkg.g_Usr_Id
79443 , TRUNC(SYSDATE)
79444 , TRUNC(SYSDATE)
79445 , xla_environment_pkg.g_Usr_Id
79446 , xla_environment_pkg.g_Login_Id
79447 , TRUNC(SYSDATE)
79448 , xla_environment_pkg.g_Prog_Appl_Id
79449 , xla_environment_pkg.g_Prog_Id
79450 , xla_environment_pkg.g_Req_Id
79451 FROM (
79452 SELECT xet.event_id event_id
79453 , l4.line_number line_number
79454 , CASE r
79455 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
79456 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
79457 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
79458 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
79459 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
79460 WHEN 6 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
79461 WHEN 7 THEN 'AR_DISTRIBUTIONS_L_V'
79462 WHEN 8 THEN 'AR_DISTRIBUTIONS_L_V'
79463 WHEN 9 THEN 'AR_DISTRIBUTIONS_L_V'
79464 WHEN 10 THEN 'AR_DISTRIBUTIONS_L_V'
79465 WHEN 11 THEN 'AR_DISTRIBUTIONS_BASE_V'
79466 WHEN 12 THEN 'AR_DISTRIBUTIONS_BASE_V'
79467 WHEN 13 THEN 'AR_DISTRIBUTIONS_BASE_V'
79468 WHEN 14 THEN 'AR_DISTRIBUTIONS_BASE_V'
79469 WHEN 15 THEN 'AR_DISTRIBUTIONS_BASE_V'
79470 WHEN 16 THEN 'AR_CUST_TRX_LINES_L_V'
79471 WHEN 17 THEN 'AR_CUST_TRX_LINES_L_V'
79472 WHEN 18 THEN 'AR_DISTRIBUTIONS_L_V'
79473 WHEN 19 THEN 'AR_DISTRIBUTIONS_BASE_V'
79474 WHEN 20 THEN 'AR_TRANSACTIONS_S_V'
79475 WHEN 21 THEN 'AR_TRANSACTIONS_S_V'
79476 WHEN 22 THEN 'AR_DISTRIBUTIONS_L_V'
79477 WHEN 23 THEN 'AR_DISTRIBUTIONS_L_V'
79478 WHEN 24 THEN 'AR_DISTRIBUTIONS_L_V'
79479 WHEN 25 THEN 'AR_DISTRIBUTIONS_L_V'
79480 WHEN 26 THEN 'AR_DISTRIBUTIONS_L_V'
79481 WHEN 27 THEN 'AR_DISTRIBUTIONS_BASE_V'
79482 WHEN 28 THEN 'AR_DISTRIBUTIONS_BASE_V'
79483 WHEN 29 THEN 'AR_DISTRIBUTIONS_L_V'
79484 WHEN 30 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
79485
79486 ELSE null
79487 END object_name
79488 , CASE r
79489 WHEN 1 THEN 'LINE'
79490 WHEN 2 THEN 'LINE'
79491 WHEN 3 THEN 'LINE'
79492 WHEN 4 THEN 'LINE'
79493 WHEN 5 THEN 'LINE'
79494 WHEN 6 THEN 'LINE'
79495 WHEN 7 THEN 'LINE'
79496 WHEN 8 THEN 'LINE'
79497 WHEN 9 THEN 'LINE'
79498 WHEN 10 THEN 'LINE'
79499 WHEN 11 THEN 'LINE'
79500 WHEN 12 THEN 'LINE'
79501 WHEN 13 THEN 'LINE'
79502 WHEN 14 THEN 'LINE'
79503 WHEN 15 THEN 'LINE'
79504 WHEN 16 THEN 'LINE'
79505 WHEN 17 THEN 'LINE'
79506 WHEN 18 THEN 'LINE'
79507 WHEN 19 THEN 'LINE'
79508 WHEN 20 THEN 'LINE'
79509 WHEN 21 THEN 'LINE'
79510 WHEN 22 THEN 'LINE'
79511 WHEN 23 THEN 'LINE'
79512 WHEN 24 THEN 'LINE'
79513 WHEN 25 THEN 'LINE'
79514 WHEN 26 THEN 'LINE'
79515 WHEN 27 THEN 'LINE'
79516 WHEN 28 THEN 'LINE'
79517 WHEN 29 THEN 'LINE'
79518 WHEN 30 THEN 'LINE'
79519
79520 ELSE null
79521 END object_type_code
79522 , CASE r
79523 WHEN 1 THEN '222'
79524 WHEN 2 THEN '222'
79525 WHEN 3 THEN '222'
79526 WHEN 4 THEN '222'
79527 WHEN 5 THEN '222'
79528 WHEN 6 THEN '222'
79529 WHEN 7 THEN '222'
79530 WHEN 8 THEN '222'
79531 WHEN 9 THEN '222'
79532 WHEN 10 THEN '222'
79533 WHEN 11 THEN '222'
79534 WHEN 12 THEN '222'
79535 WHEN 13 THEN '222'
79539 WHEN 17 THEN '222'
79536 WHEN 14 THEN '222'
79537 WHEN 15 THEN '222'
79538 WHEN 16 THEN '222'
79540 WHEN 18 THEN '222'
79541 WHEN 19 THEN '222'
79542 WHEN 20 THEN '222'
79543 WHEN 21 THEN '222'
79544 WHEN 22 THEN '222'
79545 WHEN 23 THEN '222'
79546 WHEN 24 THEN '222'
79547 WHEN 25 THEN '222'
79548 WHEN 26 THEN '222'
79549 WHEN 27 THEN '222'
79550 WHEN 28 THEN '222'
79551 WHEN 29 THEN '222'
79552 WHEN 30 THEN '222'
79553
79554 ELSE null
79555 END source_application_id
79556 , 'S' source_type_code
79557 , CASE r
79558 WHEN 1 THEN 'TRX_TYPE_NAME'
79559 WHEN 2 THEN 'TRX_NUMBER'
79560 WHEN 3 THEN 'TRX_DOC_SEQUENCE_VALUE'
79561 WHEN 4 THEN 'DIST_CODE_COMBINATION_ID'
79562 WHEN 5 THEN 'DIST_SOURCE_TYPE'
79563 WHEN 6 THEN 'REC_ACT_TYPE'
79564 WHEN 7 THEN 'DIST_LINE_ID'
79565 WHEN 8 THEN 'DISTRIBUTION_TYPE'
79566 WHEN 9 THEN 'DIST_ENT_AMT'
79567 WHEN 10 THEN 'DIST_CURRENCY_CODE'
79568 WHEN 11 THEN 'DIST_CUR_CONVERSION_DATE'
79569 WHEN 12 THEN 'DIST_CUR_CONVERSION_RATE'
79570 WHEN 13 THEN 'DIST_CUR_CONVERSION_TYPE'
79571 WHEN 14 THEN 'DIST_TO_ACCTD_AMT'
79572 WHEN 15 THEN 'DIST_ACCTD_AMT'
79573 WHEN 16 THEN 'TRX_LINE_DIST_ID'
79574 WHEN 17 THEN 'TRX_DISTRIBUTION_TYPE'
79575 WHEN 18 THEN 'DIST_MFAR_ADDITIONAL_ENTRY'
79576 WHEN 19 THEN 'DIST_TO_CUR_CONVERSION_DATE'
79577 WHEN 20 THEN 'TRX_ENTITY_CODE'
79578 WHEN 21 THEN 'TRX_CUSTOMER_TRX_ID'
79579 WHEN 22 THEN 'DIST_ENT_AMT_FROM'
79580 WHEN 23 THEN 'DIST_CURRENCY_CODE_FROM'
79581 WHEN 24 THEN 'DIST_PARTY_ID'
79582 WHEN 25 THEN 'DIST_PARTY_SITE_ID'
79583 WHEN 26 THEN 'DIST_PARTY_TYPE'
79584 WHEN 27 THEN 'DIST_TO_CUR_CONVERSION_TYPE'
79585 WHEN 28 THEN 'DIST_TO_CUR_CONVERSION_RATE'
79586 WHEN 29 THEN 'DIST_SOURCE_TABLE'
79587 WHEN 30 THEN 'REC_ACT_NAME'
79588
79589 ELSE null
79590 END source_code
79591 , CASE r
79592 WHEN 1 THEN TO_CHAR(l10.TRX_TYPE_NAME)
79593 WHEN 2 THEN TO_CHAR(l10.TRX_NUMBER)
79594 WHEN 3 THEN TO_CHAR(l10.TRX_DOC_SEQUENCE_VALUE)
79595 WHEN 4 THEN TO_CHAR(l4.DIST_CODE_COMBINATION_ID)
79596 WHEN 5 THEN TO_CHAR(l4.DIST_SOURCE_TYPE)
79597 WHEN 6 THEN TO_CHAR(l7.REC_ACT_TYPE)
79598 WHEN 7 THEN TO_CHAR(l4.DIST_LINE_ID)
79599 WHEN 8 THEN TO_CHAR(l4.DISTRIBUTION_TYPE)
79600 WHEN 9 THEN TO_CHAR(l4.DIST_ENT_AMT)
79601 WHEN 10 THEN TO_CHAR(l4.DIST_CURRENCY_CODE)
79602 WHEN 11 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_DATE)
79603 WHEN 12 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_RATE)
79604 WHEN 13 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_TYPE)
79605 WHEN 14 THEN TO_CHAR(l3.DIST_TO_ACCTD_AMT)
79606 WHEN 15 THEN TO_CHAR(l3.DIST_ACCTD_AMT)
79607 WHEN 16 THEN TO_CHAR(l2.TRX_LINE_DIST_ID)
79608 WHEN 17 THEN TO_CHAR(l2.TRX_DISTRIBUTION_TYPE)
79609 WHEN 18 THEN TO_CHAR(l4.DIST_MFAR_ADDITIONAL_ENTRY)
79610 WHEN 19 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_DATE)
79611 WHEN 20 THEN TO_CHAR(l10.TRX_ENTITY_CODE)
79615 WHEN 24 THEN TO_CHAR(l4.DIST_PARTY_ID)
79612 WHEN 21 THEN TO_CHAR(l10.TRX_CUSTOMER_TRX_ID)
79613 WHEN 22 THEN TO_CHAR(l4.DIST_ENT_AMT_FROM)
79614 WHEN 23 THEN TO_CHAR(l4.DIST_CURRENCY_CODE_FROM)
79616 WHEN 25 THEN TO_CHAR(l4.DIST_PARTY_SITE_ID)
79617 WHEN 26 THEN TO_CHAR(l4.DIST_PARTY_TYPE)
79618 WHEN 27 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_TYPE)
79619 WHEN 28 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_RATE)
79620 WHEN 29 THEN TO_CHAR(l4.DIST_SOURCE_TABLE)
79621 WHEN 30 THEN TO_CHAR(l7.REC_ACT_NAME)
79622
79623 ELSE null
79624 END source_value
79625 , null source_meaning
79626 FROM xla_events_gt xet
79627 , AR_CUST_TRX_LINES_L_V l2
79628 , AR_DISTRIBUTIONS_BASE_V l3
79629 , AR_DISTRIBUTIONS_L_V l4
79630 , AR_RECEIVABLES_TRX_ACT_S_V l7
79631 , AR_TRANSACTIONS_S_V l10
79632 , (select rownum r from all_objects where rownum <= 30 and owner = p_apps_owner)
79633 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79634 AND xet.event_class_code = C_EVENT_CLASS_CODE
79635 AND l3.event_id = xet.event_id
79636 AND l2.event_id (+) = l3.event_id
79637 AND l2.line_number (+) = l3.line_number
79638 AND l4.event_id = l3.event_id
79639 AND l4.line_number = l3.line_number
79640 AND l7.event_id (+) = l3.event_id
79641 AND l7.line_number (+) = l3.line_number
79642 AND l10.event_id (+) = l3.event_id
79643 AND l10.line_number (+) = l3.line_number
79644
79645 )
79646 ;
79647 --
79648 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79649
79650 trace
79651 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
79652 ,p_level => C_LEVEL_STATEMENT
79653 ,p_module => l_log_module);
79654
79655 END IF;
79656
79657
79658 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79659 trace
79660 (p_msg => 'END of insert_sources_137'
79661 ,p_level => C_LEVEL_PROCEDURE
79662 ,p_module => l_log_module);
79663 END IF;
79664 EXCEPTION
79665 WHEN xla_exceptions_pkg.application_exception THEN
79666 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79667 trace
79668 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79669 ,p_level => C_LEVEL_EXCEPTION
79670 ,p_module => l_log_module);
79671 END IF;
79672 RAISE;
79673 WHEN OTHERS THEN
79674 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79675 trace
79676 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79677 ,p_level => C_LEVEL_EXCEPTION
79678 ,p_module => l_log_module);
79679 END IF;
79680 xla_exceptions_pkg.raise_message
79681 (p_location => 'XLA_00222_AAD_S_000017_PKG.insert_sources_137');
79682 END insert_sources_137;
79683 --
79684
79685 ---------------------------------------
79686 --
79687 -- PRIVATE FUNCTION
79688 -- EventClass_137
79689 --
79690 ----------------------------------------
79691 --
79692 FUNCTION EventClass_137
79693 (p_application_id IN NUMBER
79694 ,p_base_ledger_id IN NUMBER
79695 ,p_target_ledger_id IN NUMBER
79696 ,p_language IN VARCHAR2
79697 ,p_currency_code IN VARCHAR2
79698 ,p_sla_ledger_id IN NUMBER
79699 ,p_pad_start_date IN DATE
79700 ,p_pad_end_date IN DATE
79701 ,p_primary_ledger_id IN NUMBER)
79702 RETURN BOOLEAN IS
79703 --
79704 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECEIPT_ALL';
79705 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECEIPT';
79706
79707 l_calculate_acctd_flag VARCHAR2(1) :='N';
79708 l_calculate_g_l_flag VARCHAR2(1) :='Y';
79709 --
79710 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79711 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79712 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79713 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79714 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79715 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79716 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79717 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79718 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79719 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79720 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79721 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79722 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79723 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79724 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79725 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79726 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79727 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79728 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79729 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79730 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79731 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79735 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
79732 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
79733 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79734 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
79736
79737 l_event_id NUMBER;
79738 l_previous_event_id NUMBER;
79739 l_first_event_id NUMBER;
79740 l_last_event_id NUMBER;
79741
79742 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
79743 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79744 --
79745 --
79746 l_result BOOLEAN := TRUE;
79747 l_rows NUMBER := 1000;
79748 l_event_type_name VARCHAR2(80) := 'All';
79749 l_event_class_name VARCHAR2(80) := 'Receipt';
79750 l_description VARCHAR2(4000);
79751 l_transaction_reversal NUMBER;
79752 l_ae_header_id NUMBER;
79753 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
79754 l_log_module VARCHAR2(240);
79755 --
79756 l_acct_reversal_source VARCHAR2(30);
79757 l_trx_reversal_source VARCHAR2(30);
79758
79759 l_continue_with_lines BOOLEAN := TRUE;
79760 --
79761 l_acc_rev_gl_date_source DATE; -- 4262811
79762 --
79763 type t_array_event_id is table of number index by binary_integer;
79764
79765 l_rec_array_event t_rec_array_event;
79766 l_null_rec_array_event t_rec_array_event;
79767 l_array_ae_header_id xla_number_array_type;
79768 l_actual_flag VARCHAR2(1) := NULL;
79769 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
79770 l_balance_type_code VARCHAR2(1) :=NULL;
79771 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
79772
79773 --
79774 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
79775 --
79776
79777 TYPE t_array_source_8 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
79778 TYPE t_array_source_9 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
79779 TYPE t_array_source_10 IS TABLE OF AR_RCT_METHOD_H_V.RCT_MTHD_NAME%TYPE INDEX BY BINARY_INTEGER;
79780 TYPE t_array_source_11 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_DATE%TYPE INDEX BY BINARY_INTEGER;
79781 TYPE t_array_source_12 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
79782 TYPE t_array_source_13 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
79783 TYPE t_array_source_23 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_UNAPPLIED_CCID%TYPE INDEX BY BINARY_INTEGER;
79784 TYPE t_array_source_24 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
79785 TYPE t_array_source_25 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
79786 TYPE t_array_source_90 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_CASH_RECEIPT_ID%TYPE INDEX BY BINARY_INTEGER;
79787 TYPE t_array_source_92 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_XLA_APPLIED_TO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
79788 TYPE t_array_source_104 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_PAY_FROM_CUSTOMER%TYPE INDEX BY BINARY_INTEGER;
79789 TYPE t_array_source_105 IS TABLE OF AR_RCT_SITE_USES_H_V.RCT_SITE_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
79790 TYPE t_array_source_106 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_APP_STATUS%TYPE INDEX BY BINARY_INTEGER;
79791 TYPE t_array_source_117 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
79792 TYPE t_array_source_118 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
79793 TYPE t_array_source_119 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_TRX_ACCT_REVERSAL%TYPE INDEX BY BINARY_INTEGER;
79794
79795 TYPE t_array_source_1 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
79796 TYPE t_array_source_2 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
79797 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
79798 TYPE t_array_source_22 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
79799 TYPE t_array_source_27 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
79800 TYPE t_array_source_28 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
79801 TYPE t_array_source_29 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
79802 TYPE t_array_source_30 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79803 TYPE t_array_source_31 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
79804 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
79805 TYPE t_array_source_33 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
79806 TYPE t_array_source_34 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
79807 TYPE t_array_source_35 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79808 TYPE t_array_source_36 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
79809 TYPE t_array_source_40 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
79810 TYPE t_array_source_44 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79811 TYPE t_array_source_45 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79812 TYPE t_array_source_88 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_MFAR_ADDITIONAL_ENTRY%TYPE INDEX BY BINARY_INTEGER;
79813 TYPE t_array_source_89 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
79814 TYPE t_array_source_93 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79818 TYPE t_array_source_97 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_ID%TYPE INDEX BY BINARY_INTEGER;
79815 TYPE t_array_source_94 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_CUSTOMER_TRX_ID%TYPE INDEX BY BINARY_INTEGER;
79816 TYPE t_array_source_95 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT_FROM%TYPE INDEX BY BINARY_INTEGER;
79817 TYPE t_array_source_96 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE_FROM%TYPE INDEX BY BINARY_INTEGER;
79819 TYPE t_array_source_98 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
79820 TYPE t_array_source_99 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
79821 TYPE t_array_source_100 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79822 TYPE t_array_source_101 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
79823 TYPE t_array_source_102 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TABLE%TYPE INDEX BY BINARY_INTEGER;
79824 TYPE t_array_source_103 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_NAME%TYPE INDEX BY BINARY_INTEGER;
79825
79826 l_array_source_8 t_array_source_8;
79827 l_array_source_9 t_array_source_9;
79828 l_array_source_10 t_array_source_10;
79829 l_array_source_11 t_array_source_11;
79830 l_array_source_12 t_array_source_12;
79831 l_array_source_13 t_array_source_13;
79832 l_array_source_23 t_array_source_23;
79833 l_array_source_24 t_array_source_24;
79834 l_array_source_25 t_array_source_25;
79835 l_array_source_90 t_array_source_90;
79836 l_array_source_92 t_array_source_92;
79837 l_array_source_104 t_array_source_104;
79838 l_array_source_105 t_array_source_105;
79839 l_array_source_106 t_array_source_106;
79840 l_array_source_117 t_array_source_117;
79841 l_array_source_118 t_array_source_118;
79842 l_array_source_119 t_array_source_119;
79843
79844 l_array_source_1 t_array_source_1;
79845 l_array_source_2 t_array_source_2;
79846 l_array_source_3 t_array_source_3;
79847 l_array_source_22 t_array_source_22;
79848 l_array_source_27 t_array_source_27;
79849 l_array_source_28 t_array_source_28;
79850 l_array_source_29 t_array_source_29;
79851 l_array_source_30 t_array_source_30;
79852 l_array_source_31 t_array_source_31;
79853 l_array_source_32 t_array_source_32;
79854 l_array_source_33 t_array_source_33;
79855 l_array_source_34 t_array_source_34;
79856 l_array_source_35 t_array_source_35;
79857 l_array_source_36 t_array_source_36;
79858 l_array_source_40 t_array_source_40;
79859 l_array_source_44 t_array_source_44;
79860 l_array_source_45 t_array_source_45;
79861 l_array_source_88 t_array_source_88;
79862 l_array_source_89 t_array_source_89;
79863 l_array_source_93 t_array_source_93;
79864 l_array_source_94 t_array_source_94;
79865 l_array_source_95 t_array_source_95;
79866 l_array_source_96 t_array_source_96;
79867 l_array_source_97 t_array_source_97;
79868 l_array_source_98 t_array_source_98;
79869 l_array_source_99 t_array_source_99;
79870 l_array_source_100 t_array_source_100;
79871 l_array_source_101 t_array_source_101;
79872 l_array_source_102 t_array_source_102;
79873 l_array_source_103 t_array_source_103;
79874
79875 --
79876 CURSOR header_cur
79877 IS
79878 SELECT /*+ leading(xet) cardinality(xet,1) */
79879 -- Event Class Code: RECEIPT
79880 xet.entity_id
79881 ,xet.legal_entity_id
79882 ,xet.entity_code
79883 ,xet.transaction_number
79884 ,xet.event_id
79885 ,xet.event_class_code
79886 ,xet.event_type_code
79887 ,xet.event_number
79888 ,xet.event_date
79889 ,xet.transaction_date
79890 ,xet.reference_num_1
79891 ,xet.reference_num_2
79892 ,xet.reference_num_3
79893 ,xet.reference_num_4
79894 ,xet.reference_char_1
79895 ,xet.reference_char_2
79896 ,xet.reference_char_3
79897 ,xet.reference_char_4
79898 ,xet.reference_date_1
79899 ,xet.reference_date_2
79900 ,xet.reference_date_3
79901 ,xet.reference_date_4
79902 ,xet.event_created_by
79903 ,xet.budgetary_control_flag
79904 , h1.RCT_RECEIPT_NUMBER source_8
79905 , h1.RCT_DOC_SEQUENCE_VALUE source_9
79906 , h5.RCT_MTHD_NAME source_10
79907 , h1.RCT_RECEIPT_DATE source_11
79908 , h8.RMT_BANK_NAME source_12
79909 , h8.RMT_BNK_ACCOUNT_NAME source_13
79910 , h8.RMT_BNK_UNAPPLIED_CCID source_23
79911 , h9.CODE_COMBINATION_ID_GAIN source_24
79912 , h9.CODE_COMBINATION_ID_LOSS source_25
79913 , h1.RCT_CASH_RECEIPT_ID source_90
79914 , h1.RCT_XLA_APPLIED_TO_APP_ID source_92
79915 , h1.RCT_PAY_FROM_CUSTOMER source_104
79916 , h6.RCT_SITE_SITE_USE_ID source_105
79917 , h1.RCT_APP_STATUS source_106
79918 , h1.RCT_DOC_SEQUENCE_CATEGORY source_117
79919 , h1.RCT_DOC_SEQUENCE_ID source_118
79920 , h1.RCT_TRX_ACCT_REVERSAL source_119
79921 FROM xla_events_gt xet
79922 , AR_CASH_RECEIPTS_H_V h1
79923 , AR_RCT_METHOD_H_V h5
79924 , AR_RCT_SITE_USES_H_V h6
79925 , AR_REMIT_BANK_ACCT_H_V h8
79926 , AR_SYSTEM_PARAM_H_V h9
79927 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
79928 and xet.event_class_code = C_EVENT_CLASS_CODE
79929 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
79930 AND h5.event_id (+) = h1.event_id
79931 AND h6.event_id (+) = h1.event_id
79932 AND h8.event_id (+) = h1.event_id
79933 AND h9.event_id (+) = h1.event_id
79934
79935 ORDER BY event_id
79936 ;
79937
79938
79939 --
79943 -- Event Class Code: RECEIPT
79940 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
79941 IS
79942 SELECT /*+ leading(xet) cardinality(xet,1) */
79944 xet.entity_id
79945 ,xet.legal_entity_id
79946 ,xet.entity_code
79947 ,xet.transaction_number
79948 ,xet.event_id
79949 ,xet.event_class_code
79950 ,xet.event_type_code
79951 ,xet.event_number
79952 ,xet.event_date
79953 ,xet.transaction_date
79954 ,xet.reference_num_1
79955 ,xet.reference_num_2
79956 ,xet.reference_num_3
79957 ,xet.reference_num_4
79958 ,xet.reference_char_1
79959 ,xet.reference_char_2
79960 ,xet.reference_char_3
79961 ,xet.reference_char_4
79962 ,xet.reference_date_1
79963 ,xet.reference_date_2
79964 ,xet.reference_date_3
79965 ,xet.reference_date_4
79966 ,xet.event_created_by
79967 ,xet.budgetary_control_flag
79968 , l3.LINE_NUMBER
79969 , l10.TRX_TYPE_NAME source_1
79970 , l10.TRX_NUMBER source_2
79971 , l10.TRX_DOC_SEQUENCE_VALUE source_3
79972 , l4.DIST_CODE_COMBINATION_ID source_22
79973 , l4.DIST_SOURCE_TYPE source_27
79974 , l7.REC_ACT_TYPE source_28
79975 , l4.DIST_LINE_ID source_29
79976 , l4.DISTRIBUTION_TYPE source_30
79977 , l4.DIST_ENT_AMT source_31
79978 , l4.DIST_CURRENCY_CODE source_32
79979 , l3.DIST_CUR_CONVERSION_DATE source_33
79980 , l3.DIST_CUR_CONVERSION_RATE source_34
79981 , l3.DIST_CUR_CONVERSION_TYPE source_35
79982 , l3.DIST_TO_ACCTD_AMT source_36
79983 , l3.DIST_ACCTD_AMT source_40
79984 , l2.TRX_LINE_DIST_ID source_44
79985 , l2.TRX_DISTRIBUTION_TYPE source_45
79986 , l4.DIST_MFAR_ADDITIONAL_ENTRY source_88
79987 , l3.DIST_TO_CUR_CONVERSION_DATE source_89
79988 , l10.TRX_ENTITY_CODE source_93
79989 , l10.TRX_CUSTOMER_TRX_ID source_94
79990 , l4.DIST_ENT_AMT_FROM source_95
79991 , l4.DIST_CURRENCY_CODE_FROM source_96
79992 , l4.DIST_PARTY_ID source_97
79993 , l4.DIST_PARTY_SITE_ID source_98
79994 , l4.DIST_PARTY_TYPE source_99
79995 , l3.DIST_TO_CUR_CONVERSION_TYPE source_100
79996 , l3.DIST_TO_CUR_CONVERSION_RATE source_101
79997 , l4.DIST_SOURCE_TABLE source_102
79998 , l7.REC_ACT_NAME source_103
79999 FROM xla_events_gt xet
80000 , AR_CUST_TRX_LINES_L_V l2
80001 , AR_DISTRIBUTIONS_BASE_V l3
80002 , AR_DISTRIBUTIONS_L_V l4
80003 , AR_RECEIVABLES_TRX_ACT_S_V l7
80004 , AR_TRANSACTIONS_S_V l10
80005 WHERE xet.event_id between x_first_event_id and x_last_event_id
80006 and xet.event_date between p_pad_start_date and p_pad_end_date
80007 and xet.event_class_code = C_EVENT_CLASS_CODE
80008 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
80009 AND l2.event_id (+) = l3.event_id
80010 AND l2.line_number (+) = l3.line_number
80011 AND l4.event_id = l3.event_id
80012 AND l4.line_number = l3.line_number
80013 AND l7.event_id (+) = l3.event_id
80014 AND l7.line_number (+) = l3.line_number
80015 AND l10.event_id (+) = l3.event_id
80016 AND l10.line_number (+) = l3.line_number
80017 ;
80018
80019 --
80020 BEGIN
80021 IF g_log_enabled THEN
80022 l_log_module := C_DEFAULT_MODULE||'.EventClass_137';
80023 END IF;
80024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80025 trace
80026 (p_msg => 'BEGIN of EventClass_137'
80027 ,p_level => C_LEVEL_PROCEDURE
80028 ,p_module => l_log_module);
80029 END IF;
80030
80031 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80032 trace
80033 (p_msg => 'p_application_id = '||p_application_id||
80034 ' - p_base_ledger_id = '||p_base_ledger_id||
80035 ' - p_target_ledger_id = '||p_target_ledger_id||
80036 ' - p_language = '||p_language||
80037 ' - p_currency_code = '||p_currency_code||
80038 ' - p_sla_ledger_id = '||p_sla_ledger_id
80039 ,p_level => C_LEVEL_STATEMENT
80040 ,p_module => l_log_module);
80041 END IF;
80042 --
80043 -- initialze arrays
80044 --
80045 g_array_event.DELETE;
80046 l_rec_array_event := l_null_rec_array_event;
80047 --
80048 --------------------------------------
80049 -- 4262811 Initialze MPA Line Number
80050 --------------------------------------
80051 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
80052
80053 --
80054
80055 --
80056 OPEN header_cur;
80057 --
80058 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80059 trace
80060 (p_msg => 'SQL - FETCH header_cur'
80061 ,p_level => C_LEVEL_STATEMENT
80062 ,p_module => l_log_module);
80063 END IF;
80064 --
80065 LOOP
80066 FETCH header_cur BULK COLLECT INTO
80067 l_array_entity_id
80068 , l_array_legal_entity_id
80069 , l_array_entity_code
80070 , l_array_transaction_num
80071 , l_array_event_id
80072 , l_array_class_code
80073 , l_array_event_type
80074 , l_array_event_number
80075 , l_array_event_date
80076 , l_array_transaction_date
80077 , l_array_reference_num_1
80078 , l_array_reference_num_2
80079 , l_array_reference_num_3
80080 , l_array_reference_num_4
80081 , l_array_reference_char_1
80082 , l_array_reference_char_2
80083 , l_array_reference_char_3
80084 , l_array_reference_char_4
80085 , l_array_reference_date_1
80086 , l_array_reference_date_2
80087 , l_array_reference_date_3
80088 , l_array_reference_date_4
80089 , l_array_event_created_by
80093 , l_array_source_10
80090 , l_array_budgetary_control_flag
80091 , l_array_source_8
80092 , l_array_source_9
80094 , l_array_source_11
80095 , l_array_source_12
80096 , l_array_source_13
80097 , l_array_source_23
80098 , l_array_source_24
80099 , l_array_source_25
80100 , l_array_source_90
80101 , l_array_source_92
80102 , l_array_source_104
80103 , l_array_source_105
80104 , l_array_source_106
80105 , l_array_source_117
80106 , l_array_source_118
80107 , l_array_source_119
80108 LIMIT l_rows;
80109 --
80110 IF (C_LEVEL_EVENT >= g_log_level) THEN
80111 trace
80112 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
80113 ,p_level => C_LEVEL_EVENT
80114 ,p_module => l_log_module);
80115 END IF;
80116 --
80117 EXIT WHEN l_array_entity_id.COUNT = 0;
80118
80119 -- initialize arrays
80120 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
80121 XLA_AE_LINES_PKG.g_rec_lines := NULL;
80122
80123 --
80124 -- Bug 4458708
80125 --
80126 XLA_AE_LINES_PKG.g_LineNumber := 0;
80127
80128
80129 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
80130 g_last_hdr_idx := l_array_event_id.LAST;
80131 --
80132 -- loop for the headers. Each iteration is for each header extract row
80133 -- fetched in header cursor
80134 --
80135 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
80136
80137 --
80138 -- set event info as cache for other routines to refer event attributes
80139 --
80140 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80141 (p_application_id => p_application_id
80142 ,p_primary_ledger_id => p_primary_ledger_id
80143 ,p_base_ledger_id => p_base_ledger_id
80144 ,p_target_ledger_id => p_target_ledger_id
80145 ,p_entity_id => l_array_entity_id(hdr_idx)
80146 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
80147 ,p_entity_code => l_array_entity_code(hdr_idx)
80148 ,p_transaction_num => l_array_transaction_num(hdr_idx)
80149 ,p_event_id => l_array_event_id(hdr_idx)
80150 ,p_event_class_code => l_array_class_code(hdr_idx)
80151 ,p_event_type_code => l_array_event_type(hdr_idx)
80152 ,p_event_number => l_array_event_number(hdr_idx)
80153 ,p_event_date => l_array_event_date(hdr_idx)
80154 ,p_transaction_date => l_array_transaction_date(hdr_idx)
80155 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
80156 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
80157 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
80158 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
80159 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
80160 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
80161 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
80162 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
80163 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
80164 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
80165 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
80166 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
80167 ,p_event_created_by => l_array_event_created_by(hdr_idx)
80168 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
80169
80170 --
80171 -- set the status of entry to C_VALID (0)
80172 --
80173 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80174
80175 --
80176 -- initialize a row for ae header
80177 --
80178 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
80179
80180 l_event_id := l_array_event_id(hdr_idx);
80181
80182 --
80183 -- storing the hdr_idx for event. May be used by line cursor.
80184 --
80185 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
80186
80187 --
80188 -- store sources from header extract. This can be improved to
80189 -- store only those sources from header extract that may be used in lines
80190 --
80191
80192 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
80193 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
80194 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
80195 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
80196 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
80197 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
80198 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
80199 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
80200 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
80201 g_array_event(l_event_id).array_value_num('source_90') := l_array_source_90(hdr_idx);
80202 g_array_event(l_event_id).array_value_num('source_92') := l_array_source_92(hdr_idx);
80203 g_array_event(l_event_id).array_value_num('source_104') := l_array_source_104(hdr_idx);
80204 g_array_event(l_event_id).array_value_num('source_105') := l_array_source_105(hdr_idx);
80205 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
80206 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
80207 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
80208 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
80209
80210 --
80214 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80211 -- initilaize the status of ae headers for diffrent balance types
80212 -- the status is initialised to C_NOT_CREATED (2)
80213 --
80215 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80216 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80217
80218 --
80219 -- call api to validate and store accounting attributes for header
80220 --
80221
80222 ------------------------------------------------------------
80223 -- Accrual Reversal : to get date for Standard Source (NONE)
80224 ------------------------------------------------------------
80225 l_acc_rev_gl_date_source := NULL;
80226
80227 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
80228 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_117');
80229 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
80230 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_118');
80231 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
80232 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
80233 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
80234 l_rec_acct_attrs.array_date_value(4) :=
80235 xla_ae_sources_pkg.GetSystemSourceDate(
80236 p_source_code => 'XLA_EVENT_DATE'
80237 , p_source_type_code => 'Y'
80238 , p_source_application_id => 602
80239 );
80240 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
80241 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_119');
80242
80243
80244 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
80245
80246 XLA_AE_HEADER_PKG.SetJeCategoryName;
80247
80248 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
80249 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
80250 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
80251 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
80252 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
80253
80254
80255 --
80256 xla_ae_header_pkg.SetHdrDescription(
80257 p_description => Description_10 (
80258 p_application_id => p_application_id
80259 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
80260 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
80261 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
80262 , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
80263 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
80264 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
80265 )
80266 );
80267 --
80268
80269 -- No header level analytical criteria
80270
80271 --
80272 --accounting attribute enhancement, bug 3612931
80273 --
80274 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_119'), 1,30);
80275
80276 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
80277 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80278
80279 xla_accounting_err_pkg.build_message
80280 (p_appli_s_name => 'XLA'
80281 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
80282 ,p_token_1 => 'ACCT_ATTR_NAME'
80283 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
80284 ,p_token_2 => 'PRODUCT_NAME'
80285 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80286 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80287 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80288 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80289
80290 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
80291 --
80292 -- following sets the accounting attributes needed to reverse
80293 -- accounting for a distributeion
80294 --
80295 xla_ae_lines_pkg.SetTrxReversalAttrs
80296 (p_event_id => l_event_id
80297 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
80298 ,p_trx_reversal_source => l_trx_reversal_source);
80299
80300 END IF;
80301
80302
80303 ----------------------------------------------------------------
80304 -- 4262811 - update the header statuses to invalid in need be
80305 ----------------------------------------------------------------
80306 --
80307 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
80308
80309
80310 -----------------------------------------------
80311 -- No accrual reversal for the event class/type
80312 -----------------------------------------------
80313 ----------------------------------------------------------------
80314
80315 --
80316 -- this ends the header loop iteration for one bulk fetch
80317 --
80318 END LOOP;
80319
80320 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
80321 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
80322
80323 --
80324 -- insert dummy rows into lines gt table that were created due to
80325 -- transaction reversals
80326 --
80327 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
80328 l_result := XLA_AE_LINES_PKG.InsertLines;
80329 END IF;
80330
80334 -- Bug 3939231
80331 --
80332 -- reset the temp_line_num for each set of events fetched from header
80333 -- cursor rather than doing it for each new event in line cursor
80335 --
80336 xla_ae_lines_pkg.g_temp_line_num := 0;
80337
80338
80339
80340 --
80341 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
80342 --
80343 --
80344 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80345
80346 trace
80347 (p_msg => 'SQL - FETCH line_cur'
80348 ,p_level => C_LEVEL_STATEMENT
80349 ,p_module => l_log_module);
80350
80351 END IF;
80352 --
80353 --
80354 LOOP
80355 --
80356 FETCH line_cur BULK COLLECT INTO
80357 l_array_entity_id
80358 , l_array_legal_entity_id
80359 , l_array_entity_code
80360 , l_array_transaction_num
80361 , l_array_event_id
80362 , l_array_class_code
80363 , l_array_event_type
80364 , l_array_event_number
80365 , l_array_event_date
80366 , l_array_transaction_date
80367 , l_array_reference_num_1
80368 , l_array_reference_num_2
80369 , l_array_reference_num_3
80370 , l_array_reference_num_4
80371 , l_array_reference_char_1
80372 , l_array_reference_char_2
80373 , l_array_reference_char_3
80374 , l_array_reference_char_4
80375 , l_array_reference_date_1
80376 , l_array_reference_date_2
80377 , l_array_reference_date_3
80378 , l_array_reference_date_4
80379 , l_array_event_created_by
80380 , l_array_budgetary_control_flag
80381 , l_array_extract_line_num
80382 , l_array_source_1
80383 , l_array_source_2
80384 , l_array_source_3
80385 , l_array_source_22
80386 , l_array_source_27
80387 , l_array_source_28
80388 , l_array_source_29
80389 , l_array_source_30
80390 , l_array_source_31
80391 , l_array_source_32
80392 , l_array_source_33
80393 , l_array_source_34
80394 , l_array_source_35
80395 , l_array_source_36
80396 , l_array_source_40
80397 , l_array_source_44
80398 , l_array_source_45
80399 , l_array_source_88
80400 , l_array_source_89
80401 , l_array_source_93
80402 , l_array_source_94
80403 , l_array_source_95
80404 , l_array_source_96
80405 , l_array_source_97
80406 , l_array_source_98
80407 , l_array_source_99
80408 , l_array_source_100
80409 , l_array_source_101
80410 , l_array_source_102
80411 , l_array_source_103
80412 LIMIT l_rows;
80413
80414 --
80415 IF (C_LEVEL_EVENT >= g_log_level) THEN
80416 trace
80417 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
80418 ,p_level => C_LEVEL_EVENT
80419 ,p_module => l_log_module);
80420 END IF;
80421 --
80422 EXIT WHEN l_array_entity_id.count = 0;
80423
80424 XLA_AE_LINES_PKG.g_rec_lines := null;
80425
80426 --
80427 -- Bug 4458708
80428 --
80429 XLA_AE_LINES_PKG.g_LineNumber := 0;
80430 --
80431 --
80432
80433 FOR Idx IN 1..l_array_event_id.count LOOP
80434 --
80435 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
80436 --
80437 l_event_id := l_array_event_id(idx); -- 5648433
80438
80439 --
80440 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80441 --
80442
80443 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
80444 (g_array_event(l_event_id).array_value_num('header_index'))
80445 ,'N'
80446 ) <> 'Y'
80447 THEN
80448 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80449 trace
80450 (p_msg => 'Trancaction revesal option is not Y '
80451 ,p_level => C_LEVEL_STATEMENT
80452 ,p_module => l_log_module);
80453 END IF;
80454
80455 --
80456 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
80457 --
80458 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80459 --
80460 -- set event info as cache for other routines to refer event attributes
80461 --
80462
80463 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
80464 l_previous_event_id := l_event_id;
80465
80466 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80467 (p_application_id => p_application_id
80468 ,p_primary_ledger_id => p_primary_ledger_id
80469 ,p_base_ledger_id => p_base_ledger_id
80470 ,p_target_ledger_id => p_target_ledger_id
80471 ,p_entity_id => l_array_entity_id(Idx)
80472 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
80473 ,p_entity_code => l_array_entity_code(Idx)
80474 ,p_transaction_num => l_array_transaction_num(Idx)
80475 ,p_event_id => l_array_event_id(Idx)
80476 ,p_event_class_code => l_array_class_code(Idx)
80477 ,p_event_type_code => l_array_event_type(Idx)
80478 ,p_event_number => l_array_event_number(Idx)
80479 ,p_event_date => l_array_event_date(Idx)
80480 ,p_transaction_date => l_array_transaction_date(Idx)
80481 ,p_reference_num_1 => l_array_reference_num_1(Idx)
80482 ,p_reference_num_2 => l_array_reference_num_2(Idx)
80486 ,p_reference_char_2 => l_array_reference_char_2(Idx)
80483 ,p_reference_num_3 => l_array_reference_num_3(Idx)
80484 ,p_reference_num_4 => l_array_reference_num_4(Idx)
80485 ,p_reference_char_1 => l_array_reference_char_1(Idx)
80487 ,p_reference_char_3 => l_array_reference_char_3(Idx)
80488 ,p_reference_char_4 => l_array_reference_char_4(Idx)
80489 ,p_reference_date_1 => l_array_reference_date_1(Idx)
80490 ,p_reference_date_2 => l_array_reference_date_2(Idx)
80491 ,p_reference_date_3 => l_array_reference_date_3(Idx)
80492 ,p_reference_date_4 => l_array_reference_date_4(Idx)
80493 ,p_event_created_by => l_array_event_created_by(Idx)
80494 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
80495 --
80496 END IF;
80497
80498
80499
80500 --
80501 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
80502
80503 l_acct_reversal_source := SUBSTR(NULL, 1,30);
80504
80505 IF l_continue_with_lines THEN
80506 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
80507 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80508
80509 xla_accounting_err_pkg.build_message
80510 (p_appli_s_name => 'XLA'
80511 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
80512 ,p_token_1 => 'LINE_NUMBER'
80513 ,p_value_1 => l_array_extract_line_num(Idx)
80514 ,p_token_2 => 'PRODUCT_NAME'
80515 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80516 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80517 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80518 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80519
80520 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
80521 --
80522 -- following sets the accounting attributes needed to reverse
80523 -- accounting for a distributeion
80524 --
80525
80526 --
80527 -- 5217187
80528 --
80529 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
80530 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
80531 g_array_event(l_event_id).array_value_num('header_index'));
80532 --
80533 --
80534
80535 -- No reversal code generated
80536
80537 xla_ae_lines_pkg.SetAcctReversalAttrs
80541 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
80538 (p_event_id => l_event_id
80539 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
80540 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80542 END IF;
80543
80547 --
80544 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
80545 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
80546
80548 AcctLineType_98 (
80549 p_application_id => p_application_id
80550 ,p_event_id => l_event_id
80551 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80552 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80553 ,p_actual_flag => l_actual_flag
80554 ,p_balance_type_code => l_balance_type_code
80555 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80556
80557 , p_source_22 => l_array_source_22(Idx)
80558 , p_source_27 => l_array_source_27(Idx)
80559 , p_source_29 => l_array_source_29(Idx)
80560 , p_source_30 => l_array_source_30(Idx)
80561 , p_source_33 => l_array_source_33(Idx)
80562 , p_source_34 => l_array_source_34(Idx)
80563 , p_source_35 => l_array_source_35(Idx)
80564 , p_source_40 => l_array_source_40(Idx)
80565 , p_source_44 => l_array_source_44(Idx)
80566 , p_source_45 => l_array_source_45(Idx)
80567 , p_source_88 => l_array_source_88(Idx)
80568 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80569 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80570 , p_source_93 => l_array_source_93(Idx)
80571 , p_source_94 => l_array_source_94(Idx)
80572 , p_source_95 => l_array_source_95(Idx)
80573 , p_source_96 => l_array_source_96(Idx)
80574 , p_source_97 => l_array_source_97(Idx)
80575 , p_source_98 => l_array_source_98(Idx)
80576 , p_source_99 => l_array_source_99(Idx)
80577 );
80578 If(l_balance_type_code = 'A') THEN
80579 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80580 END IF;
80581
80582 --
80583
80584
80585 --
80586 AcctLineType_99 (
80587 p_application_id => p_application_id
80588 ,p_event_id => l_event_id
80589 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80590 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80591 ,p_actual_flag => l_actual_flag
80592 ,p_balance_type_code => l_balance_type_code
80593 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80594
80595 , p_source_22 => l_array_source_22(Idx)
80596 , p_source_27 => l_array_source_27(Idx)
80597 , p_source_29 => l_array_source_29(Idx)
80598 , p_source_30 => l_array_source_30(Idx)
80599 , p_source_33 => l_array_source_33(Idx)
80600 , p_source_34 => l_array_source_34(Idx)
80601 , p_source_35 => l_array_source_35(Idx)
80602 , p_source_40 => l_array_source_40(Idx)
80603 , p_source_44 => l_array_source_44(Idx)
80604 , p_source_45 => l_array_source_45(Idx)
80605 , p_source_88 => l_array_source_88(Idx)
80606 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80607 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80608 , p_source_93 => l_array_source_93(Idx)
80609 , p_source_94 => l_array_source_94(Idx)
80610 , p_source_95 => l_array_source_95(Idx)
80611 , p_source_96 => l_array_source_96(Idx)
80612 , p_source_97 => l_array_source_97(Idx)
80613 , p_source_98 => l_array_source_98(Idx)
80614 , p_source_99 => l_array_source_99(Idx)
80615 );
80616 If(l_balance_type_code = 'A') THEN
80617 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80618 END IF;
80619
80620 --
80621
80622
80623 --
80624 AcctLineType_100 (
80625 p_application_id => p_application_id
80626 ,p_event_id => l_event_id
80627 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80628 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80629 ,p_actual_flag => l_actual_flag
80630 ,p_balance_type_code => l_balance_type_code
80631 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80632
80633 , p_source_22 => l_array_source_22(Idx)
80634 , p_source_27 => l_array_source_27(Idx)
80635 , p_source_29 => l_array_source_29(Idx)
80636 , p_source_30 => l_array_source_30(Idx)
80637 , p_source_33 => l_array_source_33(Idx)
80638 , p_source_34 => l_array_source_34(Idx)
80639 , p_source_35 => l_array_source_35(Idx)
80640 , p_source_40 => l_array_source_40(Idx)
80641 , p_source_44 => l_array_source_44(Idx)
80642 , p_source_45 => l_array_source_45(Idx)
80643 , p_source_88 => l_array_source_88(Idx)
80644 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80645 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80646 , p_source_93 => l_array_source_93(Idx)
80647 , p_source_94 => l_array_source_94(Idx)
80648 , p_source_95 => l_array_source_95(Idx)
80649 , p_source_96 => l_array_source_96(Idx)
80650 , p_source_97 => l_array_source_97(Idx)
80651 , p_source_98 => l_array_source_98(Idx)
80652 , p_source_99 => l_array_source_99(Idx)
80653 );
80654 If(l_balance_type_code = 'A') THEN
80655 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80656 END IF;
80657
80658 --
80659
80660
80661 --
80662 AcctLineType_101 (
80663 p_application_id => p_application_id
80664 ,p_event_id => l_event_id
80665 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80666 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80667 ,p_actual_flag => l_actual_flag
80668 ,p_balance_type_code => l_balance_type_code
80669 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80670
80671 , p_source_22 => l_array_source_22(Idx)
80672 , p_source_27 => l_array_source_27(Idx)
80673 , p_source_28 => l_array_source_28(Idx)
80674 , p_source_29 => l_array_source_29(Idx)
80675 , p_source_30 => l_array_source_30(Idx)
80676 , p_source_33 => l_array_source_33(Idx)
80677 , p_source_34 => l_array_source_34(Idx)
80678 , p_source_40 => l_array_source_40(Idx)
80679 , p_source_44 => l_array_source_44(Idx)
80680 , p_source_45 => l_array_source_45(Idx)
80681 , p_source_88 => l_array_source_88(Idx)
80682 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80686 , p_source_95 => l_array_source_95(Idx)
80683 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80684 , p_source_93 => l_array_source_93(Idx)
80685 , p_source_94 => l_array_source_94(Idx)
80687 , p_source_96 => l_array_source_96(Idx)
80688 , p_source_97 => l_array_source_97(Idx)
80689 , p_source_98 => l_array_source_98(Idx)
80690 , p_source_99 => l_array_source_99(Idx)
80691 , p_source_100 => l_array_source_100(Idx)
80692 );
80693 If(l_balance_type_code = 'A') THEN
80694 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80695 END IF;
80696
80697 --
80698
80699
80700 --
80701 AcctLineType_102 (
80702 p_application_id => p_application_id
80703 ,p_event_id => l_event_id
80704 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80705 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80706 ,p_actual_flag => l_actual_flag
80707 ,p_balance_type_code => l_balance_type_code
80708 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80709
80710 , p_source_22 => l_array_source_22(Idx)
80711 , p_source_27 => l_array_source_27(Idx)
80712 , p_source_28 => l_array_source_28(Idx)
80713 , p_source_29 => l_array_source_29(Idx)
80714 , p_source_30 => l_array_source_30(Idx)
80715 , p_source_33 => l_array_source_33(Idx)
80716 , p_source_34 => l_array_source_34(Idx)
80717 , p_source_40 => l_array_source_40(Idx)
80718 , p_source_44 => l_array_source_44(Idx)
80719 , p_source_45 => l_array_source_45(Idx)
80720 , p_source_88 => l_array_source_88(Idx)
80721 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80722 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80723 , p_source_93 => l_array_source_93(Idx)
80724 , p_source_94 => l_array_source_94(Idx)
80725 , p_source_95 => l_array_source_95(Idx)
80726 , p_source_96 => l_array_source_96(Idx)
80727 , p_source_97 => l_array_source_97(Idx)
80728 , p_source_98 => l_array_source_98(Idx)
80729 , p_source_99 => l_array_source_99(Idx)
80730 , p_source_100 => l_array_source_100(Idx)
80731 );
80732 If(l_balance_type_code = 'A') THEN
80733 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80734 END IF;
80735
80736 --
80737
80738
80739 --
80740 AcctLineType_103 (
80741 p_application_id => p_application_id
80742 ,p_event_id => l_event_id
80743 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80744 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80745 ,p_actual_flag => l_actual_flag
80746 ,p_balance_type_code => l_balance_type_code
80747 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80748
80749 , p_source_22 => l_array_source_22(Idx)
80750 , p_source_27 => l_array_source_27(Idx)
80751 , p_source_28 => l_array_source_28(Idx)
80752 , p_source_29 => l_array_source_29(Idx)
80753 , p_source_30 => l_array_source_30(Idx)
80754 , p_source_33 => l_array_source_33(Idx)
80755 , p_source_34 => l_array_source_34(Idx)
80756 , p_source_40 => l_array_source_40(Idx)
80757 , p_source_44 => l_array_source_44(Idx)
80758 , p_source_45 => l_array_source_45(Idx)
80759 , p_source_88 => l_array_source_88(Idx)
80760 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80761 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80762 , p_source_93 => l_array_source_93(Idx)
80763 , p_source_94 => l_array_source_94(Idx)
80764 , p_source_95 => l_array_source_95(Idx)
80765 , p_source_96 => l_array_source_96(Idx)
80766 , p_source_97 => l_array_source_97(Idx)
80767 , p_source_98 => l_array_source_98(Idx)
80768 , p_source_99 => l_array_source_99(Idx)
80769 , p_source_100 => l_array_source_100(Idx)
80770 );
80771 If(l_balance_type_code = 'A') THEN
80772 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80773 END IF;
80774
80775 --
80776
80777
80778 --
80779 AcctLineType_104 (
80780 p_application_id => p_application_id
80781 ,p_event_id => l_event_id
80782 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80783 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80784 ,p_actual_flag => l_actual_flag
80785 ,p_balance_type_code => l_balance_type_code
80786 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80787
80788 , p_source_22 => l_array_source_22(Idx)
80789 , p_source_27 => l_array_source_27(Idx)
80790 , p_source_29 => l_array_source_29(Idx)
80791 , p_source_30 => l_array_source_30(Idx)
80792 , p_source_33 => l_array_source_33(Idx)
80793 , p_source_34 => l_array_source_34(Idx)
80794 , p_source_35 => l_array_source_35(Idx)
80795 , p_source_40 => l_array_source_40(Idx)
80796 , p_source_44 => l_array_source_44(Idx)
80797 , p_source_45 => l_array_source_45(Idx)
80798 , p_source_88 => l_array_source_88(Idx)
80799 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80800 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80801 , p_source_93 => l_array_source_93(Idx)
80802 , p_source_94 => l_array_source_94(Idx)
80803 , p_source_95 => l_array_source_95(Idx)
80804 , p_source_96 => l_array_source_96(Idx)
80805 , p_source_97 => l_array_source_97(Idx)
80806 , p_source_98 => l_array_source_98(Idx)
80807 , p_source_99 => l_array_source_99(Idx)
80808 );
80809 If(l_balance_type_code = 'A') THEN
80810 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80811 END IF;
80812
80813 --
80814
80815
80816 --
80817 AcctLineType_105 (
80818 p_application_id => p_application_id
80819 ,p_event_id => l_event_id
80820 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80821 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80822 ,p_actual_flag => l_actual_flag
80823 ,p_balance_type_code => l_balance_type_code
80824 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80825
80829 , p_source_30 => l_array_source_30(Idx)
80826 , p_source_22 => l_array_source_22(Idx)
80827 , p_source_27 => l_array_source_27(Idx)
80828 , p_source_29 => l_array_source_29(Idx)
80830 , p_source_33 => l_array_source_33(Idx)
80831 , p_source_34 => l_array_source_34(Idx)
80832 , p_source_35 => l_array_source_35(Idx)
80833 , p_source_40 => l_array_source_40(Idx)
80834 , p_source_44 => l_array_source_44(Idx)
80835 , p_source_45 => l_array_source_45(Idx)
80836 , p_source_88 => l_array_source_88(Idx)
80837 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80838 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80839 , p_source_93 => l_array_source_93(Idx)
80840 , p_source_94 => l_array_source_94(Idx)
80841 , p_source_95 => l_array_source_95(Idx)
80842 , p_source_96 => l_array_source_96(Idx)
80843 , p_source_97 => l_array_source_97(Idx)
80844 , p_source_98 => l_array_source_98(Idx)
80845 , p_source_99 => l_array_source_99(Idx)
80846 );
80847 If(l_balance_type_code = 'A') THEN
80848 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80849 END IF;
80850
80851 --
80852
80853
80854 --
80855 AcctLineType_106 (
80856 p_application_id => p_application_id
80857 ,p_event_id => l_event_id
80858 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80859 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80860 ,p_actual_flag => l_actual_flag
80861 ,p_balance_type_code => l_balance_type_code
80862 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80863
80864 , p_source_22 => l_array_source_22(Idx)
80865 , p_source_27 => l_array_source_27(Idx)
80866 , p_source_29 => l_array_source_29(Idx)
80867 , p_source_30 => l_array_source_30(Idx)
80871 , p_source_40 => l_array_source_40(Idx)
80868 , p_source_33 => l_array_source_33(Idx)
80869 , p_source_34 => l_array_source_34(Idx)
80870 , p_source_35 => l_array_source_35(Idx)
80872 , p_source_44 => l_array_source_44(Idx)
80873 , p_source_45 => l_array_source_45(Idx)
80874 , p_source_88 => l_array_source_88(Idx)
80875 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80876 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80877 , p_source_93 => l_array_source_93(Idx)
80878 , p_source_94 => l_array_source_94(Idx)
80879 , p_source_95 => l_array_source_95(Idx)
80880 , p_source_96 => l_array_source_96(Idx)
80881 , p_source_97 => l_array_source_97(Idx)
80882 , p_source_98 => l_array_source_98(Idx)
80883 , p_source_99 => l_array_source_99(Idx)
80884 );
80885 If(l_balance_type_code = 'A') THEN
80886 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80887 END IF;
80888
80889 --
80890
80891
80892 --
80893 AcctLineType_107 (
80894 p_application_id => p_application_id
80895 ,p_event_id => l_event_id
80896 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80897 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80898 ,p_actual_flag => l_actual_flag
80899 ,p_balance_type_code => l_balance_type_code
80900 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80901
80902 , p_source_1 => l_array_source_1(Idx)
80903 , p_source_2 => l_array_source_2(Idx)
80904 , p_source_3 => l_array_source_3(Idx)
80905 , p_source_22 => l_array_source_22(Idx)
80906 , p_source_27 => l_array_source_27(Idx)
80907 , p_source_29 => l_array_source_29(Idx)
80908 , p_source_30 => l_array_source_30(Idx)
80909 , p_source_31 => l_array_source_31(Idx)
80910 , p_source_32 => l_array_source_32(Idx)
80911 , p_source_36 => l_array_source_36(Idx)
80912 , p_source_44 => l_array_source_44(Idx)
80913 , p_source_45 => l_array_source_45(Idx)
80914 , p_source_88 => l_array_source_88(Idx)
80915 , p_source_89 => l_array_source_89(Idx)
80916 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80920 , p_source_97 => l_array_source_97(Idx)
80917 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80918 , p_source_93 => l_array_source_93(Idx)
80919 , p_source_94 => l_array_source_94(Idx)
80921 , p_source_98 => l_array_source_98(Idx)
80922 , p_source_99 => l_array_source_99(Idx)
80923 , p_source_100 => l_array_source_100(Idx)
80924 , p_source_101 => l_array_source_101(Idx)
80925 );
80926 If(l_balance_type_code = 'A') THEN
80927 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80928 END IF;
80929
80930 --
80931
80932
80933 --
80934 AcctLineType_108 (
80935 p_application_id => p_application_id
80936 ,p_event_id => l_event_id
80937 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80938 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80939 ,p_actual_flag => l_actual_flag
80940 ,p_balance_type_code => l_balance_type_code
80941 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80942
80943 , p_source_22 => l_array_source_22(Idx)
80944 , p_source_27 => l_array_source_27(Idx)
80945 , p_source_29 => l_array_source_29(Idx)
80946 , p_source_30 => l_array_source_30(Idx)
80947 , p_source_31 => l_array_source_31(Idx)
80948 , p_source_32 => l_array_source_32(Idx)
80949 , p_source_36 => l_array_source_36(Idx)
80950 , p_source_44 => l_array_source_44(Idx)
80951 , p_source_45 => l_array_source_45(Idx)
80952 , p_source_88 => l_array_source_88(Idx)
80953 , p_source_89 => l_array_source_89(Idx)
80954 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80955 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80956 , p_source_93 => l_array_source_93(Idx)
80957 , p_source_94 => l_array_source_94(Idx)
80958 , p_source_97 => l_array_source_97(Idx)
80959 , p_source_98 => l_array_source_98(Idx)
80960 , p_source_99 => l_array_source_99(Idx)
80961 , p_source_100 => l_array_source_100(Idx)
80962 , p_source_101 => l_array_source_101(Idx)
80963 );
80964 If(l_balance_type_code = 'A') THEN
80965 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80966 END IF;
80967
80968 --
80969
80970
80971 --
80972 AcctLineType_109 (
80973 p_application_id => p_application_id
80974 ,p_event_id => l_event_id
80975 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80976 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80977 ,p_actual_flag => l_actual_flag
80978 ,p_balance_type_code => l_balance_type_code
80979 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80980
80981 , p_source_22 => l_array_source_22(Idx)
80982 , p_source_27 => l_array_source_27(Idx)
80983 , p_source_29 => l_array_source_29(Idx)
80984 , p_source_30 => l_array_source_30(Idx)
80985 , p_source_31 => l_array_source_31(Idx)
80986 , p_source_32 => l_array_source_32(Idx)
80987 , p_source_36 => l_array_source_36(Idx)
80988 , p_source_44 => l_array_source_44(Idx)
80989 , p_source_45 => l_array_source_45(Idx)
80990 , p_source_88 => l_array_source_88(Idx)
80991 , p_source_89 => l_array_source_89(Idx)
80992 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
80993 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
80994 , p_source_93 => l_array_source_93(Idx)
80995 , p_source_94 => l_array_source_94(Idx)
80996 , p_source_97 => l_array_source_97(Idx)
80997 , p_source_98 => l_array_source_98(Idx)
80998 , p_source_99 => l_array_source_99(Idx)
80999 , p_source_100 => l_array_source_100(Idx)
81000 , p_source_101 => l_array_source_101(Idx)
81001 );
81002 If(l_balance_type_code = 'A') THEN
81003 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81004 END IF;
81005
81006 --
81007
81008
81009 --
81010 AcctLineType_110 (
81011 p_application_id => p_application_id
81012 ,p_event_id => l_event_id
81013 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81014 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81015 ,p_actual_flag => l_actual_flag
81016 ,p_balance_type_code => l_balance_type_code
81017 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81018
81019 , p_source_22 => l_array_source_22(Idx)
81020 , p_source_27 => l_array_source_27(Idx)
81021 , p_source_29 => l_array_source_29(Idx)
81022 , p_source_30 => l_array_source_30(Idx)
81023 , p_source_31 => l_array_source_31(Idx)
81024 , p_source_32 => l_array_source_32(Idx)
81025 , p_source_36 => l_array_source_36(Idx)
81026 , p_source_44 => l_array_source_44(Idx)
81027 , p_source_45 => l_array_source_45(Idx)
81028 , p_source_88 => l_array_source_88(Idx)
81029 , p_source_89 => l_array_source_89(Idx)
81030 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81031 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81032 , p_source_93 => l_array_source_93(Idx)
81033 , p_source_94 => l_array_source_94(Idx)
81034 , p_source_97 => l_array_source_97(Idx)
81035 , p_source_98 => l_array_source_98(Idx)
81036 , p_source_99 => l_array_source_99(Idx)
81037 , p_source_100 => l_array_source_100(Idx)
81038 , p_source_101 => l_array_source_101(Idx)
81039 );
81040 If(l_balance_type_code = 'A') THEN
81041 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81042 END IF;
81043
81044 --
81045
81046
81047 --
81048 AcctLineType_111 (
81049 p_application_id => p_application_id
81050 ,p_event_id => l_event_id
81051 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81052 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81053 ,p_actual_flag => l_actual_flag
81054 ,p_balance_type_code => l_balance_type_code
81055 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81056
81057 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
81058 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
81062 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81059 , p_source_29 => l_array_source_29(Idx)
81060 , p_source_30 => l_array_source_30(Idx)
81061 , p_source_40 => l_array_source_40(Idx)
81063 , p_source_97 => l_array_source_97(Idx)
81064 , p_source_98 => l_array_source_98(Idx)
81065 , p_source_99 => l_array_source_99(Idx)
81066 );
81067 If(l_balance_type_code = 'A') THEN
81068 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81069 END IF;
81070
81071 --
81072
81073
81074 --
81075 AcctLineType_112 (
81076 p_application_id => p_application_id
81077 ,p_event_id => l_event_id
81078 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81079 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81080 ,p_actual_flag => l_actual_flag
81081 ,p_balance_type_code => l_balance_type_code
81082 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81083
81084 , p_source_22 => l_array_source_22(Idx)
81085 , p_source_27 => l_array_source_27(Idx)
81086 , p_source_29 => l_array_source_29(Idx)
81087 , p_source_30 => l_array_source_30(Idx)
81088 , p_source_33 => l_array_source_33(Idx)
81089 , p_source_34 => l_array_source_34(Idx)
81090 , p_source_35 => l_array_source_35(Idx)
81091 , p_source_40 => l_array_source_40(Idx)
81092 , p_source_44 => l_array_source_44(Idx)
81093 , p_source_45 => l_array_source_45(Idx)
81094 , p_source_88 => l_array_source_88(Idx)
81095 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81096 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81097 , p_source_93 => l_array_source_93(Idx)
81098 , p_source_94 => l_array_source_94(Idx)
81099 , p_source_95 => l_array_source_95(Idx)
81100 , p_source_96 => l_array_source_96(Idx)
81101 , p_source_97 => l_array_source_97(Idx)
81102 , p_source_98 => l_array_source_98(Idx)
81103 , p_source_99 => l_array_source_99(Idx)
81104 , p_source_102 => l_array_source_102(Idx)
81105 );
81106 If(l_balance_type_code = 'A') THEN
81107 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81108 END IF;
81109
81110 --
81111
81112
81113 --
81114 AcctLineType_113 (
81115 p_application_id => p_application_id
81116 ,p_event_id => l_event_id
81117 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81118 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81119 ,p_actual_flag => l_actual_flag
81120 ,p_balance_type_code => l_balance_type_code
81121 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81122
81123 , p_source_22 => l_array_source_22(Idx)
81124 , p_source_27 => l_array_source_27(Idx)
81125 , p_source_29 => l_array_source_29(Idx)
81126 , p_source_30 => l_array_source_30(Idx)
81127 , p_source_33 => l_array_source_33(Idx)
81128 , p_source_34 => l_array_source_34(Idx)
81129 , p_source_35 => l_array_source_35(Idx)
81130 , p_source_40 => l_array_source_40(Idx)
81131 , p_source_44 => l_array_source_44(Idx)
81132 , p_source_45 => l_array_source_45(Idx)
81133 , p_source_88 => l_array_source_88(Idx)
81134 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81135 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81136 , p_source_93 => l_array_source_93(Idx)
81137 , p_source_94 => l_array_source_94(Idx)
81138 , p_source_95 => l_array_source_95(Idx)
81139 , p_source_96 => l_array_source_96(Idx)
81140 , p_source_97 => l_array_source_97(Idx)
81141 , p_source_98 => l_array_source_98(Idx)
81142 , p_source_99 => l_array_source_99(Idx)
81143 , p_source_102 => l_array_source_102(Idx)
81144 );
81145 If(l_balance_type_code = 'A') THEN
81146 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81147 END IF;
81148
81149 --
81150
81151
81152 --
81153 AcctLineType_114 (
81154 p_application_id => p_application_id
81155 ,p_event_id => l_event_id
81156 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81157 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81158 ,p_actual_flag => l_actual_flag
81159 ,p_balance_type_code => l_balance_type_code
81160 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81161
81162 , p_source_22 => l_array_source_22(Idx)
81163 , p_source_27 => l_array_source_27(Idx)
81164 , p_source_28 => l_array_source_28(Idx)
81165 , p_source_29 => l_array_source_29(Idx)
81166 , p_source_30 => l_array_source_30(Idx)
81167 , p_source_33 => l_array_source_33(Idx)
81168 , p_source_34 => l_array_source_34(Idx)
81169 , p_source_35 => l_array_source_35(Idx)
81170 , p_source_36 => l_array_source_36(Idx)
81171 , p_source_44 => l_array_source_44(Idx)
81172 , p_source_45 => l_array_source_45(Idx)
81173 , p_source_88 => l_array_source_88(Idx)
81174 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81175 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81176 , p_source_93 => l_array_source_93(Idx)
81177 , p_source_94 => l_array_source_94(Idx)
81178 , p_source_95 => l_array_source_95(Idx)
81179 , p_source_96 => l_array_source_96(Idx)
81180 , p_source_97 => l_array_source_97(Idx)
81181 , p_source_98 => l_array_source_98(Idx)
81182 , p_source_99 => l_array_source_99(Idx)
81183 );
81184 If(l_balance_type_code = 'A') THEN
81185 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81186 END IF;
81187
81188 --
81189
81190
81191 --
81192 AcctLineType_115 (
81193 p_application_id => p_application_id
81194 ,p_event_id => l_event_id
81195 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81196 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81197 ,p_actual_flag => l_actual_flag
81203 , p_source_28 => l_array_source_28(Idx)
81198 ,p_balance_type_code => l_balance_type_code
81199 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81200
81201 , p_source_22 => l_array_source_22(Idx)
81202 , p_source_27 => l_array_source_27(Idx)
81204 , p_source_29 => l_array_source_29(Idx)
81205 , p_source_30 => l_array_source_30(Idx)
81206 , p_source_33 => l_array_source_33(Idx)
81207 , p_source_34 => l_array_source_34(Idx)
81208 , p_source_35 => l_array_source_35(Idx)
81209 , p_source_40 => l_array_source_40(Idx)
81210 , p_source_44 => l_array_source_44(Idx)
81211 , p_source_45 => l_array_source_45(Idx)
81212 , p_source_88 => l_array_source_88(Idx)
81213 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81214 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81215 , p_source_93 => l_array_source_93(Idx)
81216 , p_source_94 => l_array_source_94(Idx)
81217 , p_source_95 => l_array_source_95(Idx)
81218 , p_source_96 => l_array_source_96(Idx)
81219 , p_source_97 => l_array_source_97(Idx)
81220 , p_source_98 => l_array_source_98(Idx)
81221 , p_source_99 => l_array_source_99(Idx)
81222 );
81223 If(l_balance_type_code = 'A') THEN
81224 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81225 END IF;
81226
81227 --
81228
81229
81230 --
81231 AcctLineType_116 (
81232 p_application_id => p_application_id
81233 ,p_event_id => l_event_id
81234 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81235 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81236 ,p_actual_flag => l_actual_flag
81237 ,p_balance_type_code => l_balance_type_code
81238 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81239
81240 , p_source_22 => l_array_source_22(Idx)
81241 , p_source_27 => l_array_source_27(Idx)
81242 , p_source_28 => l_array_source_28(Idx)
81243 , p_source_29 => l_array_source_29(Idx)
81244 , p_source_30 => l_array_source_30(Idx)
81245 , p_source_33 => l_array_source_33(Idx)
81246 , p_source_34 => l_array_source_34(Idx)
81247 , p_source_35 => l_array_source_35(Idx)
81248 , p_source_40 => l_array_source_40(Idx)
81249 , p_source_44 => l_array_source_44(Idx)
81250 , p_source_45 => l_array_source_45(Idx)
81251 , p_source_88 => l_array_source_88(Idx)
81252 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81253 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81254 , p_source_93 => l_array_source_93(Idx)
81255 , p_source_94 => l_array_source_94(Idx)
81256 , p_source_95 => l_array_source_95(Idx)
81257 , p_source_96 => l_array_source_96(Idx)
81258 , p_source_97 => l_array_source_97(Idx)
81259 , p_source_98 => l_array_source_98(Idx)
81260 , p_source_99 => l_array_source_99(Idx)
81261 , p_source_103 => l_array_source_103(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_117 (
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_22 => l_array_source_22(Idx)
81281 , p_source_27 => l_array_source_27(Idx)
81282 , p_source_29 => l_array_source_29(Idx)
81283 , p_source_30 => l_array_source_30(Idx)
81284 , p_source_33 => l_array_source_33(Idx)
81285 , p_source_34 => l_array_source_34(Idx)
81286 , p_source_35 => l_array_source_35(Idx)
81287 , p_source_40 => l_array_source_40(Idx)
81288 , p_source_44 => l_array_source_44(Idx)
81289 , p_source_45 => l_array_source_45(Idx)
81290 , p_source_88 => l_array_source_88(Idx)
81294 , p_source_94 => l_array_source_94(Idx)
81291 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81292 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81293 , p_source_93 => l_array_source_93(Idx)
81295 , p_source_95 => l_array_source_95(Idx)
81296 , p_source_96 => l_array_source_96(Idx)
81297 , p_source_97 => l_array_source_97(Idx)
81298 , p_source_98 => l_array_source_98(Idx)
81299 , p_source_99 => l_array_source_99(Idx)
81300 , p_source_102 => l_array_source_102(Idx)
81301 );
81302 If(l_balance_type_code = 'A') THEN
81303 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81304 END IF;
81305
81306 --
81307
81308
81309 --
81310 AcctLineType_118 (
81311 p_application_id => p_application_id
81312 ,p_event_id => l_event_id
81313 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81314 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81315 ,p_actual_flag => l_actual_flag
81316 ,p_balance_type_code => l_balance_type_code
81317 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81318
81319 , p_source_22 => l_array_source_22(Idx)
81320 , p_source_27 => l_array_source_27(Idx)
81321 , p_source_29 => l_array_source_29(Idx)
81322 , p_source_30 => l_array_source_30(Idx)
81323 , p_source_33 => l_array_source_33(Idx)
81324 , p_source_34 => l_array_source_34(Idx)
81325 , p_source_35 => l_array_source_35(Idx)
81326 , p_source_40 => l_array_source_40(Idx)
81327 , p_source_44 => l_array_source_44(Idx)
81328 , p_source_45 => l_array_source_45(Idx)
81329 , p_source_88 => l_array_source_88(Idx)
81330 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81331 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81332 , p_source_93 => l_array_source_93(Idx)
81333 , p_source_94 => l_array_source_94(Idx)
81334 , p_source_95 => l_array_source_95(Idx)
81335 , p_source_96 => l_array_source_96(Idx)
81336 , p_source_97 => l_array_source_97(Idx)
81337 , p_source_98 => l_array_source_98(Idx)
81338 , p_source_99 => l_array_source_99(Idx)
81339 , p_source_102 => l_array_source_102(Idx)
81340 );
81341 If(l_balance_type_code = 'A') THEN
81342 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81343 END IF;
81344
81345 --
81346
81347
81348 --
81349 AcctLineType_119 (
81350 p_application_id => p_application_id
81351 ,p_event_id => l_event_id
81352 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81353 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81354 ,p_actual_flag => l_actual_flag
81355 ,p_balance_type_code => l_balance_type_code
81356 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81357
81358 , p_source_22 => l_array_source_22(Idx)
81359 , p_source_27 => l_array_source_27(Idx)
81360 , p_source_29 => l_array_source_29(Idx)
81361 , p_source_30 => l_array_source_30(Idx)
81362 , p_source_31 => l_array_source_31(Idx)
81363 , p_source_32 => l_array_source_32(Idx)
81364 , p_source_36 => l_array_source_36(Idx)
81365 , p_source_44 => l_array_source_44(Idx)
81366 , p_source_45 => l_array_source_45(Idx)
81367 , p_source_88 => l_array_source_88(Idx)
81368 , p_source_89 => l_array_source_89(Idx)
81369 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81370 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81371 , p_source_93 => l_array_source_93(Idx)
81372 , p_source_94 => l_array_source_94(Idx)
81373 , p_source_97 => l_array_source_97(Idx)
81374 , p_source_98 => l_array_source_98(Idx)
81375 , p_source_99 => l_array_source_99(Idx)
81376 , p_source_100 => l_array_source_100(Idx)
81377 , p_source_101 => l_array_source_101(Idx)
81378 );
81379 If(l_balance_type_code = 'A') THEN
81380 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81381 END IF;
81382
81383 --
81384
81385
81386 --
81387 AcctLineType_120 (
81388 p_application_id => p_application_id
81389 ,p_event_id => l_event_id
81390 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81391 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81392 ,p_actual_flag => l_actual_flag
81393 ,p_balance_type_code => l_balance_type_code
81394 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81395
81396 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
81397 , p_source_27 => l_array_source_27(Idx)
81398 , p_source_28 => l_array_source_28(Idx)
81399 , p_source_29 => l_array_source_29(Idx)
81400 , p_source_30 => l_array_source_30(Idx)
81401 , p_source_33 => l_array_source_33(Idx)
81402 , p_source_34 => l_array_source_34(Idx)
81403 , p_source_35 => l_array_source_35(Idx)
81404 , p_source_40 => l_array_source_40(Idx)
81405 , p_source_44 => l_array_source_44(Idx)
81406 , p_source_45 => l_array_source_45(Idx)
81407 , p_source_88 => l_array_source_88(Idx)
81408 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81409 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81410 , p_source_93 => l_array_source_93(Idx)
81411 , p_source_94 => l_array_source_94(Idx)
81412 , p_source_95 => l_array_source_95(Idx)
81413 , p_source_96 => l_array_source_96(Idx)
81414 , p_source_99 => l_array_source_99(Idx)
81415 , p_source_102 => l_array_source_102(Idx)
81416 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
81417 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
81418 , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
81419 );
81420 If(l_balance_type_code = 'A') THEN
81421 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81422 END IF;
81423
81424 --
81425
81426
81427 --
81428 AcctLineType_121 (
81432 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81429 p_application_id => p_application_id
81430 ,p_event_id => l_event_id
81431 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81433 ,p_actual_flag => l_actual_flag
81434 ,p_balance_type_code => l_balance_type_code
81435 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81436
81437 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
81438 , p_source_27 => l_array_source_27(Idx)
81439 , p_source_29 => l_array_source_29(Idx)
81440 , p_source_30 => l_array_source_30(Idx)
81441 , p_source_33 => l_array_source_33(Idx)
81442 , p_source_34 => l_array_source_34(Idx)
81443 , p_source_35 => l_array_source_35(Idx)
81444 , p_source_40 => l_array_source_40(Idx)
81445 , p_source_44 => l_array_source_44(Idx)
81446 , p_source_45 => l_array_source_45(Idx)
81447 , p_source_88 => l_array_source_88(Idx)
81448 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81449 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81450 , p_source_93 => l_array_source_93(Idx)
81451 , p_source_94 => l_array_source_94(Idx)
81452 , p_source_95 => l_array_source_95(Idx)
81453 , p_source_96 => l_array_source_96(Idx)
81454 , p_source_99 => l_array_source_99(Idx)
81455 , p_source_102 => l_array_source_102(Idx)
81456 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
81457 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
81458 , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
81459 );
81460 If(l_balance_type_code = 'A') THEN
81461 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81462 END IF;
81463
81464 --
81465
81466
81467 --
81468 AcctLineType_122 (
81469 p_application_id => p_application_id
81470 ,p_event_id => l_event_id
81471 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81472 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81473 ,p_actual_flag => l_actual_flag
81474 ,p_balance_type_code => l_balance_type_code
81475 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81476
81477 , p_source_22 => l_array_source_22(Idx)
81478 , p_source_27 => l_array_source_27(Idx)
81479 , p_source_29 => l_array_source_29(Idx)
81480 , p_source_30 => l_array_source_30(Idx)
81481 , p_source_31 => l_array_source_31(Idx)
81482 , p_source_32 => l_array_source_32(Idx)
81483 , p_source_36 => l_array_source_36(Idx)
81484 , p_source_44 => l_array_source_44(Idx)
81485 , p_source_45 => l_array_source_45(Idx)
81486 , p_source_88 => l_array_source_88(Idx)
81487 , p_source_89 => l_array_source_89(Idx)
81488 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81489 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81490 , p_source_93 => l_array_source_93(Idx)
81491 , p_source_94 => l_array_source_94(Idx)
81492 , p_source_97 => l_array_source_97(Idx)
81493 , p_source_98 => l_array_source_98(Idx)
81494 , p_source_99 => l_array_source_99(Idx)
81495 , p_source_100 => l_array_source_100(Idx)
81496 , p_source_101 => l_array_source_101(Idx)
81497 );
81498 If(l_balance_type_code = 'A') THEN
81499 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81500 END IF;
81501
81502 --
81503
81504
81505 --
81506 AcctLineType_123 (
81507 p_application_id => p_application_id
81508 ,p_event_id => l_event_id
81509 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81510 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81511 ,p_actual_flag => l_actual_flag
81512 ,p_balance_type_code => l_balance_type_code
81513 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81514
81515 , p_source_22 => l_array_source_22(Idx)
81516 , p_source_27 => l_array_source_27(Idx)
81517 , p_source_29 => l_array_source_29(Idx)
81518 , p_source_30 => l_array_source_30(Idx)
81519 , p_source_31 => l_array_source_31(Idx)
81520 , p_source_32 => l_array_source_32(Idx)
81521 , p_source_36 => l_array_source_36(Idx)
81522 , p_source_44 => l_array_source_44(Idx)
81523 , p_source_45 => l_array_source_45(Idx)
81524 , p_source_88 => l_array_source_88(Idx)
81525 , p_source_89 => l_array_source_89(Idx)
81526 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81527 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81528 , p_source_93 => l_array_source_93(Idx)
81529 , p_source_94 => l_array_source_94(Idx)
81530 , p_source_97 => l_array_source_97(Idx)
81531 , p_source_98 => l_array_source_98(Idx)
81532 , p_source_99 => l_array_source_99(Idx)
81533 , p_source_100 => l_array_source_100(Idx)
81534 , p_source_101 => l_array_source_101(Idx)
81535 );
81536 If(l_balance_type_code = 'A') THEN
81537 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81538 END IF;
81539
81540 --
81541
81542
81543 --
81544 AcctLineType_124 (
81545 p_application_id => p_application_id
81546 ,p_event_id => l_event_id
81547 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81548 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81549 ,p_actual_flag => l_actual_flag
81550 ,p_balance_type_code => l_balance_type_code
81551 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81552
81553 , p_source_22 => l_array_source_22(Idx)
81554 , p_source_27 => l_array_source_27(Idx)
81555 , p_source_29 => l_array_source_29(Idx)
81556 , p_source_30 => l_array_source_30(Idx)
81557 , p_source_33 => l_array_source_33(Idx)
81558 , p_source_34 => l_array_source_34(Idx)
81559 , p_source_35 => l_array_source_35(Idx)
81560 , p_source_40 => l_array_source_40(Idx)
81561 , p_source_44 => l_array_source_44(Idx)
81565 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81562 , p_source_45 => l_array_source_45(Idx)
81563 , p_source_88 => l_array_source_88(Idx)
81564 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81566 , p_source_93 => l_array_source_93(Idx)
81567 , p_source_94 => l_array_source_94(Idx)
81568 , p_source_95 => l_array_source_95(Idx)
81569 , p_source_96 => l_array_source_96(Idx)
81570 , p_source_97 => l_array_source_97(Idx)
81571 , p_source_98 => l_array_source_98(Idx)
81572 , p_source_99 => l_array_source_99(Idx)
81573 );
81574 If(l_balance_type_code = 'A') THEN
81575 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81576 END IF;
81577
81578 --
81579
81580
81581 --
81582 AcctLineType_125 (
81583 p_application_id => p_application_id
81584 ,p_event_id => l_event_id
81585 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81586 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81587 ,p_actual_flag => l_actual_flag
81588 ,p_balance_type_code => l_balance_type_code
81589 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81590
81591 , p_source_22 => l_array_source_22(Idx)
81592 , p_source_27 => l_array_source_27(Idx)
81593 , p_source_28 => l_array_source_28(Idx)
81594 , p_source_29 => l_array_source_29(Idx)
81595 , p_source_30 => l_array_source_30(Idx)
81596 , p_source_33 => l_array_source_33(Idx)
81597 , p_source_34 => l_array_source_34(Idx)
81598 , p_source_35 => l_array_source_35(Idx)
81599 , p_source_40 => l_array_source_40(Idx)
81600 , p_source_44 => l_array_source_44(Idx)
81601 , p_source_45 => l_array_source_45(Idx)
81602 , p_source_88 => l_array_source_88(Idx)
81603 , p_source_90 => g_array_event(l_event_id).array_value_num('source_90')
81604 , p_source_92 => g_array_event(l_event_id).array_value_num('source_92')
81605 , p_source_93 => l_array_source_93(Idx)
81606 , p_source_94 => l_array_source_94(Idx)
81607 , p_source_95 => l_array_source_95(Idx)
81608 , p_source_96 => l_array_source_96(Idx)
81609 , p_source_97 => l_array_source_97(Idx)
81610 , p_source_98 => l_array_source_98(Idx)
81611 , p_source_99 => l_array_source_99(Idx)
81612 , p_source_103 => l_array_source_103(Idx)
81613 );
81614 If(l_balance_type_code = 'A') THEN
81615 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81616 END IF;
81617
81618 --
81619
81620 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
81621 -- or secondary ledger that has different currency with primary
81622 -- or alc that is calculated by sla
81623 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
81624 (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'))
81625
81626 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
81627 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
81628 AND (l_actual_flag = 'A')) THEN
81629 XLA_AE_LINES_PKG.CreateGainOrLossLines(
81630 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
81631 ,p_application_id => p_application_id
81632 ,p_amb_context_code => 'DEFAULT'
81633 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
81634 ,p_event_class_code => C_EVENT_CLASS_CODE
81635 ,p_event_type_code => C_EVENT_TYPE_CODE
81636
81637 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_24'))
81638 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_25'))
81639
81640 ,p_actual_flag => l_actual_flag
81641 ,p_enc_flag => null
81642 ,p_actual_g_l_ref => l_actual_gain_loss_ref
81643 ,p_enc_g_l_ref => null
81644 );
81645 END IF;
81646 END IF;
81647 END IF;
81648
81649 ELSE
81650 --
81651 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81652 --
81653 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81654 trace
81655 (p_msg => 'Trancaction revesal option is Y'
81656 ,p_level => C_LEVEL_STATEMENT
81657 ,p_module => l_log_module);
81658 END IF;
81659 END IF;
81660
81661 END LOOP;
81662 l_result := XLA_AE_LINES_PKG.InsertLines ;
81663 end loop;
81664 close line_cur;
81665
81666
81667 --
81668 -- insert headers into xla_ae_headers_gt table
81669 --
81670 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
81671
81672 -- insert into errors table here.
81673
81674 END LOOP;
81675
81676 --
81677 -- 4865292
81678 --
81679 -- Compare g_hdr_extract_count with event count in
81680 -- CreateHeadersAndLines.
81681 --
81682 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
81683
81684 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81688 ,p_level => C_LEVEL_STATEMENT
81685 trace (p_msg => '# rows extracted from header extract objects '
81686 || ' (running total): '
81687 || g_hdr_extract_count
81689 ,p_module => l_log_module);
81690 END IF;
81691
81692 CLOSE header_cur;
81693 --
81694
81695 --
81696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81697 trace
81698 (p_msg => 'END of EventClass_137'
81699 ,p_level => C_LEVEL_PROCEDURE
81700 ,p_module => l_log_module);
81701 END IF;
81702 --
81703 RETURN l_result;
81704 EXCEPTION
81705 WHEN xla_exceptions_pkg.application_exception THEN
81706
81707 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81708
81709
81710 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81711
81712 RAISE;
81713
81714 WHEN NO_DATA_FOUND THEN
81715
81716 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81717 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81718
81719 FOR header_record IN header_cur
81720 LOOP
81721 l_array_header_events(header_record.event_id) := header_record.event_id;
81722 END LOOP;
81723
81724 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
81725 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
81726
81727 fnd_file.put_line(fnd_file.LOG, ' ');
81728 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81729 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
81730 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
81731
81732 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
81733 LOOP
81734 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
81735 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
81739
81736 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
81737 END IF;
81738 END LOOP;
81740 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81741 fnd_file.put_line(fnd_file.LOG, ' ');
81742
81743
81744 xla_exceptions_pkg.raise_message
81745 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_137');
81746
81747
81748 WHEN OTHERS THEN
81749 xla_exceptions_pkg.raise_message
81750 (p_location => 'XLA_00222_AAD_S_000017_PKG.EventClass_137');
81751 END EventClass_137;
81752 --
81753
81754 --
81755 --+============================================+
81756 --| |
81757 --| PRIVATE FUNCTION |
81758 --| |
81759 --+============================================+
81760 --
81761 FUNCTION CreateHeadersAndLines
81762 (p_application_id IN NUMBER
81763 ,p_base_ledger_id IN NUMBER
81764 ,p_target_ledger_id IN NUMBER
81765 ,p_pad_start_date IN DATE
81766 ,p_pad_end_date IN DATE
81767 ,p_primary_ledger_id IN NUMBER)
81768 RETURN BOOLEAN IS
81769 l_created BOOLEAN:=FALSE;
81770 l_event_id NUMBER;
81771 l_event_date DATE;
81772 l_language VARCHAR2(30);
81773 l_currency_code VARCHAR2(30);
81774 l_sla_ledger_id NUMBER;
81775 l_log_module VARCHAR2(240);
81776
81777 BEGIN
81778 --
81779 IF g_log_enabled THEN
81780 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
81781 END IF;
81782 --
81783 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81784 trace
81785 (p_msg => 'BEGIN of CreateHeadersAndLines'
81786 ,p_level => C_LEVEL_PROCEDURE
81787 ,p_module => l_log_module);
81788 END IF;
81789
81790 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
81791 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
81792 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
81793
81794 --
81795 -- initialize array of lines with NULL
81796 --
81797 xla_ae_lines_pkg.SetNullLine;
81798
81799 --
81800 -- initialize header extract count -- Bug 4865292
81801 --
81802 g_hdr_extract_count:= 0;
81803
81804
81805 l_created := EventClass_126(
81806 p_application_id => p_application_id
81807 , p_base_ledger_id => p_base_ledger_id
81808 , p_target_ledger_id => p_target_ledger_id
81809 , p_language => l_language
81810 , p_currency_code => l_currency_code
81811 , p_sla_ledger_id => l_sla_ledger_id
81812 , p_pad_start_date => p_pad_start_date
81813 , p_pad_end_date => p_pad_end_date
81814 , p_primary_ledger_id => p_primary_ledger_id
81815 );
81816
81817
81818
81819 IF ( g_diagnostics_mode ='Y' ) THEN
81820
81821 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81822 trace
81823 (p_msg => 'CALL Transaction Objects Diagnostics'
81824 ,p_level => C_LEVEL_STATEMENT
81825 ,p_module => l_log_module);
81826
81827 END IF;
81828
81829 insert_sources_126(
81830 p_target_ledger_id => p_target_ledger_id
81831 , p_language => l_language
81832 , p_sla_ledger_id => l_sla_ledger_id
81833 , p_pad_start_date => p_pad_start_date
81834 , p_pad_end_date => p_pad_end_date
81835 );
81836
81837 END IF;
81838
81839 l_created := EventClass_127(
81840 p_application_id => p_application_id
81841 , p_base_ledger_id => p_base_ledger_id
81842 , p_target_ledger_id => p_target_ledger_id
81843 , p_language => l_language
81844 , p_currency_code => l_currency_code
81845 , p_sla_ledger_id => l_sla_ledger_id
81846 , p_pad_start_date => p_pad_start_date
81847 , p_pad_end_date => p_pad_end_date
81848 , p_primary_ledger_id => p_primary_ledger_id
81849 );
81850
81851
81852
81853 IF ( g_diagnostics_mode ='Y' ) THEN
81854
81855 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81856 trace
81857 (p_msg => 'CALL Transaction Objects Diagnostics'
81858 ,p_level => C_LEVEL_STATEMENT
81862
81859 ,p_module => l_log_module);
81860
81861 END IF;
81863 insert_sources_127(
81864 p_target_ledger_id => p_target_ledger_id
81865 , p_language => l_language
81866 , p_sla_ledger_id => l_sla_ledger_id
81867 , p_pad_start_date => p_pad_start_date
81868 , p_pad_end_date => p_pad_end_date
81869 );
81870
81871 END IF;
81872
81873 l_created := EventClass_128(
81874 p_application_id => p_application_id
81875 , p_base_ledger_id => p_base_ledger_id
81876 , p_target_ledger_id => p_target_ledger_id
81877 , p_language => l_language
81878 , p_currency_code => l_currency_code
81879 , p_sla_ledger_id => l_sla_ledger_id
81880 , p_pad_start_date => p_pad_start_date
81881 , p_pad_end_date => p_pad_end_date
81882 , p_primary_ledger_id => p_primary_ledger_id
81883 );
81884
81885
81886
81887 IF ( g_diagnostics_mode ='Y' ) THEN
81888
81889 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81890 trace
81891 (p_msg => 'CALL Transaction Objects Diagnostics'
81892 ,p_level => C_LEVEL_STATEMENT
81893 ,p_module => l_log_module);
81894
81895 END IF;
81896
81897 insert_sources_128(
81898 p_target_ledger_id => p_target_ledger_id
81899 , p_language => l_language
81900 , p_sla_ledger_id => l_sla_ledger_id
81901 , p_pad_start_date => p_pad_start_date
81902 , p_pad_end_date => p_pad_end_date
81903 );
81904
81905 END IF;
81906
81907 l_created := EventClass_129(
81908 p_application_id => p_application_id
81909 , p_base_ledger_id => p_base_ledger_id
81910 , p_target_ledger_id => p_target_ledger_id
81911 , p_language => l_language
81912 , p_currency_code => l_currency_code
81913 , p_sla_ledger_id => l_sla_ledger_id
81914 , p_pad_start_date => p_pad_start_date
81915 , p_pad_end_date => p_pad_end_date
81916 , p_primary_ledger_id => p_primary_ledger_id
81917 );
81918
81919
81920
81921 IF ( g_diagnostics_mode ='Y' ) THEN
81925 (p_msg => 'CALL Transaction Objects Diagnostics'
81922
81923 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81924 trace
81926 ,p_level => C_LEVEL_STATEMENT
81927 ,p_module => l_log_module);
81928
81929 END IF;
81930
81931 insert_sources_129(
81932 p_target_ledger_id => p_target_ledger_id
81933 , p_language => l_language
81934 , p_sla_ledger_id => l_sla_ledger_id
81935 , p_pad_start_date => p_pad_start_date
81936 , p_pad_end_date => p_pad_end_date
81937 );
81938
81939 END IF;
81940
81941 l_created := EventClass_130(
81942 p_application_id => p_application_id
81943 , p_base_ledger_id => p_base_ledger_id
81944 , p_target_ledger_id => p_target_ledger_id
81945 , p_language => l_language
81946 , p_currency_code => l_currency_code
81947 , p_sla_ledger_id => l_sla_ledger_id
81948 , p_pad_start_date => p_pad_start_date
81949 , p_pad_end_date => p_pad_end_date
81950 , p_primary_ledger_id => p_primary_ledger_id
81951 );
81952
81953
81954
81955 IF ( g_diagnostics_mode ='Y' ) THEN
81956
81957 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81958 trace
81959 (p_msg => 'CALL Transaction Objects Diagnostics'
81960 ,p_level => C_LEVEL_STATEMENT
81961 ,p_module => l_log_module);
81962
81963 END IF;
81964
81965 insert_sources_130(
81966 p_target_ledger_id => p_target_ledger_id
81967 , p_language => l_language
81968 , p_sla_ledger_id => l_sla_ledger_id
81969 , p_pad_start_date => p_pad_start_date
81970 , p_pad_end_date => p_pad_end_date
81971 );
81972
81973 END IF;
81974
81975 l_created := EventClass_131(
81976 p_application_id => p_application_id
81977 , p_base_ledger_id => p_base_ledger_id
81978 , p_target_ledger_id => p_target_ledger_id
81979 , p_language => l_language
81980 , p_currency_code => l_currency_code
81981 , p_sla_ledger_id => l_sla_ledger_id
81982 , p_pad_start_date => p_pad_start_date
81983 , p_pad_end_date => p_pad_end_date
81984 , p_primary_ledger_id => p_primary_ledger_id
81985 );
81986
81987
81988
81989 IF ( g_diagnostics_mode ='Y' ) THEN
81990
81991 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81992 trace
81993 (p_msg => 'CALL Transaction Objects Diagnostics'
81994 ,p_level => C_LEVEL_STATEMENT
81995 ,p_module => l_log_module);
81996
81997 END IF;
81998
81999 insert_sources_131(
82000 p_target_ledger_id => p_target_ledger_id
82001 , p_language => l_language
82002 , p_sla_ledger_id => l_sla_ledger_id
82003 , p_pad_start_date => p_pad_start_date
82004 , p_pad_end_date => p_pad_end_date
82005 );
82006
82007 END IF;
82008
82009 l_created := EventClass_132(
82010 p_application_id => p_application_id
82011 , p_base_ledger_id => p_base_ledger_id
82012 , p_target_ledger_id => p_target_ledger_id
82013 , p_language => l_language
82014 , p_currency_code => l_currency_code
82015 , p_sla_ledger_id => l_sla_ledger_id
82016 , p_pad_start_date => p_pad_start_date
82017 , p_pad_end_date => p_pad_end_date
82018 , p_primary_ledger_id => p_primary_ledger_id
82019 );
82020
82021
82022
82023 IF ( g_diagnostics_mode ='Y' ) THEN
82024
82025 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82029 ,p_module => l_log_module);
82026 trace
82027 (p_msg => 'CALL Transaction Objects Diagnostics'
82028 ,p_level => C_LEVEL_STATEMENT
82030
82031 END IF;
82032
82033 insert_sources_132(
82034 p_target_ledger_id => p_target_ledger_id
82035 , p_language => l_language
82036 , p_sla_ledger_id => l_sla_ledger_id
82037 , p_pad_start_date => p_pad_start_date
82038 , p_pad_end_date => p_pad_end_date
82039 );
82040
82041 END IF;
82042
82043 l_created := EventClass_133(
82044 p_application_id => p_application_id
82045 , p_base_ledger_id => p_base_ledger_id
82046 , p_target_ledger_id => p_target_ledger_id
82047 , p_language => l_language
82048 , p_currency_code => l_currency_code
82049 , p_sla_ledger_id => l_sla_ledger_id
82050 , p_pad_start_date => p_pad_start_date
82051 , p_pad_end_date => p_pad_end_date
82052 , p_primary_ledger_id => p_primary_ledger_id
82053 );
82054
82055
82056
82057 IF ( g_diagnostics_mode ='Y' ) THEN
82058
82059 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82060 trace
82061 (p_msg => 'CALL Transaction Objects Diagnostics'
82062 ,p_level => C_LEVEL_STATEMENT
82063 ,p_module => l_log_module);
82064
82065 END IF;
82066
82067 insert_sources_133(
82068 p_target_ledger_id => p_target_ledger_id
82069 , p_language => l_language
82070 , p_sla_ledger_id => l_sla_ledger_id
82071 , p_pad_start_date => p_pad_start_date
82072 , p_pad_end_date => p_pad_end_date
82073 );
82074
82075 END IF;
82076
82077 l_created := EventClass_134(
82078 p_application_id => p_application_id
82079 , p_base_ledger_id => p_base_ledger_id
82080 , p_target_ledger_id => p_target_ledger_id
82081 , p_language => l_language
82082 , p_currency_code => l_currency_code
82083 , p_sla_ledger_id => l_sla_ledger_id
82084 , p_pad_start_date => p_pad_start_date
82085 , p_pad_end_date => p_pad_end_date
82086 , p_primary_ledger_id => p_primary_ledger_id
82087 );
82088
82089
82090
82091 IF ( g_diagnostics_mode ='Y' ) THEN
82092
82093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82094 trace
82098
82095 (p_msg => 'CALL Transaction Objects Diagnostics'
82096 ,p_level => C_LEVEL_STATEMENT
82097 ,p_module => l_log_module);
82099 END IF;
82100
82101 insert_sources_134(
82102 p_target_ledger_id => p_target_ledger_id
82103 , p_language => l_language
82104 , p_sla_ledger_id => l_sla_ledger_id
82105 , p_pad_start_date => p_pad_start_date
82106 , p_pad_end_date => p_pad_end_date
82107 );
82108
82109 END IF;
82110
82111 l_created := EventClass_135(
82112 p_application_id => p_application_id
82113 , p_base_ledger_id => p_base_ledger_id
82114 , p_target_ledger_id => p_target_ledger_id
82115 , p_language => l_language
82116 , p_currency_code => l_currency_code
82117 , p_sla_ledger_id => l_sla_ledger_id
82118 , p_pad_start_date => p_pad_start_date
82119 , p_pad_end_date => p_pad_end_date
82120 , p_primary_ledger_id => p_primary_ledger_id
82121 );
82122
82123
82124
82125 IF ( g_diagnostics_mode ='Y' ) THEN
82126
82127 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82128 trace
82129 (p_msg => 'CALL Transaction Objects Diagnostics'
82130 ,p_level => C_LEVEL_STATEMENT
82131 ,p_module => l_log_module);
82132
82133 END IF;
82134
82135 insert_sources_135(
82136 p_target_ledger_id => p_target_ledger_id
82137 , p_language => l_language
82138 , p_sla_ledger_id => l_sla_ledger_id
82139 , p_pad_start_date => p_pad_start_date
82140 , p_pad_end_date => p_pad_end_date
82141 );
82142
82143 END IF;
82144
82145 l_created := EventClass_136(
82146 p_application_id => p_application_id
82147 , p_base_ledger_id => p_base_ledger_id
82148 , p_target_ledger_id => p_target_ledger_id
82149 , p_language => l_language
82150 , p_currency_code => l_currency_code
82151 , p_sla_ledger_id => l_sla_ledger_id
82152 , p_pad_start_date => p_pad_start_date
82153 , p_pad_end_date => p_pad_end_date
82154 , p_primary_ledger_id => p_primary_ledger_id
82155 );
82156
82157
82158
82159 IF ( g_diagnostics_mode ='Y' ) THEN
82160
82161 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82162 trace
82163 (p_msg => 'CALL Transaction Objects Diagnostics'
82164 ,p_level => C_LEVEL_STATEMENT
82165 ,p_module => l_log_module);
82166
82167 END IF;
82168
82169 insert_sources_136(
82170 p_target_ledger_id => p_target_ledger_id
82171 , p_language => l_language
82172 , p_sla_ledger_id => l_sla_ledger_id
82173 , p_pad_start_date => p_pad_start_date
82174 , p_pad_end_date => p_pad_end_date
82175 );
82176
82177 END IF;
82178
82179 l_created := EventClass_137(
82180 p_application_id => p_application_id
82181 , p_base_ledger_id => p_base_ledger_id
82182 , p_target_ledger_id => p_target_ledger_id
82183 , p_language => l_language
82184 , p_currency_code => l_currency_code
82185 , p_sla_ledger_id => l_sla_ledger_id
82186 , p_pad_start_date => p_pad_start_date
82187 , p_pad_end_date => p_pad_end_date
82188 , p_primary_ledger_id => p_primary_ledger_id
82189 );
82190
82191
82192
82193 IF ( g_diagnostics_mode ='Y' ) THEN
82194
82195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82196 trace
82197 (p_msg => 'CALL Transaction Objects Diagnostics'
82198 ,p_level => C_LEVEL_STATEMENT
82199 ,p_module => l_log_module);
82200
82201 END IF;
82202
82203 insert_sources_137(
82204 p_target_ledger_id => p_target_ledger_id
82205 , p_language => l_language
82206 , p_sla_ledger_id => l_sla_ledger_id
82207 , p_pad_start_date => p_pad_start_date
82208 , p_pad_end_date => p_pad_end_date
82209 );
82210
82211 END IF;
82212
82213
82214 --
82215 -- Bug 4865292
82216 -- When the number of events and that of header extract do not match,
82217 -- set the no header extract flag to indicate there are some issues
82218 -- in header extract.
82219 --
82220 -- Event count context is set in xla_accounting_pkg.unit_processor.
82221 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
82222 -- to report it as a general error.
82223 --
82224 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
82225 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
82226
82227 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82228 trace
82229 (p_msg => '# of extracted headers and events does not match'
82230 ,p_level => C_LEVEL_STATEMENT
82231 ,p_module => l_log_module);
82232
82233 trace
82234 (p_msg => '# of extracted headers: '
82235 ||g_hdr_extract_count
82236 ,p_level => C_LEVEL_STATEMENT
82240 (p_msg => '# of events in xla_events_gt: '
82237 ,p_module => l_log_module);
82238
82239 trace
82241 ||xla_context_pkg.get_event_count_context
82242 ,p_level => C_LEVEL_STATEMENT
82243 ,p_module => l_log_module);
82244
82245 trace
82246 (p_msg => 'Event No Header Extract Context: '
82247 ||xla_context_pkg.get_event_nohdr_context
82248 ,p_level => C_LEVEL_STATEMENT
82249 ,p_module => l_log_module);
82250
82251 END IF;
82252
82253
82254 xla_context_pkg.set_event_nohdr_context
82255 (p_nohdr_extract_flag => 'Y'
82256 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
82257
82258 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82259 trace
82260 (p_msg => 'No Header Extract Flag is set to Y'
82261 ,p_level => C_LEVEL_STATEMENT
82262 ,p_module => l_log_module);
82263 END IF;
82264
82265 END IF;
82266
82267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82268 trace
82269 (p_msg => 'END of CreateHeadersAndLines'
82270 ,p_level => C_LEVEL_PROCEDURE
82271 ,p_module => l_log_module);
82272 END IF;
82273
82274 RETURN l_created;
82275 EXCEPTION
82276 WHEN xla_exceptions_pkg.application_exception THEN
82277 RAISE;
82278 WHEN OTHERS THEN
82279 xla_exceptions_pkg.raise_message
82280 (p_location => 'XLA_00222_AAD_S_000017_PKG.CreateHeadersAndLines');
82281 END CreateHeadersAndLines;
82282 --
82283 --
82284
82285 --
82286 --+============================================+
82287 --| |
82288 --| PUBLIC FUNCTION |
82289 --| |
82290 --+============================================+
82291 --
82292 FUNCTION CreateJournalEntries
82293 (p_application_id IN NUMBER
82294 ,p_base_ledger_id IN NUMBER
82295 ,p_pad_start_date IN DATE
82296 ,p_pad_end_date IN DATE
82297 ,p_primary_ledger_id IN NUMBER)
82298 RETURN NUMBER IS
82299 l_log_module VARCHAR2(240);
82300 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
82301 l_temp_result BOOLEAN;
82302 l_result NUMBER;
82303 BEGIN
82304 --
82305 IF g_log_enabled THEN
82306 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
82307 END IF;
82308 --
82309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82310 trace
82311 (p_msg => 'BEGIN of CreateJournalEntries'||
82312 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
82313 ,p_level => C_LEVEL_PROCEDURE
82314 ,p_module => l_log_module);
82315
82316 END IF;
82317
82318 --
82319 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
82320
82321 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82322 trace
82323 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
82324 ,p_level => C_LEVEL_STATEMENT
82325 ,p_module => l_log_module);
82326 END IF;
82327 --
82328 xla_ae_journal_entry_pkg.SetProductAcctDefinition
82329 (p_product_rule_code => 'JA_CN_AR_DEFAULT_ACCRUAL'
82330 ,p_product_rule_type_code => 'S'
82331 ,p_product_rule_version => ''
82332 ,p_product_rule_name => 'China Receivables Default Accrual'
82333 ,p_amb_context_code => 'DEFAULT'
82334 );
82335
82336 l_array_ledgers :=
82337 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
82338 (p_base_ledger_id => p_base_ledger_id);
82339
82340 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
82341 l_temp_result :=
82342 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
82343 (p_application_id => p_application_id
82344 ,p_base_ledger_id => p_base_ledger_id
82345 ,p_target_ledger_id => l_array_ledgers(Idx)
82346 ,p_primary_ledger_id => p_primary_ledger_id
82347 ,p_pad_start_date => p_pad_start_date
82348 ,p_pad_end_date => p_pad_end_date);
82349
82350 l_temp_result :=
82351 l_temp_result AND
82352 CreateHeadersAndLines
82353 (p_application_id => p_application_id
82354 ,p_base_ledger_id => p_base_ledger_id
82355 ,p_target_ledger_id => l_array_ledgers(Idx)
82356 ,p_pad_start_date => p_pad_start_date
82357 ,p_pad_end_date => p_pad_end_date
82358 ,p_primary_ledger_id => p_primary_ledger_id
82359 );
82360 END LOOP;
82361
82362
82363 IF (g_diagnostics_mode = 'Y' AND
82364 C_LEVEL_UNEXPECTED >= g_log_level AND
82365 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
82366
82367 xla_accounting_dump_pkg.acctg_event_extract_log(
82368 p_application_id => p_application_id
82369 ,p_request_id => xla_environment_pkg.g_Req_Id
82370 );
82371
82372 END IF;
82373
82374 CASE l_temp_result
82375 WHEN TRUE THEN l_result := 0;
82376 ELSE l_result := 2;
82377 END CASE;
82378
82379 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82380 trace
82381 (p_msg => 'return value. = '||TO_CHAR(l_result)
82382 ,p_level => C_LEVEL_PROCEDURE
82386 ,p_level => C_LEVEL_PROCEDURE
82383 ,p_module => l_log_module);
82384 trace
82385 (p_msg => 'END of CreateJournalEntries '
82387 ,p_module => l_log_module);
82388 END IF;
82389
82390 RETURN l_result;
82391 EXCEPTION
82392 WHEN xla_exceptions_pkg.application_exception THEN
82393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82394 trace
82395 (p_msg => 'ERROR. = '||sqlerrm
82396 ,p_level => C_LEVEL_PROCEDURE
82397 ,p_module => l_log_module);
82398 END IF;
82399 RAISE;
82400 WHEN OTHERS THEN
82401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82402 trace
82403 (p_msg => 'ERROR. = '||sqlerrm
82404 ,p_level => C_LEVEL_PROCEDURE
82405 ,p_module => l_log_module);
82406 END IF;
82407 xla_exceptions_pkg.raise_message
82408 (p_location => 'XLA_00222_AAD_S_000017_PKG.CreateJournalEntries');
82409 END CreateJournalEntries;
82410 --
82411 --=============================================================================
82412 --
82413 --
82414 --
82415 --
82416 --
82417 --
82418 --
82419 --
82420 --
82421 --
82422 --
82423 --
82424 --
82425 --
82426 --
82427 --
82428 --
82429 --
82430 --
82431 --
82432 --
82433 --
82434 --=============================================================================
82435 --=============================================================================
82436 -- *********** Initialization routine **********
82437 --=============================================================================
82438
82439 BEGIN
82440 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
82441 g_log_enabled := fnd_log.test
82442 (log_level => g_log_level
82443 ,module => C_DEFAULT_MODULE);
82444
82445 IF NOT g_log_enabled THEN
82446 g_log_level := C_LEVEL_LOG_DISABLED;
82447 END IF;
82448 --
82449 END XLA_00222_AAD_S_000017_PKG;
82450 --