DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000006_BC_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000006_BC_PKG AS
2 --
3 /*======================================================================+
4 |                Copyright (c) 1997 Oracle Corporation                  |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
7 +=======================================================================+
8 | Package Name                                                          |
9 |     XLA_00200_AAD_S_000006_BC_PKG                                     |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : Encumbrance Accrual                                    |
14 |      Code    : AP_ENC_ACCRUAL                                         |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 05:03:41 by user ANONYMOUS             |
20 +=======================================================================*/
21 --
22 --
23 TYPE t_rec_array_event IS RECORD
24    (array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
25    ,array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
26    ,array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
27    ,array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
28    ,array_event_id                       xla_number_array_type --XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
29    ,array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
30    ,array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
31    ,array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
32    ,array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
33    ,array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
34    ,array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
35    ,array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
36    ,array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
37    ,array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
38    ,array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
39    ,array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
40    ,array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
41    ,array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
42    ,array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
43    ,array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
44    ,array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
45    ,array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L
46    );
47 --
48 type t_array_value_num is table of number index by varchar2(30);
49 type t_array_value_char is table of varchar2(240) index by varchar2(30);
50 type t_array_value_date is table of date index by varchar2(30);
51 
52 type t_rec_value is record
53  (array_value_num     t_array_value_num
54  ,array_value_char    t_array_value_char
55  ,array_value_date    t_array_value_date);
56 
57 type t_array_event is table of  t_rec_value index by binary_integer;
58 
59 g_array_event   t_array_event;
60 
61 --=============================================================================
62 --               *********** Diagnostics **********
63 --=============================================================================
64 
65 g_diagnostics_mode          VARCHAR2(1);
66 g_last_hdr_idx              NUMBER;        -- 4262811 MPA
67 g_hdr_extract_count         PLS_INTEGER;
68 
69 --=============================================================================
70 --               *********** Local Trace Routine **********
71 --=============================================================================
72 
73 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
74 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
75 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
76 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
77 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
78 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
79 
80 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
81 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_00200_AAD_S_000006_BC_PKG';
82 
83 C_CHAR                CONSTANT       VARCHAR2(30) := fnd_global.local_chr(12); -- 4219869 Business flow
84 C_NUM                 CONSTANT       NUMBER       := 9.99E125;                 -- 4219869 Business flow
85 
86 g_log_level           NUMBER;
87 g_log_enabled         BOOLEAN;
88 
89 PROCEDURE trace
90            (p_msg                        IN VARCHAR2
91            ,p_level                      IN NUMBER
92            ,p_module                     IN VARCHAR2 ) IS
93 BEGIN
94 ----------------------------------------------------------------------------
95 -- Following is for FND log.
96 ----------------------------------------------------------------------------
97 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
98           fnd_log.message(p_level, p_module);
99 ELSIF p_level >= g_log_level THEN
100           fnd_log.string(p_level, p_module, p_msg);
101 END IF;
102 
103 EXCEPTION
104        WHEN xla_exceptions_pkg.application_exception THEN
105           RAISE;
106        WHEN OTHERS THEN
107           xla_exceptions_pkg.raise_message
108              (p_location   => 'XLA_00200_AAD_S_000006_BC_PKG.trace');
109 END trace;
110 
111 --
112 --+============================================+
113 --|                                            |
114 --|  PRIVATE  PROCEDURES/FUNCTIONS             |
115 --|                                            |
116 --+============================================+
117 --
118 
119 --
120 /*======================================================================+
121 |                                                                       |
122 | Private Function                                                      |
123 |    ValidateLookupMeaning                                              |
124 |                                                                       |
125 +======================================================================*/
126 FUNCTION ValidateLookupMeaning(
127   p_meaning                IN VARCHAR2
128 , p_lookup_code            IN VARCHAR2
129 , p_lookup_type            IN VARCHAR2
130 , p_source_code            IN VARCHAR2
131 , p_source_type_code       IN VARCHAR2
132 , p_source_application_id  IN INTEGER
133 )
134 RETURN VARCHAR2
135 IS
136 l_log_module         VARCHAR2(240);
137 BEGIN
138 IF g_log_enabled THEN
139       l_log_module := C_DEFAULT_MODULE||'.ValidateLookupMeaning';
140 END IF;
141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142       trace
143          (p_msg      => 'BEGIN of ValidateLookupMeaning'
144          ,p_level    => C_LEVEL_PROCEDURE
145          ,p_module   => l_log_module);
146 END IF;
147 --
148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
149     trace
150          (p_msg      => 'p_source_code = '|| p_source_code||
151                         ' - p_source_type_code = '|| p_source_type_code||
152                         ' - p_source_application_id = '|| p_source_application_id||
153                         ' - p_lookup_code = '|| p_lookup_code||
154                         ' - p_lookup_type = '|| p_lookup_type||
155                         ' - p_meaning = '|| p_meaning
156          ,p_level    => C_LEVEL_PROCEDURE
157          ,p_module   => l_log_module);
158 
159 END IF;
160 
161 IF p_lookup_code IS NOT NULL AND p_meaning IS NULL THEN
162    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
163    xla_accounting_err_pkg. build_message
164                (p_appli_s_name            => 'XLA'
165                ,p_msg_name                => 'XLA_AP_NO_LOOKUP_MEANING'
166                ,p_token_1                 => 'SOURCE_NAME'
167                ,p_value_1                 =>  xla_ae_sources_pkg.GetSourceName(
168                                                            p_source_code
169                                                          , p_source_type_code
170                                                          , p_source_application_id
171                                                          )
172                ,p_token_2                 => 'LOOKUP_CODE'
173                ,p_value_2                 =>  p_lookup_code
174                ,p_token_3                 => 'LOOKUP_TYPE'
175                ,p_value_3                 =>  p_lookup_type
176                ,p_token_4                 => 'PRODUCT_NAME'
177                ,p_value_4                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
179                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
180                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
181        );
182 
183    IF (C_LEVEL_ERROR >= g_log_level) THEN
184            trace
185                 (p_msg      => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
186                 ,p_level    => C_LEVEL_ERROR
187                 ,p_module   => l_log_module);
188    END IF;
189 END IF;
190 
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192         trace
193           (p_msg      => 'END of ValidateLookupMeaning'
194           ,p_level    => C_LEVEL_PROCEDURE
195           ,p_module   => l_log_module);
196 END IF;
197 RETURN p_meaning;
198 EXCEPTION
199 WHEN xla_exceptions_pkg.application_exception THEN
200   RETURN p_meaning;
201 WHEN OTHERS  THEN
202    xla_exceptions_pkg.raise_message
203            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.ValidateLookupMeaning');
204        --
205 END ValidateLookupMeaning;
206 --
207 --
208 
209 --
210 ---------------------------------------
211 --
212 -- PUBLIC FUNCTION
213 --         GetMeaning
214 --
215 ---------------------------------------
216 FUNCTION GetMeaning (
217   p_flex_value_set_id               IN INTEGER
218 , p_flex_value                      IN VARCHAR2
219 , p_source_code                     IN VARCHAR2
220 , p_source_type_code                IN VARCHAR2
221 , p_source_application_id           IN INTEGER
222 )
223 RETURN VARCHAR2
224 IS
225 l_meaning_meaning                     VARCHAR2(4000);
226 l_array_meaning                        xla_ae_sources_pkg.t_array_meaning;
227 l_Idx                                 INTEGER;
228 l_log_module                          VARCHAR2(240);
229 --
230 BEGIN
231 IF g_log_enabled THEN
232       l_log_module := C_DEFAULT_MODULE||'.GetMeaning';
233 END IF;
234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
235       trace
236          (p_msg      => 'BEGIN of GetMeaning'||
237                         'p_flex_value_set_id = '||p_flex_value_set_id||
238                         'p_flex_value = '||p_flex_value
239          ,p_level    => C_LEVEL_PROCEDURE
240          ,p_module   => l_log_module);
241 END IF;
242 --
243 l_array_meaning := xla_ae_sources_pkg.g_array_meaning;
244 --
245 IF p_flex_value IS NULL THEN
246 
247   l_meaning_meaning := NULL;
248 
249 ELSE
250 
251  CASE p_flex_value_set_id
252       
253    WHEN 1011404 THEN
254 
255     IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
256 
257       trace
258          (p_msg      => '-> CALL  DBMS_UTILITY.get_hash_value'
259          ,p_level    => C_LEVEL_PROCEDURE
260          ,p_module   => l_log_module);
261 
262     END IF;
263 
264     l_Idx := DBMS_UTILITY.get_hash_value(TO_CHAR(p_flex_value),1,1073741824);
265 
266     IF l_array_meaning.EXISTS(1011404) AND
267        l_array_meaning(1011404).array_flex_value.EXISTS(l_Idx) AND
268        l_array_meaning(1011404).array_flex_value(l_Idx)   = p_flex_value        THEN
269 
270        l_meaning_meaning    := l_array_meaning(1011404).array_meaning(l_Idx);
271 
272     ELSE
273 
274      SELECT NAME
275      INTO   l_meaning_meaning
276      FROM   HR_ALL_ORGANIZATION_UNITS_VL
277      WHERE  ORGANIZATION_ID = p_flex_value
278      ;
279 
280      l_array_meaning(1011404).array_flex_value(l_Idx)       := p_flex_value;
281      l_array_meaning(1011404).array_meaning(l_Idx)          := l_meaning_meaning;
282 
283     END IF;
284 
285  ELSE
286          l_meaning_meaning  := NULL;
287          xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
288          xla_accounting_err_pkg.build_message
289                         (p_appli_s_name            => 'XLA'
290                         ,p_msg_name                => 'XLA_AP_FLEX_VALUE_MEANING'
291                         ,p_token_1                 => 'VALUE_SET_NAME'
292                         ,p_value_1                 =>  xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
293                         ,p_token_2                 => 'FLEX_VALUE'
294                         ,p_value_2                 =>  p_flex_value
295                         ,p_token_3                 => 'SOURCE_NAME'
296                         ,p_value_3                 =>  xla_ae_sources_pkg.GetSourceName(
297                                                      p_source_code
298                                                    , p_source_type_code
299                                                    , p_source_application_id
300                                                      )
301                         ,p_token_4                 => 'PRODUCT_NAME'
302                         ,p_value_4                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
303                         ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
304                         ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
305                         ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
306         );
307       IF (C_LEVEL_ERROR >= g_log_level) THEN
308                          trace
309                             (p_msg      => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
310                             ,p_level    => C_LEVEL_ERROR
311                             ,p_module   => l_log_module);
312      END IF;
313  END CASE;
314 --
315 END IF;
316 --
317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
318 
319       trace
320          (p_msg      => 'return value. meaning = '||l_meaning_meaning
321          ,p_level    => C_LEVEL_PROCEDURE
322          ,p_module   => l_log_module);
323 
324       trace
325          (p_msg      => 'END of GetMeaning'
326          ,p_level    => C_LEVEL_PROCEDURE
327          ,p_module   => l_log_module);
328 END IF;
329 --
333 --
330 xla_ae_sources_pkg.g_array_meaning := l_array_meaning ;
331 --
332 RETURN l_meaning_meaning ;
334 EXCEPTION
335 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
336  --
337       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
338       xla_accounting_err_pkg.build_message
339                 (p_appli_s_name            => 'XLA'
340                 ,p_msg_name                => 'XLA_AP_FLEX_VALUE_MEANING'
341                 ,p_token_1                 => 'VALUE_SET_NAME'
342                 ,p_value_1                 =>  xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
343                 ,p_token_2                 => 'FLEX_VALUE'
344                 ,p_value_2                 =>  p_flex_value
345                 ,p_token_3                 => 'SOURCE_NAME'
346                 ,p_value_3                 =>  xla_ae_sources_pkg.GetSourceName(
347                                                      p_source_code
348                                                    , p_source_type_code
349                                                    , p_source_application_id
350                                                      )
351                 ,p_token_4                 => 'PRODUCT_NAME'
352                 ,p_value_4                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
353                 ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
354                 ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
355                 ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
356         );
357 
358      IF (C_LEVEL_ERROR >= g_log_level) THEN
359                          trace
360                             (p_msg      => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
361                             ,p_level    => C_LEVEL_ERROR
362                             ,p_module   => l_log_module);
363      END IF;
364 
365      RETURN NULL;
366   WHEN xla_exceptions_pkg.application_exception THEN
367       RAISE;
368   WHEN OTHERS THEN
369        xla_exceptions_pkg.raise_message
370            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.GetMeaning');
371 END GetMeaning;
372 --
373 
374 ---------------------------------------
375 --
376 -- PRIVATE FUNCTION
377 --         Description_1
378 --
379 ---------------------------------------
380 FUNCTION Description_1 (
381   p_application_id      IN NUMBER
382 , p_ae_header_id        IN NUMBER DEFAULT NULL 
383 )
384 RETURN VARCHAR2
385 IS
386 l_component_type        VARCHAR2(80)   ;
387 l_component_code        VARCHAR2(30)   ;
388 l_component_type_code   VARCHAR2(1)    ;
389 l_component_appl_id     INTEGER        ;
390 l_amb_context_code      VARCHAR2(30)   ;
391 l_ledger_language       VARCHAR2(30)   ;
392 l_source                VARCHAR2(1996) ;
393 l_description           VARCHAR2(2000) ;
394 l_log_module            VARCHAR2(240)  ;
395 BEGIN
396 IF g_log_enabled THEN
397       l_log_module := C_DEFAULT_MODULE||'.Description_1';
398 END IF;
399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
400       trace
401          (p_msg      => 'BEGIN of Description_1'
402          ,p_level    => C_LEVEL_PROCEDURE
403          ,p_module   => l_log_module);
404 END IF;
405 
406 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
407 l_component_type        := 'AMB_DESCRIPTION';
408 l_component_code        := 'JE_INVOICE_DESCRIPTION';
409 l_component_type_code   := 'S';
410 l_component_appl_id     :=  200;
411 l_amb_context_code      := 'DEFAULT';
412 l_source                := NULL;
413 l_description           := NULL;
414 
415 
416 l_description := null;
417  l_description := SUBSTR(l_description,1,1996);
418   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
419         trace
420            (p_msg      => 'END of Description_1'
421            ,p_level    => C_LEVEL_PROCEDURE
422            ,p_module   => l_log_module);
423 
424   END IF;
425   RETURN l_description;
426 
427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
428       trace
429          (p_msg      => 'END of Description_1'
430          ,p_level    => C_LEVEL_PROCEDURE
431          ,p_module   => l_log_module);
432 END IF;
433 RETURN NULL;
434 EXCEPTION
435   WHEN VALUE_ERROR THEN
436      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
437             trace
438                (p_msg      => 'ERROR: '||sqlerrm
439                ,p_level    => C_LEVEL_EXCEPTION
440                ,p_module   => l_log_module);
441      END IF;
442      RAISE;
443  WHEN xla_exceptions_pkg.application_exception THEN
444       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
445       trace
446          (p_msg      => 'ERROR: '||sqlerrm
447          ,p_level    => C_LEVEL_EXCEPTION
448          ,p_module   => l_log_module);
449       END IF;
450       RAISE;
451  WHEN OTHERS THEN
452        xla_exceptions_pkg.raise_message
453            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.Description_1');
454 END Description_1;
455 
456 ---------------------------------------
457 --
458 -- PRIVATE FUNCTION
459 --         Description_2
460 --
461 ---------------------------------------
465 --Invoice Distribution Description
462 FUNCTION Description_2 (
463   p_application_id      IN NUMBER
464 , p_ae_header_id        IN NUMBER DEFAULT NULL 
466  , p_source_1            IN VARCHAR2
467 )
468 RETURN VARCHAR2
469 IS
470 l_component_type        VARCHAR2(80)   ;
471 l_component_code        VARCHAR2(30)   ;
472 l_component_type_code   VARCHAR2(1)    ;
473 l_component_appl_id     INTEGER        ;
474 l_amb_context_code      VARCHAR2(30)   ;
475 l_ledger_language       VARCHAR2(30)   ;
476 l_source                VARCHAR2(1996) ;
477 l_description           VARCHAR2(2000) ;
478 l_log_module            VARCHAR2(240)  ;
479 BEGIN
480 IF g_log_enabled THEN
481       l_log_module := C_DEFAULT_MODULE||'.Description_2';
482 END IF;
483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
484       trace
485          (p_msg      => 'BEGIN of Description_2'
486          ,p_level    => C_LEVEL_PROCEDURE
487          ,p_module   => l_log_module);
488 END IF;
489 
490 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
491 l_component_type        := 'AMB_DESCRIPTION';
492 l_component_code        := 'JE_INV_DIST_DESCRIPTION';
493 l_component_type_code   := 'S';
494 l_component_appl_id     :=  200;
495 l_amb_context_code      := 'DEFAULT';
496 l_source                := NULL;
497 l_description           := NULL;
498 
499 
500   
501   l_source := SUBSTR(p_source_1,1,1996);
502   IF l_source IS NOT NULL THEN
503     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
504     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
505   END IF; 
506  l_description := SUBSTR(l_description,1,1996);
507   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
508         trace
509            (p_msg      => 'END of Description_2'
510            ,p_level    => C_LEVEL_PROCEDURE
511            ,p_module   => l_log_module);
512 
513   END IF;
514   RETURN l_description;
515 
516 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
517       trace
518          (p_msg      => 'END of Description_2'
519          ,p_level    => C_LEVEL_PROCEDURE
520          ,p_module   => l_log_module);
521 END IF;
522 RETURN NULL;
523 EXCEPTION
524   WHEN VALUE_ERROR THEN
525      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
526             trace
527                (p_msg      => 'ERROR: '||sqlerrm
528                ,p_level    => C_LEVEL_EXCEPTION
529                ,p_module   => l_log_module);
530      END IF;
531      RAISE;
532  WHEN xla_exceptions_pkg.application_exception THEN
533       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
534       trace
535          (p_msg      => 'ERROR: '||sqlerrm
536          ,p_level    => C_LEVEL_EXCEPTION
537          ,p_module   => l_log_module);
538       END IF;
539       RAISE;
540  WHEN OTHERS THEN
541        xla_exceptions_pkg.raise_message
542            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.Description_2');
543 END Description_2;
544 
545 ---------------------------------------
546 --
547 -- PRIVATE FUNCTION
548 --         Description_3
549 --
550 ---------------------------------------
551 FUNCTION Description_3 (
552   p_application_id      IN NUMBER
553 , p_ae_header_id        IN NUMBER DEFAULT NULL 
554 --Document Distribution Type
555  , p_source_2            IN VARCHAR2
556 --Project Name
557  , p_source_3            IN VARCHAR2
558 --Task Number
559  , p_source_4            IN VARCHAR2
560 --Expenditure Organization
561  , p_source_5            IN NUMBER
562 )
563 RETURN VARCHAR2
564 IS
565 l_component_type        VARCHAR2(80)   ;
566 l_component_code        VARCHAR2(30)   ;
567 l_component_type_code   VARCHAR2(1)    ;
568 l_component_appl_id     INTEGER        ;
569 l_amb_context_code      VARCHAR2(30)   ;
570 l_ledger_language       VARCHAR2(30)   ;
571 l_source                VARCHAR2(1996) ;
572 l_description           VARCHAR2(2000) ;
573 l_log_module            VARCHAR2(240)  ;
574 BEGIN
575 IF g_log_enabled THEN
576       l_log_module := C_DEFAULT_MODULE||'.Description_3';
577 END IF;
578 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
579       trace
580          (p_msg      => 'BEGIN of Description_3'
581          ,p_level    => C_LEVEL_PROCEDURE
582          ,p_module   => l_log_module);
583 END IF;
584 
585 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
586 l_component_type        := 'AMB_DESCRIPTION';
587 l_component_code        := 'PROJ_REL_LINE_DESCRIPTION';
588 l_component_type_code   := 'S';
589 l_component_appl_id     :=  200;
590 l_amb_context_code      := 'DEFAULT';
591 l_source                := NULL;
592 l_description           := NULL;
593 
594 
595  
596  IF 
597 l_ledger_language = 'US' THEN
598     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Distribution Type:'),1,2000);
599     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
600  END IF;   
601   l_source := SUBSTR(p_source_2,1,1996);
602   IF l_source IS NOT NULL THEN
603     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
604     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
605   END IF;  
609     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
606  IF 
607 l_ledger_language = 'US' THEN
608     l_description :=  SUBSTR(CONCAT(l_description,'- For Project -'),1,2000);
610  END IF;   
611   l_source := SUBSTR(p_source_3,1,1996);
612   IF l_source IS NOT NULL THEN
613     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
614     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
615   END IF;  
616  IF 
617 l_ledger_language = 'US' THEN
618     l_description :=  SUBSTR(CONCAT(l_description,' - and Task -'),1,2000);
619     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
620  END IF;   
621   l_source := SUBSTR(p_source_4,1,1996);
622   IF l_source IS NOT NULL THEN
623     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
624     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
625   END IF;  
626  IF 
627 l_ledger_language = 'US' THEN
628     l_description :=  SUBSTR(CONCAT(l_description,'- in Expenditure organization -'),1,2000);
629     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
630  END IF;   
631   l_source := SUBSTR(TO_CHAR(
632 GetMeaning (
633   p_flex_value_set_id        => 1011404
634 , p_flex_value               => TO_CHAR(p_source_5)
635 , p_source_code              => 'EXPENDITURE_ORGANIZATION_ID'
636 , p_source_type_code         => 'S'
637 , p_source_application_id    => 275
638 )
639 ),1,1996);
640   IF l_source IS NOT NULL THEN
641     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
642     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
643   END IF; 
644  l_description := SUBSTR(l_description,1,1996);
645   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
646         trace
647            (p_msg      => 'END of Description_3'
648            ,p_level    => C_LEVEL_PROCEDURE
649            ,p_module   => l_log_module);
650 
651   END IF;
652   RETURN l_description;
653 
654 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
655       trace
656          (p_msg      => 'END of Description_3'
657          ,p_level    => C_LEVEL_PROCEDURE
658          ,p_module   => l_log_module);
659 END IF;
660 RETURN NULL;
661 EXCEPTION
662   WHEN VALUE_ERROR THEN
663      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
664             trace
665                (p_msg      => 'ERROR: '||sqlerrm
666                ,p_level    => C_LEVEL_EXCEPTION
667                ,p_module   => l_log_module);
668      END IF;
669      RAISE;
670  WHEN xla_exceptions_pkg.application_exception THEN
671       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
672       trace
673          (p_msg      => 'ERROR: '||sqlerrm
674          ,p_level    => C_LEVEL_EXCEPTION
675          ,p_module   => l_log_module);
676       END IF;
677       RAISE;
678  WHEN OTHERS THEN
679        xla_exceptions_pkg.raise_message
680            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.Description_3');
681 END Description_3;
682 
683 ---------------------------------------
684 --
685 -- PRIVATE FUNCTION
686 --         AcctDerRule_4
687 --
688 ---------------------------------------
689 FUNCTION AcctDerRule_4 (
690   p_application_id             IN NUMBER
691 , p_ae_header_id               IN NUMBER
692 , p_side                       IN VARCHAR2
693 , p_override_seg_flag          IN VARCHAR2 
694 --Purchase Order Rate Variance Gain Account
695  , p_source_6            IN NUMBER
696 --Automatic Offsets Value
697  , p_source_7            IN VARCHAR2
698  , p_source_7_meaning    IN VARCHAR2
699 --Invoice Distribution Ledger Amount
700  , p_source_8            IN NUMBER
701 --Destination Type of the PO Distribution
702  , p_source_9            IN VARCHAR2
703  , p_source_9_meaning    IN VARCHAR2
704 --Purchase Order Rate Variance Loss Account
705  , p_source_10            IN NUMBER
706 , x_transaction_coa_id         OUT NOCOPY NUMBER
707 , x_accounting_coa_id          OUT NOCOPY NUMBER
708 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
709 , x_flex_value_set_id          OUT NOCOPY NUMBER
710 , x_value_type_code            OUT NOCOPY VARCHAR2
711 , x_value_combination_id       OUT NOCOPY NUMBER
712 , x_value_segment_code         OUT NOCOPY VARCHAR2
713 )
714 RETURN VARCHAR2
715 IS
716 l_component_type       VARCHAR2(80)  ;
717 l_component_code       VARCHAR2(30)  ;
718 l_component_type_code  VARCHAR2(1)   ;
719 l_component_appl_id    INTEGER       ;
720 l_amb_context_code     VARCHAR2(30)  ;
721 l_log_module           VARCHAR2(240) ;
722 l_output_value         VARCHAR2(30)  ;
723 BEGIN
724 IF g_log_enabled THEN
725       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
726 END IF;
727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
728 
729       trace
730          (p_msg      => 'BEGIN of AcctDerRule_4'
731          ,p_level    => C_LEVEL_PROCEDURE
732          ,p_module   => l_log_module);
733 
734 END IF;
735 
736 l_component_type         := 'AMB_ADR';
737 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
738 l_component_type_code    := 'S';
739 l_component_appl_id      :=  200;
740 l_amb_context_code       := 'DEFAULT';
741 x_transaction_coa_id     :=  null;
742 x_accounting_coa_id      :=  null;
746 
743 x_flexfield_segment_code := 'GL_ACCOUNT';
744 x_flex_value_set_id      :=  null ;
745 
747  IF NVL(p_source_7,'
748 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
749 p_source_8 <  0 AND 
750 NVL(p_source_9,'
751 ') =  'INVENTORY'
752  THEN 
753 --
754   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
755 
756       trace
757          (p_msg      => 'END of AcctDerRule_4'
758          ,p_level    => C_LEVEL_PROCEDURE
759          ,p_module   => l_log_module);
760 
761   END IF;
762   x_value_combination_id  := TO_NUMBER(p_source_6) ;
763   x_value_segment_code    := 'GL_ACCOUNT' ;
764   x_value_type_code       := 'S';
765   l_output_value          :=  null;
766   RETURN l_output_value;
767 
768  ELSIF NVL(p_source_7,'
769 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
770 p_source_8 >  0 AND 
771 NVL(p_source_9,'
772 ') =  'INVENTORY'
773  THEN 
774 --
775   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
776 
777       trace
778          (p_msg      => 'END of AcctDerRule_4'
779          ,p_level    => C_LEVEL_PROCEDURE
780          ,p_module   => l_log_module);
781 
782   END IF;
783   x_value_combination_id  := TO_NUMBER(p_source_10) ;
784   x_value_segment_code    := 'GL_ACCOUNT' ;
785   x_value_type_code       := 'S';
786   l_output_value          :=  null;
787   RETURN l_output_value;
788 
789  ELSE 
790     IF p_override_seg_flag = 'Y' THEN 
791        RETURN '#$NO_OVERRIDE#$';
792     END IF;
793  END IF;
794 
795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
796 
797       trace
798          (p_msg      => 'END of AcctDerRule_4(invalid)'
799          ,p_level    => C_LEVEL_PROCEDURE
800          ,p_module   => l_log_module);
801 
802 END IF;
803 
804 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
805 x_value_combination_id  := null;
806 x_value_segment_code    := null;
807 x_value_type_code       := null;
808 l_output_value          := null;
809 xla_accounting_err_pkg.build_message
810                  (p_appli_s_name            => 'XLA'
811                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
812                  ,p_token_1                 => 'COMPONENT_NAME'
813                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
814                                                             l_component_type
815                                                           , l_component_code
816                                                           , l_component_type_code
817                                                           , l_component_appl_id
818                                                           , l_amb_context_code
819                                                           )
820                  ,p_token_2                 => 'OWNER'
821                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
822                                                         'XLA_OWNER_TYPE'
823                                                         ,l_component_type_code
824                                                         )
825                  ,p_token_3                 => 'PAD_NAME'
826                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
827                  ,p_token_4                 => 'PAD_OWNER'
828                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
829                                                         'XLA_OWNER_TYPE'
830                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
831                                                         )
832                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
833                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
834                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
835                  ,p_ae_header_id            => NULL
836 );
837 RETURN l_output_value;
838 EXCEPTION
839   WHEN xla_exceptions_pkg.application_exception THEN
840       RAISE;
841   WHEN OTHERS THEN
842        xla_exceptions_pkg.raise_message
843            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_4');
844 END AcctDerRule_4;
845 --
846 
847 ---------------------------------------
848 --
849 -- PRIVATE FUNCTION
850 --         AcctDerRule_5
851 --
852 ---------------------------------------
853 FUNCTION AcctDerRule_5 (
854   p_application_id             IN NUMBER
855 , p_ae_header_id               IN NUMBER
856 , p_side                       IN VARCHAR2
857 , p_override_seg_flag          IN VARCHAR2 
858 --Automatic Offsets Value
859  , p_source_7            IN VARCHAR2
860  , p_source_7_meaning    IN VARCHAR2
861 --Destination Type of the PO Distribution
862  , p_source_9            IN VARCHAR2
863  , p_source_9_meaning    IN VARCHAR2
864 --Invoice Distribution Account
865  , p_source_11            IN NUMBER
866 , x_transaction_coa_id         OUT NOCOPY NUMBER
867 , x_accounting_coa_id          OUT NOCOPY NUMBER
868 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
869 , x_flex_value_set_id          OUT NOCOPY NUMBER
870 , x_value_type_code            OUT NOCOPY VARCHAR2
871 , x_value_combination_id       OUT NOCOPY NUMBER
872 , x_value_segment_code         OUT NOCOPY VARCHAR2
873 )
874 RETURN VARCHAR2
875 IS
879 l_component_appl_id    INTEGER       ;
876 l_component_type       VARCHAR2(80)  ;
877 l_component_code       VARCHAR2(30)  ;
878 l_component_type_code  VARCHAR2(1)   ;
880 l_amb_context_code     VARCHAR2(30)  ;
881 l_log_module           VARCHAR2(240) ;
882 l_output_value         VARCHAR2(30)  ;
883 BEGIN
884 IF g_log_enabled THEN
885       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
886 END IF;
887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
888 
889       trace
890          (p_msg      => 'BEGIN of AcctDerRule_5'
891          ,p_level    => C_LEVEL_PROCEDURE
892          ,p_module   => l_log_module);
893 
894 END IF;
895 
896 l_component_type         := 'AMB_ADR';
897 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
898 l_component_type_code    := 'S';
899 l_component_appl_id      :=  200;
900 l_amb_context_code       := 'DEFAULT';
901 x_transaction_coa_id     :=  null;
902 x_accounting_coa_id      :=  null;
903 x_flexfield_segment_code := 'GL_BALANCING';
904 x_flex_value_set_id      :=  null ;
905 
906 
907  IF NVL(p_source_7,'
908 ') =  'BALANCING_SEGMENT' AND 
909 NVL(p_source_9,'
910 ') =  'INVENTORY'
911  THEN 
912 --
913   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
914 
915       trace
916          (p_msg      => 'END of AcctDerRule_5'
917          ,p_level    => C_LEVEL_PROCEDURE
918          ,p_module   => l_log_module);
919 
920   END IF;
921   x_value_combination_id  := TO_NUMBER(p_source_11) ;
922   x_value_segment_code    := 'GL_BALANCING' ;
923   x_value_type_code       := 'S';
924   l_output_value          :=  null;
925   RETURN l_output_value;
926 
927  ELSE 
928     IF p_override_seg_flag = 'Y' THEN 
929        RETURN '#$NO_OVERRIDE#$';
930     END IF;
931  END IF;
932 
933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
934 
935       trace
936          (p_msg      => 'END of AcctDerRule_5(invalid)'
937          ,p_level    => C_LEVEL_PROCEDURE
938          ,p_module   => l_log_module);
939 
940 END IF;
941 
942 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
943 x_value_combination_id  := null;
944 x_value_segment_code    := null;
945 x_value_type_code       := null;
946 l_output_value          := null;
947 xla_accounting_err_pkg.build_message
948                  (p_appli_s_name            => 'XLA'
949                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
950                  ,p_token_1                 => 'COMPONENT_NAME'
951                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
952                                                             l_component_type
953                                                           , l_component_code
954                                                           , l_component_type_code
955                                                           , l_component_appl_id
956                                                           , l_amb_context_code
957                                                           )
958                  ,p_token_2                 => 'OWNER'
959                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
960                                                         'XLA_OWNER_TYPE'
961                                                         ,l_component_type_code
962                                                         )
963                  ,p_token_3                 => 'PAD_NAME'
964                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
965                  ,p_token_4                 => 'PAD_OWNER'
966                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
967                                                         'XLA_OWNER_TYPE'
968                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
969                                                         )
970                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
971                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
972                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
973                  ,p_ae_header_id            => NULL
974 );
975 RETURN l_output_value;
976 EXCEPTION
977   WHEN xla_exceptions_pkg.application_exception THEN
978       RAISE;
979   WHEN OTHERS THEN
980        xla_exceptions_pkg.raise_message
981            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_5');
982 END AcctDerRule_5;
983 --
984 
985 ---------------------------------------
986 --
987 -- PRIVATE FUNCTION
988 --         AcctDerRule_6
989 --
990 ---------------------------------------
991 FUNCTION AcctDerRule_6 (
992   p_application_id              IN NUMBER
993 , p_ae_header_id                IN NUMBER
994 , p_side                        IN VARCHAR2 
995 --Purchase Order Rate Variance Gain Account
996  , p_source_6            IN NUMBER
997 --Automatic Offsets Value
998  , p_source_7            IN VARCHAR2
999  , p_source_7_meaning    IN VARCHAR2
1000 --Invoice Distribution Ledger Amount
1001  , p_source_8            IN NUMBER
1002 --Destination Type of the PO Distribution
1003  , p_source_9            IN VARCHAR2
1007 --Invoice Distribution Account
1004  , p_source_9_meaning    IN VARCHAR2
1005 --Purchase Order Rate Variance Loss Account
1006  , p_source_10            IN NUMBER
1008  , p_source_11            IN NUMBER
1009 --Automatic Offsets Flag
1010  , p_source_12            IN VARCHAR2
1011  , p_source_12_meaning    IN VARCHAR2
1012 , x_transaction_coa_id         OUT NOCOPY NUMBER
1013 , x_accounting_coa_id          OUT NOCOPY NUMBER
1014 , x_value_type_code            OUT NOCOPY VARCHAR2
1015 )
1016 RETURN NUMBER
1017 IS
1018 l_component_type       VARCHAR2(80)  ;
1019 l_component_code       VARCHAR2(30)  ;
1020 l_component_type_code  VARCHAR2(1)   ;
1021 l_component_appl_id    INTEGER       ;
1022 l_amb_context_code     VARCHAR2(30)  ;
1023 l_log_module           VARCHAR2(240) ;
1024 l_output_value         NUMBER        ;
1025 BEGIN
1026 IF g_log_enabled THEN
1027       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1028 END IF;
1029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1030       trace
1031          (p_msg      => 'BEGIN of AcctDerRule_6'
1032          ,p_level    => C_LEVEL_PROCEDURE
1033          ,p_module   => l_log_module);
1034 END IF;
1035 --
1036 l_component_type         := 'AMB_ADR';
1037 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
1038 l_component_type_code    := 'S';
1039 l_component_appl_id      :=  200;
1040 l_amb_context_code       := 'DEFAULT';
1041 x_transaction_coa_id     :=  null;
1042 x_accounting_coa_id      :=  null;
1043 --
1044 
1045  IF NVL(p_source_9,'
1046 ') =  'EXPENSE' OR 
1047 (NVL(p_source_9,'
1048 ') =  'INVENTORY' AND 
1049 NVL(p_source_7,'
1050 ') =  'ACCOUNT_SEGMENT_VALUE')
1051  THEN 
1052  --
1053   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1054       trace
1055          (p_msg      => 'END of AcctDerRule_6'
1056          ,p_level    => C_LEVEL_PROCEDURE
1057          ,p_module   => l_log_module);
1058   END IF;
1059   x_value_type_code := 'S';
1060   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_11));
1061   RETURN l_output_value;
1062 
1063  ELSIF NVL(p_source_9,'
1064 ') <>  'EXPENSE' AND 
1065 p_source_8 <=  0 AND 
1066 (NVL(p_source_12,'
1067 ') =  'N' OR 
1068 NVL(p_source_7,'
1069 ') =  'BALANCING_SEGMENT')
1070  THEN 
1071  --
1072   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1073       trace
1074          (p_msg      => 'END of AcctDerRule_6'
1075          ,p_level    => C_LEVEL_PROCEDURE
1076          ,p_module   => l_log_module);
1077   END IF;
1078   x_value_type_code := 'S';
1079   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_6));
1080   RETURN l_output_value;
1081 
1082  ELSIF NVL(p_source_9,'
1083 ') <>  'EXPENSE' AND 
1084 p_source_8 >  0 AND 
1085 (NVL(p_source_12,'
1086 ') =  'N' OR 
1087 NVL(p_source_7,'
1088 ') =  'BALANCING_SEGMENT')
1089  THEN 
1090  --
1091   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1092       trace
1093          (p_msg      => 'END of AcctDerRule_6'
1094          ,p_level    => C_LEVEL_PROCEDURE
1095          ,p_module   => l_log_module);
1096   END IF;
1097   x_value_type_code := 'S';
1098   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_10));
1099   RETURN l_output_value;
1100 
1101  END IF;
1102 --
1103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1104       trace
1105          (p_msg      => 'END of AcctDerRule_6(invalid)'
1106          ,p_level    => C_LEVEL_PROCEDURE
1107          ,p_module   => l_log_module);
1108 END IF;
1109 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1110 x_value_type_code := null;
1111 l_output_value    := null;
1112 xla_accounting_err_pkg.build_message
1113                  (p_appli_s_name            => 'XLA'
1114                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1115                  ,p_token_1                 => 'COMPONENT_NAME'
1116                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1117                                                             l_component_type
1118                                                           , l_component_code
1119                                                           , l_component_type_code
1120                                                           , l_component_appl_id
1121                                                           , l_amb_context_code
1122                                                           )
1123                  ,p_token_2                 => 'OWNER'
1124                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1125                                                         'XLA_OWNER_TYPE'
1126                                                         ,l_component_type_code
1127                                                         )
1128                  ,p_token_3                 => 'PAD_NAME'
1129                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1130                  ,p_token_4                 => 'PAD_OWNER'
1131                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1132                                                         'XLA_OWNER_TYPE'
1133                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1134                                                         )
1138                  ,p_ae_header_id            => NULL
1135                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1136                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1137                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1139 );
1140 RETURN l_output_value;
1141 EXCEPTION
1142   WHEN xla_exceptions_pkg.application_exception THEN
1143       RAISE;
1144   WHEN OTHERS THEN
1145        xla_exceptions_pkg.raise_message
1146            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_6');
1147 END AcctDerRule_6;
1148 --
1149 
1150 ---------------------------------------
1151 --
1152 -- PRIVATE FUNCTION
1153 --         AcctDerRule_7
1154 --
1155 ---------------------------------------
1156 FUNCTION AcctDerRule_7 (
1157   p_application_id              IN NUMBER
1158 , p_ae_header_id                IN NUMBER
1159 , p_side                        IN VARCHAR2 
1160 --Invoice Distribution Account
1161  , p_source_11            IN NUMBER
1162 , x_transaction_coa_id         OUT NOCOPY NUMBER
1163 , x_accounting_coa_id          OUT NOCOPY NUMBER
1164 , x_value_type_code            OUT NOCOPY VARCHAR2
1165 )
1166 RETURN NUMBER
1167 IS
1168 l_component_type       VARCHAR2(80)  ;
1169 l_component_code       VARCHAR2(30)  ;
1170 l_component_type_code  VARCHAR2(1)   ;
1171 l_component_appl_id    INTEGER       ;
1172 l_amb_context_code     VARCHAR2(30)  ;
1173 l_log_module           VARCHAR2(240) ;
1174 l_output_value         NUMBER        ;
1175 BEGIN
1176 IF g_log_enabled THEN
1177       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1178 END IF;
1179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1180       trace
1181          (p_msg      => 'BEGIN of AcctDerRule_7'
1182          ,p_level    => C_LEVEL_PROCEDURE
1183          ,p_module   => l_log_module);
1184 END IF;
1185 --
1186 l_component_type         := 'AMB_ADR';
1187 l_component_code         := 'AP_INVOICE_DIST';
1188 l_component_type_code    := 'S';
1189 l_component_appl_id      :=  200;
1190 l_amb_context_code       := 'DEFAULT';
1191 x_transaction_coa_id     :=  null;
1192 x_accounting_coa_id      :=  null;
1193 --
1194 
1195  --
1196   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1197       trace
1198          (p_msg      => 'END of AcctDerRule_7'
1199          ,p_level    => C_LEVEL_PROCEDURE
1200          ,p_module   => l_log_module);
1201   END IF;
1202   x_value_type_code := 'S';
1203   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_11));
1204   RETURN l_output_value;
1205 
1206 --
1207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1208       trace
1209          (p_msg      => 'END of AcctDerRule_7(invalid)'
1210          ,p_level    => C_LEVEL_PROCEDURE
1211          ,p_module   => l_log_module);
1212 END IF;
1213 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1214 x_value_type_code := null;
1215 l_output_value    := null;
1216 xla_accounting_err_pkg.build_message
1217                  (p_appli_s_name            => 'XLA'
1218                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1219                  ,p_token_1                 => 'COMPONENT_NAME'
1220                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1221                                                             l_component_type
1222                                                           , l_component_code
1223                                                           , l_component_type_code
1224                                                           , l_component_appl_id
1225                                                           , l_amb_context_code
1226                                                           )
1227                  ,p_token_2                 => 'OWNER'
1228                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1229                                                         'XLA_OWNER_TYPE'
1230                                                         ,l_component_type_code
1231                                                         )
1232                  ,p_token_3                 => 'PAD_NAME'
1233                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1234                  ,p_token_4                 => 'PAD_OWNER'
1235                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1236                                                         'XLA_OWNER_TYPE'
1237                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1238                                                         )
1239                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1240                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1241                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1242                  ,p_ae_header_id            => NULL
1243 );
1244 RETURN l_output_value;
1245 EXCEPTION
1246   WHEN xla_exceptions_pkg.application_exception THEN
1247       RAISE;
1248   WHEN OTHERS THEN
1249        xla_exceptions_pkg.raise_message
1250            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_7');
1251 END AcctDerRule_7;
1252 --
1253 
1254 ---------------------------------------
1255 --
1259 ---------------------------------------
1256 -- PRIVATE FUNCTION
1257 --         AcctDerRule_8
1258 --
1260 FUNCTION AcctDerRule_8 (
1261   p_application_id              IN NUMBER
1262 , p_ae_header_id                IN NUMBER
1263 , p_side                        IN VARCHAR2 
1264 --Self-Assessed Tax Account
1265  , p_source_13            IN NUMBER
1266 , x_transaction_coa_id         OUT NOCOPY NUMBER
1267 , x_accounting_coa_id          OUT NOCOPY NUMBER
1268 , x_value_type_code            OUT NOCOPY VARCHAR2
1269 )
1270 RETURN NUMBER
1271 IS
1272 l_component_type       VARCHAR2(80)  ;
1273 l_component_code       VARCHAR2(30)  ;
1274 l_component_type_code  VARCHAR2(1)   ;
1275 l_component_appl_id    INTEGER       ;
1276 l_amb_context_code     VARCHAR2(30)  ;
1277 l_log_module           VARCHAR2(240) ;
1278 l_output_value         NUMBER        ;
1279 BEGIN
1280 IF g_log_enabled THEN
1281       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1282 END IF;
1283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1284       trace
1285          (p_msg      => 'BEGIN of AcctDerRule_8'
1286          ,p_level    => C_LEVEL_PROCEDURE
1287          ,p_module   => l_log_module);
1288 END IF;
1289 --
1290 l_component_type         := 'AMB_ADR';
1291 l_component_code         := 'AP_SELF_ASSESSED_TAX';
1292 l_component_type_code    := 'S';
1293 l_component_appl_id      :=  200;
1294 l_amb_context_code       := 'DEFAULT';
1295 x_transaction_coa_id     :=  null;
1296 x_accounting_coa_id      :=  null;
1297 --
1298 
1299  --
1300   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1301       trace
1302          (p_msg      => 'END of AcctDerRule_8'
1303          ,p_level    => C_LEVEL_PROCEDURE
1304          ,p_module   => l_log_module);
1305   END IF;
1306   x_value_type_code := 'S';
1307   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_13));
1308   RETURN l_output_value;
1309 
1310 --
1311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1312       trace
1313          (p_msg      => 'END of AcctDerRule_8(invalid)'
1314          ,p_level    => C_LEVEL_PROCEDURE
1315          ,p_module   => l_log_module);
1316 END IF;
1317 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1318 x_value_type_code := null;
1319 l_output_value    := null;
1320 xla_accounting_err_pkg.build_message
1321                  (p_appli_s_name            => 'XLA'
1322                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1323                  ,p_token_1                 => 'COMPONENT_NAME'
1324                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1325                                                             l_component_type
1326                                                           , l_component_code
1327                                                           , l_component_type_code
1328                                                           , l_component_appl_id
1329                                                           , l_amb_context_code
1330                                                           )
1331                  ,p_token_2                 => 'OWNER'
1332                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1333                                                         'XLA_OWNER_TYPE'
1334                                                         ,l_component_type_code
1335                                                         )
1336                  ,p_token_3                 => 'PAD_NAME'
1337                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1338                  ,p_token_4                 => 'PAD_OWNER'
1339                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1340                                                         'XLA_OWNER_TYPE'
1341                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1342                                                         )
1343                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1344                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1345                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1346                  ,p_ae_header_id            => NULL
1347 );
1348 RETURN l_output_value;
1349 EXCEPTION
1350   WHEN xla_exceptions_pkg.application_exception THEN
1351       RAISE;
1352   WHEN OTHERS THEN
1353        xla_exceptions_pkg.raise_message
1354            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_8');
1355 END AcctDerRule_8;
1356 --
1357 
1358 ---------------------------------------
1359 --
1360 -- PRIVATE FUNCTION
1361 --         AcctDerRule_9
1362 --
1363 ---------------------------------------
1364 FUNCTION AcctDerRule_9 (
1365   p_application_id              IN NUMBER
1366 , p_ae_header_id                IN NUMBER
1367 , p_side                        IN VARCHAR2 
1368 --Budget Account
1369  , p_source_14            IN NUMBER
1370 , x_transaction_coa_id         OUT NOCOPY NUMBER
1371 , x_accounting_coa_id          OUT NOCOPY NUMBER
1372 , x_value_type_code            OUT NOCOPY VARCHAR2
1373 )
1374 RETURN NUMBER
1375 IS
1376 l_component_type       VARCHAR2(80)  ;
1377 l_component_code       VARCHAR2(30)  ;
1378 l_component_type_code  VARCHAR2(1)   ;
1382 l_output_value         NUMBER        ;
1379 l_component_appl_id    INTEGER       ;
1380 l_amb_context_code     VARCHAR2(30)  ;
1381 l_log_module           VARCHAR2(240) ;
1383 BEGIN
1384 IF g_log_enabled THEN
1385       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1386 END IF;
1387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1388       trace
1389          (p_msg      => 'BEGIN of AcctDerRule_9'
1390          ,p_level    => C_LEVEL_PROCEDURE
1391          ,p_module   => l_log_module);
1392 END IF;
1393 --
1394 l_component_type         := 'AMB_ADR';
1395 l_component_code         := 'PROJ_BURDENED_ENC_ACCT_RULE';
1396 l_component_type_code    := 'S';
1397 l_component_appl_id      :=  200;
1398 l_amb_context_code       := 'DEFAULT';
1399 x_transaction_coa_id     :=  null;
1400 x_accounting_coa_id      :=  null;
1401 --
1402 
1403  --
1404   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1405       trace
1406          (p_msg      => 'END of AcctDerRule_9'
1407          ,p_level    => C_LEVEL_PROCEDURE
1408          ,p_module   => l_log_module);
1409   END IF;
1410   x_value_type_code := 'S';
1411   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
1412   RETURN l_output_value;
1413 
1414 --
1415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1416       trace
1417          (p_msg      => 'END of AcctDerRule_9(invalid)'
1418          ,p_level    => C_LEVEL_PROCEDURE
1419          ,p_module   => l_log_module);
1420 END IF;
1421 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1422 x_value_type_code := null;
1423 l_output_value    := null;
1424 xla_accounting_err_pkg.build_message
1425                  (p_appli_s_name            => 'XLA'
1426                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1427                  ,p_token_1                 => 'COMPONENT_NAME'
1428                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1429                                                             l_component_type
1430                                                           , l_component_code
1431                                                           , l_component_type_code
1432                                                           , l_component_appl_id
1433                                                           , l_amb_context_code
1434                                                           )
1435                  ,p_token_2                 => 'OWNER'
1436                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1437                                                         'XLA_OWNER_TYPE'
1438                                                         ,l_component_type_code
1439                                                         )
1440                  ,p_token_3                 => 'PAD_NAME'
1441                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1442                  ,p_token_4                 => 'PAD_OWNER'
1443                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1444                                                         'XLA_OWNER_TYPE'
1445                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1446                                                         )
1447                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1448                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1449                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1450                  ,p_ae_header_id            => NULL
1451 );
1452 RETURN l_output_value;
1453 EXCEPTION
1454   WHEN xla_exceptions_pkg.application_exception THEN
1455       RAISE;
1456   WHEN OTHERS THEN
1457        xla_exceptions_pkg.raise_message
1458            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_9');
1459 END AcctDerRule_9;
1460 --
1461 
1462 ---------------------------------------
1463 --
1464 -- PRIVATE FUNCTION
1465 --         AcctDerRule_10
1466 --
1467 ---------------------------------------
1468 FUNCTION AcctDerRule_10 (
1469   p_application_id              IN NUMBER
1470 , p_ae_header_id                IN NUMBER
1471 , p_side                        IN VARCHAR2 
1472 --Budget Account
1473  , p_source_14            IN NUMBER
1474 , x_transaction_coa_id         OUT NOCOPY NUMBER
1475 , x_accounting_coa_id          OUT NOCOPY NUMBER
1476 , x_value_type_code            OUT NOCOPY VARCHAR2
1477 )
1478 RETURN NUMBER
1479 IS
1480 l_component_type       VARCHAR2(80)  ;
1481 l_component_code       VARCHAR2(30)  ;
1482 l_component_type_code  VARCHAR2(1)   ;
1483 l_component_appl_id    INTEGER       ;
1484 l_amb_context_code     VARCHAR2(30)  ;
1485 l_log_module           VARCHAR2(240) ;
1486 l_output_value         NUMBER        ;
1487 BEGIN
1488 IF g_log_enabled THEN
1489       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1490 END IF;
1491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1492       trace
1493          (p_msg      => 'BEGIN of AcctDerRule_10'
1494          ,p_level    => C_LEVEL_PROCEDURE
1495          ,p_module   => l_log_module);
1496 END IF;
1497 --
1498 l_component_type         := 'AMB_ADR';
1499 l_component_code         := 'PROJ_BURDEN_ENC_ACCT_RULE';
1500 l_component_type_code    := 'S';
1501 l_component_appl_id      :=  200;
1502 l_amb_context_code       := 'DEFAULT';
1503 x_transaction_coa_id     :=  null;
1504 x_accounting_coa_id      :=  null;
1505 --
1506 
1507  --
1511          ,p_level    => C_LEVEL_PROCEDURE
1508   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1509       trace
1510          (p_msg      => 'END of AcctDerRule_10'
1512          ,p_module   => l_log_module);
1513   END IF;
1514   x_value_type_code := 'S';
1515   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
1516   RETURN l_output_value;
1517 
1518 --
1519 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1520       trace
1521          (p_msg      => 'END of AcctDerRule_10(invalid)'
1522          ,p_level    => C_LEVEL_PROCEDURE
1523          ,p_module   => l_log_module);
1524 END IF;
1525 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1526 x_value_type_code := null;
1527 l_output_value    := null;
1528 xla_accounting_err_pkg.build_message
1529                  (p_appli_s_name            => 'XLA'
1530                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1531                  ,p_token_1                 => 'COMPONENT_NAME'
1532                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1533                                                             l_component_type
1534                                                           , l_component_code
1535                                                           , l_component_type_code
1536                                                           , l_component_appl_id
1537                                                           , l_amb_context_code
1538                                                           )
1539                  ,p_token_2                 => 'OWNER'
1540                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1541                                                         'XLA_OWNER_TYPE'
1542                                                         ,l_component_type_code
1543                                                         )
1544                  ,p_token_3                 => 'PAD_NAME'
1545                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1546                  ,p_token_4                 => 'PAD_OWNER'
1547                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1548                                                         'XLA_OWNER_TYPE'
1549                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1550                                                         )
1551                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1552                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1553                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1554                  ,p_ae_header_id            => NULL
1555 );
1556 RETURN l_output_value;
1557 EXCEPTION
1558   WHEN xla_exceptions_pkg.application_exception THEN
1559       RAISE;
1560   WHEN OTHERS THEN
1561        xla_exceptions_pkg.raise_message
1562            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_10');
1563 END AcctDerRule_10;
1564 --
1565 
1566 ---------------------------------------
1567 --
1568 -- PRIVATE FUNCTION
1569 --         AcctDerRule_11
1570 --
1571 ---------------------------------------
1572 FUNCTION AcctDerRule_11 (
1573   p_application_id              IN NUMBER
1574 , p_ae_header_id                IN NUMBER
1575 , p_side                        IN VARCHAR2 
1576 --Budget Account
1577  , p_source_14            IN NUMBER
1578 , x_transaction_coa_id         OUT NOCOPY NUMBER
1579 , x_accounting_coa_id          OUT NOCOPY NUMBER
1580 , x_value_type_code            OUT NOCOPY VARCHAR2
1581 )
1582 RETURN NUMBER
1583 IS
1584 l_component_type       VARCHAR2(80)  ;
1585 l_component_code       VARCHAR2(30)  ;
1586 l_component_type_code  VARCHAR2(1)   ;
1587 l_component_appl_id    INTEGER       ;
1588 l_amb_context_code     VARCHAR2(30)  ;
1589 l_log_module           VARCHAR2(240) ;
1590 l_output_value         NUMBER        ;
1591 BEGIN
1592 IF g_log_enabled THEN
1593       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1594 END IF;
1595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1596       trace
1597          (p_msg      => 'BEGIN of AcctDerRule_11'
1598          ,p_level    => C_LEVEL_PROCEDURE
1599          ,p_module   => l_log_module);
1600 END IF;
1601 --
1602 l_component_type         := 'AMB_ADR';
1603 l_component_code         := 'PROJ_PREPAY_BURDENED_ENC_RULE';
1604 l_component_type_code    := 'S';
1605 l_component_appl_id      :=  200;
1606 l_amb_context_code       := 'DEFAULT';
1607 x_transaction_coa_id     :=  null;
1608 x_accounting_coa_id      :=  null;
1609 --
1610 
1611  --
1612   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1613       trace
1614          (p_msg      => 'END of AcctDerRule_11'
1615          ,p_level    => C_LEVEL_PROCEDURE
1616          ,p_module   => l_log_module);
1617   END IF;
1618   x_value_type_code := 'S';
1619   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
1620   RETURN l_output_value;
1621 
1622 --
1623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1624       trace
1625          (p_msg      => 'END of AcctDerRule_11(invalid)'
1626          ,p_level    => C_LEVEL_PROCEDURE
1627          ,p_module   => l_log_module);
1628 END IF;
1629 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1630 x_value_type_code := null;
1631 l_output_value    := null;
1632 xla_accounting_err_pkg.build_message
1636                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1633                  (p_appli_s_name            => 'XLA'
1634                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1635                  ,p_token_1                 => 'COMPONENT_NAME'
1637                                                             l_component_type
1638                                                           , l_component_code
1639                                                           , l_component_type_code
1640                                                           , l_component_appl_id
1641                                                           , l_amb_context_code
1642                                                           )
1643                  ,p_token_2                 => 'OWNER'
1644                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1645                                                         'XLA_OWNER_TYPE'
1646                                                         ,l_component_type_code
1647                                                         )
1648                  ,p_token_3                 => 'PAD_NAME'
1649                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1650                  ,p_token_4                 => 'PAD_OWNER'
1651                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1652                                                         'XLA_OWNER_TYPE'
1653                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1654                                                         )
1655                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1656                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1657                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1658                  ,p_ae_header_id            => NULL
1659 );
1660 RETURN l_output_value;
1661 EXCEPTION
1662   WHEN xla_exceptions_pkg.application_exception THEN
1663       RAISE;
1664   WHEN OTHERS THEN
1665        xla_exceptions_pkg.raise_message
1666            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_11');
1667 END AcctDerRule_11;
1668 --
1669 
1670 ---------------------------------------
1671 --
1672 -- PRIVATE FUNCTION
1673 --         AcctDerRule_12
1674 --
1675 ---------------------------------------
1676 FUNCTION AcctDerRule_12 (
1677   p_application_id              IN NUMBER
1678 , p_ae_header_id                IN NUMBER
1679 , p_side                        IN VARCHAR2 
1680 --Budget Account
1681  , p_source_14            IN NUMBER
1682 , x_transaction_coa_id         OUT NOCOPY NUMBER
1683 , x_accounting_coa_id          OUT NOCOPY NUMBER
1684 , x_value_type_code            OUT NOCOPY VARCHAR2
1685 )
1686 RETURN NUMBER
1687 IS
1688 l_component_type       VARCHAR2(80)  ;
1689 l_component_code       VARCHAR2(30)  ;
1690 l_component_type_code  VARCHAR2(1)   ;
1691 l_component_appl_id    INTEGER       ;
1692 l_amb_context_code     VARCHAR2(30)  ;
1693 l_log_module           VARCHAR2(240) ;
1694 l_output_value         NUMBER        ;
1695 BEGIN
1696 IF g_log_enabled THEN
1697       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1698 END IF;
1699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1700       trace
1701          (p_msg      => 'BEGIN of AcctDerRule_12'
1702          ,p_level    => C_LEVEL_PROCEDURE
1703          ,p_module   => l_log_module);
1704 END IF;
1705 --
1706 l_component_type         := 'AMB_ADR';
1707 l_component_code         := 'PROJ_PREPAY_ENC_ACCT_RULE';
1708 l_component_type_code    := 'S';
1709 l_component_appl_id      :=  200;
1710 l_amb_context_code       := 'DEFAULT';
1711 x_transaction_coa_id     :=  null;
1712 x_accounting_coa_id      :=  null;
1713 --
1714 
1715  --
1716   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1717       trace
1718          (p_msg      => 'END of AcctDerRule_12'
1719          ,p_level    => C_LEVEL_PROCEDURE
1720          ,p_module   => l_log_module);
1721   END IF;
1722   x_value_type_code := 'S';
1723   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
1724   RETURN l_output_value;
1725 
1726 --
1727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1728       trace
1729          (p_msg      => 'END of AcctDerRule_12(invalid)'
1730          ,p_level    => C_LEVEL_PROCEDURE
1731          ,p_module   => l_log_module);
1732 END IF;
1733 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1734 x_value_type_code := null;
1735 l_output_value    := null;
1736 xla_accounting_err_pkg.build_message
1737                  (p_appli_s_name            => 'XLA'
1738                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1739                  ,p_token_1                 => 'COMPONENT_NAME'
1740                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1741                                                             l_component_type
1742                                                           , l_component_code
1743                                                           , l_component_type_code
1744                                                           , l_component_appl_id
1745                                                           , l_amb_context_code
1746                                                           )
1747                  ,p_token_2                 => 'OWNER'
1751                                                         )
1748                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1749                                                         'XLA_OWNER_TYPE'
1750                                                         ,l_component_type_code
1752                  ,p_token_3                 => 'PAD_NAME'
1753                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1754                  ,p_token_4                 => 'PAD_OWNER'
1755                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1756                                                         'XLA_OWNER_TYPE'
1757                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1758                                                         )
1759                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1760                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1761                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1762                  ,p_ae_header_id            => NULL
1763 );
1764 RETURN l_output_value;
1765 EXCEPTION
1766   WHEN xla_exceptions_pkg.application_exception THEN
1767       RAISE;
1768   WHEN OTHERS THEN
1769        xla_exceptions_pkg.raise_message
1770            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_12');
1771 END AcctDerRule_12;
1772 --
1773 
1774 ---------------------------------------
1775 --
1776 -- PRIVATE FUNCTION
1777 --         AcctDerRule_13
1778 --
1779 ---------------------------------------
1780 FUNCTION AcctDerRule_13 (
1781   p_application_id              IN NUMBER
1782 , p_ae_header_id                IN NUMBER
1783 , p_side                        IN VARCHAR2 
1784 --Budget Account
1785  , p_source_14            IN NUMBER
1786 , x_transaction_coa_id         OUT NOCOPY NUMBER
1787 , x_accounting_coa_id          OUT NOCOPY NUMBER
1788 , x_value_type_code            OUT NOCOPY VARCHAR2
1789 )
1790 RETURN NUMBER
1791 IS
1792 l_component_type       VARCHAR2(80)  ;
1793 l_component_code       VARCHAR2(30)  ;
1794 l_component_type_code  VARCHAR2(1)   ;
1795 l_component_appl_id    INTEGER       ;
1796 l_amb_context_code     VARCHAR2(30)  ;
1797 l_log_module           VARCHAR2(240) ;
1798 l_output_value         NUMBER        ;
1799 BEGIN
1800 IF g_log_enabled THEN
1801       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1802 END IF;
1803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1804       trace
1805          (p_msg      => 'BEGIN of AcctDerRule_13'
1806          ,p_level    => C_LEVEL_PROCEDURE
1807          ,p_module   => l_log_module);
1808 END IF;
1809 --
1810 l_component_type         := 'AMB_ADR';
1811 l_component_code         := 'PROJ_PROJ_BURDEN_ENC_ACCT_RULE';
1812 l_component_type_code    := 'S';
1813 l_component_appl_id      :=  200;
1814 l_amb_context_code       := 'DEFAULT';
1815 x_transaction_coa_id     :=  null;
1816 x_accounting_coa_id      :=  null;
1817 --
1818 
1819  --
1820   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1821       trace
1822          (p_msg      => 'END of AcctDerRule_13'
1823          ,p_level    => C_LEVEL_PROCEDURE
1824          ,p_module   => l_log_module);
1825   END IF;
1826   x_value_type_code := 'S';
1827   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
1828   RETURN l_output_value;
1829 
1830 --
1831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1832       trace
1833          (p_msg      => 'END of AcctDerRule_13(invalid)'
1834          ,p_level    => C_LEVEL_PROCEDURE
1835          ,p_module   => l_log_module);
1836 END IF;
1837 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1838 x_value_type_code := null;
1839 l_output_value    := null;
1840 xla_accounting_err_pkg.build_message
1841                  (p_appli_s_name            => 'XLA'
1842                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1843                  ,p_token_1                 => 'COMPONENT_NAME'
1844                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1845                                                             l_component_type
1846                                                           , l_component_code
1847                                                           , l_component_type_code
1848                                                           , l_component_appl_id
1849                                                           , l_amb_context_code
1850                                                           )
1851                  ,p_token_2                 => 'OWNER'
1852                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1853                                                         'XLA_OWNER_TYPE'
1854                                                         ,l_component_type_code
1855                                                         )
1856                  ,p_token_3                 => 'PAD_NAME'
1857                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1858                  ,p_token_4                 => 'PAD_OWNER'
1859                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1860                                                         'XLA_OWNER_TYPE'
1861                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1865                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1862                                                         )
1863                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1864                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1866                  ,p_ae_header_id            => NULL
1867 );
1868 RETURN l_output_value;
1869 EXCEPTION
1870   WHEN xla_exceptions_pkg.application_exception THEN
1871       RAISE;
1872   WHEN OTHERS THEN
1873        xla_exceptions_pkg.raise_message
1874            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctDerRule_13');
1875 END AcctDerRule_13;
1876 --
1877 
1878 ---------------------------------------
1879 --
1880 -- PRIVATE FUNCTION
1881 --         AcctLineType_14
1882 --
1883 ---------------------------------------
1884 PROCEDURE AcctLineType_14 (
1885   p_application_id        IN NUMBER
1886  ,p_event_id              IN NUMBER
1887  ,p_calculate_acctd_flag  IN VARCHAR2
1888  ,p_calculate_g_l_flag    IN VARCHAR2
1889  ,p_actual_flag           IN OUT VARCHAR2
1890  ,p_balance_type_code     OUT VARCHAR2
1891  ,p_gain_or_loss_ref      OUT VARCHAR2
1892  
1893 --Invoice Distribution Description
1894  , p_source_1            IN VARCHAR2
1895 --Invoice Distribution Account
1896  , p_source_11            IN NUMBER
1897 --Invoice Distribution Type
1898  , p_source_15            IN VARCHAR2
1899  , p_source_15_meaning    IN VARCHAR2
1900 --Amount for Variance Amount
1901  , p_source_16            IN NUMBER
1902 --Purchasing Encumbrance Option
1903  , p_source_17            IN VARCHAR2
1904  , p_source_17_meaning    IN VARCHAR2
1905 --Accrue on Receipt Option
1906  , p_source_18            IN VARCHAR2
1907  , p_source_18_meaning    IN VARCHAR2
1908 --Accounting Reversal Indicator
1909  , p_source_19            IN VARCHAR2
1910 --Distribution Link Type
1911  , p_source_21            IN VARCHAR2
1912 --Allocation to Main Distribution Identifier
1913  , p_source_23            IN NUMBER
1914 --Invoice Identifier
1915  , p_source_24            IN NUMBER
1916 --Business Flow Accounts Payable Application Identifier
1917  , p_source_25            IN NUMBER
1918 --Business Flow Invoice Distribution Type
1919  , p_source_26            IN VARCHAR2
1920 --Business Flow Invoice Entity Code
1921  , p_source_27            IN VARCHAR2
1922 --Business Flow Invoice Distribution Identifier
1923  , p_source_28            IN NUMBER
1924 --Business Flow Invoice Identifier
1925  , p_source_29            IN NUMBER
1926 --Invoice Distribution Identifier
1927  , p_source_30            IN NUMBER
1928 --Payables Encumbrance Upgrade Credit Account
1929  , p_source_31            IN NUMBER
1930 --Payables Encumbrance Upgrade Credit Amount
1931  , p_source_32            IN NUMBER
1932 --Invoice Currency Code
1933  , p_source_33            IN VARCHAR2
1934 --Payables Encumbrance Upgrade Credit Base Amount
1935  , p_source_34            IN NUMBER
1936 --Payables Encumbrance Upgrade Debit Account
1937  , p_source_35            IN NUMBER
1938 --Payables Encumbrance Upgrade Debit Amount
1939  , p_source_36            IN NUMBER
1940 --Payables Encumbrance Upgrade Debit Base Amount
1941  , p_source_37            IN NUMBER
1942 --Payables Encumbrance Upgrade Option
1943  , p_source_38            IN VARCHAR2
1944 --Invoice Exchange Date
1945  , p_source_39            IN DATE
1946 --Invoice Exchange Rate
1947  , p_source_40            IN NUMBER
1948 --Invoice Exchange Rate Type
1949  , p_source_41            IN VARCHAR2
1950 --Variance Amount in Ledger Currency
1951  , p_source_42            IN NUMBER
1952 --Deferred Accounting End Date
1953  , p_source_43            IN DATE
1954 --Deferred Accounting Option
1955  , p_source_44            IN VARCHAR2
1956 --Deferred Accounting Start Date
1957  , p_source_45            IN DATE
1958 --Override Accounted Amount Indicator
1959  , p_source_46            IN VARCHAR2
1960  , p_source_46_meaning    IN VARCHAR2
1961 --Invoice Supplier Identifier
1962  , p_source_47            IN NUMBER
1963 --Invoice Supplier Site Identifier
1964  , p_source_48            IN NUMBER
1965 --Third Party Type
1966  , p_source_49            IN VARCHAR2
1967 --Parent Reversal Identifier
1968  , p_source_50            IN NUMBER
1969 --Invoice Distribution Statistical Amount
1970  , p_source_51            IN NUMBER
1971 --Invoice Distribution Tax Line Identifier
1972  , p_source_52            IN NUMBER
1973 --Invoice Distribution Tax Distribution Identifier from Tax
1974  , p_source_53            IN NUMBER
1975 --Invoice Distribution Summary Tax Line Identifier
1976  , p_source_54            IN NUMBER
1977 --Payables Upgrade Credit Encumbrance Type Identifier
1978  , p_source_55            IN NUMBER
1979 --Payables Upgrade Debit Encumbrance Type Identifier
1980  , p_source_56            IN NUMBER
1981 )
1982 IS
1983 
1984 l_component_type              VARCHAR2(80);
1985 l_component_code              VARCHAR2(30);
1986 l_component_type_code         VARCHAR2(1);
1987 l_component_appl_id           INTEGER;
1988 l_amb_context_code            VARCHAR2(30);
1989 l_entity_code                 VARCHAR2(30);
1990 l_event_class_code            VARCHAR2(30);
1991 l_ae_header_id                NUMBER;
1992 l_event_type_code             VARCHAR2(30);
1996 -- adr variables
1993 l_line_definition_code        VARCHAR2(30);
1994 l_line_definition_owner_code  VARCHAR2(1);
1995 --
1997 l_segment                     VARCHAR2(30);
1998 l_ccid                        NUMBER;
1999 l_adr_transaction_coa_id      NUMBER;
2000 l_adr_accounting_coa_id       NUMBER;
2001 l_adr_flexfield_segment_code  VARCHAR2(30);
2002 l_adr_flex_value_set_id       NUMBER;
2003 l_adr_value_type_code         VARCHAR2(30);
2004 l_adr_value_combination_id    NUMBER;
2005 l_adr_value_segment_code      VARCHAR2(30);
2006 
2007 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
2008 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
2009 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
2010 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
2011 
2012 -- 4262811 Variables ------------------------------------------------------------------------------------------
2013 l_entered_amt_idx             NUMBER;
2014 l_accted_amt_idx              NUMBER;
2015 l_acc_rev_flag                VARCHAR2(1);
2016 l_accrual_line_num            NUMBER;
2017 l_tmp_amt                     NUMBER;
2018 l_acc_rev_natural_side_code   VARCHAR2(1);
2019 
2020 l_num_entries                 NUMBER;
2021 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
2022 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
2023 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
2024 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
2025 l_recog_line_1                NUMBER;
2026 l_recog_line_2                NUMBER;
2027 
2028 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
2029 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
2030 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
2031 
2032 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2033 
2034 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
2035 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
2036 
2037 ---------------------------------------------------------------------------------------------------------------
2038 
2039 
2040 --
2041 -- bulk performance
2042 --
2043 l_balance_type_code           VARCHAR2(1);
2044 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
2045 l_log_module                  VARCHAR2(240);
2046 
2047 --
2048 -- Upgrade strategy
2049 --
2050 l_actual_upg_option           VARCHAR2(1);
2051 l_enc_upg_option           VARCHAR2(1);
2052 
2053 --
2054 BEGIN
2055 --
2056 IF g_log_enabled THEN
2057       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_14';
2058 END IF;
2059 --
2060 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2061 
2062       trace
2063          (p_msg      => 'BEGIN of AcctLineType_14'
2064          ,p_level    => C_LEVEL_PROCEDURE
2065          ,p_module   => l_log_module);
2066 
2067 END IF;
2068 --
2069 l_component_type             := 'AMB_JLT';
2070 l_component_code             := 'AP_AMOUNT_VARIANCE_CM_ENC_DR';
2071 l_component_type_code        := 'S';
2072 l_component_appl_id          :=  200;
2073 l_amb_context_code           := 'DEFAULT';
2074 l_entity_code                := 'AP_INVOICES';
2075 l_event_class_code           := 'CREDIT MEMOS';
2076 l_event_type_code            := 'CREDIT MEMOS_ALL';
2077 l_line_definition_owner_code := 'S';
2078 l_line_definition_code       := 'ENC_CM_ALL';
2079 --
2080 l_balance_type_code          := 'E';
2081 l_segment                     := NULL;
2082 l_ccid                        := NULL;
2083 l_adr_transaction_coa_id      := NULL;
2084 l_adr_accounting_coa_id       := NULL;
2085 l_adr_flexfield_segment_code  := NULL;
2086 l_adr_flex_value_set_id       := NULL;
2087 l_adr_value_type_code         := NULL;
2088 l_adr_value_combination_id    := NULL;
2089 l_adr_value_segment_code      := NULL;
2090 
2091 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
2092 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
2093 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
2094 l_budgetary_control_flag     := 'Y';
2095 
2096 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
2097 l_bflow_applied_to_amt       := NULL; -- 5132302
2098 l_entered_amt_idx            := NULL;          -- 4262811
2099 l_accted_amt_idx             := NULL;          -- 4262811
2100 l_acc_rev_flag               := NULL;          -- 4262811
2101 l_accrual_line_num           := NULL;          -- 4262811
2102 l_tmp_amt                    := NULL;          -- 4262811
2103 --
2104 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
2105             (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
2106                return;
2107   END IF;
2108   
2109 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2110     l_balance_type_code <> 'B' THEN
2111 IF NVL(p_source_15,'
2112 ') =  'ITEM' AND 
2113 p_source_16 IS NOT NULL AND 
2114 NVL(p_source_17,'
2115 ') =  'Y' AND 
2116 NVL(p_source_18,'
2120    --
2117 ') <>  'Y'
2118  THEN 
2119 
2121    XLA_AE_LINES_PKG.SetNewLine;
2122 
2123    p_balance_type_code          := l_balance_type_code;
2124    -- set the flag so later we will know whether the gain loss line needs to be created
2125    
2126    IF(l_balance_type_code = 'A' ) THEN
2127      p_actual_flag :='G';
2128    END IF;
2129 
2130    --
2131    -- bulk performance
2132    --
2133    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2134                                       p_header_num   => 0); -- 4262811
2135    --
2136    -- set accounting line options
2137    --
2138    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2139            p_natural_side_code          => 'D'
2140          , p_gain_or_loss_flag          => 'Y'
2141          , p_gl_transfer_mode_code      => 'S'
2142          , p_acct_entry_type_code       => 'E'
2143          , p_switch_side_flag           => 'Y'
2144          , p_merge_duplicate_code       => 'N'
2145          );
2146    --
2147    l_acc_rev_natural_side_code := 'C';  -- 4262811
2148    -- 
2149    --
2150    -- set accounting line type info
2151    --
2152    xla_ae_lines_pkg.SetAcctLineType
2153       (p_component_type             => l_component_type
2154       ,p_event_type_code            => l_event_type_code
2155       ,p_line_definition_owner_code => l_line_definition_owner_code
2156       ,p_line_definition_code       => l_line_definition_code
2157       ,p_accounting_line_code       => l_component_code
2158       ,p_accounting_line_type_code  => l_component_type_code
2159       ,p_accounting_line_appl_id    => l_component_appl_id
2160       ,p_amb_context_code           => l_amb_context_code
2161       ,p_entity_code                => l_entity_code
2162       ,p_event_class_code           => l_event_class_code);
2163    --
2164    -- set accounting class
2165    --
2166    xla_ae_lines_pkg.SetAcctClass(
2167            p_accounting_class_code  => 'AMT_VARIANCE'
2168          , p_ae_header_id           => l_ae_header_id
2169          );
2170 
2171    --
2172    -- set rounding class
2173    --
2174    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2175                       'AMT_VARIANCE';
2176 
2177    --
2178    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2179    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2180    --
2181    -- bulk performance
2182    --
2183    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2184 
2185    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2186       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2187 
2188    -- 4955764
2189    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2190       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2191 
2192    -- 4458381 Public Sector Enh
2193       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
2194    --
2195    -- set accounting attributes for the line type
2196    --
2197    l_entered_amt_idx := 23;
2198    l_accted_amt_idx  := 28;
2199    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
2200    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2201    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
2202    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2203    l_rec_acct_attrs.array_num_value(2)  := 
2204 xla_ae_sources_pkg.GetSystemSourceNum(
2205    p_source_code           => 'XLA_EVENT_APPL_ID'
2206  , p_source_type_code      => 'Y'
2207  , p_source_application_id =>  602
2208 );
2209    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2210    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
2211    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2212    l_rec_acct_attrs.array_char_value(4)  := 
2213 xla_ae_sources_pkg.GetSystemSourceChar(
2214    p_source_code           => 'XLA_ENTITY_CODE'
2215  , p_source_type_code      => 'Y'
2216  , p_source_application_id =>  602
2217 );
2218    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2219    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
2220    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2221    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
2222    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2223    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
2224    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2225    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
2226    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2227    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
2228    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2229    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
2230    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2231    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
2232    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
2233    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
2237    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
2234    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
2235    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
2236    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
2238    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
2239    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
2240    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
2241    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
2242    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
2243    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
2244    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
2245    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
2246    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
2247    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
2248    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
2249    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
2250    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
2251    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
2252    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
2253    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
2254    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
2255    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
2256    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
2257    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
2258    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
2259    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
2260    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
2261    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
2262    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
2263    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
2264    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
2265    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
2266    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
2267    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
2268    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
2269    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
2270    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
2271    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
2272    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
2273    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
2274    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
2275    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
2276    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
2277    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
2278    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
2279    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
2280    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
2281    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
2282    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
2283    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
2284    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
2285    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
2286    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
2287    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
2288    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
2289    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
2290    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
2291    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
2292    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
2293    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
2294    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
2295    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
2296 
2297    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2298    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2299 
2300    ---------------------------------------------------------------------------------------------------------------
2301    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2302    ---------------------------------------------------------------------------------------------------------------
2303    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2304 
2305    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2306    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2307 
2308    IF xla_accounting_cache_pkg.GetValueChar
2309          (p_source_code         => 'LEDGER_CATEGORY_CODE'
2310          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2311    AND l_bflow_method_code = 'PRIOR_ENTRY'
2312 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2313    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2314          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2315        )
2316    THEN
2317          xla_ae_lines_pkg.BflowUpgEntry
2318            (p_business_method_code    => l_bflow_method_code
2319            ,p_business_class_code     => l_bflow_class_code
2320            ,p_balance_type            => l_balance_type_code);
2324    END IF;
2321    ELSE
2322       NULL;
2323 -- No business flow processing for business flow method of NONE.
2325 
2326    --
2327    -- call analytical criteria
2328    --
2329    
2330    --
2331    -- call description
2332    --
2333    
2334 xla_ae_lines_pkg.SetLineDescription(
2335    p_ae_header_id => l_ae_header_id
2336   ,p_description  => Description_2 (
2337      p_application_id         => p_application_id
2338    , p_ae_header_id           => l_ae_header_id 
2339 , p_source_1 => p_source_1
2340    )
2341 );
2342 
2343 
2344    --
2345    -- call ADRs
2346    -- Bug 4922099
2347    --
2348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2349         (NVL(l_actual_upg_option, 'N') = 'O') OR
2350         (NVL(l_enc_upg_option, 'N') = 'O')
2351       )
2352    THEN
2353    NULL;
2354    --
2355    --
2356    
2357   l_ccid := AcctDerRule_7(
2358            p_application_id           => p_application_id
2359          , p_ae_header_id             => l_ae_header_id 
2360 , p_source_11 => p_source_11
2361          , x_transaction_coa_id       => l_adr_transaction_coa_id
2362          , x_accounting_coa_id        => l_adr_accounting_coa_id
2363          , x_value_type_code          => l_adr_value_type_code
2364          , p_side                     => 'NA'
2365    );
2366 
2367    xla_ae_lines_pkg.set_ccid(
2368     p_code_combination_id          => l_ccid
2369   , p_value_type_code              => l_adr_value_type_code
2370   , p_transaction_coa_id           => l_adr_transaction_coa_id
2371   , p_accounting_coa_id            => l_adr_accounting_coa_id
2372   , p_adr_code                     => 'AP_INVOICE_DIST'
2373   , p_adr_type_code                => 'S'
2374   , p_component_type               => l_component_type
2375   , p_component_code               => l_component_code
2376   , p_component_type_code          => l_component_type_code
2377   , p_component_appl_id            => l_component_appl_id
2378   , p_amb_context_code             => l_amb_context_code
2379   , p_side                         => 'NA'
2380   );
2381 
2382 
2383    --
2384    --
2385    END IF;
2386    --
2387    -- Bug 4922099
2388    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2389           (NVL(l_enc_upg_option, 'N') = 'O')
2390         ) AND
2391         (l_bflow_method_code = 'PRIOR_ENTRY')
2392       )
2393    THEN
2394       IF
2395       --
2396       1 = 2
2397       --
2398       THEN
2399       xla_accounting_err_pkg.build_message
2400                                     (p_appli_s_name            => 'XLA'
2401                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2402                                     ,p_token_1                 => 'LINE_NUMBER'
2403                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
2404                                     ,p_token_2                 => 'LINE_TYPE_NAME'
2405                                     ,p_value_2                 => 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                                                                             ,l_entity_code
2412                                                                             ,l_event_class_code
2413                                                                            )
2414                                     ,p_token_3                 => 'OWNER'
2415                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
2416                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
2417                                                                           ,p_lookup_code    => l_component_type_code
2418                                                                          )
2419                                     ,p_token_4                 => 'PRODUCT_NAME'
2420                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2421                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2422                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2423                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2424                                     ,p_ae_header_id            =>  NULL
2425                                        );
2426 
2427         IF (C_LEVEL_ERROR>= g_log_level) THEN
2428                  trace
2429                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2430                       ,p_level    => C_LEVEL_ERROR
2431                       ,p_module   => l_log_module);
2432         END IF;
2433       END IF;
2434    END IF;
2435    --
2436    --
2437    ------------------------------------------------------------------------------------------------
2438    -- 4219869 Business Flow
2439    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2443 
2440    -- Prior Entry.  Currently, the following code is always generated.
2441    ------------------------------------------------------------------------------------------------
2442    XLA_AE_LINES_PKG.ValidateCurrentLine;
2444    ------------------------------------------------------------------------------------
2445    -- 4219869 Business Flow
2446    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2447    ------------------------------------------------------------------------------------
2448    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2449 
2450    ----------------------------------------------------------------------------------
2451    -- 4219869 Business Flow
2452    -- Update journal entry status -- Need to generate this within IF <condition>
2453    ----------------------------------------------------------------------------------
2454    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2455          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2456          ,p_balance_type_code => l_balance_type_code
2457          );
2458 
2459    -------------------------------------------------------------------------------------------
2460    -- 4262811 - Generate the Accrual Reversal lines
2461    -------------------------------------------------------------------------------------------
2462    BEGIN
2463       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2464                               (g_array_event(p_event_id).array_value_num('header_index'));
2465       IF l_acc_rev_flag IS NULL THEN
2466          l_acc_rev_flag := 'N';
2467       END IF;
2468    EXCEPTION
2469       WHEN OTHERS THEN
2470          l_acc_rev_flag := 'N';
2471    END;
2472    --
2473    IF (l_acc_rev_flag = 'Y') THEN
2474 
2475        -- 4645092  ------------------------------------------------------------------------------
2476        -- To allow MPA report to determine if it should generate report process
2477        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2478        ------------------------------------------------------------------------------------------
2479 
2480        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2481        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2482    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
2483    -- call ADRs
2484    -- Bug 4922099
2485    --
2486    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2487         (NVL(l_actual_upg_option, 'N') = 'O') OR
2488         (NVL(l_enc_upg_option, 'N') = 'O')
2489       )
2490    THEN
2491    NULL;
2492    --
2493    --
2494    
2495   l_ccid := AcctDerRule_7(
2496            p_application_id           => p_application_id
2497          , p_ae_header_id             => l_ae_header_id 
2498 , p_source_11 => p_source_11
2499          , x_transaction_coa_id       => l_adr_transaction_coa_id
2500          , x_accounting_coa_id        => l_adr_accounting_coa_id
2501          , x_value_type_code          => l_adr_value_type_code
2502          , p_side                     => 'NA'
2503    );
2504 
2505    xla_ae_lines_pkg.set_ccid(
2506     p_code_combination_id          => l_ccid
2507   , p_value_type_code              => l_adr_value_type_code
2508   , p_transaction_coa_id           => l_adr_transaction_coa_id
2509   , p_accounting_coa_id            => l_adr_accounting_coa_id
2510   , p_adr_code                     => 'AP_INVOICE_DIST'
2511   , p_adr_type_code                => 'S'
2512   , p_component_type               => l_component_type
2513   , p_component_code               => l_component_code
2514   , p_component_type_code          => l_component_type_code
2515   , p_component_appl_id            => l_component_appl_id
2516   , p_amb_context_code             => l_amb_context_code
2517   , p_side                         => 'NA'
2518   );
2519 
2520 
2521    --
2522    --
2523    END IF;
2524 
2525        --
2526        -- Update the line information that should be overwritten
2527        --
2528        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2529                                          p_header_num   => 1);
2530        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
2531 
2532        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2533 
2534        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
2535           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2536        END IF;
2537 
2538       --
2539       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2540       --
2541       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2542           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
2543       ELSE
2544           ---------------------------------------------------------------------------------------------------
2545           -- 4262811a Switch Sign
2546           ---------------------------------------------------------------------------------------------------
2547           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
2551                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2548           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2549                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2550           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2552           -- 5132302
2553           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2554                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2555 
2556       END IF;
2557 
2558       -- 4955764
2559       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2561 
2562 
2563       XLA_AE_LINES_PKG.ValidateCurrentLine;
2564       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2565 
2566       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2567                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2568                ,p_balance_type_code => l_balance_type_code);
2569 
2570    END IF;
2571 
2572    -----------------------------------------------------------------------------------------
2573    -- 4262811 Multiperiod Accounting
2574    -----------------------------------------------------------------------------------------
2575      -- No MPA option is assigned.
2576 
2577 
2578 END IF;
2579 END IF;
2580 --
2581 
2582 --
2583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2584    trace
2585       (p_msg      => 'END of AcctLineType_14'
2586       ,p_level    => C_LEVEL_PROCEDURE
2587       ,p_module   => l_log_module);
2588 END IF;
2589 --
2590 EXCEPTION
2591   WHEN xla_exceptions_pkg.application_exception THEN
2592       RAISE;
2593   WHEN OTHERS THEN
2594        xla_exceptions_pkg.raise_message
2595            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_14');
2596 END AcctLineType_14;
2597 --
2598 
2599 ---------------------------------------
2600 --
2601 -- PRIVATE FUNCTION
2602 --         AcctLineType_15
2603 --
2604 ---------------------------------------
2605 PROCEDURE AcctLineType_15 (
2606   p_application_id        IN NUMBER
2607  ,p_event_id              IN NUMBER
2608  ,p_calculate_acctd_flag  IN VARCHAR2
2609  ,p_calculate_g_l_flag    IN VARCHAR2
2610  ,p_actual_flag           IN OUT VARCHAR2
2611  ,p_balance_type_code     OUT VARCHAR2
2612  ,p_gain_or_loss_ref      OUT VARCHAR2
2613  
2614 --Invoice Distribution Description
2615  , p_source_1            IN VARCHAR2
2616 --Invoice Distribution Account
2617  , p_source_11            IN NUMBER
2618 --Invoice Distribution Type
2619  , p_source_15            IN VARCHAR2
2620  , p_source_15_meaning    IN VARCHAR2
2621 --Amount for Variance Amount
2622  , p_source_16            IN NUMBER
2623 --Purchasing Encumbrance Option
2624  , p_source_17            IN VARCHAR2
2625  , p_source_17_meaning    IN VARCHAR2
2626 --Accrue on Receipt Option
2627  , p_source_18            IN VARCHAR2
2628  , p_source_18_meaning    IN VARCHAR2
2629 --Accounting Reversal Indicator
2630  , p_source_19            IN VARCHAR2
2631 --Distribution Link Type
2632  , p_source_21            IN VARCHAR2
2633 --Allocation to Main Distribution Identifier
2634  , p_source_23            IN NUMBER
2635 --Invoice Identifier
2636  , p_source_24            IN NUMBER
2637 --Business Flow Accounts Payable Application Identifier
2638  , p_source_25            IN NUMBER
2639 --Business Flow Invoice Distribution Type
2640  , p_source_26            IN VARCHAR2
2641 --Business Flow Invoice Entity Code
2642  , p_source_27            IN VARCHAR2
2643 --Business Flow Invoice Distribution Identifier
2644  , p_source_28            IN NUMBER
2645 --Business Flow Invoice Identifier
2646  , p_source_29            IN NUMBER
2647 --Invoice Distribution Identifier
2648  , p_source_30            IN NUMBER
2649 --Payables Encumbrance Upgrade Credit Account
2650  , p_source_31            IN NUMBER
2651 --Payables Encumbrance Upgrade Credit Amount
2652  , p_source_32            IN NUMBER
2653 --Invoice Currency Code
2654  , p_source_33            IN VARCHAR2
2655 --Payables Encumbrance Upgrade Credit Base Amount
2656  , p_source_34            IN NUMBER
2657 --Payables Encumbrance Upgrade Debit Account
2658  , p_source_35            IN NUMBER
2659 --Payables Encumbrance Upgrade Debit Amount
2660  , p_source_36            IN NUMBER
2661 --Payables Encumbrance Upgrade Debit Base Amount
2662  , p_source_37            IN NUMBER
2663 --Payables Encumbrance Upgrade Option
2664  , p_source_38            IN VARCHAR2
2665 --Invoice Exchange Date
2666  , p_source_39            IN DATE
2667 --Invoice Exchange Rate
2668  , p_source_40            IN NUMBER
2669 --Invoice Exchange Rate Type
2670  , p_source_41            IN VARCHAR2
2671 --Variance Amount in Ledger Currency
2672  , p_source_42            IN NUMBER
2673 --Deferred Accounting End Date
2674  , p_source_43            IN DATE
2675 --Deferred Accounting Option
2676  , p_source_44            IN VARCHAR2
2677 --Deferred Accounting Start Date
2678  , p_source_45            IN DATE
2679 --Override Accounted Amount Indicator
2680  , p_source_46            IN VARCHAR2
2684 --Invoice Supplier Site Identifier
2681  , p_source_46_meaning    IN VARCHAR2
2682 --Invoice Supplier Identifier
2683  , p_source_47            IN NUMBER
2685  , p_source_48            IN NUMBER
2686 --Third Party Type
2687  , p_source_49            IN VARCHAR2
2688 --Parent Reversal Identifier
2689  , p_source_50            IN NUMBER
2690 --Invoice Distribution Tax Line Identifier
2691  , p_source_52            IN NUMBER
2692 --Invoice Distribution Tax Distribution Identifier from Tax
2693  , p_source_53            IN NUMBER
2694 --Invoice Distribution Summary Tax Line Identifier
2695  , p_source_54            IN NUMBER
2696 --Payables Upgrade Credit Encumbrance Type Identifier
2697  , p_source_55            IN NUMBER
2698 --Payables Upgrade Debit Encumbrance Type Identifier
2699  , p_source_56            IN NUMBER
2700 )
2701 IS
2702 
2703 l_component_type              VARCHAR2(80);
2704 l_component_code              VARCHAR2(30);
2705 l_component_type_code         VARCHAR2(1);
2706 l_component_appl_id           INTEGER;
2707 l_amb_context_code            VARCHAR2(30);
2708 l_entity_code                 VARCHAR2(30);
2709 l_event_class_code            VARCHAR2(30);
2710 l_ae_header_id                NUMBER;
2711 l_event_type_code             VARCHAR2(30);
2712 l_line_definition_code        VARCHAR2(30);
2713 l_line_definition_owner_code  VARCHAR2(1);
2714 --
2715 -- adr variables
2716 l_segment                     VARCHAR2(30);
2717 l_ccid                        NUMBER;
2718 l_adr_transaction_coa_id      NUMBER;
2719 l_adr_accounting_coa_id       NUMBER;
2720 l_adr_flexfield_segment_code  VARCHAR2(30);
2721 l_adr_flex_value_set_id       NUMBER;
2722 l_adr_value_type_code         VARCHAR2(30);
2723 l_adr_value_combination_id    NUMBER;
2724 l_adr_value_segment_code      VARCHAR2(30);
2725 
2726 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
2727 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
2728 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
2729 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
2730 
2731 -- 4262811 Variables ------------------------------------------------------------------------------------------
2732 l_entered_amt_idx             NUMBER;
2733 l_accted_amt_idx              NUMBER;
2734 l_acc_rev_flag                VARCHAR2(1);
2735 l_accrual_line_num            NUMBER;
2736 l_tmp_amt                     NUMBER;
2737 l_acc_rev_natural_side_code   VARCHAR2(1);
2738 
2739 l_num_entries                 NUMBER;
2740 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
2741 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
2742 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
2743 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
2744 l_recog_line_1                NUMBER;
2745 l_recog_line_2                NUMBER;
2746 
2747 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
2748 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
2749 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
2750 
2751 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2752 
2753 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
2754 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
2755 
2756 ---------------------------------------------------------------------------------------------------------------
2757 
2758 
2759 --
2760 -- bulk performance
2761 --
2762 l_balance_type_code           VARCHAR2(1);
2763 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
2764 l_log_module                  VARCHAR2(240);
2765 
2766 --
2767 -- Upgrade strategy
2768 --
2769 l_actual_upg_option           VARCHAR2(1);
2770 l_enc_upg_option           VARCHAR2(1);
2771 
2772 --
2773 BEGIN
2774 --
2775 IF g_log_enabled THEN
2776       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_15';
2777 END IF;
2778 --
2779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2780 
2781       trace
2782          (p_msg      => 'BEGIN of AcctLineType_15'
2783          ,p_level    => C_LEVEL_PROCEDURE
2784          ,p_module   => l_log_module);
2785 
2786 END IF;
2787 --
2788 l_component_type             := 'AMB_JLT';
2789 l_component_code             := 'AP_AMOUNT_VARIANCE_DM_ENC_DR';
2790 l_component_type_code        := 'S';
2791 l_component_appl_id          :=  200;
2792 l_amb_context_code           := 'DEFAULT';
2793 l_entity_code                := 'AP_INVOICES';
2794 l_event_class_code           := 'DEBIT MEMOS';
2795 l_event_type_code            := 'DEBIT MEMOS_ALL';
2796 l_line_definition_owner_code := 'S';
2797 l_line_definition_code       := 'ENC_DM_ALL';
2798 --
2799 l_balance_type_code          := 'E';
2800 l_segment                     := NULL;
2801 l_ccid                        := NULL;
2802 l_adr_transaction_coa_id      := NULL;
2803 l_adr_accounting_coa_id       := NULL;
2804 l_adr_flexfield_segment_code  := NULL;
2805 l_adr_flex_value_set_id       := NULL;
2806 l_adr_value_type_code         := NULL;
2807 l_adr_value_combination_id    := NULL;
2808 l_adr_value_segment_code      := NULL;
2809 
2813 l_budgetary_control_flag     := 'Y';
2810 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
2811 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
2812 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
2814 
2815 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
2816 l_bflow_applied_to_amt       := NULL; -- 5132302
2817 l_entered_amt_idx            := NULL;          -- 4262811
2818 l_accted_amt_idx             := NULL;          -- 4262811
2819 l_acc_rev_flag               := NULL;          -- 4262811
2820 l_accrual_line_num           := NULL;          -- 4262811
2821 l_tmp_amt                    := NULL;          -- 4262811
2822 --
2823  
2824 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2825     l_balance_type_code <> 'B' THEN
2826 IF NVL(p_source_15,'
2827 ') =  'ITEM' AND 
2828 p_source_16 IS NOT NULL AND 
2829 NVL(p_source_17,'
2830 ') =  'Y' AND 
2831 NVL(p_source_18,'
2832 ') <>  'Y'
2833  THEN 
2834 
2835    --
2836    XLA_AE_LINES_PKG.SetNewLine;
2837 
2838    p_balance_type_code          := l_balance_type_code;
2839    -- set the flag so later we will know whether the gain loss line needs to be created
2840    
2841    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2842      p_actual_flag :='A';
2843    END IF;
2844 
2845    --
2846    -- bulk performance
2847    --
2848    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2849                                       p_header_num   => 0); -- 4262811
2850    --
2851    -- set accounting line options
2852    --
2853    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2854            p_natural_side_code          => 'D'
2855          , p_gain_or_loss_flag          => 'N'
2856          , p_gl_transfer_mode_code      => 'S'
2857          , p_acct_entry_type_code       => 'E'
2858          , p_switch_side_flag           => 'Y'
2859          , p_merge_duplicate_code       => 'N'
2860          );
2861    --
2862    l_acc_rev_natural_side_code := 'C';  -- 4262811
2863    -- 
2864    --
2865    -- set accounting line type info
2866    --
2867    xla_ae_lines_pkg.SetAcctLineType
2868       (p_component_type             => l_component_type
2869       ,p_event_type_code            => l_event_type_code
2870       ,p_line_definition_owner_code => l_line_definition_owner_code
2871       ,p_line_definition_code       => l_line_definition_code
2872       ,p_accounting_line_code       => l_component_code
2873       ,p_accounting_line_type_code  => l_component_type_code
2874       ,p_accounting_line_appl_id    => l_component_appl_id
2875       ,p_amb_context_code           => l_amb_context_code
2876       ,p_entity_code                => l_entity_code
2877       ,p_event_class_code           => l_event_class_code);
2878    --
2879    -- set accounting class
2880    --
2881    xla_ae_lines_pkg.SetAcctClass(
2882            p_accounting_class_code  => 'AMT_VARIANCE'
2883          , p_ae_header_id           => l_ae_header_id
2884          );
2885 
2886    --
2887    -- set rounding class
2888    --
2889    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2890                       'AMT_VARIANCE';
2891 
2892    --
2893    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2894    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2895    --
2896    -- bulk performance
2897    --
2898    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2899 
2900    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2901       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2902 
2903    -- 4955764
2904    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2905       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2906 
2907    -- 4458381 Public Sector Enh
2908       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
2909    --
2910    -- set accounting attributes for the line type
2911    --
2912    l_entered_amt_idx := 23;
2913    l_accted_amt_idx  := 28;
2914    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
2915    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2916    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
2917    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2918    l_rec_acct_attrs.array_num_value(2)  := 
2919 xla_ae_sources_pkg.GetSystemSourceNum(
2920    p_source_code           => 'XLA_EVENT_APPL_ID'
2921  , p_source_type_code      => 'Y'
2922  , p_source_application_id =>  602
2923 );
2924    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2925    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
2926    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2927    l_rec_acct_attrs.array_char_value(4)  := 
2928 xla_ae_sources_pkg.GetSystemSourceChar(
2929    p_source_code           => 'XLA_ENTITY_CODE'
2930  , p_source_type_code      => 'Y'
2931  , p_source_application_id =>  602
2932 );
2933    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2934    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
2938    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
2935    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2936    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
2937    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2939    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2940    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
2941    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2942    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
2943    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2944    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
2945    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2946    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
2947    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
2948    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
2949    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
2950    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
2951    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
2952    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
2953    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
2954    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
2955    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
2956    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
2957    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
2958    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
2959    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
2960    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
2961    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
2962    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
2963    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
2964    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
2965    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
2966    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
2967    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
2968    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
2969    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
2970    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
2971    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
2972    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
2973    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
2974    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
2975    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
2976    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
2977    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
2978    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
2979    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
2980    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
2981    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
2982    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
2983    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
2984    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
2985    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
2986    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
2987    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
2988    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
2989    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
2990    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
2991    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
2992    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
2993    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
2994    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
2995    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
2996    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
2997    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
2998    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
2999    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
3000    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
3001    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
3002    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
3003    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
3004    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
3005    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
3006    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
3007    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
3008    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
3009 
3010    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3011    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3012 
3013    ---------------------------------------------------------------------------------------------------------------
3014    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3015    ---------------------------------------------------------------------------------------------------------------
3016    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3017 
3018    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3019    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3020 
3024    AND l_bflow_method_code = 'PRIOR_ENTRY'
3021    IF xla_accounting_cache_pkg.GetValueChar
3022          (p_source_code         => 'LEDGER_CATEGORY_CODE'
3023          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3025 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3026    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3027          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3028        )
3029    THEN
3030          xla_ae_lines_pkg.BflowUpgEntry
3031            (p_business_method_code    => l_bflow_method_code
3032            ,p_business_class_code     => l_bflow_class_code
3033            ,p_balance_type            => l_balance_type_code);
3034    ELSE
3035       NULL;
3036 -- No business flow processing for business flow method of NONE.
3037    END IF;
3038 
3039    --
3040    -- call analytical criteria
3041    --
3042    
3043    --
3044    -- call description
3045    --
3046    
3047 xla_ae_lines_pkg.SetLineDescription(
3048    p_ae_header_id => l_ae_header_id
3049   ,p_description  => Description_2 (
3050      p_application_id         => p_application_id
3051    , p_ae_header_id           => l_ae_header_id 
3052 , p_source_1 => p_source_1
3053    )
3054 );
3055 
3056 
3057    --
3058    -- call ADRs
3059    -- Bug 4922099
3060    --
3061    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3062         (NVL(l_actual_upg_option, 'N') = 'O') OR
3063         (NVL(l_enc_upg_option, 'N') = 'O')
3064       )
3065    THEN
3066    NULL;
3067    --
3068    --
3069    
3070   l_ccid := AcctDerRule_7(
3071            p_application_id           => p_application_id
3072          , p_ae_header_id             => l_ae_header_id 
3073 , p_source_11 => p_source_11
3074          , x_transaction_coa_id       => l_adr_transaction_coa_id
3075          , x_accounting_coa_id        => l_adr_accounting_coa_id
3076          , x_value_type_code          => l_adr_value_type_code
3077          , p_side                     => 'NA'
3078    );
3079 
3080    xla_ae_lines_pkg.set_ccid(
3081     p_code_combination_id          => l_ccid
3082   , p_value_type_code              => l_adr_value_type_code
3083   , p_transaction_coa_id           => l_adr_transaction_coa_id
3084   , p_accounting_coa_id            => l_adr_accounting_coa_id
3085   , p_adr_code                     => 'AP_INVOICE_DIST'
3086   , p_adr_type_code                => 'S'
3087   , p_component_type               => l_component_type
3088   , p_component_code               => l_component_code
3089   , p_component_type_code          => l_component_type_code
3090   , p_component_appl_id            => l_component_appl_id
3091   , p_amb_context_code             => l_amb_context_code
3092   , p_side                         => 'NA'
3093   );
3094 
3095 
3096    --
3097    --
3098    END IF;
3099    --
3100    -- Bug 4922099
3101    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3102           (NVL(l_enc_upg_option, 'N') = 'O')
3103         ) AND
3104         (l_bflow_method_code = 'PRIOR_ENTRY')
3105       )
3106    THEN
3107       IF
3108       --
3109       1 = 2
3110       --
3111       THEN
3112       xla_accounting_err_pkg.build_message
3113                                     (p_appli_s_name            => 'XLA'
3114                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3115                                     ,p_token_1                 => 'LINE_NUMBER'
3116                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
3117                                     ,p_token_2                 => 'LINE_TYPE_NAME'
3118                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
3119                                                                              l_component_type
3120                                                                             ,l_component_code
3121                                                                             ,l_component_type_code
3122                                                                             ,l_component_appl_id
3123                                                                             ,l_amb_context_code
3124                                                                             ,l_entity_code
3125                                                                             ,l_event_class_code
3126                                                                            )
3127                                     ,p_token_3                 => 'OWNER'
3128                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
3129                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
3130                                                                           ,p_lookup_code    => l_component_type_code
3131                                                                          )
3132                                     ,p_token_4                 => 'PRODUCT_NAME'
3133                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3134                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3135                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3139 
3136                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3137                                     ,p_ae_header_id            =>  NULL
3138                                        );
3140         IF (C_LEVEL_ERROR>= g_log_level) THEN
3141                  trace
3142                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3143                       ,p_level    => C_LEVEL_ERROR
3144                       ,p_module   => l_log_module);
3145         END IF;
3146       END IF;
3147    END IF;
3148    --
3149    --
3150    ------------------------------------------------------------------------------------------------
3151    -- 4219869 Business Flow
3152    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3153    -- Prior Entry.  Currently, the following code is always generated.
3154    ------------------------------------------------------------------------------------------------
3155    XLA_AE_LINES_PKG.ValidateCurrentLine;
3156 
3157    ------------------------------------------------------------------------------------
3158    -- 4219869 Business Flow
3159    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3160    ------------------------------------------------------------------------------------
3161    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3162 
3163    ----------------------------------------------------------------------------------
3164    -- 4219869 Business Flow
3165    -- Update journal entry status -- Need to generate this within IF <condition>
3166    ----------------------------------------------------------------------------------
3167    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3168          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3169          ,p_balance_type_code => l_balance_type_code
3170          );
3171 
3172    -------------------------------------------------------------------------------------------
3173    -- 4262811 - Generate the Accrual Reversal lines
3174    -------------------------------------------------------------------------------------------
3175    BEGIN
3176       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3177                               (g_array_event(p_event_id).array_value_num('header_index'));
3178       IF l_acc_rev_flag IS NULL THEN
3179          l_acc_rev_flag := 'N';
3180       END IF;
3181    EXCEPTION
3182       WHEN OTHERS THEN
3183          l_acc_rev_flag := 'N';
3184    END;
3185    --
3186    IF (l_acc_rev_flag = 'Y') THEN
3187 
3188        -- 4645092  ------------------------------------------------------------------------------
3189        -- To allow MPA report to determine if it should generate report process
3190        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3191        ------------------------------------------------------------------------------------------
3192 
3193        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3194        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3195    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
3196    -- call ADRs
3197    -- Bug 4922099
3198    --
3199    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3200         (NVL(l_actual_upg_option, 'N') = 'O') OR
3201         (NVL(l_enc_upg_option, 'N') = 'O')
3202       )
3203    THEN
3204    NULL;
3205    --
3206    --
3207    
3208   l_ccid := AcctDerRule_7(
3209            p_application_id           => p_application_id
3210          , p_ae_header_id             => l_ae_header_id 
3211 , p_source_11 => p_source_11
3212          , x_transaction_coa_id       => l_adr_transaction_coa_id
3213          , x_accounting_coa_id        => l_adr_accounting_coa_id
3214          , x_value_type_code          => l_adr_value_type_code
3215          , p_side                     => 'NA'
3216    );
3217 
3218    xla_ae_lines_pkg.set_ccid(
3219     p_code_combination_id          => l_ccid
3220   , p_value_type_code              => l_adr_value_type_code
3221   , p_transaction_coa_id           => l_adr_transaction_coa_id
3222   , p_accounting_coa_id            => l_adr_accounting_coa_id
3223   , p_adr_code                     => 'AP_INVOICE_DIST'
3224   , p_adr_type_code                => 'S'
3225   , p_component_type               => l_component_type
3226   , p_component_code               => l_component_code
3227   , p_component_type_code          => l_component_type_code
3228   , p_component_appl_id            => l_component_appl_id
3229   , p_amb_context_code             => l_amb_context_code
3230   , p_side                         => 'NA'
3231   );
3232 
3233 
3234    --
3235    --
3236    END IF;
3237 
3238        --
3239        -- Update the line information that should be overwritten
3240        --
3241        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3242                                          p_header_num   => 1);
3243        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
3244 
3245        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3246 
3247        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
3248           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3249        END IF;
3250 
3251       --
3252       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3256       ELSE
3253       --
3254       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3255           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
3257           ---------------------------------------------------------------------------------------------------
3258           -- 4262811a Switch Sign
3259           ---------------------------------------------------------------------------------------------------
3260           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
3261           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3262                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3263           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3264                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3265           -- 5132302
3266           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3267                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3268 
3269       END IF;
3270 
3271       -- 4955764
3272       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3273       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3274 
3275 
3276       XLA_AE_LINES_PKG.ValidateCurrentLine;
3277       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3278 
3279       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3280                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3281                ,p_balance_type_code => l_balance_type_code);
3282 
3283    END IF;
3284 
3285    -----------------------------------------------------------------------------------------
3286    -- 4262811 Multiperiod Accounting
3287    -----------------------------------------------------------------------------------------
3288      -- No MPA option is assigned.
3289 
3290 
3291 END IF;
3292 END IF;
3293 --
3294 
3295 --
3296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3297    trace
3298       (p_msg      => 'END of AcctLineType_15'
3299       ,p_level    => C_LEVEL_PROCEDURE
3300       ,p_module   => l_log_module);
3301 END IF;
3302 --
3303 EXCEPTION
3304   WHEN xla_exceptions_pkg.application_exception THEN
3305       RAISE;
3306   WHEN OTHERS THEN
3307        xla_exceptions_pkg.raise_message
3308            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_15');
3309 END AcctLineType_15;
3310 --
3311 
3312 ---------------------------------------
3313 --
3314 -- PRIVATE FUNCTION
3315 --         AcctLineType_16
3316 --
3317 ---------------------------------------
3318 PROCEDURE AcctLineType_16 (
3319   p_application_id        IN NUMBER
3320  ,p_event_id              IN NUMBER
3321  ,p_calculate_acctd_flag  IN VARCHAR2
3322  ,p_calculate_g_l_flag    IN VARCHAR2
3323  ,p_actual_flag           IN OUT VARCHAR2
3324  ,p_balance_type_code     OUT VARCHAR2
3325  ,p_gain_or_loss_ref      OUT VARCHAR2
3326  
3327 --Invoice Distribution Description
3328  , p_source_1            IN VARCHAR2
3329 --Invoice Distribution Account
3330  , p_source_11            IN NUMBER
3331 --Invoice Distribution Type
3332  , p_source_15            IN VARCHAR2
3333  , p_source_15_meaning    IN VARCHAR2
3334 --Amount for Variance Amount
3335  , p_source_16            IN NUMBER
3336 --Purchasing Encumbrance Option
3337  , p_source_17            IN VARCHAR2
3338  , p_source_17_meaning    IN VARCHAR2
3339 --Accrue on Receipt Option
3340  , p_source_18            IN VARCHAR2
3341  , p_source_18_meaning    IN VARCHAR2
3342 --Accounting Reversal Indicator
3343  , p_source_19            IN VARCHAR2
3344 --Distribution Link Type
3345  , p_source_21            IN VARCHAR2
3346 --Allocation to Main Distribution Identifier
3347  , p_source_23            IN NUMBER
3348 --Invoice Identifier
3349  , p_source_24            IN NUMBER
3350 --Business Flow Accounts Payable Application Identifier
3351  , p_source_25            IN NUMBER
3352 --Business Flow Invoice Distribution Type
3353  , p_source_26            IN VARCHAR2
3354 --Business Flow Invoice Entity Code
3355  , p_source_27            IN VARCHAR2
3356 --Business Flow Invoice Distribution Identifier
3357  , p_source_28            IN NUMBER
3358 --Business Flow Invoice Identifier
3359  , p_source_29            IN NUMBER
3360 --Invoice Distribution Identifier
3361  , p_source_30            IN NUMBER
3362 --Payables Encumbrance Upgrade Credit Account
3363  , p_source_31            IN NUMBER
3364 --Payables Encumbrance Upgrade Credit Amount
3365  , p_source_32            IN NUMBER
3366 --Invoice Currency Code
3367  , p_source_33            IN VARCHAR2
3368 --Payables Encumbrance Upgrade Credit Base Amount
3369  , p_source_34            IN NUMBER
3370 --Payables Encumbrance Upgrade Debit Account
3371  , p_source_35            IN NUMBER
3372 --Payables Encumbrance Upgrade Debit Amount
3373  , p_source_36            IN NUMBER
3374 --Payables Encumbrance Upgrade Debit Base Amount
3375  , p_source_37            IN NUMBER
3376 --Payables Encumbrance Upgrade Option
3377  , p_source_38            IN VARCHAR2
3378 --Invoice Exchange Date
3382 --Invoice Exchange Rate Type
3379  , p_source_39            IN DATE
3380 --Invoice Exchange Rate
3381  , p_source_40            IN NUMBER
3383  , p_source_41            IN VARCHAR2
3384 --Variance Amount in Ledger Currency
3385  , p_source_42            IN NUMBER
3386 --Deferred Accounting End Date
3387  , p_source_43            IN DATE
3388 --Deferred Accounting Option
3389  , p_source_44            IN VARCHAR2
3390 --Deferred Accounting Start Date
3391  , p_source_45            IN DATE
3392 --Override Accounted Amount Indicator
3393  , p_source_46            IN VARCHAR2
3394  , p_source_46_meaning    IN VARCHAR2
3395 --Invoice Supplier Identifier
3396  , p_source_47            IN NUMBER
3397 --Invoice Supplier Site Identifier
3398  , p_source_48            IN NUMBER
3399 --Third Party Type
3400  , p_source_49            IN VARCHAR2
3401 --Parent Reversal Identifier
3402  , p_source_50            IN NUMBER
3403 --Invoice Distribution Statistical Amount
3404  , p_source_51            IN NUMBER
3405 --Invoice Distribution Tax Line Identifier
3406  , p_source_52            IN NUMBER
3407 --Invoice Distribution Tax Distribution Identifier from Tax
3408  , p_source_53            IN NUMBER
3409 --Invoice Distribution Summary Tax Line Identifier
3410  , p_source_54            IN NUMBER
3411 --Payables Upgrade Credit Encumbrance Type Identifier
3412  , p_source_55            IN NUMBER
3413 --Payables Upgrade Debit Encumbrance Type Identifier
3414  , p_source_56            IN NUMBER
3415 --Invoice Distribution Amount
3416  , p_source_57            IN NUMBER
3417 )
3418 IS
3419 
3420 l_component_type              VARCHAR2(80);
3421 l_component_code              VARCHAR2(30);
3422 l_component_type_code         VARCHAR2(1);
3423 l_component_appl_id           INTEGER;
3424 l_amb_context_code            VARCHAR2(30);
3425 l_entity_code                 VARCHAR2(30);
3426 l_event_class_code            VARCHAR2(30);
3427 l_ae_header_id                NUMBER;
3428 l_event_type_code             VARCHAR2(30);
3429 l_line_definition_code        VARCHAR2(30);
3430 l_line_definition_owner_code  VARCHAR2(1);
3431 --
3432 -- adr variables
3433 l_segment                     VARCHAR2(30);
3434 l_ccid                        NUMBER;
3435 l_adr_transaction_coa_id      NUMBER;
3436 l_adr_accounting_coa_id       NUMBER;
3437 l_adr_flexfield_segment_code  VARCHAR2(30);
3438 l_adr_flex_value_set_id       NUMBER;
3439 l_adr_value_type_code         VARCHAR2(30);
3440 l_adr_value_combination_id    NUMBER;
3441 l_adr_value_segment_code      VARCHAR2(30);
3442 
3443 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
3444 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
3445 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
3446 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
3447 
3448 -- 4262811 Variables ------------------------------------------------------------------------------------------
3449 l_entered_amt_idx             NUMBER;
3450 l_accted_amt_idx              NUMBER;
3451 l_acc_rev_flag                VARCHAR2(1);
3452 l_accrual_line_num            NUMBER;
3453 l_tmp_amt                     NUMBER;
3454 l_acc_rev_natural_side_code   VARCHAR2(1);
3455 
3456 l_num_entries                 NUMBER;
3457 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
3458 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
3459 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
3460 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
3461 l_recog_line_1                NUMBER;
3462 l_recog_line_2                NUMBER;
3463 
3464 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
3465 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
3466 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
3467 
3468 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3469 
3470 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
3471 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
3472 
3473 ---------------------------------------------------------------------------------------------------------------
3474 
3475 
3476 --
3477 -- bulk performance
3478 --
3479 l_balance_type_code           VARCHAR2(1);
3480 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
3481 l_log_module                  VARCHAR2(240);
3482 
3483 --
3484 -- Upgrade strategy
3485 --
3486 l_actual_upg_option           VARCHAR2(1);
3487 l_enc_upg_option           VARCHAR2(1);
3488 
3489 --
3490 BEGIN
3491 --
3492 IF g_log_enabled THEN
3493       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_16';
3494 END IF;
3495 --
3496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3497 
3498       trace
3499          (p_msg      => 'BEGIN of AcctLineType_16'
3500          ,p_level    => C_LEVEL_PROCEDURE
3501          ,p_module   => l_log_module);
3502 
3503 END IF;
3504 --
3505 l_component_type             := 'AMB_JLT';
3506 l_component_code             := 'AP_AMOUNT_VARIANCE_INV_ENC_DR';
3507 l_component_type_code        := 'S';
3511 l_event_class_code           := 'INVOICES';
3508 l_component_appl_id          :=  200;
3509 l_amb_context_code           := 'DEFAULT';
3510 l_entity_code                := 'AP_INVOICES';
3512 l_event_type_code            := 'INVOICES_ALL';
3513 l_line_definition_owner_code := 'S';
3514 l_line_definition_code       := 'ENC_INVOICES_ALL';
3515 --
3516 l_balance_type_code          := 'E';
3517 l_segment                     := NULL;
3518 l_ccid                        := NULL;
3519 l_adr_transaction_coa_id      := NULL;
3520 l_adr_accounting_coa_id       := NULL;
3521 l_adr_flexfield_segment_code  := NULL;
3522 l_adr_flex_value_set_id       := NULL;
3523 l_adr_value_type_code         := NULL;
3524 l_adr_value_combination_id    := NULL;
3525 l_adr_value_segment_code      := NULL;
3526 
3527 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
3528 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
3529 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
3530 l_budgetary_control_flag     := 'Y';
3531 
3532 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
3533 l_bflow_applied_to_amt       := NULL; -- 5132302
3534 l_entered_amt_idx            := NULL;          -- 4262811
3535 l_accted_amt_idx             := NULL;          -- 4262811
3536 l_acc_rev_flag               := NULL;          -- 4262811
3537 l_accrual_line_num           := NULL;          -- 4262811
3538 l_tmp_amt                    := NULL;          -- 4262811
3539 --
3540  
3541 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3542     l_balance_type_code <> 'B' THEN
3543 IF NVL(p_source_15,'
3544 ') <>  'ACCRUAL' AND 
3545 p_source_16 IS NOT NULL AND 
3546 NVL(p_source_17,'
3547 ') =  'Y' AND 
3548 NVL(p_source_18,'
3549 ') <>  'Y'
3550  THEN 
3551 
3552    --
3553    XLA_AE_LINES_PKG.SetNewLine;
3554 
3555    p_balance_type_code          := l_balance_type_code;
3556    -- set the flag so later we will know whether the gain loss line needs to be created
3557    
3558    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3559      p_actual_flag :='A';
3560    END IF;
3561 
3562    --
3563    -- bulk performance
3564    --
3565    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3566                                       p_header_num   => 0); -- 4262811
3567    --
3568    -- set accounting line options
3569    --
3570    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3571            p_natural_side_code          => 'D'
3572          , p_gain_or_loss_flag          => 'N'
3573          , p_gl_transfer_mode_code      => 'S'
3574          , p_acct_entry_type_code       => 'E'
3575          , p_switch_side_flag           => 'Y'
3576          , p_merge_duplicate_code       => 'N'
3577          );
3578    --
3579    l_acc_rev_natural_side_code := 'C';  -- 4262811
3580    -- 
3581    --
3582    -- set accounting line type info
3583    --
3584    xla_ae_lines_pkg.SetAcctLineType
3585       (p_component_type             => l_component_type
3586       ,p_event_type_code            => l_event_type_code
3587       ,p_line_definition_owner_code => l_line_definition_owner_code
3588       ,p_line_definition_code       => l_line_definition_code
3589       ,p_accounting_line_code       => l_component_code
3590       ,p_accounting_line_type_code  => l_component_type_code
3591       ,p_accounting_line_appl_id    => l_component_appl_id
3592       ,p_amb_context_code           => l_amb_context_code
3593       ,p_entity_code                => l_entity_code
3594       ,p_event_class_code           => l_event_class_code);
3595    --
3596    -- set accounting class
3597    --
3598    xla_ae_lines_pkg.SetAcctClass(
3599            p_accounting_class_code  => 'AMT_VARIANCE'
3600          , p_ae_header_id           => l_ae_header_id
3601          );
3602 
3603    --
3604    -- set rounding class
3605    --
3606    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3607                       'AMT_VARIANCE';
3608 
3609    --
3610    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3611    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3612    --
3613    -- bulk performance
3614    --
3615    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3616 
3617    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3618       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3619 
3620    -- 4955764
3621    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3622       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3623 
3624    -- 4458381 Public Sector Enh
3625       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
3626    --
3627    -- set accounting attributes for the line type
3628    --
3629    l_entered_amt_idx := 24;
3630    l_accted_amt_idx  := 29;
3631    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
3632    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3633    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
3634    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
3635    l_rec_acct_attrs.array_num_value(2)  := 
3639  , p_source_application_id =>  602
3636 xla_ae_sources_pkg.GetSystemSourceNum(
3637    p_source_code           => 'XLA_EVENT_APPL_ID'
3638  , p_source_type_code      => 'Y'
3640 );
3641    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
3642    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
3643    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
3644    l_rec_acct_attrs.array_char_value(4)  := 
3645 xla_ae_sources_pkg.GetSystemSourceChar(
3646    p_source_code           => 'XLA_ENTITY_CODE'
3647  , p_source_type_code      => 'Y'
3648  , p_source_application_id =>  602
3649 );
3650    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
3651    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
3652    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
3653    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
3654    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
3655    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
3656    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
3657    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
3658    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3659    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
3660    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
3661    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
3662    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
3663    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
3664    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3665    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
3666    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
3667    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
3668    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
3669    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
3670    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
3671    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
3672    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
3673    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
3674    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
3675    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
3676    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
3677    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
3678    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
3679    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
3680    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
3681    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
3682    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
3683    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
3684    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
3685    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
3686    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
3687    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
3688    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
3689    l_rec_acct_attrs.array_num_value(24)  := p_source_16;
3690    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
3691    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
3692    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
3693    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
3694    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
3695    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
3696    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
3697    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
3698    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
3699    l_rec_acct_attrs.array_num_value(29)  := p_source_42;
3700    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
3701    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
3702    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
3703    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
3704    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
3705    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
3706    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
3707    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
3708    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
3709    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
3710    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
3711    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
3712    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
3713    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
3714    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
3715    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
3716    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
3717    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
3718    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
3719    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
3720    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
3721    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
3722    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
3723    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
3727    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
3724    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
3725    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
3726    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
3728    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
3729    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
3730 
3731    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3732    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3733 
3734    ---------------------------------------------------------------------------------------------------------------
3735    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3736    ---------------------------------------------------------------------------------------------------------------
3737    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3738 
3739    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3740    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3741 
3742    IF xla_accounting_cache_pkg.GetValueChar
3743          (p_source_code         => 'LEDGER_CATEGORY_CODE'
3744          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3745    AND l_bflow_method_code = 'PRIOR_ENTRY'
3746 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3747    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3748          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3749        )
3750    THEN
3751          xla_ae_lines_pkg.BflowUpgEntry
3752            (p_business_method_code    => l_bflow_method_code
3753            ,p_business_class_code     => l_bflow_class_code
3754            ,p_balance_type            => l_balance_type_code);
3755    ELSE
3756       NULL;
3757 -- No business flow processing for business flow method of NONE.
3758    END IF;
3759 
3760    --
3761    -- call analytical criteria
3762    --
3763    
3764    --
3765    -- call description
3766    --
3767    
3768 xla_ae_lines_pkg.SetLineDescription(
3769    p_ae_header_id => l_ae_header_id
3770   ,p_description  => Description_2 (
3771      p_application_id         => p_application_id
3772    , p_ae_header_id           => l_ae_header_id 
3773 , p_source_1 => p_source_1
3774    )
3775 );
3776 
3777 
3778    --
3779    -- call ADRs
3780    -- Bug 4922099
3781    --
3782    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3783         (NVL(l_actual_upg_option, 'N') = 'O') OR
3784         (NVL(l_enc_upg_option, 'N') = 'O')
3785       )
3786    THEN
3787    NULL;
3788    --
3789    --
3790    
3791   l_ccid := AcctDerRule_7(
3792            p_application_id           => p_application_id
3793          , p_ae_header_id             => l_ae_header_id 
3794 , p_source_11 => p_source_11
3795          , x_transaction_coa_id       => l_adr_transaction_coa_id
3796          , x_accounting_coa_id        => l_adr_accounting_coa_id
3797          , x_value_type_code          => l_adr_value_type_code
3798          , p_side                     => 'NA'
3799    );
3800 
3801    xla_ae_lines_pkg.set_ccid(
3802     p_code_combination_id          => l_ccid
3803   , p_value_type_code              => l_adr_value_type_code
3804   , p_transaction_coa_id           => l_adr_transaction_coa_id
3805   , p_accounting_coa_id            => l_adr_accounting_coa_id
3806   , p_adr_code                     => 'AP_INVOICE_DIST'
3807   , p_adr_type_code                => 'S'
3808   , p_component_type               => l_component_type
3809   , p_component_code               => l_component_code
3810   , p_component_type_code          => l_component_type_code
3811   , p_component_appl_id            => l_component_appl_id
3812   , p_amb_context_code             => l_amb_context_code
3813   , p_side                         => 'NA'
3814   );
3815 
3816 
3817    --
3818    --
3819    END IF;
3820    --
3821    -- Bug 4922099
3822    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3823           (NVL(l_enc_upg_option, 'N') = 'O')
3824         ) AND
3825         (l_bflow_method_code = 'PRIOR_ENTRY')
3826       )
3827    THEN
3828       IF
3829       --
3830       1 = 2
3831       --
3832       THEN
3833       xla_accounting_err_pkg.build_message
3834                                     (p_appli_s_name            => 'XLA'
3835                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3836                                     ,p_token_1                 => 'LINE_NUMBER'
3837                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
3838                                     ,p_token_2                 => 'LINE_TYPE_NAME'
3839                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
3840                                                                              l_component_type
3841                                                                             ,l_component_code
3842                                                                             ,l_component_type_code
3843                                                                             ,l_component_appl_id
3847                                                                            )
3844                                                                             ,l_amb_context_code
3845                                                                             ,l_entity_code
3846                                                                             ,l_event_class_code
3848                                     ,p_token_3                 => 'OWNER'
3849                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
3850                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
3851                                                                           ,p_lookup_code    => l_component_type_code
3852                                                                          )
3853                                     ,p_token_4                 => 'PRODUCT_NAME'
3854                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3855                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3856                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3857                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3858                                     ,p_ae_header_id            =>  NULL
3859                                        );
3860 
3861         IF (C_LEVEL_ERROR>= g_log_level) THEN
3862                  trace
3863                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3864                       ,p_level    => C_LEVEL_ERROR
3865                       ,p_module   => l_log_module);
3866         END IF;
3867       END IF;
3868    END IF;
3869    --
3870    --
3871    ------------------------------------------------------------------------------------------------
3872    -- 4219869 Business Flow
3873    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3874    -- Prior Entry.  Currently, the following code is always generated.
3875    ------------------------------------------------------------------------------------------------
3876    XLA_AE_LINES_PKG.ValidateCurrentLine;
3877 
3878    ------------------------------------------------------------------------------------
3879    -- 4219869 Business Flow
3880    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3881    ------------------------------------------------------------------------------------
3882    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3883 
3884    ----------------------------------------------------------------------------------
3885    -- 4219869 Business Flow
3886    -- Update journal entry status -- Need to generate this within IF <condition>
3887    ----------------------------------------------------------------------------------
3888    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3889          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3890          ,p_balance_type_code => l_balance_type_code
3891          );
3892 
3893    -------------------------------------------------------------------------------------------
3894    -- 4262811 - Generate the Accrual Reversal lines
3895    -------------------------------------------------------------------------------------------
3896    BEGIN
3897       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3898                               (g_array_event(p_event_id).array_value_num('header_index'));
3899       IF l_acc_rev_flag IS NULL THEN
3900          l_acc_rev_flag := 'N';
3901       END IF;
3902    EXCEPTION
3903       WHEN OTHERS THEN
3904          l_acc_rev_flag := 'N';
3905    END;
3906    --
3907    IF (l_acc_rev_flag = 'Y') THEN
3908 
3909        -- 4645092  ------------------------------------------------------------------------------
3910        -- To allow MPA report to determine if it should generate report process
3911        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3912        ------------------------------------------------------------------------------------------
3913 
3914        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3915        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3916    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
3917    -- call ADRs
3918    -- Bug 4922099
3919    --
3920    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3921         (NVL(l_actual_upg_option, 'N') = 'O') OR
3922         (NVL(l_enc_upg_option, 'N') = 'O')
3923       )
3924    THEN
3925    NULL;
3926    --
3927    --
3928    
3929   l_ccid := AcctDerRule_7(
3930            p_application_id           => p_application_id
3931          , p_ae_header_id             => l_ae_header_id 
3932 , p_source_11 => p_source_11
3933          , x_transaction_coa_id       => l_adr_transaction_coa_id
3934          , x_accounting_coa_id        => l_adr_accounting_coa_id
3935          , x_value_type_code          => l_adr_value_type_code
3936          , p_side                     => 'NA'
3937    );
3938 
3939    xla_ae_lines_pkg.set_ccid(
3940     p_code_combination_id          => l_ccid
3941   , p_value_type_code              => l_adr_value_type_code
3942   , p_transaction_coa_id           => l_adr_transaction_coa_id
3943   , p_accounting_coa_id            => l_adr_accounting_coa_id
3944   , p_adr_code                     => 'AP_INVOICE_DIST'
3945   , p_adr_type_code                => 'S'
3949   , p_component_appl_id            => l_component_appl_id
3946   , p_component_type               => l_component_type
3947   , p_component_code               => l_component_code
3948   , p_component_type_code          => l_component_type_code
3950   , p_amb_context_code             => l_amb_context_code
3951   , p_side                         => 'NA'
3952   );
3953 
3954 
3955    --
3956    --
3957    END IF;
3958 
3959        --
3960        -- Update the line information that should be overwritten
3961        --
3962        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3963                                          p_header_num   => 1);
3964        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
3965 
3966        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3967 
3968        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
3969           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3970        END IF;
3971 
3972       --
3973       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3974       --
3975       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3976           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
3977       ELSE
3978           ---------------------------------------------------------------------------------------------------
3979           -- 4262811a Switch Sign
3980           ---------------------------------------------------------------------------------------------------
3981           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
3982           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3983                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3984           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3985                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3986           -- 5132302
3987           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3988                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3989 
3990       END IF;
3991 
3992       -- 4955764
3993       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3994       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3995 
3996 
3997       XLA_AE_LINES_PKG.ValidateCurrentLine;
3998       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3999 
4000       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4001                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4002                ,p_balance_type_code => l_balance_type_code);
4003 
4004    END IF;
4005 
4006    -----------------------------------------------------------------------------------------
4007    -- 4262811 Multiperiod Accounting
4008    -----------------------------------------------------------------------------------------
4009      -- No MPA option is assigned.
4010 
4011 
4012 END IF;
4013 END IF;
4014 --
4015 
4016 --
4017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4018    trace
4019       (p_msg      => 'END of AcctLineType_16'
4020       ,p_level    => C_LEVEL_PROCEDURE
4021       ,p_module   => l_log_module);
4022 END IF;
4023 --
4024 EXCEPTION
4025   WHEN xla_exceptions_pkg.application_exception THEN
4026       RAISE;
4027   WHEN OTHERS THEN
4028        xla_exceptions_pkg.raise_message
4029            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_16');
4030 END AcctLineType_16;
4031 --
4032 
4033 ---------------------------------------
4034 --
4035 -- PRIVATE FUNCTION
4036 --         AcctLineType_17
4037 --
4038 ---------------------------------------
4039 PROCEDURE AcctLineType_17 (
4040   p_application_id        IN NUMBER
4041  ,p_event_id              IN NUMBER
4042  ,p_calculate_acctd_flag  IN VARCHAR2
4043  ,p_calculate_g_l_flag    IN VARCHAR2
4044  ,p_actual_flag           IN OUT VARCHAR2
4045  ,p_balance_type_code     OUT VARCHAR2
4046  ,p_gain_or_loss_ref      OUT VARCHAR2
4047  
4048 --Invoice Distribution Description
4049  , p_source_1            IN VARCHAR2
4050 --Invoice Distribution Account
4051  , p_source_11            IN NUMBER
4052 --Invoice Distribution Type
4053  , p_source_15            IN VARCHAR2
4054  , p_source_15_meaning    IN VARCHAR2
4055 --Amount for Variance Amount
4056  , p_source_16            IN NUMBER
4057 --Purchasing Encumbrance Option
4058  , p_source_17            IN VARCHAR2
4059  , p_source_17_meaning    IN VARCHAR2
4060 --Accrue on Receipt Option
4061  , p_source_18            IN VARCHAR2
4062  , p_source_18_meaning    IN VARCHAR2
4063 --Accounting Reversal Indicator
4064  , p_source_19            IN VARCHAR2
4065 --Distribution Link Type
4066  , p_source_21            IN VARCHAR2
4067 --Allocation to Main Distribution Identifier
4068  , p_source_23            IN NUMBER
4069 --Invoice Identifier
4070  , p_source_24            IN NUMBER
4074  , p_source_26            IN VARCHAR2
4071 --Business Flow Accounts Payable Application Identifier
4072  , p_source_25            IN NUMBER
4073 --Business Flow Invoice Distribution Type
4075 --Business Flow Invoice Entity Code
4076  , p_source_27            IN VARCHAR2
4077 --Business Flow Invoice Distribution Identifier
4078  , p_source_28            IN NUMBER
4079 --Business Flow Invoice Identifier
4080  , p_source_29            IN NUMBER
4081 --Invoice Distribution Identifier
4082  , p_source_30            IN NUMBER
4083 --Payables Encumbrance Upgrade Credit Account
4084  , p_source_31            IN NUMBER
4085 --Payables Encumbrance Upgrade Credit Amount
4086  , p_source_32            IN NUMBER
4087 --Invoice Currency Code
4088  , p_source_33            IN VARCHAR2
4089 --Payables Encumbrance Upgrade Credit Base Amount
4090  , p_source_34            IN NUMBER
4091 --Payables Encumbrance Upgrade Debit Account
4092  , p_source_35            IN NUMBER
4093 --Payables Encumbrance Upgrade Debit Amount
4094  , p_source_36            IN NUMBER
4095 --Payables Encumbrance Upgrade Debit Base Amount
4096  , p_source_37            IN NUMBER
4097 --Payables Encumbrance Upgrade Option
4098  , p_source_38            IN VARCHAR2
4099 --Invoice Exchange Date
4100  , p_source_39            IN DATE
4101 --Invoice Exchange Rate
4102  , p_source_40            IN NUMBER
4103 --Invoice Exchange Rate Type
4104  , p_source_41            IN VARCHAR2
4105 --Variance Amount in Ledger Currency
4106  , p_source_42            IN NUMBER
4107 --Deferred Accounting End Date
4108  , p_source_43            IN DATE
4109 --Deferred Accounting Option
4110  , p_source_44            IN VARCHAR2
4111 --Deferred Accounting Start Date
4112  , p_source_45            IN DATE
4113 --Override Accounted Amount Indicator
4114  , p_source_46            IN VARCHAR2
4115  , p_source_46_meaning    IN VARCHAR2
4116 --Invoice Supplier Identifier
4117  , p_source_47            IN NUMBER
4118 --Invoice Supplier Site Identifier
4119  , p_source_48            IN NUMBER
4120 --Third Party Type
4121  , p_source_49            IN VARCHAR2
4122 --Parent Reversal Identifier
4123  , p_source_50            IN NUMBER
4124 --Invoice Distribution Statistical Amount
4125  , p_source_51            IN NUMBER
4126 --Invoice Distribution Tax Line Identifier
4127  , p_source_52            IN NUMBER
4128 --Invoice Distribution Tax Distribution Identifier from Tax
4129  , p_source_53            IN NUMBER
4130 --Invoice Distribution Summary Tax Line Identifier
4131  , p_source_54            IN NUMBER
4132 --Payables Upgrade Credit Encumbrance Type Identifier
4133  , p_source_55            IN NUMBER
4134 --Payables Upgrade Debit Encumbrance Type Identifier
4135  , p_source_56            IN NUMBER
4136 )
4137 IS
4138 
4139 l_component_type              VARCHAR2(80);
4140 l_component_code              VARCHAR2(30);
4141 l_component_type_code         VARCHAR2(1);
4142 l_component_appl_id           INTEGER;
4143 l_amb_context_code            VARCHAR2(30);
4144 l_entity_code                 VARCHAR2(30);
4145 l_event_class_code            VARCHAR2(30);
4146 l_ae_header_id                NUMBER;
4147 l_event_type_code             VARCHAR2(30);
4148 l_line_definition_code        VARCHAR2(30);
4149 l_line_definition_owner_code  VARCHAR2(1);
4150 --
4151 -- adr variables
4152 l_segment                     VARCHAR2(30);
4153 l_ccid                        NUMBER;
4154 l_adr_transaction_coa_id      NUMBER;
4155 l_adr_accounting_coa_id       NUMBER;
4156 l_adr_flexfield_segment_code  VARCHAR2(30);
4157 l_adr_flex_value_set_id       NUMBER;
4158 l_adr_value_type_code         VARCHAR2(30);
4159 l_adr_value_combination_id    NUMBER;
4160 l_adr_value_segment_code      VARCHAR2(30);
4161 
4162 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
4163 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
4164 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
4165 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
4166 
4167 -- 4262811 Variables ------------------------------------------------------------------------------------------
4168 l_entered_amt_idx             NUMBER;
4169 l_accted_amt_idx              NUMBER;
4170 l_acc_rev_flag                VARCHAR2(1);
4171 l_accrual_line_num            NUMBER;
4172 l_tmp_amt                     NUMBER;
4173 l_acc_rev_natural_side_code   VARCHAR2(1);
4174 
4175 l_num_entries                 NUMBER;
4176 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
4177 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
4178 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
4179 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
4180 l_recog_line_1                NUMBER;
4181 l_recog_line_2                NUMBER;
4182 
4183 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
4184 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
4185 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
4186 
4187 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4188 
4189 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
4190 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
4191 
4195 --
4192 ---------------------------------------------------------------------------------------------------------------
4193 
4194 
4196 -- bulk performance
4197 --
4198 l_balance_type_code           VARCHAR2(1);
4199 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
4200 l_log_module                  VARCHAR2(240);
4201 
4202 --
4203 -- Upgrade strategy
4204 --
4205 l_actual_upg_option           VARCHAR2(1);
4206 l_enc_upg_option           VARCHAR2(1);
4207 
4208 --
4209 BEGIN
4210 --
4211 IF g_log_enabled THEN
4212       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_17';
4213 END IF;
4214 --
4215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4216 
4217       trace
4218          (p_msg      => 'BEGIN of AcctLineType_17'
4219          ,p_level    => C_LEVEL_PROCEDURE
4220          ,p_module   => l_log_module);
4221 
4222 END IF;
4223 --
4224 l_component_type             := 'AMB_JLT';
4225 l_component_code             := 'AP_AMOUNT_VARIANCE_PP_ENC_DR';
4226 l_component_type_code        := 'S';
4227 l_component_appl_id          :=  200;
4228 l_amb_context_code           := 'DEFAULT';
4229 l_entity_code                := 'AP_INVOICES';
4230 l_event_class_code           := 'PREPAYMENTS';
4231 l_event_type_code            := 'PREPAYMENTS_ALL';
4232 l_line_definition_owner_code := 'S';
4233 l_line_definition_code       := 'ENC_PREPAY_ALL';
4234 --
4235 l_balance_type_code          := 'E';
4236 l_segment                     := NULL;
4237 l_ccid                        := NULL;
4238 l_adr_transaction_coa_id      := NULL;
4239 l_adr_accounting_coa_id       := NULL;
4240 l_adr_flexfield_segment_code  := NULL;
4241 l_adr_flex_value_set_id       := NULL;
4242 l_adr_value_type_code         := NULL;
4243 l_adr_value_combination_id    := NULL;
4244 l_adr_value_segment_code      := NULL;
4245 
4246 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
4247 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
4248 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
4249 l_budgetary_control_flag     := 'Y';
4250 
4251 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
4252 l_bflow_applied_to_amt       := NULL; -- 5132302
4253 l_entered_amt_idx            := NULL;          -- 4262811
4254 l_accted_amt_idx             := NULL;          -- 4262811
4255 l_acc_rev_flag               := NULL;          -- 4262811
4256 l_accrual_line_num           := NULL;          -- 4262811
4257 l_tmp_amt                    := NULL;          -- 4262811
4258 --
4259  
4260 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4261     l_balance_type_code <> 'B' THEN
4262 IF NVL(p_source_15,'
4263 ') =  'ITEM' AND 
4264 p_source_16 IS NOT NULL AND 
4265 NVL(p_source_17,'
4266 ') =  'Y' AND 
4267 NVL(p_source_18,'
4268 ') <>  'Y'
4269  THEN 
4270 
4271    --
4272    XLA_AE_LINES_PKG.SetNewLine;
4273 
4274    p_balance_type_code          := l_balance_type_code;
4275    -- set the flag so later we will know whether the gain loss line needs to be created
4276    
4277    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4278      p_actual_flag :='A';
4279    END IF;
4280 
4281    --
4282    -- bulk performance
4283    --
4284    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4285                                       p_header_num   => 0); -- 4262811
4286    --
4287    -- set accounting line options
4288    --
4289    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4290            p_natural_side_code          => 'D'
4291          , p_gain_or_loss_flag          => 'N'
4292          , p_gl_transfer_mode_code      => 'S'
4293          , p_acct_entry_type_code       => 'E'
4294          , p_switch_side_flag           => 'Y'
4295          , p_merge_duplicate_code       => 'N'
4296          );
4297    --
4298    l_acc_rev_natural_side_code := 'C';  -- 4262811
4299    -- 
4300    --
4301    -- set accounting line type info
4302    --
4303    xla_ae_lines_pkg.SetAcctLineType
4304       (p_component_type             => l_component_type
4305       ,p_event_type_code            => l_event_type_code
4306       ,p_line_definition_owner_code => l_line_definition_owner_code
4307       ,p_line_definition_code       => l_line_definition_code
4308       ,p_accounting_line_code       => l_component_code
4309       ,p_accounting_line_type_code  => l_component_type_code
4310       ,p_accounting_line_appl_id    => l_component_appl_id
4311       ,p_amb_context_code           => l_amb_context_code
4312       ,p_entity_code                => l_entity_code
4313       ,p_event_class_code           => l_event_class_code);
4314    --
4315    -- set accounting class
4316    --
4317    xla_ae_lines_pkg.SetAcctClass(
4318            p_accounting_class_code  => 'AMT_VARIANCE'
4319          , p_ae_header_id           => l_ae_header_id
4320          );
4321 
4322    --
4323    -- set rounding class
4324    --
4325    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4326                       'AMT_VARIANCE';
4327 
4328    --
4329    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4330    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4334    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4331    --
4332    -- bulk performance
4333    --
4335 
4336    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4337       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4338 
4339    -- 4955764
4340    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4341       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4342 
4343    -- 4458381 Public Sector Enh
4344       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
4345    --
4346    -- set accounting attributes for the line type
4347    --
4348    l_entered_amt_idx := 23;
4349    l_accted_amt_idx  := 28;
4350    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
4351    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4352    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
4353    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
4354    l_rec_acct_attrs.array_num_value(2)  := 
4355 xla_ae_sources_pkg.GetSystemSourceNum(
4356    p_source_code           => 'XLA_EVENT_APPL_ID'
4357  , p_source_type_code      => 'Y'
4358  , p_source_application_id =>  602
4359 );
4360    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
4361    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
4362    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
4363    l_rec_acct_attrs.array_char_value(4)  := 
4364 xla_ae_sources_pkg.GetSystemSourceChar(
4365    p_source_code           => 'XLA_ENTITY_CODE'
4366  , p_source_type_code      => 'Y'
4367  , p_source_application_id =>  602
4368 );
4369    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
4370    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
4371    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
4372    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
4373    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
4374    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
4375    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4376    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
4377    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
4378    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
4379    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
4380    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
4381    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4382    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
4383    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
4384    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
4385    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
4386    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
4387    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
4388    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
4389    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
4390    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
4391    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
4392    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
4393    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
4394    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
4395    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
4396    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
4397    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
4398    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
4399    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
4400    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
4401    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
4402    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
4403    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
4404    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
4405    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
4406    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
4407    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
4408    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
4409    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
4410    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
4411    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
4412    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
4413    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
4414    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
4415    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
4416    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
4417    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
4418    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
4419    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
4420    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
4421    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
4422    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
4423    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
4424    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
4425    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
4429    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
4426    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
4427    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
4428    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
4430    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
4431    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
4432    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
4433    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
4434    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
4435    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
4436    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
4437    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
4438    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
4439    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
4440    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
4441    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
4442    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
4443    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
4444    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
4445    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
4446    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
4447 
4448    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4449    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4450 
4451    ---------------------------------------------------------------------------------------------------------------
4452    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4453    ---------------------------------------------------------------------------------------------------------------
4454    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4455 
4456    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4457    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4458 
4459    IF xla_accounting_cache_pkg.GetValueChar
4460          (p_source_code         => 'LEDGER_CATEGORY_CODE'
4461          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4462    AND l_bflow_method_code = 'PRIOR_ENTRY'
4463 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4464    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4465          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4466        )
4467    THEN
4468          xla_ae_lines_pkg.BflowUpgEntry
4469            (p_business_method_code    => l_bflow_method_code
4470            ,p_business_class_code     => l_bflow_class_code
4471            ,p_balance_type            => l_balance_type_code);
4472    ELSE
4473       NULL;
4474 -- No business flow processing for business flow method of NONE.
4475    END IF;
4476 
4477    --
4478    -- call analytical criteria
4479    --
4480    
4481    --
4482    -- call description
4483    --
4484    
4485 xla_ae_lines_pkg.SetLineDescription(
4486    p_ae_header_id => l_ae_header_id
4487   ,p_description  => Description_2 (
4488      p_application_id         => p_application_id
4489    , p_ae_header_id           => l_ae_header_id 
4490 , p_source_1 => p_source_1
4491    )
4492 );
4493 
4494 
4495    --
4496    -- call ADRs
4497    -- Bug 4922099
4498    --
4499    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4500         (NVL(l_actual_upg_option, 'N') = 'O') OR
4501         (NVL(l_enc_upg_option, 'N') = 'O')
4502       )
4503    THEN
4504    NULL;
4505    --
4506    --
4507    
4508   l_ccid := AcctDerRule_7(
4509            p_application_id           => p_application_id
4510          , p_ae_header_id             => l_ae_header_id 
4511 , p_source_11 => p_source_11
4512          , x_transaction_coa_id       => l_adr_transaction_coa_id
4513          , x_accounting_coa_id        => l_adr_accounting_coa_id
4514          , x_value_type_code          => l_adr_value_type_code
4515          , p_side                     => 'NA'
4516    );
4517 
4518    xla_ae_lines_pkg.set_ccid(
4519     p_code_combination_id          => l_ccid
4520   , p_value_type_code              => l_adr_value_type_code
4521   , p_transaction_coa_id           => l_adr_transaction_coa_id
4522   , p_accounting_coa_id            => l_adr_accounting_coa_id
4523   , p_adr_code                     => 'AP_INVOICE_DIST'
4524   , p_adr_type_code                => 'S'
4525   , p_component_type               => l_component_type
4526   , p_component_code               => l_component_code
4527   , p_component_type_code          => l_component_type_code
4528   , p_component_appl_id            => l_component_appl_id
4529   , p_amb_context_code             => l_amb_context_code
4530   , p_side                         => 'NA'
4531   );
4532 
4533 
4534    --
4535    --
4536    END IF;
4537    --
4538    -- Bug 4922099
4539    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4540           (NVL(l_enc_upg_option, 'N') = 'O')
4541         ) AND
4542         (l_bflow_method_code = 'PRIOR_ENTRY')
4543       )
4544    THEN
4545       IF
4546       --
4547       1 = 2
4548       --
4549       THEN
4550       xla_accounting_err_pkg.build_message
4554                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
4551                                     (p_appli_s_name            => 'XLA'
4552                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4553                                     ,p_token_1                 => 'LINE_NUMBER'
4555                                     ,p_token_2                 => 'LINE_TYPE_NAME'
4556                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
4557                                                                              l_component_type
4558                                                                             ,l_component_code
4559                                                                             ,l_component_type_code
4560                                                                             ,l_component_appl_id
4561                                                                             ,l_amb_context_code
4562                                                                             ,l_entity_code
4563                                                                             ,l_event_class_code
4564                                                                            )
4565                                     ,p_token_3                 => 'OWNER'
4566                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
4567                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
4568                                                                           ,p_lookup_code    => l_component_type_code
4569                                                                          )
4570                                     ,p_token_4                 => 'PRODUCT_NAME'
4571                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4572                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4573                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4574                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4575                                     ,p_ae_header_id            =>  NULL
4576                                        );
4577 
4578         IF (C_LEVEL_ERROR>= g_log_level) THEN
4579                  trace
4580                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4581                       ,p_level    => C_LEVEL_ERROR
4582                       ,p_module   => l_log_module);
4583         END IF;
4584       END IF;
4585    END IF;
4586    --
4587    --
4588    ------------------------------------------------------------------------------------------------
4589    -- 4219869 Business Flow
4590    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4591    -- Prior Entry.  Currently, the following code is always generated.
4592    ------------------------------------------------------------------------------------------------
4593    XLA_AE_LINES_PKG.ValidateCurrentLine;
4594 
4595    ------------------------------------------------------------------------------------
4596    -- 4219869 Business Flow
4597    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4598    ------------------------------------------------------------------------------------
4599    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4600 
4601    ----------------------------------------------------------------------------------
4602    -- 4219869 Business Flow
4603    -- Update journal entry status -- Need to generate this within IF <condition>
4604    ----------------------------------------------------------------------------------
4605    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4606          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4607          ,p_balance_type_code => l_balance_type_code
4608          );
4609 
4610    -------------------------------------------------------------------------------------------
4611    -- 4262811 - Generate the Accrual Reversal lines
4612    -------------------------------------------------------------------------------------------
4613    BEGIN
4614       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4615                               (g_array_event(p_event_id).array_value_num('header_index'));
4616       IF l_acc_rev_flag IS NULL THEN
4617          l_acc_rev_flag := 'N';
4618       END IF;
4619    EXCEPTION
4620       WHEN OTHERS THEN
4621          l_acc_rev_flag := 'N';
4622    END;
4623    --
4624    IF (l_acc_rev_flag = 'Y') THEN
4625 
4626        -- 4645092  ------------------------------------------------------------------------------
4627        -- To allow MPA report to determine if it should generate report process
4628        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4629        ------------------------------------------------------------------------------------------
4630 
4631        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4632        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4633    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
4634    -- call ADRs
4635    -- Bug 4922099
4636    --
4637    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4638         (NVL(l_actual_upg_option, 'N') = 'O') OR
4639         (NVL(l_enc_upg_option, 'N') = 'O')
4640       )
4641    THEN
4642    NULL;
4643    --
4644    --
4645    
4649 , p_source_11 => p_source_11
4646   l_ccid := AcctDerRule_7(
4647            p_application_id           => p_application_id
4648          , p_ae_header_id             => l_ae_header_id 
4650          , x_transaction_coa_id       => l_adr_transaction_coa_id
4651          , x_accounting_coa_id        => l_adr_accounting_coa_id
4652          , x_value_type_code          => l_adr_value_type_code
4653          , p_side                     => 'NA'
4654    );
4655 
4656    xla_ae_lines_pkg.set_ccid(
4657     p_code_combination_id          => l_ccid
4658   , p_value_type_code              => l_adr_value_type_code
4659   , p_transaction_coa_id           => l_adr_transaction_coa_id
4660   , p_accounting_coa_id            => l_adr_accounting_coa_id
4661   , p_adr_code                     => 'AP_INVOICE_DIST'
4662   , p_adr_type_code                => 'S'
4663   , p_component_type               => l_component_type
4664   , p_component_code               => l_component_code
4665   , p_component_type_code          => l_component_type_code
4666   , p_component_appl_id            => l_component_appl_id
4667   , p_amb_context_code             => l_amb_context_code
4668   , p_side                         => 'NA'
4669   );
4670 
4671 
4672    --
4673    --
4674    END IF;
4675 
4676        --
4677        -- Update the line information that should be overwritten
4678        --
4679        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4680                                          p_header_num   => 1);
4681        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
4682 
4683        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4684 
4685        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
4686           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4687        END IF;
4688 
4689       --
4690       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4691       --
4692       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4693           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
4694       ELSE
4695           ---------------------------------------------------------------------------------------------------
4696           -- 4262811a Switch Sign
4697           ---------------------------------------------------------------------------------------------------
4698           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
4699           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4700                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4701           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4702                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4703           -- 5132302
4704           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4705                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4706 
4707       END IF;
4708 
4709       -- 4955764
4710       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4712 
4713 
4714       XLA_AE_LINES_PKG.ValidateCurrentLine;
4715       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4716 
4717       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4718                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4719                ,p_balance_type_code => l_balance_type_code);
4720 
4721    END IF;
4722 
4723    -----------------------------------------------------------------------------------------
4724    -- 4262811 Multiperiod Accounting
4725    -----------------------------------------------------------------------------------------
4726      -- No MPA option is assigned.
4727 
4728 
4729 END IF;
4730 END IF;
4731 --
4732 
4733 --
4734 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4735    trace
4736       (p_msg      => 'END of AcctLineType_17'
4737       ,p_level    => C_LEVEL_PROCEDURE
4738       ,p_module   => l_log_module);
4739 END IF;
4740 --
4741 EXCEPTION
4742   WHEN xla_exceptions_pkg.application_exception THEN
4743       RAISE;
4744   WHEN OTHERS THEN
4745        xla_exceptions_pkg.raise_message
4746            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_17');
4747 END AcctLineType_17;
4748 --
4749 
4750 ---------------------------------------
4751 --
4752 -- PRIVATE FUNCTION
4753 --         AcctLineType_18
4754 --
4755 ---------------------------------------
4756 PROCEDURE AcctLineType_18 (
4757   p_application_id        IN NUMBER
4758  ,p_event_id              IN NUMBER
4759  ,p_calculate_acctd_flag  IN VARCHAR2
4760  ,p_calculate_g_l_flag    IN VARCHAR2
4761  ,p_actual_flag           IN OUT VARCHAR2
4762  ,p_balance_type_code     OUT VARCHAR2
4763  ,p_gain_or_loss_ref      OUT VARCHAR2
4764  
4765 --Invoice Distribution Type
4769  , p_source_18            IN VARCHAR2
4766  , p_source_15            IN VARCHAR2
4767  , p_source_15_meaning    IN VARCHAR2
4768 --Accrue on Receipt Option
4770  , p_source_18_meaning    IN VARCHAR2
4771 --Accounting Reversal Indicator
4772  , p_source_19            IN VARCHAR2
4773 --Distribution Link Type
4774  , p_source_21            IN VARCHAR2
4775 --Allocation to Main Distribution Identifier
4776  , p_source_23            IN NUMBER
4777 --Invoice Identifier
4778  , p_source_24            IN NUMBER
4779 --Invoice Distribution Identifier
4780  , p_source_30            IN NUMBER
4781 --Payables Encumbrance Upgrade Credit Account
4782  , p_source_31            IN NUMBER
4783 --Payables Encumbrance Upgrade Credit Amount
4784  , p_source_32            IN NUMBER
4785 --Invoice Currency Code
4786  , p_source_33            IN VARCHAR2
4787 --Payables Encumbrance Upgrade Credit Base Amount
4788  , p_source_34            IN NUMBER
4789 --Payables Encumbrance Upgrade Debit Account
4790  , p_source_35            IN NUMBER
4791 --Payables Encumbrance Upgrade Debit Amount
4792  , p_source_36            IN NUMBER
4793 --Payables Encumbrance Upgrade Debit Base Amount
4794  , p_source_37            IN NUMBER
4795 --Payables Encumbrance Upgrade Option
4796  , p_source_38            IN VARCHAR2
4797 --Deferred Accounting End Date
4798  , p_source_43            IN DATE
4799 --Deferred Accounting Option
4800  , p_source_44            IN VARCHAR2
4801 --Deferred Accounting Start Date
4802  , p_source_45            IN DATE
4803 --Override Accounted Amount Indicator
4804  , p_source_46            IN VARCHAR2
4805  , p_source_46_meaning    IN VARCHAR2
4806 --Third Party Type
4807  , p_source_49            IN VARCHAR2
4808 --Parent Reversal Identifier
4809  , p_source_50            IN NUMBER
4810 --Invoice Distribution Statistical Amount
4811  , p_source_51            IN NUMBER
4812 --Invoice Distribution Tax Line Identifier
4813  , p_source_52            IN NUMBER
4814 --Invoice Distribution Tax Distribution Identifier from Tax
4815  , p_source_53            IN NUMBER
4816 --Invoice Distribution Summary Tax Line Identifier
4817  , p_source_54            IN NUMBER
4818 --Payables Upgrade Credit Encumbrance Type Identifier
4819  , p_source_55            IN NUMBER
4820 --Payables Upgrade Debit Encumbrance Type Identifier
4821  , p_source_56            IN NUMBER
4822 --Purchase Order Distribution Identifier
4823  , p_source_58            IN NUMBER
4824 --Self-Assessed Tax Flag
4825  , p_source_59            IN VARCHAR2
4826  , p_source_59_meaning    IN VARCHAR2
4827 --Business Flow Purchasing Application Identifier
4828  , p_source_60            IN NUMBER
4829 --Business Flow Purchase Order Distribution Type
4830  , p_source_61            IN VARCHAR2
4831 --Business Flow Purchase Order Entity Code
4832  , p_source_62            IN VARCHAR2
4833 --Business Flow Purchase Order Distribution Identifier
4834  , p_source_63            IN NUMBER
4835 --Business Flow Purchasing Document Identifier
4836  , p_source_64            IN NUMBER
4837 --Invoice Distribution Encumbrance Amount
4838  , p_source_65            IN NUMBER
4839 --Invoice Distribution Encumbrance Ledger Amount
4840  , p_source_66            IN NUMBER
4841 )
4842 IS
4843 
4844 l_component_type              VARCHAR2(80);
4845 l_component_code              VARCHAR2(30);
4846 l_component_type_code         VARCHAR2(1);
4847 l_component_appl_id           INTEGER;
4848 l_amb_context_code            VARCHAR2(30);
4849 l_entity_code                 VARCHAR2(30);
4850 l_event_class_code            VARCHAR2(30);
4851 l_ae_header_id                NUMBER;
4852 l_event_type_code             VARCHAR2(30);
4853 l_line_definition_code        VARCHAR2(30);
4854 l_line_definition_owner_code  VARCHAR2(1);
4855 --
4856 -- adr variables
4857 l_segment                     VARCHAR2(30);
4858 l_ccid                        NUMBER;
4859 l_adr_transaction_coa_id      NUMBER;
4860 l_adr_accounting_coa_id       NUMBER;
4861 l_adr_flexfield_segment_code  VARCHAR2(30);
4862 l_adr_flex_value_set_id       NUMBER;
4863 l_adr_value_type_code         VARCHAR2(30);
4864 l_adr_value_combination_id    NUMBER;
4865 l_adr_value_segment_code      VARCHAR2(30);
4866 
4867 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
4868 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
4869 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
4870 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
4871 
4872 -- 4262811 Variables ------------------------------------------------------------------------------------------
4873 l_entered_amt_idx             NUMBER;
4874 l_accted_amt_idx              NUMBER;
4875 l_acc_rev_flag                VARCHAR2(1);
4876 l_accrual_line_num            NUMBER;
4877 l_tmp_amt                     NUMBER;
4878 l_acc_rev_natural_side_code   VARCHAR2(1);
4879 
4880 l_num_entries                 NUMBER;
4881 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
4882 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
4883 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
4884 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
4885 l_recog_line_1                NUMBER;
4886 l_recog_line_2                NUMBER;
4887 
4888 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
4889 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
4893 
4890 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
4891 
4892 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4894 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
4895 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
4896 
4897 ---------------------------------------------------------------------------------------------------------------
4898 
4899 
4900 --
4901 -- bulk performance
4902 --
4903 l_balance_type_code           VARCHAR2(1);
4904 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
4905 l_log_module                  VARCHAR2(240);
4906 
4907 --
4908 -- Upgrade strategy
4909 --
4910 l_actual_upg_option           VARCHAR2(1);
4911 l_enc_upg_option           VARCHAR2(1);
4912 
4913 --
4914 BEGIN
4915 --
4916 IF g_log_enabled THEN
4917       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_18';
4918 END IF;
4919 --
4920 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4921 
4922       trace
4923          (p_msg      => 'BEGIN of AcctLineType_18'
4924          ,p_level    => C_LEVEL_PROCEDURE
4925          ,p_module   => l_log_module);
4926 
4927 END IF;
4928 --
4929 l_component_type             := 'AMB_JLT';
4930 l_component_code             := 'AP_CM_NON_REC_TAX_PO_ENC';
4931 l_component_type_code        := 'S';
4932 l_component_appl_id          :=  200;
4933 l_amb_context_code           := 'DEFAULT';
4934 l_entity_code                := 'AP_INVOICES';
4935 l_event_class_code           := 'CREDIT MEMOS';
4936 l_event_type_code            := 'CREDIT MEMOS_ALL';
4937 l_line_definition_owner_code := 'S';
4938 l_line_definition_code       := 'ENC_CM_ALL';
4939 --
4940 l_balance_type_code          := 'E';
4941 l_segment                     := NULL;
4942 l_ccid                        := NULL;
4943 l_adr_transaction_coa_id      := NULL;
4944 l_adr_accounting_coa_id       := NULL;
4945 l_adr_flexfield_segment_code  := NULL;
4946 l_adr_flex_value_set_id       := NULL;
4947 l_adr_value_type_code         := NULL;
4948 l_adr_value_combination_id    := NULL;
4949 l_adr_value_segment_code      := NULL;
4950 
4951 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
4952 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
4953 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
4954 l_budgetary_control_flag     := 'Y';
4955 
4956 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
4957 l_bflow_applied_to_amt       := NULL; -- 5132302
4958 l_entered_amt_idx            := NULL;          -- 4262811
4959 l_accted_amt_idx             := NULL;          -- 4262811
4960 l_acc_rev_flag               := NULL;          -- 4262811
4961 l_accrual_line_num           := NULL;          -- 4262811
4962 l_tmp_amt                    := NULL;          -- 4262811
4963 --
4964  
4965 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4966     l_balance_type_code <> 'B' THEN
4967 IF p_source_58 IS NOT NULL AND 
4968 NVL(p_source_15,'
4969 ') =  'NONREC_TAX' AND 
4970 NVL(p_source_59,'
4971 ') <>  'Y' AND 
4972 NVL(p_source_18,'
4973 ') <>  'Y'
4974  THEN 
4975 
4976    --
4977    XLA_AE_LINES_PKG.SetNewLine;
4978 
4979    p_balance_type_code          := l_balance_type_code;
4980    -- set the flag so later we will know whether the gain loss line needs to be created
4981    
4982    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4983      p_actual_flag :='A';
4984    END IF;
4985 
4986    --
4987    -- bulk performance
4988    --
4989    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4990                                       p_header_num   => 0); -- 4262811
4991    --
4992    -- set accounting line options
4993    --
4994    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4995            p_natural_side_code          => 'C'
4996          , p_gain_or_loss_flag          => 'N'
4997          , p_gl_transfer_mode_code      => 'S'
4998          , p_acct_entry_type_code       => 'E'
4999          , p_switch_side_flag           => 'Y'
5000          , p_merge_duplicate_code       => 'N'
5001          );
5002    --
5003    l_acc_rev_natural_side_code := 'D';  -- 4262811
5004    -- 
5005    --
5006    -- set accounting line type info
5007    --
5008    xla_ae_lines_pkg.SetAcctLineType
5009       (p_component_type             => l_component_type
5010       ,p_event_type_code            => l_event_type_code
5011       ,p_line_definition_owner_code => l_line_definition_owner_code
5012       ,p_line_definition_code       => l_line_definition_code
5013       ,p_accounting_line_code       => l_component_code
5014       ,p_accounting_line_type_code  => l_component_type_code
5015       ,p_accounting_line_appl_id    => l_component_appl_id
5016       ,p_amb_context_code           => l_amb_context_code
5017       ,p_entity_code                => l_entity_code
5018       ,p_event_class_code           => l_event_class_code);
5019    --
5020    -- set accounting class
5021    --
5022    xla_ae_lines_pkg.SetAcctClass(
5023            p_accounting_class_code  => 'PURCHASE_ORDER'
5024          , p_ae_header_id           => l_ae_header_id
5025          );
5026 
5030    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5027    --
5028    -- set rounding class
5029    --
5031                       'PURCHASE_ORDER';
5032 
5033    --
5034    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5035    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5036    --
5037    -- bulk performance
5038    --
5039    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5040 
5041    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5042       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5043 
5044    -- 4955764
5045    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5046       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5047 
5048    -- 4458381 Public Sector Enh
5049    
5050    --
5051    -- set accounting attributes for the line type
5052    --
5053    l_entered_amt_idx := 23;
5054    l_accted_amt_idx  := 25;
5055    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
5056    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5057    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
5058    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5059    l_rec_acct_attrs.array_num_value(2)  := 
5060 xla_ae_sources_pkg.GetSystemSourceNum(
5061    p_source_code           => 'XLA_EVENT_APPL_ID'
5062  , p_source_type_code      => 'Y'
5063  , p_source_application_id =>  602
5064 );
5065    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5066    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
5067    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5068    l_rec_acct_attrs.array_char_value(4)  := 
5069 xla_ae_sources_pkg.GetSystemSourceChar(
5070    p_source_code           => 'XLA_ENTITY_CODE'
5071  , p_source_type_code      => 'Y'
5072  , p_source_application_id =>  602
5073 );
5074    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5075    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
5076    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5077    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
5078    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5079    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
5080    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5081    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
5082    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5083    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
5084    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5085    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
5086    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5087    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
5088    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5089    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
5090    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5091    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
5092    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5093    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
5094    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5095    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
5096    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5097    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
5098    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5099    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
5100    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5101    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
5102    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5103    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
5104    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5105    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
5106    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5107    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
5108    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5109    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
5110    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5111    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
5112    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5113    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
5114    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
5115    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
5116    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
5117    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
5118    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
5119    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
5120    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
5121    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
5122    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
5123    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
5127    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
5124    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
5125    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
5126    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
5128    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
5129    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
5130    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
5131    l_rec_acct_attrs.array_num_value(33)  := p_source_51;
5132    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
5133    l_rec_acct_attrs.array_num_value(34)  := p_source_52;
5134    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
5135    l_rec_acct_attrs.array_num_value(35)  := p_source_53;
5136    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
5137    l_rec_acct_attrs.array_num_value(36)  := p_source_54;
5138    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
5139    l_rec_acct_attrs.array_num_value(37)  := p_source_55;
5140    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
5141    l_rec_acct_attrs.array_num_value(38)  := p_source_56;
5142 
5143    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5144    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5145 
5146    ---------------------------------------------------------------------------------------------------------------
5147    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5148    ---------------------------------------------------------------------------------------------------------------
5149    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5150 
5151    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5152    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5153 
5154    IF xla_accounting_cache_pkg.GetValueChar
5155          (p_source_code         => 'LEDGER_CATEGORY_CODE'
5156          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5157    AND l_bflow_method_code = 'PRIOR_ENTRY'
5158 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5159    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5160          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5161        )
5162    THEN
5163          xla_ae_lines_pkg.BflowUpgEntry
5164            (p_business_method_code    => l_bflow_method_code
5165            ,p_business_class_code     => l_bflow_class_code
5166            ,p_balance_type            => l_balance_type_code);
5167    ELSE
5168       NULL;
5169 XLA_AE_LINES_PKG.business_flow_validation(
5170                                 p_business_method_code     => l_bflow_method_code
5171                                ,p_business_class_code      => l_bflow_class_code
5172                                ,p_inherit_description_flag => l_inherit_desc_flag);
5173    END IF;
5174 
5175    --
5176    -- call analytical criteria
5177    --
5178    -- Inherited Analytical Criteria for business flow method of Prior Entry.
5179    --
5180    -- call description
5181    --
5182    -- No description or it is inherited.
5183    --
5184    -- call ADRs
5185    -- Bug 4922099
5186    --
5187    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5188         (NVL(l_actual_upg_option, 'N') = 'O') OR
5189         (NVL(l_enc_upg_option, 'N') = 'O')
5190       )
5191    THEN
5192    NULL;
5193    --
5194    --
5195    
5196    --
5197    --
5198    END IF;
5199    --
5200    -- Bug 4922099
5201    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5202           (NVL(l_enc_upg_option, 'N') = 'O')
5203         ) AND
5204         (l_bflow_method_code = 'PRIOR_ENTRY')
5205       )
5206    THEN
5207       IF
5208       --
5209       1 = 1
5210       --
5211       THEN
5212       xla_accounting_err_pkg.build_message
5213                                     (p_appli_s_name            => 'XLA'
5214                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5215                                     ,p_token_1                 => 'LINE_NUMBER'
5216                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
5217                                     ,p_token_2                 => 'LINE_TYPE_NAME'
5218                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
5219                                                                              l_component_type
5220                                                                             ,l_component_code
5221                                                                             ,l_component_type_code
5222                                                                             ,l_component_appl_id
5223                                                                             ,l_amb_context_code
5224                                                                             ,l_entity_code
5225                                                                             ,l_event_class_code
5226                                                                            )
5227                                     ,p_token_3                 => 'OWNER'
5228                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
5232                                     ,p_token_4                 => 'PRODUCT_NAME'
5229                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
5230                                                                           ,p_lookup_code    => l_component_type_code
5231                                                                          )
5233                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5234                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5235                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5236                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5237                                     ,p_ae_header_id            =>  NULL
5238                                        );
5239 
5240         IF (C_LEVEL_ERROR>= g_log_level) THEN
5241                  trace
5242                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5243                       ,p_level    => C_LEVEL_ERROR
5244                       ,p_module   => l_log_module);
5245         END IF;
5246       END IF;
5247    END IF;
5248    --
5249    --
5250    ------------------------------------------------------------------------------------------------
5251    -- 4219869 Business Flow
5252    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5253    -- Prior Entry.  Currently, the following code is always generated.
5254    ------------------------------------------------------------------------------------------------
5255    -- No ValidateCurrentLine for business flow method of Prior Entry
5256 
5257    ------------------------------------------------------------------------------------
5258    -- 4219869 Business Flow
5259    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5260    ------------------------------------------------------------------------------------
5261    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5262 
5263    ----------------------------------------------------------------------------------
5264    -- 4219869 Business Flow
5265    -- Update journal entry status -- Need to generate this within IF <condition>
5266    ----------------------------------------------------------------------------------
5267    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5268          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5269          ,p_balance_type_code => l_balance_type_code
5270          );
5271 
5272    -------------------------------------------------------------------------------------------
5273    -- 4262811 - Generate the Accrual Reversal lines
5274    -------------------------------------------------------------------------------------------
5275    BEGIN
5276       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5277                               (g_array_event(p_event_id).array_value_num('header_index'));
5278       IF l_acc_rev_flag IS NULL THEN
5279          l_acc_rev_flag := 'N';
5280       END IF;
5281    EXCEPTION
5282       WHEN OTHERS THEN
5283          l_acc_rev_flag := 'N';
5284    END;
5285    --
5286    IF (l_acc_rev_flag = 'Y') THEN
5287 
5288        -- 4645092  ------------------------------------------------------------------------------
5289        -- To allow MPA report to determine if it should generate report process
5290        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5291        ------------------------------------------------------------------------------------------
5292 
5293        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5294        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5295    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
5296    -- call ADRs
5297    -- Bug 4922099
5298    --
5299    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5300         (NVL(l_actual_upg_option, 'N') = 'O') OR
5301         (NVL(l_enc_upg_option, 'N') = 'O')
5302       )
5303    THEN
5304    NULL;
5305    --
5306    --
5307    
5308    --
5309    --
5310    END IF;
5311 
5312        --
5313        -- Update the line information that should be overwritten
5314        --
5315        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5316                                          p_header_num   => 1);
5317        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
5318 
5319        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5320 
5321        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
5322           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5323        END IF;
5324 
5325       --
5326       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5327       --
5328       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5329           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
5330       ELSE
5331           ---------------------------------------------------------------------------------------------------
5332           -- 4262811a Switch Sign
5333           ---------------------------------------------------------------------------------------------------
5334           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
5335           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5339           -- 5132302
5336                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5337           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5338                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5340           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5341                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5342 
5343       END IF;
5344 
5345       -- 4955764
5346       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5347       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5348 
5349 
5350       XLA_AE_LINES_PKG.ValidateCurrentLine;
5351       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5352 
5353       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5354                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5355                ,p_balance_type_code => l_balance_type_code);
5356 
5357    END IF;
5358 
5359    -----------------------------------------------------------------------------------------
5360    -- 4262811 Multiperiod Accounting
5361    -----------------------------------------------------------------------------------------
5362      -- No MPA option is assigned.
5363 
5364 
5365 END IF;
5366 END IF;
5367 --
5368 
5369 --
5370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5371    trace
5372       (p_msg      => 'END of AcctLineType_18'
5373       ,p_level    => C_LEVEL_PROCEDURE
5374       ,p_module   => l_log_module);
5375 END IF;
5376 --
5377 EXCEPTION
5378   WHEN xla_exceptions_pkg.application_exception THEN
5379       RAISE;
5380   WHEN OTHERS THEN
5381        xla_exceptions_pkg.raise_message
5382            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_18');
5383 END AcctLineType_18;
5384 --
5385 
5386 ---------------------------------------
5387 --
5388 -- PRIVATE FUNCTION
5389 --         AcctLineType_19
5390 --
5391 ---------------------------------------
5392 PROCEDURE AcctLineType_19 (
5393   p_application_id        IN NUMBER
5394  ,p_event_id              IN NUMBER
5395  ,p_calculate_acctd_flag  IN VARCHAR2
5396  ,p_calculate_g_l_flag    IN VARCHAR2
5397  ,p_actual_flag           IN OUT VARCHAR2
5398  ,p_balance_type_code     OUT VARCHAR2
5399  ,p_gain_or_loss_ref      OUT VARCHAR2
5400  
5401 --Invoice Distribution Type
5402  , p_source_15            IN VARCHAR2
5403  , p_source_15_meaning    IN VARCHAR2
5404 --Accrue on Receipt Option
5405  , p_source_18            IN VARCHAR2
5406  , p_source_18_meaning    IN VARCHAR2
5407 --Accounting Reversal Indicator
5408  , p_source_19            IN VARCHAR2
5409 --Distribution Link Type
5410  , p_source_21            IN VARCHAR2
5411 --Allocation to Main Distribution Identifier
5412  , p_source_23            IN NUMBER
5413 --Invoice Identifier
5414  , p_source_24            IN NUMBER
5415 --Invoice Distribution Identifier
5416  , p_source_30            IN NUMBER
5417 --Payables Encumbrance Upgrade Credit Account
5418  , p_source_31            IN NUMBER
5419 --Payables Encumbrance Upgrade Credit Amount
5420  , p_source_32            IN NUMBER
5421 --Invoice Currency Code
5422  , p_source_33            IN VARCHAR2
5423 --Payables Encumbrance Upgrade Credit Base Amount
5424  , p_source_34            IN NUMBER
5425 --Payables Encumbrance Upgrade Debit Account
5426  , p_source_35            IN NUMBER
5427 --Payables Encumbrance Upgrade Debit Amount
5428  , p_source_36            IN NUMBER
5429 --Payables Encumbrance Upgrade Debit Base Amount
5430  , p_source_37            IN NUMBER
5431 --Payables Encumbrance Upgrade Option
5432  , p_source_38            IN VARCHAR2
5433 --Deferred Accounting End Date
5434  , p_source_43            IN DATE
5435 --Deferred Accounting Option
5436  , p_source_44            IN VARCHAR2
5437 --Deferred Accounting Start Date
5438  , p_source_45            IN DATE
5439 --Override Accounted Amount Indicator
5440  , p_source_46            IN VARCHAR2
5441  , p_source_46_meaning    IN VARCHAR2
5442 --Third Party Type
5443  , p_source_49            IN VARCHAR2
5444 --Parent Reversal Identifier
5445  , p_source_50            IN NUMBER
5446 --Invoice Distribution Statistical Amount
5447  , p_source_51            IN NUMBER
5448 --Invoice Distribution Tax Line Identifier
5449  , p_source_52            IN NUMBER
5450 --Invoice Distribution Tax Distribution Identifier from Tax
5451  , p_source_53            IN NUMBER
5452 --Invoice Distribution Summary Tax Line Identifier
5453  , p_source_54            IN NUMBER
5454 --Payables Upgrade Credit Encumbrance Type Identifier
5455  , p_source_55            IN NUMBER
5456 --Payables Upgrade Debit Encumbrance Type Identifier
5457  , p_source_56            IN NUMBER
5458 --Purchase Order Distribution Identifier
5459  , p_source_58            IN NUMBER
5460 --Business Flow Purchasing Application Identifier
5461  , p_source_60            IN NUMBER
5462 --Business Flow Purchase Order Distribution Type
5463  , p_source_61            IN VARCHAR2
5464 --Business Flow Purchase Order Entity Code
5465  , p_source_62            IN VARCHAR2
5466 --Business Flow Purchase Order Distribution Identifier
5467  , p_source_63            IN NUMBER
5471  , p_source_65            IN NUMBER
5468 --Business Flow Purchasing Document Identifier
5469  , p_source_64            IN NUMBER
5470 --Invoice Distribution Encumbrance Amount
5472 --Invoice Distribution Encumbrance Ledger Amount
5473  , p_source_66            IN NUMBER
5474 )
5475 IS
5476 
5477 l_component_type              VARCHAR2(80);
5478 l_component_code              VARCHAR2(30);
5479 l_component_type_code         VARCHAR2(1);
5480 l_component_appl_id           INTEGER;
5481 l_amb_context_code            VARCHAR2(30);
5482 l_entity_code                 VARCHAR2(30);
5483 l_event_class_code            VARCHAR2(30);
5484 l_ae_header_id                NUMBER;
5485 l_event_type_code             VARCHAR2(30);
5486 l_line_definition_code        VARCHAR2(30);
5487 l_line_definition_owner_code  VARCHAR2(1);
5488 --
5489 -- adr variables
5490 l_segment                     VARCHAR2(30);
5491 l_ccid                        NUMBER;
5492 l_adr_transaction_coa_id      NUMBER;
5493 l_adr_accounting_coa_id       NUMBER;
5494 l_adr_flexfield_segment_code  VARCHAR2(30);
5495 l_adr_flex_value_set_id       NUMBER;
5496 l_adr_value_type_code         VARCHAR2(30);
5497 l_adr_value_combination_id    NUMBER;
5498 l_adr_value_segment_code      VARCHAR2(30);
5499 
5500 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
5501 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
5502 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
5503 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
5504 
5505 -- 4262811 Variables ------------------------------------------------------------------------------------------
5506 l_entered_amt_idx             NUMBER;
5507 l_accted_amt_idx              NUMBER;
5508 l_acc_rev_flag                VARCHAR2(1);
5509 l_accrual_line_num            NUMBER;
5510 l_tmp_amt                     NUMBER;
5511 l_acc_rev_natural_side_code   VARCHAR2(1);
5512 
5513 l_num_entries                 NUMBER;
5514 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
5515 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
5516 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
5517 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
5518 l_recog_line_1                NUMBER;
5519 l_recog_line_2                NUMBER;
5520 
5521 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
5522 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
5523 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
5524 
5525 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5526 
5527 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
5528 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
5529 
5530 ---------------------------------------------------------------------------------------------------------------
5531 
5532 
5533 --
5534 -- bulk performance
5535 --
5536 l_balance_type_code           VARCHAR2(1);
5537 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
5538 l_log_module                  VARCHAR2(240);
5539 
5540 --
5541 -- Upgrade strategy
5542 --
5543 l_actual_upg_option           VARCHAR2(1);
5544 l_enc_upg_option           VARCHAR2(1);
5545 
5546 --
5547 BEGIN
5548 --
5549 IF g_log_enabled THEN
5550       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_19';
5551 END IF;
5552 --
5553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5554 
5555       trace
5556          (p_msg      => 'BEGIN of AcctLineType_19'
5557          ,p_level    => C_LEVEL_PROCEDURE
5558          ,p_module   => l_log_module);
5559 
5560 END IF;
5561 --
5562 l_component_type             := 'AMB_JLT';
5563 l_component_code             := 'AP_CM_PO_ENCUMBRANCE';
5564 l_component_type_code        := 'S';
5565 l_component_appl_id          :=  200;
5566 l_amb_context_code           := 'DEFAULT';
5567 l_entity_code                := 'AP_INVOICES';
5568 l_event_class_code           := 'CREDIT MEMOS';
5569 l_event_type_code            := 'CREDIT MEMOS_ALL';
5570 l_line_definition_owner_code := 'S';
5571 l_line_definition_code       := 'ENC_CM_ALL';
5572 --
5573 l_balance_type_code          := 'E';
5574 l_segment                     := NULL;
5575 l_ccid                        := NULL;
5576 l_adr_transaction_coa_id      := NULL;
5577 l_adr_accounting_coa_id       := NULL;
5578 l_adr_flexfield_segment_code  := NULL;
5579 l_adr_flex_value_set_id       := NULL;
5580 l_adr_value_type_code         := NULL;
5581 l_adr_value_combination_id    := NULL;
5582 l_adr_value_segment_code      := NULL;
5583 
5584 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
5585 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
5586 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
5587 l_budgetary_control_flag     := 'Y';
5588 
5589 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
5590 l_bflow_applied_to_amt       := NULL; -- 5132302
5591 l_entered_amt_idx            := NULL;          -- 4262811
5592 l_accted_amt_idx             := NULL;          -- 4262811
5593 l_acc_rev_flag               := NULL;          -- 4262811
5594 l_accrual_line_num           := NULL;          -- 4262811
5595 l_tmp_amt                    := NULL;          -- 4262811
5596 --
5597  
5601 (NVL(p_source_15,'
5598 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5599     l_balance_type_code <> 'B' THEN
5600 IF p_source_58 IS NOT NULL AND 
5602 ') =  'ACCRUAL' OR 
5603 NVL(p_source_15,'
5604 ') =  'ITEM') AND 
5605 NVL(p_source_18,'
5606 ') <>  'Y'
5607  THEN 
5608 
5609    --
5610    XLA_AE_LINES_PKG.SetNewLine;
5611 
5612    p_balance_type_code          := l_balance_type_code;
5613    -- set the flag so later we will know whether the gain loss line needs to be created
5614    
5615    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5616      p_actual_flag :='A';
5617    END IF;
5618 
5619    --
5620    -- bulk performance
5621    --
5622    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5623                                       p_header_num   => 0); -- 4262811
5624    --
5625    -- set accounting line options
5626    --
5627    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5628            p_natural_side_code          => 'C'
5629          , p_gain_or_loss_flag          => 'N'
5630          , p_gl_transfer_mode_code      => 'S'
5631          , p_acct_entry_type_code       => 'E'
5632          , p_switch_side_flag           => 'Y'
5633          , p_merge_duplicate_code       => 'N'
5634          );
5635    --
5636    l_acc_rev_natural_side_code := 'D';  -- 4262811
5637    -- 
5638    --
5639    -- set accounting line type info
5640    --
5641    xla_ae_lines_pkg.SetAcctLineType
5642       (p_component_type             => l_component_type
5643       ,p_event_type_code            => l_event_type_code
5644       ,p_line_definition_owner_code => l_line_definition_owner_code
5645       ,p_line_definition_code       => l_line_definition_code
5646       ,p_accounting_line_code       => l_component_code
5647       ,p_accounting_line_type_code  => l_component_type_code
5648       ,p_accounting_line_appl_id    => l_component_appl_id
5649       ,p_amb_context_code           => l_amb_context_code
5650       ,p_entity_code                => l_entity_code
5651       ,p_event_class_code           => l_event_class_code);
5652    --
5653    -- set accounting class
5654    --
5655    xla_ae_lines_pkg.SetAcctClass(
5656            p_accounting_class_code  => 'PURCHASE_ORDER'
5657          , p_ae_header_id           => l_ae_header_id
5658          );
5659 
5660    --
5661    -- set rounding class
5662    --
5663    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5664                       'PURCHASE_ORDER';
5665 
5666    --
5667    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5668    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5669    --
5670    -- bulk performance
5671    --
5672    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5673 
5674    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5675       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5676 
5677    -- 4955764
5678    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5679       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5680 
5681    -- 4458381 Public Sector Enh
5682    
5683    --
5684    -- set accounting attributes for the line type
5685    --
5686    l_entered_amt_idx := 23;
5687    l_accted_amt_idx  := 25;
5688    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
5689    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5690    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
5691    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5692    l_rec_acct_attrs.array_num_value(2)  := 
5693 xla_ae_sources_pkg.GetSystemSourceNum(
5694    p_source_code           => 'XLA_EVENT_APPL_ID'
5695  , p_source_type_code      => 'Y'
5696  , p_source_application_id =>  602
5697 );
5698    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5699    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
5700    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5701    l_rec_acct_attrs.array_char_value(4)  := 
5702 xla_ae_sources_pkg.GetSystemSourceChar(
5703    p_source_code           => 'XLA_ENTITY_CODE'
5704  , p_source_type_code      => 'Y'
5705  , p_source_application_id =>  602
5706 );
5707    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5708    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
5709    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5710    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
5711    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5712    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
5713    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5714    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
5715    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5716    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
5717    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5718    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
5719    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5723    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5720    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
5721    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5722    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
5724    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
5725    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5726    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
5727    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5728    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
5729    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5730    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
5731    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5732    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
5733    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5734    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
5735    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5736    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
5737    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5738    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
5739    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5740    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
5741    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5742    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
5743    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5744    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
5745    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5746    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
5747    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
5748    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
5749    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
5750    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
5751    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
5752    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
5753    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
5754    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
5755    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
5756    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
5757    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
5758    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
5759    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
5760    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
5761    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
5762    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
5763    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
5764    l_rec_acct_attrs.array_num_value(33)  := p_source_51;
5765    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
5766    l_rec_acct_attrs.array_num_value(34)  := p_source_52;
5767    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
5768    l_rec_acct_attrs.array_num_value(35)  := p_source_53;
5769    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
5770    l_rec_acct_attrs.array_num_value(36)  := p_source_54;
5771    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
5772    l_rec_acct_attrs.array_num_value(37)  := p_source_55;
5773    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
5774    l_rec_acct_attrs.array_num_value(38)  := p_source_56;
5775 
5776    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5777    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5778 
5779    ---------------------------------------------------------------------------------------------------------------
5780    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5781    ---------------------------------------------------------------------------------------------------------------
5782    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5783 
5784    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5785    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5786 
5787    IF xla_accounting_cache_pkg.GetValueChar
5788          (p_source_code         => 'LEDGER_CATEGORY_CODE'
5789          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5790    AND l_bflow_method_code = 'PRIOR_ENTRY'
5791 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5792    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5793          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5794        )
5795    THEN
5796          xla_ae_lines_pkg.BflowUpgEntry
5797            (p_business_method_code    => l_bflow_method_code
5798            ,p_business_class_code     => l_bflow_class_code
5799            ,p_balance_type            => l_balance_type_code);
5800    ELSE
5801       NULL;
5802 XLA_AE_LINES_PKG.business_flow_validation(
5803                                 p_business_method_code     => l_bflow_method_code
5804                                ,p_business_class_code      => l_bflow_class_code
5805                                ,p_inherit_description_flag => l_inherit_desc_flag);
5806    END IF;
5807 
5811    -- Inherited Analytical Criteria for business flow method of Prior Entry.
5808    --
5809    -- call analytical criteria
5810    --
5812    --
5813    -- call description
5814    --
5815    -- No description or it is inherited.
5816    --
5817    -- call ADRs
5818    -- Bug 4922099
5819    --
5820    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5821         (NVL(l_actual_upg_option, 'N') = 'O') OR
5822         (NVL(l_enc_upg_option, 'N') = 'O')
5823       )
5824    THEN
5825    NULL;
5826    --
5827    --
5828    
5829    --
5830    --
5831    END IF;
5832    --
5833    -- Bug 4922099
5834    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5835           (NVL(l_enc_upg_option, 'N') = 'O')
5836         ) AND
5837         (l_bflow_method_code = 'PRIOR_ENTRY')
5838       )
5839    THEN
5840       IF
5841       --
5842       1 = 1
5843       --
5844       THEN
5845       xla_accounting_err_pkg.build_message
5846                                     (p_appli_s_name            => 'XLA'
5847                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5848                                     ,p_token_1                 => 'LINE_NUMBER'
5849                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
5850                                     ,p_token_2                 => 'LINE_TYPE_NAME'
5851                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
5852                                                                              l_component_type
5853                                                                             ,l_component_code
5854                                                                             ,l_component_type_code
5855                                                                             ,l_component_appl_id
5856                                                                             ,l_amb_context_code
5857                                                                             ,l_entity_code
5858                                                                             ,l_event_class_code
5859                                                                            )
5860                                     ,p_token_3                 => 'OWNER'
5861                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
5862                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
5863                                                                           ,p_lookup_code    => l_component_type_code
5864                                                                          )
5865                                     ,p_token_4                 => 'PRODUCT_NAME'
5866                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5867                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5868                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5869                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5870                                     ,p_ae_header_id            =>  NULL
5871                                        );
5872 
5873         IF (C_LEVEL_ERROR>= g_log_level) THEN
5874                  trace
5875                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5876                       ,p_level    => C_LEVEL_ERROR
5877                       ,p_module   => l_log_module);
5878         END IF;
5879       END IF;
5880    END IF;
5881    --
5882    --
5883    ------------------------------------------------------------------------------------------------
5884    -- 4219869 Business Flow
5885    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5886    -- Prior Entry.  Currently, the following code is always generated.
5887    ------------------------------------------------------------------------------------------------
5888    -- No ValidateCurrentLine for business flow method of Prior Entry
5889 
5890    ------------------------------------------------------------------------------------
5891    -- 4219869 Business Flow
5892    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5893    ------------------------------------------------------------------------------------
5894    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5895 
5896    ----------------------------------------------------------------------------------
5897    -- 4219869 Business Flow
5898    -- Update journal entry status -- Need to generate this within IF <condition>
5899    ----------------------------------------------------------------------------------
5900    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5901          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5902          ,p_balance_type_code => l_balance_type_code
5903          );
5904 
5905    -------------------------------------------------------------------------------------------
5906    -- 4262811 - Generate the Accrual Reversal lines
5907    -------------------------------------------------------------------------------------------
5908    BEGIN
5909       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5910                               (g_array_event(p_event_id).array_value_num('header_index'));
5911       IF l_acc_rev_flag IS NULL THEN
5912          l_acc_rev_flag := 'N';
5916          l_acc_rev_flag := 'N';
5913       END IF;
5914    EXCEPTION
5915       WHEN OTHERS THEN
5917    END;
5918    --
5919    IF (l_acc_rev_flag = 'Y') THEN
5920 
5921        -- 4645092  ------------------------------------------------------------------------------
5922        -- To allow MPA report to determine if it should generate report process
5923        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5924        ------------------------------------------------------------------------------------------
5925 
5926        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5927        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5928    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
5929    -- call ADRs
5930    -- Bug 4922099
5931    --
5932    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5933         (NVL(l_actual_upg_option, 'N') = 'O') OR
5934         (NVL(l_enc_upg_option, 'N') = 'O')
5935       )
5936    THEN
5937    NULL;
5938    --
5939    --
5940    
5941    --
5942    --
5943    END IF;
5944 
5945        --
5946        -- Update the line information that should be overwritten
5947        --
5948        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5949                                          p_header_num   => 1);
5950        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
5951 
5952        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5953 
5954        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
5955           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5956        END IF;
5957 
5958       --
5959       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5960       --
5961       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5962           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
5963       ELSE
5964           ---------------------------------------------------------------------------------------------------
5965           -- 4262811a Switch Sign
5966           ---------------------------------------------------------------------------------------------------
5967           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
5968           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5969                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5970           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5971                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5972           -- 5132302
5973           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5974                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5975 
5976       END IF;
5977 
5978       -- 4955764
5979       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5980       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5981 
5982 
5983       XLA_AE_LINES_PKG.ValidateCurrentLine;
5984       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5985 
5986       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5987                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5988                ,p_balance_type_code => l_balance_type_code);
5989 
5990    END IF;
5991 
5992    -----------------------------------------------------------------------------------------
5993    -- 4262811 Multiperiod Accounting
5994    -----------------------------------------------------------------------------------------
5995      -- No MPA option is assigned.
5996 
5997 
5998 END IF;
5999 END IF;
6000 --
6001 
6002 --
6003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6004    trace
6005       (p_msg      => 'END of AcctLineType_19'
6006       ,p_level    => C_LEVEL_PROCEDURE
6007       ,p_module   => l_log_module);
6008 END IF;
6009 --
6010 EXCEPTION
6011   WHEN xla_exceptions_pkg.application_exception THEN
6012       RAISE;
6013   WHEN OTHERS THEN
6014        xla_exceptions_pkg.raise_message
6015            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_19');
6016 END AcctLineType_19;
6017 --
6018 
6019 ---------------------------------------
6020 --
6021 -- PRIVATE FUNCTION
6022 --         AcctLineType_20
6023 --
6024 ---------------------------------------
6025 PROCEDURE AcctLineType_20 (
6026   p_application_id        IN NUMBER
6027  ,p_event_id              IN NUMBER
6028  ,p_calculate_acctd_flag  IN VARCHAR2
6029  ,p_calculate_g_l_flag    IN VARCHAR2
6030  ,p_actual_flag           IN OUT VARCHAR2
6031  ,p_balance_type_code     OUT VARCHAR2
6032  ,p_gain_or_loss_ref      OUT VARCHAR2
6033  
6034 --Invoice Distribution Type
6035  , p_source_15            IN VARCHAR2
6036  , p_source_15_meaning    IN VARCHAR2
6037 --Accrue on Receipt Option
6041  , p_source_19            IN VARCHAR2
6038  , p_source_18            IN VARCHAR2
6039  , p_source_18_meaning    IN VARCHAR2
6040 --Accounting Reversal Indicator
6042 --Distribution Link Type
6043  , p_source_21            IN VARCHAR2
6044 --Allocation to Main Distribution Identifier
6045  , p_source_23            IN NUMBER
6046 --Invoice Identifier
6047  , p_source_24            IN NUMBER
6048 --Invoice Distribution Identifier
6049  , p_source_30            IN NUMBER
6050 --Payables Encumbrance Upgrade Credit Account
6051  , p_source_31            IN NUMBER
6052 --Payables Encumbrance Upgrade Credit Amount
6053  , p_source_32            IN NUMBER
6054 --Invoice Currency Code
6055  , p_source_33            IN VARCHAR2
6056 --Payables Encumbrance Upgrade Credit Base Amount
6057  , p_source_34            IN NUMBER
6058 --Payables Encumbrance Upgrade Debit Account
6059  , p_source_35            IN NUMBER
6060 --Payables Encumbrance Upgrade Debit Amount
6061  , p_source_36            IN NUMBER
6062 --Payables Encumbrance Upgrade Debit Base Amount
6063  , p_source_37            IN NUMBER
6064 --Payables Encumbrance Upgrade Option
6065  , p_source_38            IN VARCHAR2
6066 --Deferred Accounting End Date
6067  , p_source_43            IN DATE
6068 --Deferred Accounting Option
6069  , p_source_44            IN VARCHAR2
6070 --Deferred Accounting Start Date
6071  , p_source_45            IN DATE
6072 --Override Accounted Amount Indicator
6073  , p_source_46            IN VARCHAR2
6074  , p_source_46_meaning    IN VARCHAR2
6075 --Third Party Type
6076  , p_source_49            IN VARCHAR2
6077 --Parent Reversal Identifier
6078  , p_source_50            IN NUMBER
6079 --Invoice Distribution Tax Line Identifier
6080  , p_source_52            IN NUMBER
6081 --Invoice Distribution Tax Distribution Identifier from Tax
6082  , p_source_53            IN NUMBER
6083 --Invoice Distribution Summary Tax Line Identifier
6084  , p_source_54            IN NUMBER
6085 --Payables Upgrade Credit Encumbrance Type Identifier
6086  , p_source_55            IN NUMBER
6087 --Payables Upgrade Debit Encumbrance Type Identifier
6088  , p_source_56            IN NUMBER
6089 --Purchase Order Distribution Identifier
6090  , p_source_58            IN NUMBER
6091 --Self-Assessed Tax Flag
6092  , p_source_59            IN VARCHAR2
6093  , p_source_59_meaning    IN VARCHAR2
6094 --Business Flow Purchasing Application Identifier
6095  , p_source_60            IN NUMBER
6096 --Business Flow Purchase Order Distribution Type
6097  , p_source_61            IN VARCHAR2
6098 --Business Flow Purchase Order Entity Code
6099  , p_source_62            IN VARCHAR2
6100 --Business Flow Purchase Order Distribution Identifier
6101  , p_source_63            IN NUMBER
6102 --Business Flow Purchasing Document Identifier
6103  , p_source_64            IN NUMBER
6104 --Invoice Distribution Encumbrance Amount
6105  , p_source_65            IN NUMBER
6106 --Invoice Distribution Encumbrance Ledger Amount
6107  , p_source_66            IN NUMBER
6108 )
6109 IS
6110 
6111 l_component_type              VARCHAR2(80);
6112 l_component_code              VARCHAR2(30);
6113 l_component_type_code         VARCHAR2(1);
6114 l_component_appl_id           INTEGER;
6115 l_amb_context_code            VARCHAR2(30);
6116 l_entity_code                 VARCHAR2(30);
6117 l_event_class_code            VARCHAR2(30);
6118 l_ae_header_id                NUMBER;
6119 l_event_type_code             VARCHAR2(30);
6120 l_line_definition_code        VARCHAR2(30);
6121 l_line_definition_owner_code  VARCHAR2(1);
6122 --
6123 -- adr variables
6124 l_segment                     VARCHAR2(30);
6125 l_ccid                        NUMBER;
6126 l_adr_transaction_coa_id      NUMBER;
6127 l_adr_accounting_coa_id       NUMBER;
6128 l_adr_flexfield_segment_code  VARCHAR2(30);
6129 l_adr_flex_value_set_id       NUMBER;
6130 l_adr_value_type_code         VARCHAR2(30);
6131 l_adr_value_combination_id    NUMBER;
6132 l_adr_value_segment_code      VARCHAR2(30);
6133 
6134 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6135 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6136 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6137 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6138 
6139 -- 4262811 Variables ------------------------------------------------------------------------------------------
6140 l_entered_amt_idx             NUMBER;
6141 l_accted_amt_idx              NUMBER;
6142 l_acc_rev_flag                VARCHAR2(1);
6143 l_accrual_line_num            NUMBER;
6144 l_tmp_amt                     NUMBER;
6145 l_acc_rev_natural_side_code   VARCHAR2(1);
6146 
6147 l_num_entries                 NUMBER;
6148 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6149 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6150 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6151 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6152 l_recog_line_1                NUMBER;
6153 l_recog_line_2                NUMBER;
6154 
6155 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6156 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6157 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6158 
6159 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6163 
6160 
6161 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6162 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6164 ---------------------------------------------------------------------------------------------------------------
6165 
6166 
6167 --
6168 -- bulk performance
6169 --
6170 l_balance_type_code           VARCHAR2(1);
6171 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6172 l_log_module                  VARCHAR2(240);
6173 
6174 --
6175 -- Upgrade strategy
6176 --
6177 l_actual_upg_option           VARCHAR2(1);
6178 l_enc_upg_option           VARCHAR2(1);
6179 
6180 --
6181 BEGIN
6182 --
6183 IF g_log_enabled THEN
6184       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
6185 END IF;
6186 --
6187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6188 
6189       trace
6190          (p_msg      => 'BEGIN of AcctLineType_20'
6191          ,p_level    => C_LEVEL_PROCEDURE
6192          ,p_module   => l_log_module);
6193 
6194 END IF;
6195 --
6196 l_component_type             := 'AMB_JLT';
6197 l_component_code             := 'AP_DM_NON_REC_TAX_PO_ENC';
6198 l_component_type_code        := 'S';
6199 l_component_appl_id          :=  200;
6200 l_amb_context_code           := 'DEFAULT';
6201 l_entity_code                := 'AP_INVOICES';
6202 l_event_class_code           := 'DEBIT MEMOS';
6203 l_event_type_code            := 'DEBIT MEMOS_ALL';
6204 l_line_definition_owner_code := 'S';
6205 l_line_definition_code       := 'ENC_DM_ALL';
6206 --
6207 l_balance_type_code          := 'E';
6208 l_segment                     := NULL;
6209 l_ccid                        := NULL;
6210 l_adr_transaction_coa_id      := NULL;
6211 l_adr_accounting_coa_id       := NULL;
6212 l_adr_flexfield_segment_code  := NULL;
6213 l_adr_flex_value_set_id       := NULL;
6214 l_adr_value_type_code         := NULL;
6215 l_adr_value_combination_id    := NULL;
6216 l_adr_value_segment_code      := NULL;
6217 
6218 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
6219 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
6220 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
6221 l_budgetary_control_flag     := 'Y';
6222 
6223 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6224 l_bflow_applied_to_amt       := NULL; -- 5132302
6225 l_entered_amt_idx            := NULL;          -- 4262811
6226 l_accted_amt_idx             := NULL;          -- 4262811
6227 l_acc_rev_flag               := NULL;          -- 4262811
6228 l_accrual_line_num           := NULL;          -- 4262811
6229 l_tmp_amt                    := NULL;          -- 4262811
6230 --
6231  
6232 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6233     l_balance_type_code <> 'B' THEN
6234 IF p_source_58 IS NOT NULL AND 
6235 NVL(p_source_15,'
6236 ') =  'NONREC_TAX' AND 
6237 NVL(p_source_59,'
6238 ') <>  'Y' AND 
6239 NVL(p_source_18,'
6240 ') <>  'Y'
6241  THEN 
6242 
6243    --
6244    XLA_AE_LINES_PKG.SetNewLine;
6245 
6246    p_balance_type_code          := l_balance_type_code;
6247    -- set the flag so later we will know whether the gain loss line needs to be created
6248    
6249    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6250      p_actual_flag :='A';
6251    END IF;
6252 
6253    --
6254    -- bulk performance
6255    --
6256    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6257                                       p_header_num   => 0); -- 4262811
6258    --
6259    -- set accounting line options
6260    --
6261    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6262            p_natural_side_code          => 'C'
6263          , p_gain_or_loss_flag          => 'N'
6264          , p_gl_transfer_mode_code      => 'S'
6265          , p_acct_entry_type_code       => 'E'
6266          , p_switch_side_flag           => 'Y'
6267          , p_merge_duplicate_code       => 'N'
6268          );
6269    --
6270    l_acc_rev_natural_side_code := 'D';  -- 4262811
6271    -- 
6272    --
6273    -- set accounting line type info
6274    --
6275    xla_ae_lines_pkg.SetAcctLineType
6276       (p_component_type             => l_component_type
6277       ,p_event_type_code            => l_event_type_code
6278       ,p_line_definition_owner_code => l_line_definition_owner_code
6279       ,p_line_definition_code       => l_line_definition_code
6280       ,p_accounting_line_code       => l_component_code
6281       ,p_accounting_line_type_code  => l_component_type_code
6282       ,p_accounting_line_appl_id    => l_component_appl_id
6283       ,p_amb_context_code           => l_amb_context_code
6284       ,p_entity_code                => l_entity_code
6285       ,p_event_class_code           => l_event_class_code);
6286    --
6287    -- set accounting class
6288    --
6289    xla_ae_lines_pkg.SetAcctClass(
6290            p_accounting_class_code  => 'PURCHASE_ORDER'
6291          , p_ae_header_id           => l_ae_header_id
6292          );
6293 
6294    --
6295    -- set rounding class
6296    --
6297    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6298                       'PURCHASE_ORDER';
6299 
6300    --
6301    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6305    --
6302    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6303    --
6304    -- bulk performance
6306    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6307 
6308    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6309       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6310 
6311    -- 4955764
6312    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6313       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6314 
6315    -- 4458381 Public Sector Enh
6316    
6317    --
6318    -- set accounting attributes for the line type
6319    --
6320    l_entered_amt_idx := 23;
6321    l_accted_amt_idx  := 25;
6322    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6323    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6324    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
6325    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6326    l_rec_acct_attrs.array_num_value(2)  := 
6327 xla_ae_sources_pkg.GetSystemSourceNum(
6328    p_source_code           => 'XLA_EVENT_APPL_ID'
6329  , p_source_type_code      => 'Y'
6330  , p_source_application_id =>  602
6331 );
6332    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6333    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
6334    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6335    l_rec_acct_attrs.array_char_value(4)  := 
6336 xla_ae_sources_pkg.GetSystemSourceChar(
6337    p_source_code           => 'XLA_ENTITY_CODE'
6338  , p_source_type_code      => 'Y'
6339  , p_source_application_id =>  602
6340 );
6341    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6342    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
6343    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6344    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
6345    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6346    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
6347    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6348    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
6349    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6350    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
6351    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6352    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
6353    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6354    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
6355    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6356    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
6357    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6358    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
6359    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6360    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
6361    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6362    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
6363    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6364    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
6365    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6366    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
6367    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6368    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
6369    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6370    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
6371    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6372    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
6373    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6374    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
6375    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6376    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
6377    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6378    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
6379    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6380    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
6381    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
6382    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
6383    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
6384    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
6385    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
6386    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
6387    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
6388    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
6389    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
6390    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
6391    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
6392    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
6393    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
6394    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
6395    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
6399    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
6396    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
6397    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
6398    l_rec_acct_attrs.array_num_value(33)  := p_source_52;
6400    l_rec_acct_attrs.array_num_value(34)  := p_source_53;
6401    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
6402    l_rec_acct_attrs.array_num_value(35)  := p_source_54;
6403    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
6404    l_rec_acct_attrs.array_num_value(36)  := p_source_55;
6405    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
6406    l_rec_acct_attrs.array_num_value(37)  := p_source_56;
6407 
6408    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6409    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6410 
6411    ---------------------------------------------------------------------------------------------------------------
6412    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6413    ---------------------------------------------------------------------------------------------------------------
6414    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6415 
6416    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6417    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6418 
6419    IF xla_accounting_cache_pkg.GetValueChar
6420          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6421          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6422    AND l_bflow_method_code = 'PRIOR_ENTRY'
6423 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6424    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6425          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6426        )
6427    THEN
6428          xla_ae_lines_pkg.BflowUpgEntry
6429            (p_business_method_code    => l_bflow_method_code
6430            ,p_business_class_code     => l_bflow_class_code
6431            ,p_balance_type            => l_balance_type_code);
6432    ELSE
6433       NULL;
6434 XLA_AE_LINES_PKG.business_flow_validation(
6435                                 p_business_method_code     => l_bflow_method_code
6436                                ,p_business_class_code      => l_bflow_class_code
6437                                ,p_inherit_description_flag => l_inherit_desc_flag);
6438    END IF;
6439 
6440    --
6441    -- call analytical criteria
6442    --
6443    -- Inherited Analytical Criteria for business flow method of Prior Entry.
6444    --
6445    -- call description
6446    --
6447    -- No description or it is inherited.
6448    --
6449    -- call ADRs
6450    -- Bug 4922099
6451    --
6452    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6453         (NVL(l_actual_upg_option, 'N') = 'O') OR
6454         (NVL(l_enc_upg_option, 'N') = 'O')
6455       )
6456    THEN
6457    NULL;
6458    --
6459    --
6460    
6461    --
6462    --
6463    END IF;
6464    --
6465    -- Bug 4922099
6466    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6467           (NVL(l_enc_upg_option, 'N') = 'O')
6468         ) AND
6469         (l_bflow_method_code = 'PRIOR_ENTRY')
6470       )
6471    THEN
6472       IF
6473       --
6474       1 = 1
6475       --
6476       THEN
6477       xla_accounting_err_pkg.build_message
6478                                     (p_appli_s_name            => 'XLA'
6479                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6480                                     ,p_token_1                 => 'LINE_NUMBER'
6481                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
6482                                     ,p_token_2                 => 'LINE_TYPE_NAME'
6483                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
6484                                                                              l_component_type
6485                                                                             ,l_component_code
6486                                                                             ,l_component_type_code
6487                                                                             ,l_component_appl_id
6488                                                                             ,l_amb_context_code
6489                                                                             ,l_entity_code
6490                                                                             ,l_event_class_code
6491                                                                            )
6492                                     ,p_token_3                 => 'OWNER'
6493                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
6494                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
6495                                                                           ,p_lookup_code    => l_component_type_code
6496                                                                          )
6497                                     ,p_token_4                 => 'PRODUCT_NAME'
6501                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6498                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6499                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6500                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6502                                     ,p_ae_header_id            =>  NULL
6503                                        );
6504 
6505         IF (C_LEVEL_ERROR>= g_log_level) THEN
6506                  trace
6507                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6508                       ,p_level    => C_LEVEL_ERROR
6509                       ,p_module   => l_log_module);
6510         END IF;
6511       END IF;
6512    END IF;
6513    --
6514    --
6515    ------------------------------------------------------------------------------------------------
6516    -- 4219869 Business Flow
6517    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6518    -- Prior Entry.  Currently, the following code is always generated.
6519    ------------------------------------------------------------------------------------------------
6520    -- No ValidateCurrentLine for business flow method of Prior Entry
6521 
6522    ------------------------------------------------------------------------------------
6523    -- 4219869 Business Flow
6524    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6525    ------------------------------------------------------------------------------------
6526    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6527 
6528    ----------------------------------------------------------------------------------
6529    -- 4219869 Business Flow
6530    -- Update journal entry status -- Need to generate this within IF <condition>
6531    ----------------------------------------------------------------------------------
6532    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6533          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6534          ,p_balance_type_code => l_balance_type_code
6535          );
6536 
6537    -------------------------------------------------------------------------------------------
6538    -- 4262811 - Generate the Accrual Reversal lines
6539    -------------------------------------------------------------------------------------------
6540    BEGIN
6541       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6542                               (g_array_event(p_event_id).array_value_num('header_index'));
6543       IF l_acc_rev_flag IS NULL THEN
6544          l_acc_rev_flag := 'N';
6545       END IF;
6546    EXCEPTION
6547       WHEN OTHERS THEN
6548          l_acc_rev_flag := 'N';
6549    END;
6550    --
6551    IF (l_acc_rev_flag = 'Y') THEN
6552 
6553        -- 4645092  ------------------------------------------------------------------------------
6554        -- To allow MPA report to determine if it should generate report process
6555        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6556        ------------------------------------------------------------------------------------------
6557 
6558        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6559        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6560    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
6561    -- call ADRs
6562    -- Bug 4922099
6563    --
6564    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6565         (NVL(l_actual_upg_option, 'N') = 'O') OR
6566         (NVL(l_enc_upg_option, 'N') = 'O')
6567       )
6568    THEN
6569    NULL;
6570    --
6571    --
6572    
6573    --
6574    --
6575    END IF;
6576 
6577        --
6578        -- Update the line information that should be overwritten
6579        --
6580        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6581                                          p_header_num   => 1);
6582        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
6583 
6584        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6585 
6586        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
6587           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6588        END IF;
6589 
6590       --
6591       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6592       --
6593       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6594           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
6595       ELSE
6596           ---------------------------------------------------------------------------------------------------
6597           -- 4262811a Switch Sign
6598           ---------------------------------------------------------------------------------------------------
6599           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
6600           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6601                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6605           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6602           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6603                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6604           -- 5132302
6606                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6607 
6608       END IF;
6609 
6610       -- 4955764
6611       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6612       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6613 
6614 
6615       XLA_AE_LINES_PKG.ValidateCurrentLine;
6616       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6617 
6618       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6619                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6620                ,p_balance_type_code => l_balance_type_code);
6621 
6622    END IF;
6623 
6624    -----------------------------------------------------------------------------------------
6625    -- 4262811 Multiperiod Accounting
6626    -----------------------------------------------------------------------------------------
6627      -- No MPA option is assigned.
6628 
6629 
6630 END IF;
6631 END IF;
6632 --
6633 
6634 --
6635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6636    trace
6637       (p_msg      => 'END of AcctLineType_20'
6638       ,p_level    => C_LEVEL_PROCEDURE
6639       ,p_module   => l_log_module);
6640 END IF;
6641 --
6642 EXCEPTION
6643   WHEN xla_exceptions_pkg.application_exception THEN
6644       RAISE;
6645   WHEN OTHERS THEN
6646        xla_exceptions_pkg.raise_message
6647            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_20');
6648 END AcctLineType_20;
6649 --
6650 
6651 ---------------------------------------
6652 --
6653 -- PRIVATE FUNCTION
6654 --         AcctLineType_21
6655 --
6656 ---------------------------------------
6657 PROCEDURE AcctLineType_21 (
6658   p_application_id        IN NUMBER
6659  ,p_event_id              IN NUMBER
6660  ,p_calculate_acctd_flag  IN VARCHAR2
6661  ,p_calculate_g_l_flag    IN VARCHAR2
6662  ,p_actual_flag           IN OUT VARCHAR2
6663  ,p_balance_type_code     OUT VARCHAR2
6664  ,p_gain_or_loss_ref      OUT VARCHAR2
6665  
6666 --Invoice Distribution Type
6667  , p_source_15            IN VARCHAR2
6668  , p_source_15_meaning    IN VARCHAR2
6669 --Accrue on Receipt Option
6670  , p_source_18            IN VARCHAR2
6671  , p_source_18_meaning    IN VARCHAR2
6672 --Accounting Reversal Indicator
6673  , p_source_19            IN VARCHAR2
6674 --Distribution Link Type
6675  , p_source_21            IN VARCHAR2
6676 --Allocation to Main Distribution Identifier
6677  , p_source_23            IN NUMBER
6678 --Invoice Identifier
6679  , p_source_24            IN NUMBER
6680 --Invoice Distribution Identifier
6681  , p_source_30            IN NUMBER
6682 --Payables Encumbrance Upgrade Credit Account
6683  , p_source_31            IN NUMBER
6684 --Payables Encumbrance Upgrade Credit Amount
6685  , p_source_32            IN NUMBER
6686 --Invoice Currency Code
6687  , p_source_33            IN VARCHAR2
6688 --Payables Encumbrance Upgrade Credit Base Amount
6689  , p_source_34            IN NUMBER
6690 --Payables Encumbrance Upgrade Debit Account
6691  , p_source_35            IN NUMBER
6692 --Payables Encumbrance Upgrade Debit Amount
6693  , p_source_36            IN NUMBER
6694 --Payables Encumbrance Upgrade Debit Base Amount
6695  , p_source_37            IN NUMBER
6696 --Payables Encumbrance Upgrade Option
6697  , p_source_38            IN VARCHAR2
6698 --Deferred Accounting End Date
6699  , p_source_43            IN DATE
6700 --Deferred Accounting Option
6701  , p_source_44            IN VARCHAR2
6702 --Deferred Accounting Start Date
6703  , p_source_45            IN DATE
6704 --Override Accounted Amount Indicator
6705  , p_source_46            IN VARCHAR2
6706  , p_source_46_meaning    IN VARCHAR2
6707 --Third Party Type
6708  , p_source_49            IN VARCHAR2
6709 --Parent Reversal Identifier
6710  , p_source_50            IN NUMBER
6711 --Invoice Distribution Tax Line Identifier
6712  , p_source_52            IN NUMBER
6713 --Invoice Distribution Tax Distribution Identifier from Tax
6714  , p_source_53            IN NUMBER
6715 --Invoice Distribution Summary Tax Line Identifier
6716  , p_source_54            IN NUMBER
6717 --Payables Upgrade Credit Encumbrance Type Identifier
6718  , p_source_55            IN NUMBER
6719 --Payables Upgrade Debit Encumbrance Type Identifier
6720  , p_source_56            IN NUMBER
6721 --Purchase Order Distribution Identifier
6722  , p_source_58            IN NUMBER
6723 --Business Flow Purchasing Application Identifier
6724  , p_source_60            IN NUMBER
6725 --Business Flow Purchase Order Distribution Type
6726  , p_source_61            IN VARCHAR2
6727 --Business Flow Purchase Order Entity Code
6728  , p_source_62            IN VARCHAR2
6729 --Business Flow Purchase Order Distribution Identifier
6730  , p_source_63            IN NUMBER
6731 --Business Flow Purchasing Document Identifier
6732  , p_source_64            IN NUMBER
6736  , p_source_66            IN NUMBER
6733 --Invoice Distribution Encumbrance Amount
6734  , p_source_65            IN NUMBER
6735 --Invoice Distribution Encumbrance Ledger Amount
6737 )
6738 IS
6739 
6740 l_component_type              VARCHAR2(80);
6741 l_component_code              VARCHAR2(30);
6742 l_component_type_code         VARCHAR2(1);
6743 l_component_appl_id           INTEGER;
6744 l_amb_context_code            VARCHAR2(30);
6745 l_entity_code                 VARCHAR2(30);
6746 l_event_class_code            VARCHAR2(30);
6747 l_ae_header_id                NUMBER;
6748 l_event_type_code             VARCHAR2(30);
6749 l_line_definition_code        VARCHAR2(30);
6750 l_line_definition_owner_code  VARCHAR2(1);
6751 --
6752 -- adr variables
6753 l_segment                     VARCHAR2(30);
6754 l_ccid                        NUMBER;
6755 l_adr_transaction_coa_id      NUMBER;
6756 l_adr_accounting_coa_id       NUMBER;
6757 l_adr_flexfield_segment_code  VARCHAR2(30);
6758 l_adr_flex_value_set_id       NUMBER;
6759 l_adr_value_type_code         VARCHAR2(30);
6760 l_adr_value_combination_id    NUMBER;
6761 l_adr_value_segment_code      VARCHAR2(30);
6762 
6763 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6764 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6765 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6766 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6767 
6768 -- 4262811 Variables ------------------------------------------------------------------------------------------
6769 l_entered_amt_idx             NUMBER;
6770 l_accted_amt_idx              NUMBER;
6771 l_acc_rev_flag                VARCHAR2(1);
6772 l_accrual_line_num            NUMBER;
6773 l_tmp_amt                     NUMBER;
6774 l_acc_rev_natural_side_code   VARCHAR2(1);
6775 
6776 l_num_entries                 NUMBER;
6777 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6778 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6779 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6780 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6781 l_recog_line_1                NUMBER;
6782 l_recog_line_2                NUMBER;
6783 
6784 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6785 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6786 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6787 
6788 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6789 
6790 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6791 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6792 
6793 ---------------------------------------------------------------------------------------------------------------
6794 
6795 
6796 --
6797 -- bulk performance
6798 --
6799 l_balance_type_code           VARCHAR2(1);
6800 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6801 l_log_module                  VARCHAR2(240);
6802 
6803 --
6804 -- Upgrade strategy
6805 --
6806 l_actual_upg_option           VARCHAR2(1);
6807 l_enc_upg_option           VARCHAR2(1);
6808 
6809 --
6810 BEGIN
6811 --
6812 IF g_log_enabled THEN
6813       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
6814 END IF;
6815 --
6816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6817 
6818       trace
6819          (p_msg      => 'BEGIN of AcctLineType_21'
6820          ,p_level    => C_LEVEL_PROCEDURE
6821          ,p_module   => l_log_module);
6822 
6823 END IF;
6824 --
6825 l_component_type             := 'AMB_JLT';
6826 l_component_code             := 'AP_DM_PO_ENC';
6827 l_component_type_code        := 'S';
6828 l_component_appl_id          :=  200;
6829 l_amb_context_code           := 'DEFAULT';
6830 l_entity_code                := 'AP_INVOICES';
6831 l_event_class_code           := 'DEBIT MEMOS';
6832 l_event_type_code            := 'DEBIT MEMOS_ALL';
6833 l_line_definition_owner_code := 'S';
6834 l_line_definition_code       := 'ENC_DM_ALL';
6835 --
6836 l_balance_type_code          := 'E';
6837 l_segment                     := NULL;
6838 l_ccid                        := NULL;
6839 l_adr_transaction_coa_id      := NULL;
6840 l_adr_accounting_coa_id       := NULL;
6841 l_adr_flexfield_segment_code  := NULL;
6842 l_adr_flex_value_set_id       := NULL;
6843 l_adr_value_type_code         := NULL;
6844 l_adr_value_combination_id    := NULL;
6845 l_adr_value_segment_code      := NULL;
6846 
6847 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
6848 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
6849 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
6850 l_budgetary_control_flag     := 'Y';
6851 
6852 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6853 l_bflow_applied_to_amt       := NULL; -- 5132302
6854 l_entered_amt_idx            := NULL;          -- 4262811
6855 l_accted_amt_idx             := NULL;          -- 4262811
6856 l_acc_rev_flag               := NULL;          -- 4262811
6857 l_accrual_line_num           := NULL;          -- 4262811
6858 l_tmp_amt                    := NULL;          -- 4262811
6859 --
6860  
6861 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6862     l_balance_type_code <> 'B' THEN
6863 IF p_source_58 IS NOT NULL AND 
6867 ') =  'ITEM') AND 
6864 (NVL(p_source_15,'
6865 ') =  'ACCRUAL' OR 
6866 NVL(p_source_15,'
6868 NVL(p_source_18,'
6869 ') <>  'Y'
6870  THEN 
6871 
6872    --
6873    XLA_AE_LINES_PKG.SetNewLine;
6874 
6875    p_balance_type_code          := l_balance_type_code;
6876    -- set the flag so later we will know whether the gain loss line needs to be created
6877    
6878    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6879      p_actual_flag :='A';
6880    END IF;
6881 
6882    --
6883    -- bulk performance
6884    --
6885    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6886                                       p_header_num   => 0); -- 4262811
6887    --
6888    -- set accounting line options
6889    --
6890    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6891            p_natural_side_code          => 'C'
6892          , p_gain_or_loss_flag          => 'N'
6893          , p_gl_transfer_mode_code      => 'S'
6894          , p_acct_entry_type_code       => 'E'
6895          , p_switch_side_flag           => 'Y'
6896          , p_merge_duplicate_code       => 'N'
6897          );
6898    --
6899    l_acc_rev_natural_side_code := 'D';  -- 4262811
6900    -- 
6901    --
6902    -- set accounting line type info
6903    --
6904    xla_ae_lines_pkg.SetAcctLineType
6905       (p_component_type             => l_component_type
6906       ,p_event_type_code            => l_event_type_code
6907       ,p_line_definition_owner_code => l_line_definition_owner_code
6908       ,p_line_definition_code       => l_line_definition_code
6909       ,p_accounting_line_code       => l_component_code
6910       ,p_accounting_line_type_code  => l_component_type_code
6911       ,p_accounting_line_appl_id    => l_component_appl_id
6912       ,p_amb_context_code           => l_amb_context_code
6913       ,p_entity_code                => l_entity_code
6914       ,p_event_class_code           => l_event_class_code);
6915    --
6916    -- set accounting class
6917    --
6918    xla_ae_lines_pkg.SetAcctClass(
6919            p_accounting_class_code  => 'PURCHASE_ORDER'
6920          , p_ae_header_id           => l_ae_header_id
6921          );
6922 
6923    --
6924    -- set rounding class
6925    --
6926    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6927                       'PURCHASE_ORDER';
6928 
6929    --
6930    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6931    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6932    --
6933    -- bulk performance
6934    --
6935    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6936 
6937    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6938       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6939 
6940    -- 4955764
6941    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6943 
6944    -- 4458381 Public Sector Enh
6945    
6946    --
6947    -- set accounting attributes for the line type
6948    --
6949    l_entered_amt_idx := 23;
6950    l_accted_amt_idx  := 25;
6951    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6952    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6953    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
6954    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6955    l_rec_acct_attrs.array_num_value(2)  := 
6956 xla_ae_sources_pkg.GetSystemSourceNum(
6957    p_source_code           => 'XLA_EVENT_APPL_ID'
6958  , p_source_type_code      => 'Y'
6959  , p_source_application_id =>  602
6960 );
6961    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6962    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
6963    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6964    l_rec_acct_attrs.array_char_value(4)  := 
6965 xla_ae_sources_pkg.GetSystemSourceChar(
6966    p_source_code           => 'XLA_ENTITY_CODE'
6967  , p_source_type_code      => 'Y'
6968  , p_source_application_id =>  602
6969 );
6970    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6971    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
6972    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6973    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
6974    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6975    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
6976    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6977    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
6978    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6979    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
6980    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6981    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
6982    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6983    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
6984    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6985    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
6986    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6990    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6987    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
6988    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6989    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
6991    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
6992    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6993    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
6994    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6995    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
6996    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6997    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
6998    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6999    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
7000    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7001    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
7002    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7003    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
7004    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7005    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
7006    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7007    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
7008    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7009    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
7010    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
7011    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
7012    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
7013    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
7014    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
7015    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
7016    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
7017    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
7018    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
7019    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
7020    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
7021    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
7022    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
7023    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
7024    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
7025    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
7026    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
7027    l_rec_acct_attrs.array_num_value(33)  := p_source_52;
7028    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
7029    l_rec_acct_attrs.array_num_value(34)  := p_source_53;
7030    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
7031    l_rec_acct_attrs.array_num_value(35)  := p_source_54;
7032    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
7033    l_rec_acct_attrs.array_num_value(36)  := p_source_55;
7034    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
7035    l_rec_acct_attrs.array_num_value(37)  := p_source_56;
7036 
7037    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7038    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7039 
7040    ---------------------------------------------------------------------------------------------------------------
7041    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7042    ---------------------------------------------------------------------------------------------------------------
7043    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7044 
7045    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7046    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7047 
7048    IF xla_accounting_cache_pkg.GetValueChar
7049          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7050          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7051    AND l_bflow_method_code = 'PRIOR_ENTRY'
7052 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7053    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7054          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7055        )
7056    THEN
7057          xla_ae_lines_pkg.BflowUpgEntry
7058            (p_business_method_code    => l_bflow_method_code
7059            ,p_business_class_code     => l_bflow_class_code
7060            ,p_balance_type            => l_balance_type_code);
7061    ELSE
7062       NULL;
7063 XLA_AE_LINES_PKG.business_flow_validation(
7064                                 p_business_method_code     => l_bflow_method_code
7065                                ,p_business_class_code      => l_bflow_class_code
7066                                ,p_inherit_description_flag => l_inherit_desc_flag);
7067    END IF;
7068 
7069    --
7070    -- call analytical criteria
7071    --
7072    -- Inherited Analytical Criteria for business flow method of Prior Entry.
7073    --
7074    -- call description
7075    --
7076    -- No description or it is inherited.
7077    --
7078    -- call ADRs
7079    -- Bug 4922099
7080    --
7081    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7082         (NVL(l_actual_upg_option, 'N') = 'O') OR
7086    NULL;
7083         (NVL(l_enc_upg_option, 'N') = 'O')
7084       )
7085    THEN
7087    --
7088    --
7089    
7090    --
7091    --
7092    END IF;
7093    --
7094    -- Bug 4922099
7095    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7096           (NVL(l_enc_upg_option, 'N') = 'O')
7097         ) AND
7098         (l_bflow_method_code = 'PRIOR_ENTRY')
7099       )
7100    THEN
7101       IF
7102       --
7103       1 = 1
7104       --
7105       THEN
7106       xla_accounting_err_pkg.build_message
7107                                     (p_appli_s_name            => 'XLA'
7108                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7109                                     ,p_token_1                 => 'LINE_NUMBER'
7110                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7111                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7112                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7113                                                                              l_component_type
7114                                                                             ,l_component_code
7115                                                                             ,l_component_type_code
7116                                                                             ,l_component_appl_id
7117                                                                             ,l_amb_context_code
7118                                                                             ,l_entity_code
7119                                                                             ,l_event_class_code
7120                                                                            )
7121                                     ,p_token_3                 => 'OWNER'
7122                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7123                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7124                                                                           ,p_lookup_code    => l_component_type_code
7125                                                                          )
7126                                     ,p_token_4                 => 'PRODUCT_NAME'
7127                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7128                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7129                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7130                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7131                                     ,p_ae_header_id            =>  NULL
7132                                        );
7133 
7134         IF (C_LEVEL_ERROR>= g_log_level) THEN
7135                  trace
7136                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7137                       ,p_level    => C_LEVEL_ERROR
7138                       ,p_module   => l_log_module);
7139         END IF;
7140       END IF;
7141    END IF;
7142    --
7143    --
7144    ------------------------------------------------------------------------------------------------
7145    -- 4219869 Business Flow
7146    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7147    -- Prior Entry.  Currently, the following code is always generated.
7148    ------------------------------------------------------------------------------------------------
7149    -- No ValidateCurrentLine for business flow method of Prior Entry
7150 
7151    ------------------------------------------------------------------------------------
7152    -- 4219869 Business Flow
7153    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7154    ------------------------------------------------------------------------------------
7155    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7156 
7157    ----------------------------------------------------------------------------------
7158    -- 4219869 Business Flow
7159    -- Update journal entry status -- Need to generate this within IF <condition>
7160    ----------------------------------------------------------------------------------
7161    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7162          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7163          ,p_balance_type_code => l_balance_type_code
7164          );
7165 
7166    -------------------------------------------------------------------------------------------
7167    -- 4262811 - Generate the Accrual Reversal lines
7168    -------------------------------------------------------------------------------------------
7169    BEGIN
7170       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7171                               (g_array_event(p_event_id).array_value_num('header_index'));
7172       IF l_acc_rev_flag IS NULL THEN
7173          l_acc_rev_flag := 'N';
7174       END IF;
7175    EXCEPTION
7176       WHEN OTHERS THEN
7177          l_acc_rev_flag := 'N';
7178    END;
7179    --
7180    IF (l_acc_rev_flag = 'Y') THEN
7181 
7182        -- 4645092  ------------------------------------------------------------------------------
7183        -- To allow MPA report to determine if it should generate report process
7187        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7184        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7185        ------------------------------------------------------------------------------------------
7186 
7188        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7189    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7190    -- call ADRs
7191    -- Bug 4922099
7192    --
7193    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7194         (NVL(l_actual_upg_option, 'N') = 'O') OR
7195         (NVL(l_enc_upg_option, 'N') = 'O')
7196       )
7197    THEN
7198    NULL;
7199    --
7200    --
7201    
7202    --
7203    --
7204    END IF;
7205 
7206        --
7207        -- Update the line information that should be overwritten
7208        --
7209        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7210                                          p_header_num   => 1);
7211        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7212 
7213        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7214 
7215        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7216           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7217        END IF;
7218 
7219       --
7220       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7221       --
7222       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7223           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7224       ELSE
7225           ---------------------------------------------------------------------------------------------------
7226           -- 4262811a Switch Sign
7227           ---------------------------------------------------------------------------------------------------
7228           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7229           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7230                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7231           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7232                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7233           -- 5132302
7234           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7235                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7236 
7237       END IF;
7238 
7239       -- 4955764
7240       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7241       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7242 
7243 
7244       XLA_AE_LINES_PKG.ValidateCurrentLine;
7245       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7246 
7247       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7248                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7249                ,p_balance_type_code => l_balance_type_code);
7250 
7251    END IF;
7252 
7253    -----------------------------------------------------------------------------------------
7254    -- 4262811 Multiperiod Accounting
7255    -----------------------------------------------------------------------------------------
7256      -- No MPA option is assigned.
7257 
7258 
7259 END IF;
7260 END IF;
7261 --
7262 
7263 --
7264 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7265    trace
7266       (p_msg      => 'END of AcctLineType_21'
7267       ,p_level    => C_LEVEL_PROCEDURE
7268       ,p_module   => l_log_module);
7269 END IF;
7270 --
7271 EXCEPTION
7272   WHEN xla_exceptions_pkg.application_exception THEN
7273       RAISE;
7274   WHEN OTHERS THEN
7275        xla_exceptions_pkg.raise_message
7276            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_21');
7277 END AcctLineType_21;
7278 --
7279 
7280 ---------------------------------------
7281 --
7282 -- PRIVATE FUNCTION
7283 --         AcctLineType_22
7284 --
7285 ---------------------------------------
7286 PROCEDURE AcctLineType_22 (
7287   p_application_id        IN NUMBER
7288  ,p_event_id              IN NUMBER
7289  ,p_calculate_acctd_flag  IN VARCHAR2
7290  ,p_calculate_g_l_flag    IN VARCHAR2
7291  ,p_actual_flag           IN OUT VARCHAR2
7292  ,p_balance_type_code     OUT VARCHAR2
7293  ,p_gain_or_loss_ref      OUT VARCHAR2
7294  
7295 --Invoice Distribution Description
7296  , p_source_1            IN VARCHAR2
7297 --Purchase Order Rate Variance Gain Account
7298  , p_source_6            IN NUMBER
7299 --Automatic Offsets Value
7300  , p_source_7            IN VARCHAR2
7301  , p_source_7_meaning    IN VARCHAR2
7302 --Invoice Distribution Ledger Amount
7303  , p_source_8            IN NUMBER
7304 --Destination Type of the PO Distribution
7305  , p_source_9            IN VARCHAR2
7306  , p_source_9_meaning    IN VARCHAR2
7307 --Purchase Order Rate Variance Loss Account
7308  , p_source_10            IN NUMBER
7312  , p_source_12            IN VARCHAR2
7309 --Invoice Distribution Account
7310  , p_source_11            IN NUMBER
7311 --Automatic Offsets Flag
7313  , p_source_12_meaning    IN VARCHAR2
7314 --Invoice Distribution Type
7315  , p_source_15            IN VARCHAR2
7316  , p_source_15_meaning    IN VARCHAR2
7317 --Purchasing Encumbrance Option
7318  , p_source_17            IN VARCHAR2
7319  , p_source_17_meaning    IN VARCHAR2
7320 --Accounting Reversal Indicator
7321  , p_source_19            IN VARCHAR2
7322 --Distribution Link Type
7323  , p_source_21            IN VARCHAR2
7324 --Allocation to Main Distribution Identifier
7325  , p_source_23            IN NUMBER
7326 --Invoice Identifier
7327  , p_source_24            IN NUMBER
7328 --Business Flow Accounts Payable Application Identifier
7329  , p_source_25            IN NUMBER
7330 --Business Flow Invoice Distribution Type
7331  , p_source_26            IN VARCHAR2
7332 --Business Flow Invoice Entity Code
7333  , p_source_27            IN VARCHAR2
7334 --Business Flow Invoice Distribution Identifier
7335  , p_source_28            IN NUMBER
7336 --Business Flow Invoice Identifier
7337  , p_source_29            IN NUMBER
7338 --Invoice Distribution Identifier
7339  , p_source_30            IN NUMBER
7340 --Payables Encumbrance Upgrade Credit Account
7341  , p_source_31            IN NUMBER
7342 --Payables Encumbrance Upgrade Credit Amount
7343  , p_source_32            IN NUMBER
7344 --Invoice Currency Code
7345  , p_source_33            IN VARCHAR2
7346 --Payables Encumbrance Upgrade Credit Base Amount
7347  , p_source_34            IN NUMBER
7348 --Payables Encumbrance Upgrade Debit Account
7349  , p_source_35            IN NUMBER
7350 --Payables Encumbrance Upgrade Debit Amount
7351  , p_source_36            IN NUMBER
7352 --Payables Encumbrance Upgrade Debit Base Amount
7353  , p_source_37            IN NUMBER
7354 --Payables Encumbrance Upgrade Option
7355  , p_source_38            IN VARCHAR2
7356 --Invoice Exchange Date
7357  , p_source_39            IN DATE
7358 --Invoice Exchange Rate
7359  , p_source_40            IN NUMBER
7360 --Invoice Exchange Rate Type
7361  , p_source_41            IN VARCHAR2
7362 --Deferred Accounting End Date
7363  , p_source_43            IN DATE
7364 --Deferred Accounting Option
7365  , p_source_44            IN VARCHAR2
7366 --Deferred Accounting Start Date
7367  , p_source_45            IN DATE
7368 --Override Accounted Amount Indicator
7369  , p_source_46            IN VARCHAR2
7370  , p_source_46_meaning    IN VARCHAR2
7371 --Invoice Supplier Identifier
7372  , p_source_47            IN NUMBER
7373 --Invoice Supplier Site Identifier
7374  , p_source_48            IN NUMBER
7375 --Third Party Type
7376  , p_source_49            IN VARCHAR2
7377 --Parent Reversal Identifier
7378  , p_source_50            IN NUMBER
7379 --Invoice Distribution Statistical Amount
7380  , p_source_51            IN NUMBER
7381 --Invoice Distribution Tax Line Identifier
7382  , p_source_52            IN NUMBER
7383 --Invoice Distribution Tax Distribution Identifier from Tax
7384  , p_source_53            IN NUMBER
7385 --Invoice Distribution Summary Tax Line Identifier
7386  , p_source_54            IN NUMBER
7387 --Payables Upgrade Credit Encumbrance Type Identifier
7388  , p_source_55            IN NUMBER
7389 --Payables Upgrade Debit Encumbrance Type Identifier
7390  , p_source_56            IN NUMBER
7391 --Invoice Distribution Encumbrance Amount
7392  , p_source_65            IN NUMBER
7393 --Invoice Distribution Encumbrance Ledger Amount
7394  , p_source_66            IN NUMBER
7395 )
7396 IS
7397 
7398 l_component_type              VARCHAR2(80);
7399 l_component_code              VARCHAR2(30);
7400 l_component_type_code         VARCHAR2(1);
7401 l_component_appl_id           INTEGER;
7402 l_amb_context_code            VARCHAR2(30);
7403 l_entity_code                 VARCHAR2(30);
7404 l_event_class_code            VARCHAR2(30);
7405 l_ae_header_id                NUMBER;
7406 l_event_type_code             VARCHAR2(30);
7407 l_line_definition_code        VARCHAR2(30);
7408 l_line_definition_owner_code  VARCHAR2(1);
7409 --
7410 -- adr variables
7411 l_segment                     VARCHAR2(30);
7412 l_ccid                        NUMBER;
7413 l_adr_transaction_coa_id      NUMBER;
7414 l_adr_accounting_coa_id       NUMBER;
7415 l_adr_flexfield_segment_code  VARCHAR2(30);
7416 l_adr_flex_value_set_id       NUMBER;
7417 l_adr_value_type_code         VARCHAR2(30);
7418 l_adr_value_combination_id    NUMBER;
7419 l_adr_value_segment_code      VARCHAR2(30);
7420 
7421 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7422 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7423 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7424 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7425 
7426 -- 4262811 Variables ------------------------------------------------------------------------------------------
7427 l_entered_amt_idx             NUMBER;
7428 l_accted_amt_idx              NUMBER;
7429 l_acc_rev_flag                VARCHAR2(1);
7430 l_accrual_line_num            NUMBER;
7431 l_tmp_amt                     NUMBER;
7432 l_acc_rev_natural_side_code   VARCHAR2(1);
7433 
7434 l_num_entries                 NUMBER;
7438 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7435 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7436 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7437 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7439 l_recog_line_1                NUMBER;
7440 l_recog_line_2                NUMBER;
7441 
7442 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7443 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7444 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7445 
7446 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7447 
7448 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7449 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7450 
7451 ---------------------------------------------------------------------------------------------------------------
7452 
7453 
7454 --
7455 -- bulk performance
7456 --
7457 l_balance_type_code           VARCHAR2(1);
7458 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7459 l_log_module                  VARCHAR2(240);
7460 
7461 --
7462 -- Upgrade strategy
7463 --
7464 l_actual_upg_option           VARCHAR2(1);
7465 l_enc_upg_option           VARCHAR2(1);
7466 
7467 --
7468 BEGIN
7469 --
7470 IF g_log_enabled THEN
7471       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
7472 END IF;
7473 --
7474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7475 
7476       trace
7477          (p_msg      => 'BEGIN of AcctLineType_22'
7478          ,p_level    => C_LEVEL_PROCEDURE
7479          ,p_module   => l_log_module);
7480 
7481 END IF;
7482 --
7483 l_component_type             := 'AMB_JLT';
7484 l_component_code             := 'AP_EX_RATE_VAR_CM_ENC_DR';
7485 l_component_type_code        := 'S';
7486 l_component_appl_id          :=  200;
7487 l_amb_context_code           := 'DEFAULT';
7488 l_entity_code                := 'AP_INVOICES';
7489 l_event_class_code           := 'CREDIT MEMOS';
7490 l_event_type_code            := 'CREDIT MEMOS_ALL';
7491 l_line_definition_owner_code := 'S';
7492 l_line_definition_code       := 'ENC_CM_ALL';
7493 --
7494 l_balance_type_code          := 'E';
7495 l_segment                     := NULL;
7496 l_ccid                        := NULL;
7497 l_adr_transaction_coa_id      := NULL;
7498 l_adr_accounting_coa_id       := NULL;
7499 l_adr_flexfield_segment_code  := NULL;
7500 l_adr_flex_value_set_id       := NULL;
7501 l_adr_value_type_code         := NULL;
7502 l_adr_value_combination_id    := NULL;
7503 l_adr_value_segment_code      := NULL;
7504 
7505 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7506 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
7507 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7508 l_budgetary_control_flag     := 'Y';
7509 
7510 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7511 l_bflow_applied_to_amt       := NULL; -- 5132302
7512 l_entered_amt_idx            := NULL;          -- 4262811
7513 l_accted_amt_idx             := NULL;          -- 4262811
7514 l_acc_rev_flag               := NULL;          -- 4262811
7515 l_accrual_line_num           := NULL;          -- 4262811
7516 l_tmp_amt                    := NULL;          -- 4262811
7517 --
7518 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
7519             (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
7520                return;
7521   END IF;
7522   
7523 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7524     l_balance_type_code <> 'B' THEN
7525 IF NVL(p_source_15,'
7526 ') =  'ERV' AND 
7527 NVL(p_source_17,'
7528 ') =  'Y'
7529  THEN 
7530 
7531    --
7532    XLA_AE_LINES_PKG.SetNewLine;
7533 
7534    p_balance_type_code          := l_balance_type_code;
7535    -- set the flag so later we will know whether the gain loss line needs to be created
7536    
7537    IF(l_balance_type_code = 'A' ) THEN
7538      p_actual_flag :='G';
7539    END IF;
7540 
7541    --
7542    -- bulk performance
7543    --
7544    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7545                                       p_header_num   => 0); -- 4262811
7546    --
7547    -- set accounting line options
7548    --
7549    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7550            p_natural_side_code          => 'D'
7551          , p_gain_or_loss_flag          => 'Y'
7552          , p_gl_transfer_mode_code      => 'S'
7553          , p_acct_entry_type_code       => 'E'
7554          , p_switch_side_flag           => 'Y'
7555          , p_merge_duplicate_code       => 'N'
7556          );
7557    --
7558    l_acc_rev_natural_side_code := 'C';  -- 4262811
7559    -- 
7560    --
7561    -- set accounting line type info
7562    --
7563    xla_ae_lines_pkg.SetAcctLineType
7564       (p_component_type             => l_component_type
7565       ,p_event_type_code            => l_event_type_code
7569       ,p_accounting_line_type_code  => l_component_type_code
7566       ,p_line_definition_owner_code => l_line_definition_owner_code
7567       ,p_line_definition_code       => l_line_definition_code
7568       ,p_accounting_line_code       => l_component_code
7570       ,p_accounting_line_appl_id    => l_component_appl_id
7571       ,p_amb_context_code           => l_amb_context_code
7572       ,p_entity_code                => l_entity_code
7573       ,p_event_class_code           => l_event_class_code);
7574    --
7575    -- set accounting class
7576    --
7577    xla_ae_lines_pkg.SetAcctClass(
7578            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
7579          , p_ae_header_id           => l_ae_header_id
7580          );
7581 
7582    --
7583    -- set rounding class
7584    --
7585    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7586                       'EXCHANGE_RATE_VARIANCE';
7587 
7588    --
7589    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7590    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7591    --
7592    -- bulk performance
7593    --
7594    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7595 
7596    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7597       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7598 
7599    -- 4955764
7600    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7601       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7602 
7603    -- 4458381 Public Sector Enh
7604       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
7605    --
7606    -- set accounting attributes for the line type
7607    --
7608    l_entered_amt_idx := 23;
7609    l_accted_amt_idx  := 28;
7610    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7611    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7612    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
7613    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7614    l_rec_acct_attrs.array_num_value(2)  := 
7615 xla_ae_sources_pkg.GetSystemSourceNum(
7616    p_source_code           => 'XLA_EVENT_APPL_ID'
7617  , p_source_type_code      => 'Y'
7618  , p_source_application_id =>  602
7619 );
7620    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7621    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
7622    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7623    l_rec_acct_attrs.array_char_value(4)  := 
7624 xla_ae_sources_pkg.GetSystemSourceChar(
7625    p_source_code           => 'XLA_ENTITY_CODE'
7626  , p_source_type_code      => 'Y'
7627  , p_source_application_id =>  602
7628 );
7629    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7630    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
7631    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7632    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
7633    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7634    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
7635    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7636    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
7637    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7638    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
7639    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7640    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
7641    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7642    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
7643    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7644    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
7645    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7646    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
7647    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7648    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
7649    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7650    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
7651    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7652    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
7653    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7654    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
7655    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7656    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
7657    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7658    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
7659    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7660    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
7661    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7662    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
7663    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7664    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
7668    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
7665    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7666    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
7667    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7669    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7670    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
7671    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7672    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
7673    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7674    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
7675    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7676    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
7677    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7678    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
7679    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7680    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
7681    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7682    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
7683    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7684    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
7685    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7686    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
7687    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7688    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
7689    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7690    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
7691    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7692    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
7693    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7694    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
7695    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
7696    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
7697    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
7698    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
7699    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
7700    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
7701    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
7702    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
7703    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
7704    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
7705    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
7706    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
7707 
7708    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7709    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7710 
7711    ---------------------------------------------------------------------------------------------------------------
7712    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7713    ---------------------------------------------------------------------------------------------------------------
7714    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7715 
7716    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7717    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7718 
7719    IF xla_accounting_cache_pkg.GetValueChar
7720          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7721          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7722    AND l_bflow_method_code = 'PRIOR_ENTRY'
7723 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7724    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7725          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7726        )
7727    THEN
7728          xla_ae_lines_pkg.BflowUpgEntry
7729            (p_business_method_code    => l_bflow_method_code
7730            ,p_business_class_code     => l_bflow_class_code
7731            ,p_balance_type            => l_balance_type_code);
7732    ELSE
7733       NULL;
7734 -- No business flow processing for business flow method of NONE.
7735    END IF;
7736 
7737    --
7738    -- call analytical criteria
7739    --
7740    
7741    --
7742    -- call description
7743    --
7744    
7745 xla_ae_lines_pkg.SetLineDescription(
7746    p_ae_header_id => l_ae_header_id
7747   ,p_description  => Description_2 (
7748      p_application_id         => p_application_id
7749    , p_ae_header_id           => l_ae_header_id 
7750 , p_source_1 => p_source_1
7751    )
7752 );
7753 
7754 
7755    --
7756    -- call ADRs
7757    -- Bug 4922099
7758    --
7759    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7760         (NVL(l_actual_upg_option, 'N') = 'O') OR
7761         (NVL(l_enc_upg_option, 'N') = 'O')
7762       )
7763    THEN
7764    NULL;
7765    --
7766    --
7767    
7768   l_ccid := AcctDerRule_6(
7769            p_application_id           => p_application_id
7770          , p_ae_header_id             => l_ae_header_id 
7771 , p_source_6 => p_source_6
7772 , p_source_7 => p_source_7
7776 , p_source_9_meaning => p_source_9_meaning
7773 , p_source_7_meaning => p_source_7_meaning
7774 , p_source_8 => p_source_8
7775 , p_source_9 => p_source_9
7777 , p_source_10 => p_source_10
7778 , p_source_11 => p_source_11
7779 , p_source_12 => p_source_12
7780 , p_source_12_meaning => p_source_12_meaning
7781          , x_transaction_coa_id       => l_adr_transaction_coa_id
7782          , x_accounting_coa_id        => l_adr_accounting_coa_id
7783          , x_value_type_code          => l_adr_value_type_code
7784          , p_side                     => 'NA'
7785    );
7786 
7787    xla_ae_lines_pkg.set_ccid(
7788     p_code_combination_id          => l_ccid
7789   , p_value_type_code              => l_adr_value_type_code
7790   , p_transaction_coa_id           => l_adr_transaction_coa_id
7791   , p_accounting_coa_id            => l_adr_accounting_coa_id
7792   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
7793   , p_adr_type_code                => 'S'
7794   , p_component_type               => l_component_type
7795   , p_component_code               => l_component_code
7796   , p_component_type_code          => l_component_type_code
7797   , p_component_appl_id            => l_component_appl_id
7798   , p_amb_context_code             => l_amb_context_code
7799   , p_side                         => 'NA'
7800   );
7801 
7802 
7803    l_segment := AcctDerRule_4(
7804            p_application_id           => p_application_id
7805          , p_ae_header_id             => l_ae_header_id 
7806 , p_source_6 => p_source_6
7807 , p_source_7 => p_source_7
7808 , p_source_7_meaning => p_source_7_meaning
7809 , p_source_8 => p_source_8
7810 , p_source_9 => p_source_9
7811 , p_source_9_meaning => p_source_9_meaning
7812 , p_source_10 => p_source_10
7813          , x_transaction_coa_id       => l_adr_transaction_coa_id
7814          , x_accounting_coa_id        => l_adr_accounting_coa_id
7815          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
7816          , x_flex_value_set_id        => l_adr_flex_value_set_id
7817          , x_value_type_code          => l_adr_value_type_code
7818          , x_value_combination_id     => l_adr_value_combination_id
7819          , x_value_segment_code       => l_adr_value_segment_code
7820          , p_side                     => 'NA'
7821          , p_override_seg_flag        => 'Y'
7822    );
7823 
7824    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
7825 
7826       xla_ae_lines_pkg.set_segment(
7827           p_to_segment_code         => 'GL_ACCOUNT'
7828         , p_segment_value           => l_segment
7829         , p_from_segment_code       => l_adr_value_segment_code
7830         , p_from_combination_id     => l_adr_value_combination_id
7831         , p_value_type_code         => l_adr_value_type_code
7832         , p_transaction_coa_id      => l_adr_transaction_coa_id
7833         , p_accounting_coa_id       => l_adr_accounting_coa_id
7834         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
7835         , p_flex_value_set_id       => l_adr_flex_value_set_id
7836         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
7837         , p_adr_type_code           => 'S'
7838         , p_component_type          => l_component_type
7839         , p_component_code          => l_component_code
7840         , p_component_type_code     => l_component_type_code
7841         , p_component_appl_id       => l_component_appl_id
7842         , p_amb_context_code        => l_amb_context_code
7843         , p_entity_code             => 'AP_INVOICES'
7844         , p_event_class_code        => 'CREDIT MEMOS'
7845         , p_side                    => 'NA'
7846         );
7847 
7848   END IF;
7849 
7850    l_segment := AcctDerRule_5(
7851            p_application_id           => p_application_id
7852          , p_ae_header_id             => l_ae_header_id 
7853 , p_source_7 => p_source_7
7854 , p_source_7_meaning => p_source_7_meaning
7855 , p_source_9 => p_source_9
7856 , p_source_9_meaning => p_source_9_meaning
7857 , p_source_11 => p_source_11
7858          , x_transaction_coa_id       => l_adr_transaction_coa_id
7859          , x_accounting_coa_id        => l_adr_accounting_coa_id
7860          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
7861          , x_flex_value_set_id        => l_adr_flex_value_set_id
7862          , x_value_type_code          => l_adr_value_type_code
7863          , x_value_combination_id     => l_adr_value_combination_id
7864          , x_value_segment_code       => l_adr_value_segment_code
7865          , p_side                     => 'NA'
7866          , p_override_seg_flag        => 'Y'
7867    );
7868 
7869    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
7870 
7871       xla_ae_lines_pkg.set_segment(
7872           p_to_segment_code         => 'GL_BALANCING'
7873         , p_segment_value           => l_segment
7874         , p_from_segment_code       => l_adr_value_segment_code
7875         , p_from_combination_id     => l_adr_value_combination_id
7876         , p_value_type_code         => l_adr_value_type_code
7877         , p_transaction_coa_id      => l_adr_transaction_coa_id
7878         , p_accounting_coa_id       => l_adr_accounting_coa_id
7879         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
7880         , p_flex_value_set_id       => l_adr_flex_value_set_id
7881         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
7882         , p_adr_type_code           => 'S'
7883         , p_component_type          => l_component_type
7884         , p_component_code          => l_component_code
7888         , p_entity_code             => 'AP_INVOICES'
7885         , p_component_type_code     => l_component_type_code
7886         , p_component_appl_id       => l_component_appl_id
7887         , p_amb_context_code        => l_amb_context_code
7889         , p_event_class_code        => 'CREDIT MEMOS'
7890         , p_side                    => 'NA'
7891         );
7892 
7893   END IF;
7894 
7895    --
7896    --
7897    END IF;
7898    --
7899    -- Bug 4922099
7900    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7901           (NVL(l_enc_upg_option, 'N') = 'O')
7902         ) AND
7903         (l_bflow_method_code = 'PRIOR_ENTRY')
7904       )
7905    THEN
7906       IF
7907       --
7908       1 = 2
7909       --
7910       THEN
7911       xla_accounting_err_pkg.build_message
7912                                     (p_appli_s_name            => 'XLA'
7913                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7914                                     ,p_token_1                 => 'LINE_NUMBER'
7915                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7916                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7917                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7918                                                                              l_component_type
7919                                                                             ,l_component_code
7920                                                                             ,l_component_type_code
7921                                                                             ,l_component_appl_id
7922                                                                             ,l_amb_context_code
7923                                                                             ,l_entity_code
7924                                                                             ,l_event_class_code
7925                                                                            )
7926                                     ,p_token_3                 => 'OWNER'
7927                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7928                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7929                                                                           ,p_lookup_code    => l_component_type_code
7930                                                                          )
7931                                     ,p_token_4                 => 'PRODUCT_NAME'
7932                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7933                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7934                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7935                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7936                                     ,p_ae_header_id            =>  NULL
7937                                        );
7938 
7939         IF (C_LEVEL_ERROR>= g_log_level) THEN
7940                  trace
7941                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7942                       ,p_level    => C_LEVEL_ERROR
7943                       ,p_module   => l_log_module);
7944         END IF;
7945       END IF;
7946    END IF;
7947    --
7948    --
7949    ------------------------------------------------------------------------------------------------
7950    -- 4219869 Business Flow
7951    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7952    -- Prior Entry.  Currently, the following code is always generated.
7953    ------------------------------------------------------------------------------------------------
7954    XLA_AE_LINES_PKG.ValidateCurrentLine;
7955 
7956    ------------------------------------------------------------------------------------
7957    -- 4219869 Business Flow
7958    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7959    ------------------------------------------------------------------------------------
7960    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7961 
7962    ----------------------------------------------------------------------------------
7963    -- 4219869 Business Flow
7964    -- Update journal entry status -- Need to generate this within IF <condition>
7965    ----------------------------------------------------------------------------------
7966    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7967          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7968          ,p_balance_type_code => l_balance_type_code
7969          );
7970 
7971    -------------------------------------------------------------------------------------------
7972    -- 4262811 - Generate the Accrual Reversal lines
7973    -------------------------------------------------------------------------------------------
7974    BEGIN
7975       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7976                               (g_array_event(p_event_id).array_value_num('header_index'));
7977       IF l_acc_rev_flag IS NULL THEN
7978          l_acc_rev_flag := 'N';
7979       END IF;
7980    EXCEPTION
7981       WHEN OTHERS THEN
7982          l_acc_rev_flag := 'N';
7983    END;
7984    --
7988        -- To allow MPA report to determine if it should generate report process
7985    IF (l_acc_rev_flag = 'Y') THEN
7986 
7987        -- 4645092  ------------------------------------------------------------------------------
7989        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7990        ------------------------------------------------------------------------------------------
7991 
7992        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7993        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7994    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7995    -- call ADRs
7996    -- Bug 4922099
7997    --
7998    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7999         (NVL(l_actual_upg_option, 'N') = 'O') OR
8000         (NVL(l_enc_upg_option, 'N') = 'O')
8001       )
8002    THEN
8003    NULL;
8004    --
8005    --
8006    
8007   l_ccid := AcctDerRule_6(
8008            p_application_id           => p_application_id
8009          , p_ae_header_id             => l_ae_header_id 
8010 , p_source_6 => p_source_6
8011 , p_source_7 => p_source_7
8012 , p_source_7_meaning => p_source_7_meaning
8013 , p_source_8 => p_source_8
8014 , p_source_9 => p_source_9
8015 , p_source_9_meaning => p_source_9_meaning
8016 , p_source_10 => p_source_10
8017 , p_source_11 => p_source_11
8018 , p_source_12 => p_source_12
8019 , p_source_12_meaning => p_source_12_meaning
8020          , x_transaction_coa_id       => l_adr_transaction_coa_id
8021          , x_accounting_coa_id        => l_adr_accounting_coa_id
8022          , x_value_type_code          => l_adr_value_type_code
8023          , p_side                     => 'NA'
8024    );
8025 
8026    xla_ae_lines_pkg.set_ccid(
8027     p_code_combination_id          => l_ccid
8028   , p_value_type_code              => l_adr_value_type_code
8029   , p_transaction_coa_id           => l_adr_transaction_coa_id
8030   , p_accounting_coa_id            => l_adr_accounting_coa_id
8031   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
8032   , p_adr_type_code                => 'S'
8033   , p_component_type               => l_component_type
8034   , p_component_code               => l_component_code
8035   , p_component_type_code          => l_component_type_code
8036   , p_component_appl_id            => l_component_appl_id
8037   , p_amb_context_code             => l_amb_context_code
8038   , p_side                         => 'NA'
8039   );
8040 
8041 
8042    l_segment := AcctDerRule_4(
8043            p_application_id           => p_application_id
8044          , p_ae_header_id             => l_ae_header_id 
8045 , p_source_6 => p_source_6
8046 , p_source_7 => p_source_7
8047 , p_source_7_meaning => p_source_7_meaning
8048 , p_source_8 => p_source_8
8049 , p_source_9 => p_source_9
8050 , p_source_9_meaning => p_source_9_meaning
8051 , p_source_10 => p_source_10
8052          , x_transaction_coa_id       => l_adr_transaction_coa_id
8053          , x_accounting_coa_id        => l_adr_accounting_coa_id
8054          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
8055          , x_flex_value_set_id        => l_adr_flex_value_set_id
8056          , x_value_type_code          => l_adr_value_type_code
8057          , x_value_combination_id     => l_adr_value_combination_id
8058          , x_value_segment_code       => l_adr_value_segment_code
8059          , p_side                     => 'NA'
8060          , p_override_seg_flag        => 'Y'
8061    );
8062 
8063    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
8064 
8065       xla_ae_lines_pkg.set_segment(
8066           p_to_segment_code         => 'GL_ACCOUNT'
8067         , p_segment_value           => l_segment
8068         , p_from_segment_code       => l_adr_value_segment_code
8069         , p_from_combination_id     => l_adr_value_combination_id
8070         , p_value_type_code         => l_adr_value_type_code
8071         , p_transaction_coa_id      => l_adr_transaction_coa_id
8072         , p_accounting_coa_id       => l_adr_accounting_coa_id
8073         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
8074         , p_flex_value_set_id       => l_adr_flex_value_set_id
8075         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
8076         , p_adr_type_code           => 'S'
8077         , p_component_type          => l_component_type
8078         , p_component_code          => l_component_code
8079         , p_component_type_code     => l_component_type_code
8080         , p_component_appl_id       => l_component_appl_id
8081         , p_amb_context_code        => l_amb_context_code
8082         , p_entity_code             => 'AP_INVOICES'
8083         , p_event_class_code        => 'CREDIT MEMOS'
8084         , p_side                    => 'NA'
8085         );
8086 
8087   END IF;
8088 
8089    l_segment := AcctDerRule_5(
8090            p_application_id           => p_application_id
8091          , p_ae_header_id             => l_ae_header_id 
8092 , p_source_7 => p_source_7
8093 , p_source_7_meaning => p_source_7_meaning
8094 , p_source_9 => p_source_9
8095 , p_source_9_meaning => p_source_9_meaning
8096 , p_source_11 => p_source_11
8097          , x_transaction_coa_id       => l_adr_transaction_coa_id
8098          , x_accounting_coa_id        => l_adr_accounting_coa_id
8099          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
8103          , x_value_segment_code       => l_adr_value_segment_code
8100          , x_flex_value_set_id        => l_adr_flex_value_set_id
8101          , x_value_type_code          => l_adr_value_type_code
8102          , x_value_combination_id     => l_adr_value_combination_id
8104          , p_side                     => 'NA'
8105          , p_override_seg_flag        => 'Y'
8106    );
8107 
8108    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
8109 
8110       xla_ae_lines_pkg.set_segment(
8111           p_to_segment_code         => 'GL_BALANCING'
8112         , p_segment_value           => l_segment
8113         , p_from_segment_code       => l_adr_value_segment_code
8114         , p_from_combination_id     => l_adr_value_combination_id
8115         , p_value_type_code         => l_adr_value_type_code
8116         , p_transaction_coa_id      => l_adr_transaction_coa_id
8117         , p_accounting_coa_id       => l_adr_accounting_coa_id
8118         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
8119         , p_flex_value_set_id       => l_adr_flex_value_set_id
8120         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
8121         , p_adr_type_code           => 'S'
8122         , p_component_type          => l_component_type
8123         , p_component_code          => l_component_code
8124         , p_component_type_code     => l_component_type_code
8125         , p_component_appl_id       => l_component_appl_id
8126         , p_amb_context_code        => l_amb_context_code
8127         , p_entity_code             => 'AP_INVOICES'
8128         , p_event_class_code        => 'CREDIT MEMOS'
8129         , p_side                    => 'NA'
8130         );
8131 
8132   END IF;
8133 
8134    --
8135    --
8136    END IF;
8137 
8138        --
8139        -- Update the line information that should be overwritten
8140        --
8141        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8142                                          p_header_num   => 1);
8143        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8144 
8145        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8146 
8147        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8148           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8149        END IF;
8150 
8151       --
8152       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8153       --
8154       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8155           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8156       ELSE
8157           ---------------------------------------------------------------------------------------------------
8158           -- 4262811a Switch Sign
8159           ---------------------------------------------------------------------------------------------------
8160           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8161           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8162                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8163           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8164                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8165           -- 5132302
8166           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8167                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8168 
8169       END IF;
8170 
8171       -- 4955764
8172       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8173       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8174 
8175 
8176       XLA_AE_LINES_PKG.ValidateCurrentLine;
8177       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8178 
8179       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8180                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8181                ,p_balance_type_code => l_balance_type_code);
8182 
8183    END IF;
8184 
8185    -----------------------------------------------------------------------------------------
8186    -- 4262811 Multiperiod Accounting
8187    -----------------------------------------------------------------------------------------
8188      -- No MPA option is assigned.
8189 
8190 
8191 END IF;
8192 END IF;
8193 --
8194 
8195 --
8196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8197    trace
8198       (p_msg      => 'END of AcctLineType_22'
8199       ,p_level    => C_LEVEL_PROCEDURE
8200       ,p_module   => l_log_module);
8201 END IF;
8202 --
8203 EXCEPTION
8204   WHEN xla_exceptions_pkg.application_exception THEN
8205       RAISE;
8206   WHEN OTHERS THEN
8207        xla_exceptions_pkg.raise_message
8208            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_22');
8209 END AcctLineType_22;
8210 --
8211 
8212 ---------------------------------------
8213 --
8214 -- PRIVATE FUNCTION
8215 --         AcctLineType_23
8216 --
8217 ---------------------------------------
8218 PROCEDURE AcctLineType_23 (
8222  ,p_calculate_g_l_flag    IN VARCHAR2
8219   p_application_id        IN NUMBER
8220  ,p_event_id              IN NUMBER
8221  ,p_calculate_acctd_flag  IN VARCHAR2
8223  ,p_actual_flag           IN OUT VARCHAR2
8224  ,p_balance_type_code     OUT VARCHAR2
8225  ,p_gain_or_loss_ref      OUT VARCHAR2
8226  
8227 --Invoice Distribution Description
8228  , p_source_1            IN VARCHAR2
8229 --Purchase Order Rate Variance Gain Account
8230  , p_source_6            IN NUMBER
8231 --Automatic Offsets Value
8232  , p_source_7            IN VARCHAR2
8233  , p_source_7_meaning    IN VARCHAR2
8234 --Invoice Distribution Ledger Amount
8235  , p_source_8            IN NUMBER
8236 --Destination Type of the PO Distribution
8237  , p_source_9            IN VARCHAR2
8238  , p_source_9_meaning    IN VARCHAR2
8239 --Purchase Order Rate Variance Loss Account
8240  , p_source_10            IN NUMBER
8241 --Invoice Distribution Account
8242  , p_source_11            IN NUMBER
8243 --Automatic Offsets Flag
8244  , p_source_12            IN VARCHAR2
8245  , p_source_12_meaning    IN VARCHAR2
8246 --Invoice Distribution Type
8247  , p_source_15            IN VARCHAR2
8248  , p_source_15_meaning    IN VARCHAR2
8249 --Purchasing Encumbrance Option
8250  , p_source_17            IN VARCHAR2
8251  , p_source_17_meaning    IN VARCHAR2
8252 --Accounting Reversal Indicator
8253  , p_source_19            IN VARCHAR2
8254 --Distribution Link Type
8255  , p_source_21            IN VARCHAR2
8256 --Allocation to Main Distribution Identifier
8257  , p_source_23            IN NUMBER
8258 --Invoice Identifier
8259  , p_source_24            IN NUMBER
8260 --Business Flow Accounts Payable Application Identifier
8261  , p_source_25            IN NUMBER
8262 --Business Flow Invoice Distribution Type
8263  , p_source_26            IN VARCHAR2
8264 --Business Flow Invoice Entity Code
8265  , p_source_27            IN VARCHAR2
8266 --Business Flow Invoice Distribution Identifier
8267  , p_source_28            IN NUMBER
8268 --Business Flow Invoice Identifier
8269  , p_source_29            IN NUMBER
8270 --Invoice Distribution Identifier
8271  , p_source_30            IN NUMBER
8272 --Payables Encumbrance Upgrade Credit Account
8273  , p_source_31            IN NUMBER
8274 --Payables Encumbrance Upgrade Credit Amount
8275  , p_source_32            IN NUMBER
8276 --Invoice Currency Code
8277  , p_source_33            IN VARCHAR2
8278 --Payables Encumbrance Upgrade Credit Base Amount
8279  , p_source_34            IN NUMBER
8280 --Payables Encumbrance Upgrade Debit Account
8281  , p_source_35            IN NUMBER
8282 --Payables Encumbrance Upgrade Debit Amount
8283  , p_source_36            IN NUMBER
8284 --Payables Encumbrance Upgrade Debit Base Amount
8285  , p_source_37            IN NUMBER
8286 --Payables Encumbrance Upgrade Option
8287  , p_source_38            IN VARCHAR2
8288 --Invoice Exchange Date
8289  , p_source_39            IN DATE
8290 --Invoice Exchange Rate
8291  , p_source_40            IN NUMBER
8292 --Invoice Exchange Rate Type
8293  , p_source_41            IN VARCHAR2
8294 --Deferred Accounting End Date
8295  , p_source_43            IN DATE
8296 --Deferred Accounting Option
8297  , p_source_44            IN VARCHAR2
8298 --Deferred Accounting Start Date
8299  , p_source_45            IN DATE
8300 --Override Accounted Amount Indicator
8301  , p_source_46            IN VARCHAR2
8302  , p_source_46_meaning    IN VARCHAR2
8303 --Invoice Supplier Identifier
8304  , p_source_47            IN NUMBER
8305 --Invoice Supplier Site Identifier
8306  , p_source_48            IN NUMBER
8307 --Third Party Type
8308  , p_source_49            IN VARCHAR2
8309 --Parent Reversal Identifier
8310  , p_source_50            IN NUMBER
8311 --Invoice Distribution Tax Line Identifier
8312  , p_source_52            IN NUMBER
8313 --Invoice Distribution Tax Distribution Identifier from Tax
8314  , p_source_53            IN NUMBER
8315 --Invoice Distribution Summary Tax Line Identifier
8316  , p_source_54            IN NUMBER
8317 --Payables Upgrade Credit Encumbrance Type Identifier
8318  , p_source_55            IN NUMBER
8319 --Payables Upgrade Debit Encumbrance Type Identifier
8320  , p_source_56            IN NUMBER
8321 --Invoice Distribution Encumbrance Amount
8322  , p_source_65            IN NUMBER
8323 --Invoice Distribution Encumbrance Ledger Amount
8324  , p_source_66            IN NUMBER
8325 )
8326 IS
8327 
8328 l_component_type              VARCHAR2(80);
8329 l_component_code              VARCHAR2(30);
8330 l_component_type_code         VARCHAR2(1);
8331 l_component_appl_id           INTEGER;
8332 l_amb_context_code            VARCHAR2(30);
8333 l_entity_code                 VARCHAR2(30);
8334 l_event_class_code            VARCHAR2(30);
8335 l_ae_header_id                NUMBER;
8336 l_event_type_code             VARCHAR2(30);
8337 l_line_definition_code        VARCHAR2(30);
8338 l_line_definition_owner_code  VARCHAR2(1);
8339 --
8340 -- adr variables
8341 l_segment                     VARCHAR2(30);
8342 l_ccid                        NUMBER;
8343 l_adr_transaction_coa_id      NUMBER;
8344 l_adr_accounting_coa_id       NUMBER;
8345 l_adr_flexfield_segment_code  VARCHAR2(30);
8346 l_adr_flex_value_set_id       NUMBER;
8347 l_adr_value_type_code         VARCHAR2(30);
8348 l_adr_value_combination_id    NUMBER;
8352 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8349 l_adr_value_segment_code      VARCHAR2(30);
8350 
8351 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8353 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8354 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8355 
8356 -- 4262811 Variables ------------------------------------------------------------------------------------------
8357 l_entered_amt_idx             NUMBER;
8358 l_accted_amt_idx              NUMBER;
8359 l_acc_rev_flag                VARCHAR2(1);
8360 l_accrual_line_num            NUMBER;
8361 l_tmp_amt                     NUMBER;
8362 l_acc_rev_natural_side_code   VARCHAR2(1);
8363 
8364 l_num_entries                 NUMBER;
8365 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8366 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8367 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8368 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8369 l_recog_line_1                NUMBER;
8370 l_recog_line_2                NUMBER;
8371 
8372 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8373 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8374 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8375 
8376 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8377 
8378 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8379 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8380 
8381 ---------------------------------------------------------------------------------------------------------------
8382 
8383 
8384 --
8385 -- bulk performance
8386 --
8387 l_balance_type_code           VARCHAR2(1);
8388 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8389 l_log_module                  VARCHAR2(240);
8390 
8391 --
8392 -- Upgrade strategy
8393 --
8394 l_actual_upg_option           VARCHAR2(1);
8395 l_enc_upg_option           VARCHAR2(1);
8396 
8397 --
8398 BEGIN
8399 --
8400 IF g_log_enabled THEN
8401       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
8402 END IF;
8403 --
8404 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8405 
8406       trace
8407          (p_msg      => 'BEGIN of AcctLineType_23'
8408          ,p_level    => C_LEVEL_PROCEDURE
8409          ,p_module   => l_log_module);
8410 
8411 END IF;
8412 --
8413 l_component_type             := 'AMB_JLT';
8414 l_component_code             := 'AP_EX_RATE_VAR_DM_ENC_DR';
8415 l_component_type_code        := 'S';
8416 l_component_appl_id          :=  200;
8417 l_amb_context_code           := 'DEFAULT';
8418 l_entity_code                := 'AP_INVOICES';
8419 l_event_class_code           := 'DEBIT MEMOS';
8420 l_event_type_code            := 'DEBIT MEMOS_ALL';
8421 l_line_definition_owner_code := 'S';
8422 l_line_definition_code       := 'ENC_DM_ALL';
8423 --
8424 l_balance_type_code          := 'E';
8425 l_segment                     := NULL;
8426 l_ccid                        := NULL;
8427 l_adr_transaction_coa_id      := NULL;
8428 l_adr_accounting_coa_id       := NULL;
8429 l_adr_flexfield_segment_code  := NULL;
8430 l_adr_flex_value_set_id       := NULL;
8431 l_adr_value_type_code         := NULL;
8432 l_adr_value_combination_id    := NULL;
8433 l_adr_value_segment_code      := NULL;
8434 
8435 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8436 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
8437 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8438 l_budgetary_control_flag     := 'Y';
8439 
8440 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8441 l_bflow_applied_to_amt       := NULL; -- 5132302
8442 l_entered_amt_idx            := NULL;          -- 4262811
8443 l_accted_amt_idx             := NULL;          -- 4262811
8444 l_acc_rev_flag               := NULL;          -- 4262811
8445 l_accrual_line_num           := NULL;          -- 4262811
8446 l_tmp_amt                    := NULL;          -- 4262811
8447 --
8448 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
8449             (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
8450                return;
8451   END IF;
8452   
8453 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8454     l_balance_type_code <> 'B' THEN
8455 IF NVL(p_source_15,'
8456 ') =  'ERV' AND 
8457 NVL(p_source_17,'
8458 ') =  'Y'
8459  THEN 
8460 
8461    --
8462    XLA_AE_LINES_PKG.SetNewLine;
8463 
8464    p_balance_type_code          := l_balance_type_code;
8465    -- set the flag so later we will know whether the gain loss line needs to be created
8466    
8467    IF(l_balance_type_code = 'A' ) THEN
8468      p_actual_flag :='G';
8469    END IF;
8470 
8471    --
8472    -- bulk performance
8473    --
8474    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8475                                       p_header_num   => 0); -- 4262811
8476    --
8480            p_natural_side_code          => 'D'
8477    -- set accounting line options
8478    --
8479    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8481          , p_gain_or_loss_flag          => 'Y'
8482          , p_gl_transfer_mode_code      => 'S'
8483          , p_acct_entry_type_code       => 'E'
8484          , p_switch_side_flag           => 'Y'
8485          , p_merge_duplicate_code       => 'N'
8486          );
8487    --
8488    l_acc_rev_natural_side_code := 'C';  -- 4262811
8489    -- 
8490    --
8491    -- set accounting line type info
8492    --
8493    xla_ae_lines_pkg.SetAcctLineType
8494       (p_component_type             => l_component_type
8495       ,p_event_type_code            => l_event_type_code
8496       ,p_line_definition_owner_code => l_line_definition_owner_code
8497       ,p_line_definition_code       => l_line_definition_code
8498       ,p_accounting_line_code       => l_component_code
8499       ,p_accounting_line_type_code  => l_component_type_code
8500       ,p_accounting_line_appl_id    => l_component_appl_id
8501       ,p_amb_context_code           => l_amb_context_code
8502       ,p_entity_code                => l_entity_code
8503       ,p_event_class_code           => l_event_class_code);
8504    --
8505    -- set accounting class
8506    --
8507    xla_ae_lines_pkg.SetAcctClass(
8508            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
8509          , p_ae_header_id           => l_ae_header_id
8510          );
8511 
8512    --
8513    -- set rounding class
8514    --
8515    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8516                       'EXCHANGE_RATE_VARIANCE';
8517 
8518    --
8519    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8520    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8521    --
8522    -- bulk performance
8523    --
8524    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8525 
8526    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8527       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8528 
8529    -- 4955764
8530    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8531       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8532 
8533    -- 4458381 Public Sector Enh
8534       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
8535    --
8536    -- set accounting attributes for the line type
8537    --
8538    l_entered_amt_idx := 23;
8539    l_accted_amt_idx  := 28;
8540    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8541    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8542    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
8543    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8544    l_rec_acct_attrs.array_num_value(2)  := 
8545 xla_ae_sources_pkg.GetSystemSourceNum(
8546    p_source_code           => 'XLA_EVENT_APPL_ID'
8547  , p_source_type_code      => 'Y'
8548  , p_source_application_id =>  602
8549 );
8550    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8551    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
8552    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8553    l_rec_acct_attrs.array_char_value(4)  := 
8554 xla_ae_sources_pkg.GetSystemSourceChar(
8555    p_source_code           => 'XLA_ENTITY_CODE'
8556  , p_source_type_code      => 'Y'
8557  , p_source_application_id =>  602
8558 );
8559    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8560    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
8561    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8562    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
8563    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8564    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
8565    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8566    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
8567    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8568    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
8569    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8570    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
8571    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8572    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
8573    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8574    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
8575    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8576    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
8577    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8578    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
8579    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8580    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
8581    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8582    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
8583    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8584    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
8585    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8586    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
8587    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8591    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8588    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
8589    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8590    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
8592    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
8593    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8594    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
8595    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8596    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
8597    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8598    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
8599    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8600    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
8601    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8602    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
8603    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8604    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
8605    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8606    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
8607    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
8608    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
8609    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
8610    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
8611    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
8612    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
8613    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
8614    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
8615    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
8616    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
8617    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
8618    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
8619    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
8620    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
8621    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
8622    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
8623    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
8624    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
8625    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
8626    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
8627    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
8628    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
8629    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
8630    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
8631    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
8632    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
8633    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
8634    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
8635 
8636    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8637    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8638 
8639    ---------------------------------------------------------------------------------------------------------------
8640    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8641    ---------------------------------------------------------------------------------------------------------------
8642    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8643 
8644    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8645    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8646 
8647    IF xla_accounting_cache_pkg.GetValueChar
8648          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8649          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8650    AND l_bflow_method_code = 'PRIOR_ENTRY'
8651 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8652    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8653          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8654        )
8655    THEN
8656          xla_ae_lines_pkg.BflowUpgEntry
8657            (p_business_method_code    => l_bflow_method_code
8658            ,p_business_class_code     => l_bflow_class_code
8659            ,p_balance_type            => l_balance_type_code);
8660    ELSE
8661       NULL;
8662 -- No business flow processing for business flow method of NONE.
8663    END IF;
8664 
8665    --
8666    -- call analytical criteria
8667    --
8668    
8669    --
8670    -- call description
8671    --
8672    
8673 xla_ae_lines_pkg.SetLineDescription(
8674    p_ae_header_id => l_ae_header_id
8675   ,p_description  => Description_2 (
8676      p_application_id         => p_application_id
8677    , p_ae_header_id           => l_ae_header_id 
8678 , p_source_1 => p_source_1
8679    )
8680 );
8681 
8682 
8683    --
8684    -- call ADRs
8685    -- Bug 4922099
8686    --
8687    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8688         (NVL(l_actual_upg_option, 'N') = 'O') OR
8689         (NVL(l_enc_upg_option, 'N') = 'O')
8690       )
8691    THEN
8692    NULL;
8693    --
8694    --
8695    
8699 , p_source_6 => p_source_6
8696   l_ccid := AcctDerRule_6(
8697            p_application_id           => p_application_id
8698          , p_ae_header_id             => l_ae_header_id 
8700 , p_source_7 => p_source_7
8701 , p_source_7_meaning => p_source_7_meaning
8702 , p_source_8 => p_source_8
8703 , p_source_9 => p_source_9
8704 , p_source_9_meaning => p_source_9_meaning
8705 , p_source_10 => p_source_10
8706 , p_source_11 => p_source_11
8707 , p_source_12 => p_source_12
8708 , p_source_12_meaning => p_source_12_meaning
8709          , x_transaction_coa_id       => l_adr_transaction_coa_id
8710          , x_accounting_coa_id        => l_adr_accounting_coa_id
8711          , x_value_type_code          => l_adr_value_type_code
8712          , p_side                     => 'NA'
8713    );
8714 
8715    xla_ae_lines_pkg.set_ccid(
8716     p_code_combination_id          => l_ccid
8717   , p_value_type_code              => l_adr_value_type_code
8718   , p_transaction_coa_id           => l_adr_transaction_coa_id
8719   , p_accounting_coa_id            => l_adr_accounting_coa_id
8720   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
8721   , p_adr_type_code                => 'S'
8722   , p_component_type               => l_component_type
8723   , p_component_code               => l_component_code
8724   , p_component_type_code          => l_component_type_code
8725   , p_component_appl_id            => l_component_appl_id
8726   , p_amb_context_code             => l_amb_context_code
8727   , p_side                         => 'NA'
8728   );
8729 
8730 
8731    l_segment := AcctDerRule_4(
8732            p_application_id           => p_application_id
8733          , p_ae_header_id             => l_ae_header_id 
8734 , p_source_6 => p_source_6
8735 , p_source_7 => p_source_7
8736 , p_source_7_meaning => p_source_7_meaning
8737 , p_source_8 => p_source_8
8738 , p_source_9 => p_source_9
8739 , p_source_9_meaning => p_source_9_meaning
8740 , p_source_10 => p_source_10
8741          , x_transaction_coa_id       => l_adr_transaction_coa_id
8742          , x_accounting_coa_id        => l_adr_accounting_coa_id
8743          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
8744          , x_flex_value_set_id        => l_adr_flex_value_set_id
8745          , x_value_type_code          => l_adr_value_type_code
8746          , x_value_combination_id     => l_adr_value_combination_id
8747          , x_value_segment_code       => l_adr_value_segment_code
8748          , p_side                     => 'NA'
8749          , p_override_seg_flag        => 'Y'
8750    );
8751 
8752    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
8753 
8754       xla_ae_lines_pkg.set_segment(
8755           p_to_segment_code         => 'GL_ACCOUNT'
8756         , p_segment_value           => l_segment
8757         , p_from_segment_code       => l_adr_value_segment_code
8758         , p_from_combination_id     => l_adr_value_combination_id
8759         , p_value_type_code         => l_adr_value_type_code
8760         , p_transaction_coa_id      => l_adr_transaction_coa_id
8761         , p_accounting_coa_id       => l_adr_accounting_coa_id
8762         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
8763         , p_flex_value_set_id       => l_adr_flex_value_set_id
8764         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
8765         , p_adr_type_code           => 'S'
8766         , p_component_type          => l_component_type
8767         , p_component_code          => l_component_code
8768         , p_component_type_code     => l_component_type_code
8769         , p_component_appl_id       => l_component_appl_id
8770         , p_amb_context_code        => l_amb_context_code
8771         , p_entity_code             => 'AP_INVOICES'
8772         , p_event_class_code        => 'DEBIT MEMOS'
8773         , p_side                    => 'NA'
8774         );
8775 
8776   END IF;
8777 
8778    l_segment := AcctDerRule_5(
8779            p_application_id           => p_application_id
8780          , p_ae_header_id             => l_ae_header_id 
8781 , p_source_7 => p_source_7
8782 , p_source_7_meaning => p_source_7_meaning
8783 , p_source_9 => p_source_9
8784 , p_source_9_meaning => p_source_9_meaning
8785 , p_source_11 => p_source_11
8786          , x_transaction_coa_id       => l_adr_transaction_coa_id
8787          , x_accounting_coa_id        => l_adr_accounting_coa_id
8788          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
8789          , x_flex_value_set_id        => l_adr_flex_value_set_id
8790          , x_value_type_code          => l_adr_value_type_code
8791          , x_value_combination_id     => l_adr_value_combination_id
8792          , x_value_segment_code       => l_adr_value_segment_code
8793          , p_side                     => 'NA'
8794          , p_override_seg_flag        => 'Y'
8795    );
8796 
8797    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
8798 
8799       xla_ae_lines_pkg.set_segment(
8800           p_to_segment_code         => 'GL_BALANCING'
8801         , p_segment_value           => l_segment
8802         , p_from_segment_code       => l_adr_value_segment_code
8803         , p_from_combination_id     => l_adr_value_combination_id
8804         , p_value_type_code         => l_adr_value_type_code
8805         , p_transaction_coa_id      => l_adr_transaction_coa_id
8806         , p_accounting_coa_id       => l_adr_accounting_coa_id
8807         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
8808         , p_flex_value_set_id       => l_adr_flex_value_set_id
8812         , p_component_code          => l_component_code
8809         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
8810         , p_adr_type_code           => 'S'
8811         , p_component_type          => l_component_type
8813         , p_component_type_code     => l_component_type_code
8814         , p_component_appl_id       => l_component_appl_id
8815         , p_amb_context_code        => l_amb_context_code
8816         , p_entity_code             => 'AP_INVOICES'
8817         , p_event_class_code        => 'DEBIT MEMOS'
8818         , p_side                    => 'NA'
8819         );
8820 
8821   END IF;
8822 
8823    --
8824    --
8825    END IF;
8826    --
8827    -- Bug 4922099
8828    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8829           (NVL(l_enc_upg_option, 'N') = 'O')
8830         ) AND
8831         (l_bflow_method_code = 'PRIOR_ENTRY')
8832       )
8833    THEN
8834       IF
8835       --
8836       1 = 2
8837       --
8838       THEN
8839       xla_accounting_err_pkg.build_message
8840                                     (p_appli_s_name            => 'XLA'
8841                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8842                                     ,p_token_1                 => 'LINE_NUMBER'
8843                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8844                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8845                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8846                                                                              l_component_type
8847                                                                             ,l_component_code
8848                                                                             ,l_component_type_code
8849                                                                             ,l_component_appl_id
8850                                                                             ,l_amb_context_code
8851                                                                             ,l_entity_code
8852                                                                             ,l_event_class_code
8853                                                                            )
8854                                     ,p_token_3                 => 'OWNER'
8855                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8856                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8857                                                                           ,p_lookup_code    => l_component_type_code
8858                                                                          )
8859                                     ,p_token_4                 => 'PRODUCT_NAME'
8860                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8861                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8862                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8863                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8864                                     ,p_ae_header_id            =>  NULL
8865                                        );
8866 
8867         IF (C_LEVEL_ERROR>= g_log_level) THEN
8868                  trace
8869                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8870                       ,p_level    => C_LEVEL_ERROR
8871                       ,p_module   => l_log_module);
8872         END IF;
8873       END IF;
8874    END IF;
8875    --
8876    --
8877    ------------------------------------------------------------------------------------------------
8878    -- 4219869 Business Flow
8879    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8880    -- Prior Entry.  Currently, the following code is always generated.
8881    ------------------------------------------------------------------------------------------------
8882    XLA_AE_LINES_PKG.ValidateCurrentLine;
8883 
8884    ------------------------------------------------------------------------------------
8885    -- 4219869 Business Flow
8886    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8887    ------------------------------------------------------------------------------------
8888    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8889 
8890    ----------------------------------------------------------------------------------
8891    -- 4219869 Business Flow
8892    -- Update journal entry status -- Need to generate this within IF <condition>
8893    ----------------------------------------------------------------------------------
8894    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8895          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8896          ,p_balance_type_code => l_balance_type_code
8897          );
8898 
8899    -------------------------------------------------------------------------------------------
8900    -- 4262811 - Generate the Accrual Reversal lines
8901    -------------------------------------------------------------------------------------------
8902    BEGIN
8903       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8904                               (g_array_event(p_event_id).array_value_num('header_index'));
8908    EXCEPTION
8905       IF l_acc_rev_flag IS NULL THEN
8906          l_acc_rev_flag := 'N';
8907       END IF;
8909       WHEN OTHERS THEN
8910          l_acc_rev_flag := 'N';
8911    END;
8912    --
8913    IF (l_acc_rev_flag = 'Y') THEN
8914 
8915        -- 4645092  ------------------------------------------------------------------------------
8916        -- To allow MPA report to determine if it should generate report process
8917        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8918        ------------------------------------------------------------------------------------------
8919 
8920        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8921        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8922    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8923    -- call ADRs
8924    -- Bug 4922099
8925    --
8926    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8927         (NVL(l_actual_upg_option, 'N') = 'O') OR
8928         (NVL(l_enc_upg_option, 'N') = 'O')
8929       )
8930    THEN
8931    NULL;
8932    --
8933    --
8934    
8935   l_ccid := AcctDerRule_6(
8936            p_application_id           => p_application_id
8937          , p_ae_header_id             => l_ae_header_id 
8938 , p_source_6 => p_source_6
8939 , p_source_7 => p_source_7
8940 , p_source_7_meaning => p_source_7_meaning
8941 , p_source_8 => p_source_8
8942 , p_source_9 => p_source_9
8943 , p_source_9_meaning => p_source_9_meaning
8944 , p_source_10 => p_source_10
8945 , p_source_11 => p_source_11
8946 , p_source_12 => p_source_12
8947 , p_source_12_meaning => p_source_12_meaning
8948          , x_transaction_coa_id       => l_adr_transaction_coa_id
8949          , x_accounting_coa_id        => l_adr_accounting_coa_id
8950          , x_value_type_code          => l_adr_value_type_code
8951          , p_side                     => 'NA'
8952    );
8953 
8954    xla_ae_lines_pkg.set_ccid(
8955     p_code_combination_id          => l_ccid
8956   , p_value_type_code              => l_adr_value_type_code
8957   , p_transaction_coa_id           => l_adr_transaction_coa_id
8958   , p_accounting_coa_id            => l_adr_accounting_coa_id
8959   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
8960   , p_adr_type_code                => 'S'
8961   , p_component_type               => l_component_type
8962   , p_component_code               => l_component_code
8963   , p_component_type_code          => l_component_type_code
8964   , p_component_appl_id            => l_component_appl_id
8965   , p_amb_context_code             => l_amb_context_code
8966   , p_side                         => 'NA'
8967   );
8968 
8969 
8970    l_segment := AcctDerRule_4(
8971            p_application_id           => p_application_id
8972          , p_ae_header_id             => l_ae_header_id 
8973 , p_source_6 => p_source_6
8974 , p_source_7 => p_source_7
8975 , p_source_7_meaning => p_source_7_meaning
8976 , p_source_8 => p_source_8
8977 , p_source_9 => p_source_9
8978 , p_source_9_meaning => p_source_9_meaning
8979 , p_source_10 => p_source_10
8980          , x_transaction_coa_id       => l_adr_transaction_coa_id
8981          , x_accounting_coa_id        => l_adr_accounting_coa_id
8982          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
8983          , x_flex_value_set_id        => l_adr_flex_value_set_id
8984          , x_value_type_code          => l_adr_value_type_code
8985          , x_value_combination_id     => l_adr_value_combination_id
8986          , x_value_segment_code       => l_adr_value_segment_code
8987          , p_side                     => 'NA'
8988          , p_override_seg_flag        => 'Y'
8989    );
8990 
8991    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
8992 
8993       xla_ae_lines_pkg.set_segment(
8994           p_to_segment_code         => 'GL_ACCOUNT'
8995         , p_segment_value           => l_segment
8996         , p_from_segment_code       => l_adr_value_segment_code
8997         , p_from_combination_id     => l_adr_value_combination_id
8998         , p_value_type_code         => l_adr_value_type_code
8999         , p_transaction_coa_id      => l_adr_transaction_coa_id
9000         , p_accounting_coa_id       => l_adr_accounting_coa_id
9001         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9002         , p_flex_value_set_id       => l_adr_flex_value_set_id
9003         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
9004         , p_adr_type_code           => 'S'
9005         , p_component_type          => l_component_type
9006         , p_component_code          => l_component_code
9007         , p_component_type_code     => l_component_type_code
9008         , p_component_appl_id       => l_component_appl_id
9009         , p_amb_context_code        => l_amb_context_code
9010         , p_entity_code             => 'AP_INVOICES'
9011         , p_event_class_code        => 'DEBIT MEMOS'
9012         , p_side                    => 'NA'
9013         );
9014 
9015   END IF;
9016 
9017    l_segment := AcctDerRule_5(
9018            p_application_id           => p_application_id
9019          , p_ae_header_id             => l_ae_header_id 
9020 , p_source_7 => p_source_7
9021 , p_source_7_meaning => p_source_7_meaning
9022 , p_source_9 => p_source_9
9023 , p_source_9_meaning => p_source_9_meaning
9024 , p_source_11 => p_source_11
9025          , x_transaction_coa_id       => l_adr_transaction_coa_id
9026          , x_accounting_coa_id        => l_adr_accounting_coa_id
9030          , x_value_combination_id     => l_adr_value_combination_id
9027          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9028          , x_flex_value_set_id        => l_adr_flex_value_set_id
9029          , x_value_type_code          => l_adr_value_type_code
9031          , x_value_segment_code       => l_adr_value_segment_code
9032          , p_side                     => 'NA'
9033          , p_override_seg_flag        => 'Y'
9034    );
9035 
9036    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9037 
9038       xla_ae_lines_pkg.set_segment(
9039           p_to_segment_code         => 'GL_BALANCING'
9040         , p_segment_value           => l_segment
9041         , p_from_segment_code       => l_adr_value_segment_code
9042         , p_from_combination_id     => l_adr_value_combination_id
9043         , p_value_type_code         => l_adr_value_type_code
9044         , p_transaction_coa_id      => l_adr_transaction_coa_id
9045         , p_accounting_coa_id       => l_adr_accounting_coa_id
9046         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9047         , p_flex_value_set_id       => l_adr_flex_value_set_id
9048         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9049         , p_adr_type_code           => 'S'
9050         , p_component_type          => l_component_type
9051         , p_component_code          => l_component_code
9052         , p_component_type_code     => l_component_type_code
9053         , p_component_appl_id       => l_component_appl_id
9054         , p_amb_context_code        => l_amb_context_code
9055         , p_entity_code             => 'AP_INVOICES'
9056         , p_event_class_code        => 'DEBIT MEMOS'
9057         , p_side                    => 'NA'
9058         );
9059 
9060   END IF;
9061 
9062    --
9063    --
9064    END IF;
9065 
9066        --
9067        -- Update the line information that should be overwritten
9068        --
9069        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9070                                          p_header_num   => 1);
9071        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9072 
9073        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9074 
9075        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9076           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9077        END IF;
9078 
9079       --
9080       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9081       --
9082       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9083           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9084       ELSE
9085           ---------------------------------------------------------------------------------------------------
9086           -- 4262811a Switch Sign
9087           ---------------------------------------------------------------------------------------------------
9088           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9089           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9090                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9091           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9092                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9093           -- 5132302
9094           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9095                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9096 
9097       END IF;
9098 
9099       -- 4955764
9100       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9101       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9102 
9103 
9104       XLA_AE_LINES_PKG.ValidateCurrentLine;
9105       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9106 
9107       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9108                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9109                ,p_balance_type_code => l_balance_type_code);
9110 
9111    END IF;
9112 
9113    -----------------------------------------------------------------------------------------
9114    -- 4262811 Multiperiod Accounting
9115    -----------------------------------------------------------------------------------------
9116      -- No MPA option is assigned.
9117 
9118 
9119 END IF;
9120 END IF;
9121 --
9122 
9123 --
9124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9125    trace
9126       (p_msg      => 'END of AcctLineType_23'
9127       ,p_level    => C_LEVEL_PROCEDURE
9128       ,p_module   => l_log_module);
9129 END IF;
9130 --
9131 EXCEPTION
9132   WHEN xla_exceptions_pkg.application_exception THEN
9133       RAISE;
9134   WHEN OTHERS THEN
9135        xla_exceptions_pkg.raise_message
9136            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_23');
9137 END AcctLineType_23;
9138 --
9139 
9143 --         AcctLineType_24
9140 ---------------------------------------
9141 --
9142 -- PRIVATE FUNCTION
9144 --
9145 ---------------------------------------
9146 PROCEDURE AcctLineType_24 (
9147   p_application_id        IN NUMBER
9148  ,p_event_id              IN NUMBER
9149  ,p_calculate_acctd_flag  IN VARCHAR2
9150  ,p_calculate_g_l_flag    IN VARCHAR2
9151  ,p_actual_flag           IN OUT VARCHAR2
9152  ,p_balance_type_code     OUT VARCHAR2
9153  ,p_gain_or_loss_ref      OUT VARCHAR2
9154  
9155 --Invoice Distribution Description
9156  , p_source_1            IN VARCHAR2
9157 --Purchase Order Rate Variance Gain Account
9158  , p_source_6            IN NUMBER
9159 --Automatic Offsets Value
9160  , p_source_7            IN VARCHAR2
9161  , p_source_7_meaning    IN VARCHAR2
9162 --Invoice Distribution Ledger Amount
9163  , p_source_8            IN NUMBER
9164 --Destination Type of the PO Distribution
9165  , p_source_9            IN VARCHAR2
9166  , p_source_9_meaning    IN VARCHAR2
9167 --Purchase Order Rate Variance Loss Account
9168  , p_source_10            IN NUMBER
9169 --Invoice Distribution Account
9170  , p_source_11            IN NUMBER
9171 --Automatic Offsets Flag
9172  , p_source_12            IN VARCHAR2
9173  , p_source_12_meaning    IN VARCHAR2
9174 --Invoice Distribution Type
9175  , p_source_15            IN VARCHAR2
9176  , p_source_15_meaning    IN VARCHAR2
9177 --Purchasing Encumbrance Option
9178  , p_source_17            IN VARCHAR2
9179  , p_source_17_meaning    IN VARCHAR2
9180 --Accounting Reversal Indicator
9181  , p_source_19            IN VARCHAR2
9182 --Distribution Link Type
9183  , p_source_21            IN VARCHAR2
9184 --Allocation to Main Distribution Identifier
9185  , p_source_23            IN NUMBER
9186 --Invoice Identifier
9187  , p_source_24            IN NUMBER
9188 --Business Flow Accounts Payable Application Identifier
9189  , p_source_25            IN NUMBER
9190 --Business Flow Invoice Distribution Type
9191  , p_source_26            IN VARCHAR2
9192 --Business Flow Invoice Entity Code
9193  , p_source_27            IN VARCHAR2
9194 --Business Flow Invoice Distribution Identifier
9195  , p_source_28            IN NUMBER
9196 --Business Flow Invoice Identifier
9197  , p_source_29            IN NUMBER
9198 --Invoice Distribution Identifier
9199  , p_source_30            IN NUMBER
9200 --Payables Encumbrance Upgrade Credit Account
9201  , p_source_31            IN NUMBER
9202 --Payables Encumbrance Upgrade Credit Amount
9203  , p_source_32            IN NUMBER
9204 --Invoice Currency Code
9205  , p_source_33            IN VARCHAR2
9206 --Payables Encumbrance Upgrade Credit Base Amount
9207  , p_source_34            IN NUMBER
9208 --Payables Encumbrance Upgrade Debit Account
9209  , p_source_35            IN NUMBER
9210 --Payables Encumbrance Upgrade Debit Amount
9211  , p_source_36            IN NUMBER
9212 --Payables Encumbrance Upgrade Debit Base Amount
9213  , p_source_37            IN NUMBER
9214 --Payables Encumbrance Upgrade Option
9215  , p_source_38            IN VARCHAR2
9216 --Invoice Exchange Date
9217  , p_source_39            IN DATE
9218 --Invoice Exchange Rate
9219  , p_source_40            IN NUMBER
9220 --Invoice Exchange Rate Type
9221  , p_source_41            IN VARCHAR2
9222 --Deferred Accounting End Date
9223  , p_source_43            IN DATE
9224 --Deferred Accounting Option
9225  , p_source_44            IN VARCHAR2
9226 --Deferred Accounting Start Date
9227  , p_source_45            IN DATE
9228 --Override Accounted Amount Indicator
9229  , p_source_46            IN VARCHAR2
9230  , p_source_46_meaning    IN VARCHAR2
9231 --Invoice Supplier Identifier
9232  , p_source_47            IN NUMBER
9233 --Invoice Supplier Site Identifier
9234  , p_source_48            IN NUMBER
9235 --Third Party Type
9236  , p_source_49            IN VARCHAR2
9237 --Parent Reversal Identifier
9238  , p_source_50            IN NUMBER
9239 --Invoice Distribution Statistical Amount
9240  , p_source_51            IN NUMBER
9241 --Invoice Distribution Tax Line Identifier
9242  , p_source_52            IN NUMBER
9243 --Invoice Distribution Tax Distribution Identifier from Tax
9244  , p_source_53            IN NUMBER
9245 --Invoice Distribution Summary Tax Line Identifier
9246  , p_source_54            IN NUMBER
9247 --Payables Upgrade Credit Encumbrance Type Identifier
9248  , p_source_55            IN NUMBER
9249 --Payables Upgrade Debit Encumbrance Type Identifier
9250  , p_source_56            IN NUMBER
9251 --Invoice Distribution Amount
9252  , p_source_57            IN NUMBER
9253 --Invoice Distribution Encumbrance Amount
9254  , p_source_65            IN NUMBER
9255 --Invoice Distribution Encumbrance Ledger Amount
9256  , p_source_66            IN NUMBER
9257 )
9258 IS
9259 
9260 l_component_type              VARCHAR2(80);
9261 l_component_code              VARCHAR2(30);
9262 l_component_type_code         VARCHAR2(1);
9263 l_component_appl_id           INTEGER;
9264 l_amb_context_code            VARCHAR2(30);
9265 l_entity_code                 VARCHAR2(30);
9266 l_event_class_code            VARCHAR2(30);
9267 l_ae_header_id                NUMBER;
9268 l_event_type_code             VARCHAR2(30);
9269 l_line_definition_code        VARCHAR2(30);
9270 l_line_definition_owner_code  VARCHAR2(1);
9271 --
9272 -- adr variables
9273 l_segment                     VARCHAR2(30);
9277 l_adr_flexfield_segment_code  VARCHAR2(30);
9274 l_ccid                        NUMBER;
9275 l_adr_transaction_coa_id      NUMBER;
9276 l_adr_accounting_coa_id       NUMBER;
9278 l_adr_flex_value_set_id       NUMBER;
9279 l_adr_value_type_code         VARCHAR2(30);
9280 l_adr_value_combination_id    NUMBER;
9281 l_adr_value_segment_code      VARCHAR2(30);
9282 
9283 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9284 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9285 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9286 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9287 
9288 -- 4262811 Variables ------------------------------------------------------------------------------------------
9289 l_entered_amt_idx             NUMBER;
9290 l_accted_amt_idx              NUMBER;
9291 l_acc_rev_flag                VARCHAR2(1);
9292 l_accrual_line_num            NUMBER;
9293 l_tmp_amt                     NUMBER;
9294 l_acc_rev_natural_side_code   VARCHAR2(1);
9295 
9296 l_num_entries                 NUMBER;
9297 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9298 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9299 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9300 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9301 l_recog_line_1                NUMBER;
9302 l_recog_line_2                NUMBER;
9303 
9304 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9305 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9306 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9307 
9308 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9309 
9310 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9311 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9312 
9313 ---------------------------------------------------------------------------------------------------------------
9314 
9315 
9316 --
9317 -- bulk performance
9318 --
9319 l_balance_type_code           VARCHAR2(1);
9320 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9321 l_log_module                  VARCHAR2(240);
9322 
9323 --
9324 -- Upgrade strategy
9325 --
9326 l_actual_upg_option           VARCHAR2(1);
9327 l_enc_upg_option           VARCHAR2(1);
9328 
9329 --
9330 BEGIN
9331 --
9332 IF g_log_enabled THEN
9333       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
9334 END IF;
9335 --
9336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9337 
9338       trace
9339          (p_msg      => 'BEGIN of AcctLineType_24'
9340          ,p_level    => C_LEVEL_PROCEDURE
9341          ,p_module   => l_log_module);
9342 
9343 END IF;
9344 --
9345 l_component_type             := 'AMB_JLT';
9346 l_component_code             := 'AP_EX_RATE_VAR_INV_ENC_DR';
9347 l_component_type_code        := 'S';
9348 l_component_appl_id          :=  200;
9349 l_amb_context_code           := 'DEFAULT';
9350 l_entity_code                := 'AP_INVOICES';
9351 l_event_class_code           := 'INVOICES';
9352 l_event_type_code            := 'INVOICES_ALL';
9353 l_line_definition_owner_code := 'S';
9354 l_line_definition_code       := 'ENC_INVOICES_ALL';
9355 --
9356 l_balance_type_code          := 'E';
9357 l_segment                     := NULL;
9358 l_ccid                        := NULL;
9359 l_adr_transaction_coa_id      := NULL;
9360 l_adr_accounting_coa_id       := NULL;
9361 l_adr_flexfield_segment_code  := NULL;
9362 l_adr_flex_value_set_id       := NULL;
9363 l_adr_value_type_code         := NULL;
9364 l_adr_value_combination_id    := NULL;
9365 l_adr_value_segment_code      := NULL;
9366 
9367 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9368 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
9369 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9370 l_budgetary_control_flag     := 'Y';
9371 
9372 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9373 l_bflow_applied_to_amt       := NULL; -- 5132302
9374 l_entered_amt_idx            := NULL;          -- 4262811
9375 l_accted_amt_idx             := NULL;          -- 4262811
9376 l_acc_rev_flag               := NULL;          -- 4262811
9377 l_accrual_line_num           := NULL;          -- 4262811
9378 l_tmp_amt                    := NULL;          -- 4262811
9379 --
9380 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9381             (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
9382                return;
9383   END IF;
9384   
9385 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9386     l_balance_type_code <> 'B' THEN
9387 IF NVL(p_source_15,'
9388 ') =  'ERV' AND 
9389 NVL(p_source_17,'
9390 ') =  'Y'
9391  THEN 
9392 
9393    --
9394    XLA_AE_LINES_PKG.SetNewLine;
9395 
9396    p_balance_type_code          := l_balance_type_code;
9397    -- set the flag so later we will know whether the gain loss line needs to be created
9398    
9399    IF(l_balance_type_code = 'A' ) THEN
9400      p_actual_flag :='G';
9404    -- bulk performance
9401    END IF;
9402 
9403    --
9405    --
9406    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9407                                       p_header_num   => 0); -- 4262811
9408    --
9409    -- set accounting line options
9410    --
9411    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9412            p_natural_side_code          => 'D'
9413          , p_gain_or_loss_flag          => 'Y'
9414          , p_gl_transfer_mode_code      => 'S'
9415          , p_acct_entry_type_code       => 'E'
9416          , p_switch_side_flag           => 'Y'
9417          , p_merge_duplicate_code       => 'N'
9418          );
9419    --
9420    l_acc_rev_natural_side_code := 'C';  -- 4262811
9421    -- 
9422    --
9423    -- set accounting line type info
9424    --
9425    xla_ae_lines_pkg.SetAcctLineType
9426       (p_component_type             => l_component_type
9427       ,p_event_type_code            => l_event_type_code
9428       ,p_line_definition_owner_code => l_line_definition_owner_code
9429       ,p_line_definition_code       => l_line_definition_code
9430       ,p_accounting_line_code       => l_component_code
9431       ,p_accounting_line_type_code  => l_component_type_code
9432       ,p_accounting_line_appl_id    => l_component_appl_id
9433       ,p_amb_context_code           => l_amb_context_code
9434       ,p_entity_code                => l_entity_code
9435       ,p_event_class_code           => l_event_class_code);
9436    --
9437    -- set accounting class
9438    --
9439    xla_ae_lines_pkg.SetAcctClass(
9440            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9441          , p_ae_header_id           => l_ae_header_id
9442          );
9443 
9444    --
9445    -- set rounding class
9446    --
9447    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9448                       'EXCHANGE_RATE_VARIANCE';
9449 
9450    --
9451    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9452    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9453    --
9454    -- bulk performance
9455    --
9456    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9457 
9458    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9459       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9460 
9461    -- 4955764
9462    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9463       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9464 
9465    -- 4458381 Public Sector Enh
9466       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
9467    --
9468    -- set accounting attributes for the line type
9469    --
9470    l_entered_amt_idx := 24;
9471    l_accted_amt_idx  := 29;
9472    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
9473    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9474    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
9475    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9476    l_rec_acct_attrs.array_num_value(2)  := 
9477 xla_ae_sources_pkg.GetSystemSourceNum(
9478    p_source_code           => 'XLA_EVENT_APPL_ID'
9479  , p_source_type_code      => 'Y'
9480  , p_source_application_id =>  602
9481 );
9482    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9483    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
9484    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9485    l_rec_acct_attrs.array_char_value(4)  := 
9486 xla_ae_sources_pkg.GetSystemSourceChar(
9487    p_source_code           => 'XLA_ENTITY_CODE'
9488  , p_source_type_code      => 'Y'
9489  , p_source_application_id =>  602
9490 );
9491    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9492    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
9493    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9494    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
9495    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
9496    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
9497    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
9498    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
9499    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9500    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
9501    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
9502    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
9503    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
9504    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
9505    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9506    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
9507    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
9508    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
9509    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
9510    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
9511    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
9512    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
9516    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
9513    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
9514    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
9515    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
9517    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
9518    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
9519    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
9520    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
9521    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
9522    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
9523    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
9524    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
9525    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
9526    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
9527    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
9528    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
9529    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
9530    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
9531    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
9532    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
9533    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
9534    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
9535    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
9536    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
9537    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
9538    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
9539    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
9540    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
9541    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
9542    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
9543    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
9544    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
9545    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
9546    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
9547    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
9548    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
9549    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
9550    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
9551    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
9552    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
9553    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
9554    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
9555    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
9556    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
9557    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
9558    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
9559    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
9560    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
9561    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
9562    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
9563    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
9564    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
9565    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
9566    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
9567    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
9568    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
9569    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
9570    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
9571 
9572    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9573    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9574 
9575    ---------------------------------------------------------------------------------------------------------------
9576    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9577    ---------------------------------------------------------------------------------------------------------------
9578    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9579 
9580    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9581    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9582 
9583    IF xla_accounting_cache_pkg.GetValueChar
9584          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9585          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9586    AND l_bflow_method_code = 'PRIOR_ENTRY'
9587 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9588    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9589          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9590        )
9591    THEN
9592          xla_ae_lines_pkg.BflowUpgEntry
9593            (p_business_method_code    => l_bflow_method_code
9594            ,p_business_class_code     => l_bflow_class_code
9595            ,p_balance_type            => l_balance_type_code);
9596    ELSE
9597       NULL;
9598 -- No business flow processing for business flow method of NONE.
9599    END IF;
9600 
9601    --
9602    -- call analytical criteria
9603    --
9604    
9608    
9605    --
9606    -- call description
9607    --
9609 xla_ae_lines_pkg.SetLineDescription(
9610    p_ae_header_id => l_ae_header_id
9611   ,p_description  => Description_2 (
9612      p_application_id         => p_application_id
9613    , p_ae_header_id           => l_ae_header_id 
9614 , p_source_1 => p_source_1
9615    )
9616 );
9617 
9618 
9619    --
9620    -- call ADRs
9621    -- Bug 4922099
9622    --
9623    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9624         (NVL(l_actual_upg_option, 'N') = 'O') OR
9625         (NVL(l_enc_upg_option, 'N') = 'O')
9626       )
9627    THEN
9628    NULL;
9629    --
9630    --
9631    
9632   l_ccid := AcctDerRule_6(
9633            p_application_id           => p_application_id
9634          , p_ae_header_id             => l_ae_header_id 
9635 , p_source_6 => p_source_6
9636 , p_source_7 => p_source_7
9637 , p_source_7_meaning => p_source_7_meaning
9638 , p_source_8 => p_source_8
9639 , p_source_9 => p_source_9
9640 , p_source_9_meaning => p_source_9_meaning
9641 , p_source_10 => p_source_10
9642 , p_source_11 => p_source_11
9643 , p_source_12 => p_source_12
9644 , p_source_12_meaning => p_source_12_meaning
9645          , x_transaction_coa_id       => l_adr_transaction_coa_id
9646          , x_accounting_coa_id        => l_adr_accounting_coa_id
9647          , x_value_type_code          => l_adr_value_type_code
9648          , p_side                     => 'NA'
9649    );
9650 
9651    xla_ae_lines_pkg.set_ccid(
9652     p_code_combination_id          => l_ccid
9653   , p_value_type_code              => l_adr_value_type_code
9654   , p_transaction_coa_id           => l_adr_transaction_coa_id
9655   , p_accounting_coa_id            => l_adr_accounting_coa_id
9656   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
9657   , p_adr_type_code                => 'S'
9658   , p_component_type               => l_component_type
9659   , p_component_code               => l_component_code
9660   , p_component_type_code          => l_component_type_code
9661   , p_component_appl_id            => l_component_appl_id
9662   , p_amb_context_code             => l_amb_context_code
9663   , p_side                         => 'NA'
9664   );
9665 
9666 
9667    l_segment := AcctDerRule_4(
9668            p_application_id           => p_application_id
9669          , p_ae_header_id             => l_ae_header_id 
9670 , p_source_6 => p_source_6
9671 , p_source_7 => p_source_7
9672 , p_source_7_meaning => p_source_7_meaning
9673 , p_source_8 => p_source_8
9674 , p_source_9 => p_source_9
9675 , p_source_9_meaning => p_source_9_meaning
9676 , p_source_10 => p_source_10
9677          , x_transaction_coa_id       => l_adr_transaction_coa_id
9678          , x_accounting_coa_id        => l_adr_accounting_coa_id
9679          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9680          , x_flex_value_set_id        => l_adr_flex_value_set_id
9681          , x_value_type_code          => l_adr_value_type_code
9682          , x_value_combination_id     => l_adr_value_combination_id
9683          , x_value_segment_code       => l_adr_value_segment_code
9684          , p_side                     => 'NA'
9685          , p_override_seg_flag        => 'Y'
9686    );
9687 
9688    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9689 
9690       xla_ae_lines_pkg.set_segment(
9691           p_to_segment_code         => 'GL_ACCOUNT'
9692         , p_segment_value           => l_segment
9693         , p_from_segment_code       => l_adr_value_segment_code
9694         , p_from_combination_id     => l_adr_value_combination_id
9695         , p_value_type_code         => l_adr_value_type_code
9696         , p_transaction_coa_id      => l_adr_transaction_coa_id
9697         , p_accounting_coa_id       => l_adr_accounting_coa_id
9698         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9699         , p_flex_value_set_id       => l_adr_flex_value_set_id
9700         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
9701         , p_adr_type_code           => 'S'
9702         , p_component_type          => l_component_type
9703         , p_component_code          => l_component_code
9704         , p_component_type_code     => l_component_type_code
9705         , p_component_appl_id       => l_component_appl_id
9706         , p_amb_context_code        => l_amb_context_code
9707         , p_entity_code             => 'AP_INVOICES'
9708         , p_event_class_code        => 'INVOICES'
9709         , p_side                    => 'NA'
9710         );
9711 
9712   END IF;
9713 
9714    l_segment := AcctDerRule_5(
9715            p_application_id           => p_application_id
9716          , p_ae_header_id             => l_ae_header_id 
9717 , p_source_7 => p_source_7
9718 , p_source_7_meaning => p_source_7_meaning
9719 , p_source_9 => p_source_9
9720 , p_source_9_meaning => p_source_9_meaning
9721 , p_source_11 => p_source_11
9722          , x_transaction_coa_id       => l_adr_transaction_coa_id
9723          , x_accounting_coa_id        => l_adr_accounting_coa_id
9724          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9725          , x_flex_value_set_id        => l_adr_flex_value_set_id
9726          , x_value_type_code          => l_adr_value_type_code
9727          , x_value_combination_id     => l_adr_value_combination_id
9728          , x_value_segment_code       => l_adr_value_segment_code
9729          , p_side                     => 'NA'
9733    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9730          , p_override_seg_flag        => 'Y'
9731    );
9732 
9734 
9735       xla_ae_lines_pkg.set_segment(
9736           p_to_segment_code         => 'GL_BALANCING'
9737         , p_segment_value           => l_segment
9738         , p_from_segment_code       => l_adr_value_segment_code
9739         , p_from_combination_id     => l_adr_value_combination_id
9740         , p_value_type_code         => l_adr_value_type_code
9741         , p_transaction_coa_id      => l_adr_transaction_coa_id
9742         , p_accounting_coa_id       => l_adr_accounting_coa_id
9743         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9744         , p_flex_value_set_id       => l_adr_flex_value_set_id
9745         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9746         , p_adr_type_code           => 'S'
9747         , p_component_type          => l_component_type
9748         , p_component_code          => l_component_code
9749         , p_component_type_code     => l_component_type_code
9750         , p_component_appl_id       => l_component_appl_id
9751         , p_amb_context_code        => l_amb_context_code
9752         , p_entity_code             => 'AP_INVOICES'
9753         , p_event_class_code        => 'INVOICES'
9754         , p_side                    => 'NA'
9755         );
9756 
9757   END IF;
9758 
9759    --
9760    --
9761    END IF;
9762    --
9763    -- Bug 4922099
9764    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9765           (NVL(l_enc_upg_option, 'N') = 'O')
9766         ) AND
9767         (l_bflow_method_code = 'PRIOR_ENTRY')
9768       )
9769    THEN
9770       IF
9771       --
9772       1 = 2
9773       --
9774       THEN
9775       xla_accounting_err_pkg.build_message
9776                                     (p_appli_s_name            => 'XLA'
9777                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9778                                     ,p_token_1                 => 'LINE_NUMBER'
9779                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9780                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9781                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9782                                                                              l_component_type
9783                                                                             ,l_component_code
9784                                                                             ,l_component_type_code
9785                                                                             ,l_component_appl_id
9786                                                                             ,l_amb_context_code
9787                                                                             ,l_entity_code
9788                                                                             ,l_event_class_code
9789                                                                            )
9790                                     ,p_token_3                 => 'OWNER'
9791                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9792                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9793                                                                           ,p_lookup_code    => l_component_type_code
9794                                                                          )
9795                                     ,p_token_4                 => 'PRODUCT_NAME'
9796                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9797                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9798                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9799                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9800                                     ,p_ae_header_id            =>  NULL
9801                                        );
9802 
9803         IF (C_LEVEL_ERROR>= g_log_level) THEN
9804                  trace
9805                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9806                       ,p_level    => C_LEVEL_ERROR
9807                       ,p_module   => l_log_module);
9808         END IF;
9809       END IF;
9810    END IF;
9811    --
9812    --
9813    ------------------------------------------------------------------------------------------------
9814    -- 4219869 Business Flow
9815    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9816    -- Prior Entry.  Currently, the following code is always generated.
9817    ------------------------------------------------------------------------------------------------
9818    XLA_AE_LINES_PKG.ValidateCurrentLine;
9819 
9820    ------------------------------------------------------------------------------------
9821    -- 4219869 Business Flow
9822    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9823    ------------------------------------------------------------------------------------
9824    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9825 
9826    ----------------------------------------------------------------------------------
9827    -- 4219869 Business Flow
9828    -- Update journal entry status -- Need to generate this within IF <condition>
9832          ,p_balance_type_code => l_balance_type_code
9829    ----------------------------------------------------------------------------------
9830    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9831          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9833          );
9834 
9835    -------------------------------------------------------------------------------------------
9836    -- 4262811 - Generate the Accrual Reversal lines
9837    -------------------------------------------------------------------------------------------
9838    BEGIN
9839       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9840                               (g_array_event(p_event_id).array_value_num('header_index'));
9841       IF l_acc_rev_flag IS NULL THEN
9842          l_acc_rev_flag := 'N';
9843       END IF;
9844    EXCEPTION
9845       WHEN OTHERS THEN
9846          l_acc_rev_flag := 'N';
9847    END;
9848    --
9849    IF (l_acc_rev_flag = 'Y') THEN
9850 
9851        -- 4645092  ------------------------------------------------------------------------------
9852        -- To allow MPA report to determine if it should generate report process
9853        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9854        ------------------------------------------------------------------------------------------
9855 
9856        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9857        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9858    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9859    -- call ADRs
9860    -- Bug 4922099
9861    --
9862    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9863         (NVL(l_actual_upg_option, 'N') = 'O') OR
9864         (NVL(l_enc_upg_option, 'N') = 'O')
9865       )
9866    THEN
9867    NULL;
9868    --
9869    --
9870    
9871   l_ccid := AcctDerRule_6(
9872            p_application_id           => p_application_id
9873          , p_ae_header_id             => l_ae_header_id 
9874 , p_source_6 => p_source_6
9875 , p_source_7 => p_source_7
9876 , p_source_7_meaning => p_source_7_meaning
9877 , p_source_8 => p_source_8
9878 , p_source_9 => p_source_9
9879 , p_source_9_meaning => p_source_9_meaning
9880 , p_source_10 => p_source_10
9881 , p_source_11 => p_source_11
9882 , p_source_12 => p_source_12
9883 , p_source_12_meaning => p_source_12_meaning
9884          , x_transaction_coa_id       => l_adr_transaction_coa_id
9885          , x_accounting_coa_id        => l_adr_accounting_coa_id
9886          , x_value_type_code          => l_adr_value_type_code
9887          , p_side                     => 'NA'
9888    );
9889 
9890    xla_ae_lines_pkg.set_ccid(
9891     p_code_combination_id          => l_ccid
9892   , p_value_type_code              => l_adr_value_type_code
9893   , p_transaction_coa_id           => l_adr_transaction_coa_id
9894   , p_accounting_coa_id            => l_adr_accounting_coa_id
9895   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
9896   , p_adr_type_code                => 'S'
9897   , p_component_type               => l_component_type
9898   , p_component_code               => l_component_code
9899   , p_component_type_code          => l_component_type_code
9900   , p_component_appl_id            => l_component_appl_id
9901   , p_amb_context_code             => l_amb_context_code
9902   , p_side                         => 'NA'
9903   );
9904 
9905 
9906    l_segment := AcctDerRule_4(
9907            p_application_id           => p_application_id
9908          , p_ae_header_id             => l_ae_header_id 
9909 , p_source_6 => p_source_6
9910 , p_source_7 => p_source_7
9911 , p_source_7_meaning => p_source_7_meaning
9912 , p_source_8 => p_source_8
9913 , p_source_9 => p_source_9
9914 , p_source_9_meaning => p_source_9_meaning
9915 , p_source_10 => p_source_10
9916          , x_transaction_coa_id       => l_adr_transaction_coa_id
9917          , x_accounting_coa_id        => l_adr_accounting_coa_id
9918          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9919          , x_flex_value_set_id        => l_adr_flex_value_set_id
9920          , x_value_type_code          => l_adr_value_type_code
9921          , x_value_combination_id     => l_adr_value_combination_id
9922          , x_value_segment_code       => l_adr_value_segment_code
9923          , p_side                     => 'NA'
9924          , p_override_seg_flag        => 'Y'
9925    );
9926 
9927    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9928 
9929       xla_ae_lines_pkg.set_segment(
9930           p_to_segment_code         => 'GL_ACCOUNT'
9931         , p_segment_value           => l_segment
9932         , p_from_segment_code       => l_adr_value_segment_code
9933         , p_from_combination_id     => l_adr_value_combination_id
9934         , p_value_type_code         => l_adr_value_type_code
9935         , p_transaction_coa_id      => l_adr_transaction_coa_id
9936         , p_accounting_coa_id       => l_adr_accounting_coa_id
9937         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9938         , p_flex_value_set_id       => l_adr_flex_value_set_id
9939         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
9940         , p_adr_type_code           => 'S'
9941         , p_component_type          => l_component_type
9942         , p_component_code          => l_component_code
9943         , p_component_type_code     => l_component_type_code
9947         , p_event_class_code        => 'INVOICES'
9944         , p_component_appl_id       => l_component_appl_id
9945         , p_amb_context_code        => l_amb_context_code
9946         , p_entity_code             => 'AP_INVOICES'
9948         , p_side                    => 'NA'
9949         );
9950 
9951   END IF;
9952 
9953    l_segment := AcctDerRule_5(
9954            p_application_id           => p_application_id
9955          , p_ae_header_id             => l_ae_header_id 
9956 , p_source_7 => p_source_7
9957 , p_source_7_meaning => p_source_7_meaning
9958 , p_source_9 => p_source_9
9959 , p_source_9_meaning => p_source_9_meaning
9960 , p_source_11 => p_source_11
9961          , x_transaction_coa_id       => l_adr_transaction_coa_id
9962          , x_accounting_coa_id        => l_adr_accounting_coa_id
9963          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9964          , x_flex_value_set_id        => l_adr_flex_value_set_id
9965          , x_value_type_code          => l_adr_value_type_code
9966          , x_value_combination_id     => l_adr_value_combination_id
9967          , x_value_segment_code       => l_adr_value_segment_code
9968          , p_side                     => 'NA'
9969          , p_override_seg_flag        => 'Y'
9970    );
9971 
9972    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9973 
9974       xla_ae_lines_pkg.set_segment(
9975           p_to_segment_code         => 'GL_BALANCING'
9976         , p_segment_value           => l_segment
9977         , p_from_segment_code       => l_adr_value_segment_code
9978         , p_from_combination_id     => l_adr_value_combination_id
9979         , p_value_type_code         => l_adr_value_type_code
9980         , p_transaction_coa_id      => l_adr_transaction_coa_id
9981         , p_accounting_coa_id       => l_adr_accounting_coa_id
9982         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9983         , p_flex_value_set_id       => l_adr_flex_value_set_id
9984         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9985         , p_adr_type_code           => 'S'
9986         , p_component_type          => l_component_type
9987         , p_component_code          => l_component_code
9988         , p_component_type_code     => l_component_type_code
9989         , p_component_appl_id       => l_component_appl_id
9990         , p_amb_context_code        => l_amb_context_code
9991         , p_entity_code             => 'AP_INVOICES'
9992         , p_event_class_code        => 'INVOICES'
9993         , p_side                    => 'NA'
9994         );
9995 
9996   END IF;
9997 
9998    --
9999    --
10000    END IF;
10001 
10002        --
10003        -- Update the line information that should be overwritten
10004        --
10005        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10006                                          p_header_num   => 1);
10007        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10008 
10009        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10010 
10011        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10012           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10013        END IF;
10014 
10015       --
10016       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10017       --
10018       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10019           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10020       ELSE
10021           ---------------------------------------------------------------------------------------------------
10022           -- 4262811a Switch Sign
10023           ---------------------------------------------------------------------------------------------------
10024           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10025           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10026                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10027           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10028                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10029           -- 5132302
10030           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10031                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10032 
10033       END IF;
10034 
10035       -- 4955764
10036       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10037       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10038 
10039 
10040       XLA_AE_LINES_PKG.ValidateCurrentLine;
10041       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10042 
10043       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10044                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10045                ,p_balance_type_code => l_balance_type_code);
10046 
10047    END IF;
10048 
10049    -----------------------------------------------------------------------------------------
10053 
10050    -- 4262811 Multiperiod Accounting
10051    -----------------------------------------------------------------------------------------
10052      -- No MPA option is assigned.
10054 
10055 END IF;
10056 END IF;
10057 --
10058 
10059 --
10060 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10061    trace
10062       (p_msg      => 'END of AcctLineType_24'
10063       ,p_level    => C_LEVEL_PROCEDURE
10064       ,p_module   => l_log_module);
10065 END IF;
10066 --
10067 EXCEPTION
10068   WHEN xla_exceptions_pkg.application_exception THEN
10069       RAISE;
10070   WHEN OTHERS THEN
10071        xla_exceptions_pkg.raise_message
10072            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_24');
10073 END AcctLineType_24;
10074 --
10075 
10076 ---------------------------------------
10077 --
10078 -- PRIVATE FUNCTION
10079 --         AcctLineType_25
10080 --
10081 ---------------------------------------
10082 PROCEDURE AcctLineType_25 (
10083   p_application_id        IN NUMBER
10084  ,p_event_id              IN NUMBER
10085  ,p_calculate_acctd_flag  IN VARCHAR2
10086  ,p_calculate_g_l_flag    IN VARCHAR2
10087  ,p_actual_flag           IN OUT VARCHAR2
10088  ,p_balance_type_code     OUT VARCHAR2
10089  ,p_gain_or_loss_ref      OUT VARCHAR2
10090  
10091 --Invoice Distribution Description
10092  , p_source_1            IN VARCHAR2
10093 --Purchase Order Rate Variance Gain Account
10094  , p_source_6            IN NUMBER
10095 --Automatic Offsets Value
10096  , p_source_7            IN VARCHAR2
10097  , p_source_7_meaning    IN VARCHAR2
10098 --Invoice Distribution Ledger Amount
10099  , p_source_8            IN NUMBER
10100 --Destination Type of the PO Distribution
10101  , p_source_9            IN VARCHAR2
10102  , p_source_9_meaning    IN VARCHAR2
10103 --Purchase Order Rate Variance Loss Account
10104  , p_source_10            IN NUMBER
10105 --Invoice Distribution Account
10106  , p_source_11            IN NUMBER
10107 --Automatic Offsets Flag
10108  , p_source_12            IN VARCHAR2
10109  , p_source_12_meaning    IN VARCHAR2
10110 --Invoice Distribution Type
10111  , p_source_15            IN VARCHAR2
10112  , p_source_15_meaning    IN VARCHAR2
10113 --Purchasing Encumbrance Option
10114  , p_source_17            IN VARCHAR2
10115  , p_source_17_meaning    IN VARCHAR2
10116 --Accounting Reversal Indicator
10117  , p_source_19            IN VARCHAR2
10118 --Distribution Link Type
10119  , p_source_21            IN VARCHAR2
10120 --Allocation to Main Distribution Identifier
10121  , p_source_23            IN NUMBER
10122 --Invoice Identifier
10123  , p_source_24            IN NUMBER
10124 --Business Flow Accounts Payable Application Identifier
10125  , p_source_25            IN NUMBER
10126 --Business Flow Invoice Distribution Type
10127  , p_source_26            IN VARCHAR2
10128 --Business Flow Invoice Entity Code
10129  , p_source_27            IN VARCHAR2
10130 --Business Flow Invoice Distribution Identifier
10131  , p_source_28            IN NUMBER
10132 --Business Flow Invoice Identifier
10133  , p_source_29            IN NUMBER
10134 --Invoice Distribution Identifier
10135  , p_source_30            IN NUMBER
10136 --Payables Encumbrance Upgrade Credit Account
10137  , p_source_31            IN NUMBER
10138 --Payables Encumbrance Upgrade Credit Amount
10139  , p_source_32            IN NUMBER
10140 --Invoice Currency Code
10141  , p_source_33            IN VARCHAR2
10142 --Payables Encumbrance Upgrade Credit Base Amount
10143  , p_source_34            IN NUMBER
10144 --Payables Encumbrance Upgrade Debit Account
10145  , p_source_35            IN NUMBER
10146 --Payables Encumbrance Upgrade Debit Amount
10147  , p_source_36            IN NUMBER
10148 --Payables Encumbrance Upgrade Debit Base Amount
10149  , p_source_37            IN NUMBER
10150 --Payables Encumbrance Upgrade Option
10151  , p_source_38            IN VARCHAR2
10152 --Invoice Exchange Date
10153  , p_source_39            IN DATE
10154 --Invoice Exchange Rate
10155  , p_source_40            IN NUMBER
10156 --Invoice Exchange Rate Type
10157  , p_source_41            IN VARCHAR2
10158 --Deferred Accounting End Date
10159  , p_source_43            IN DATE
10160 --Deferred Accounting Option
10161  , p_source_44            IN VARCHAR2
10162 --Deferred Accounting Start Date
10163  , p_source_45            IN DATE
10164 --Override Accounted Amount Indicator
10165  , p_source_46            IN VARCHAR2
10166  , p_source_46_meaning    IN VARCHAR2
10167 --Invoice Supplier Identifier
10168  , p_source_47            IN NUMBER
10169 --Invoice Supplier Site Identifier
10170  , p_source_48            IN NUMBER
10171 --Third Party Type
10172  , p_source_49            IN VARCHAR2
10173 --Parent Reversal Identifier
10174  , p_source_50            IN NUMBER
10175 --Invoice Distribution Statistical Amount
10176  , p_source_51            IN NUMBER
10177 --Invoice Distribution Tax Line Identifier
10178  , p_source_52            IN NUMBER
10179 --Invoice Distribution Tax Distribution Identifier from Tax
10180  , p_source_53            IN NUMBER
10181 --Invoice Distribution Summary Tax Line Identifier
10182  , p_source_54            IN NUMBER
10183 --Payables Upgrade Credit Encumbrance Type Identifier
10184  , p_source_55            IN NUMBER
10185 --Payables Upgrade Debit Encumbrance Type Identifier
10186  , p_source_56            IN NUMBER
10190  , p_source_66            IN NUMBER
10187 --Invoice Distribution Encumbrance Amount
10188  , p_source_65            IN NUMBER
10189 --Invoice Distribution Encumbrance Ledger Amount
10191 )
10192 IS
10193 
10194 l_component_type              VARCHAR2(80);
10195 l_component_code              VARCHAR2(30);
10196 l_component_type_code         VARCHAR2(1);
10197 l_component_appl_id           INTEGER;
10198 l_amb_context_code            VARCHAR2(30);
10199 l_entity_code                 VARCHAR2(30);
10200 l_event_class_code            VARCHAR2(30);
10201 l_ae_header_id                NUMBER;
10202 l_event_type_code             VARCHAR2(30);
10203 l_line_definition_code        VARCHAR2(30);
10204 l_line_definition_owner_code  VARCHAR2(1);
10205 --
10206 -- adr variables
10207 l_segment                     VARCHAR2(30);
10208 l_ccid                        NUMBER;
10209 l_adr_transaction_coa_id      NUMBER;
10210 l_adr_accounting_coa_id       NUMBER;
10211 l_adr_flexfield_segment_code  VARCHAR2(30);
10212 l_adr_flex_value_set_id       NUMBER;
10213 l_adr_value_type_code         VARCHAR2(30);
10214 l_adr_value_combination_id    NUMBER;
10215 l_adr_value_segment_code      VARCHAR2(30);
10216 
10217 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10218 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10219 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10220 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10221 
10222 -- 4262811 Variables ------------------------------------------------------------------------------------------
10223 l_entered_amt_idx             NUMBER;
10224 l_accted_amt_idx              NUMBER;
10225 l_acc_rev_flag                VARCHAR2(1);
10226 l_accrual_line_num            NUMBER;
10227 l_tmp_amt                     NUMBER;
10228 l_acc_rev_natural_side_code   VARCHAR2(1);
10229 
10230 l_num_entries                 NUMBER;
10231 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10232 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10233 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10234 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10235 l_recog_line_1                NUMBER;
10236 l_recog_line_2                NUMBER;
10237 
10238 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10239 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10240 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10241 
10242 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10243 
10244 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10245 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10246 
10247 ---------------------------------------------------------------------------------------------------------------
10248 
10249 
10250 --
10251 -- bulk performance
10252 --
10253 l_balance_type_code           VARCHAR2(1);
10254 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10255 l_log_module                  VARCHAR2(240);
10256 
10257 --
10258 -- Upgrade strategy
10259 --
10260 l_actual_upg_option           VARCHAR2(1);
10261 l_enc_upg_option           VARCHAR2(1);
10262 
10263 --
10264 BEGIN
10265 --
10266 IF g_log_enabled THEN
10267       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
10268 END IF;
10269 --
10270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10271 
10272       trace
10273          (p_msg      => 'BEGIN of AcctLineType_25'
10274          ,p_level    => C_LEVEL_PROCEDURE
10275          ,p_module   => l_log_module);
10276 
10277 END IF;
10278 --
10279 l_component_type             := 'AMB_JLT';
10280 l_component_code             := 'AP_EX_RATE_VAR_PP_ENC_DR';
10281 l_component_type_code        := 'S';
10282 l_component_appl_id          :=  200;
10283 l_amb_context_code           := 'DEFAULT';
10284 l_entity_code                := 'AP_INVOICES';
10285 l_event_class_code           := 'PREPAYMENTS';
10286 l_event_type_code            := 'PREPAYMENTS_ALL';
10287 l_line_definition_owner_code := 'S';
10288 l_line_definition_code       := 'ENC_PREPAY_ALL';
10289 --
10290 l_balance_type_code          := 'E';
10291 l_segment                     := NULL;
10292 l_ccid                        := NULL;
10293 l_adr_transaction_coa_id      := NULL;
10294 l_adr_accounting_coa_id       := NULL;
10295 l_adr_flexfield_segment_code  := NULL;
10296 l_adr_flex_value_set_id       := NULL;
10297 l_adr_value_type_code         := NULL;
10298 l_adr_value_combination_id    := NULL;
10299 l_adr_value_segment_code      := NULL;
10300 
10301 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10302 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
10303 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10304 l_budgetary_control_flag     := 'Y';
10305 
10306 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10307 l_bflow_applied_to_amt       := NULL; -- 5132302
10308 l_entered_amt_idx            := NULL;          -- 4262811
10309 l_accted_amt_idx             := NULL;          -- 4262811
10310 l_acc_rev_flag               := NULL;          -- 4262811
10311 l_accrual_line_num           := NULL;          -- 4262811
10312 l_tmp_amt                    := NULL;          -- 4262811
10313 --
10317   END IF;
10314 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10315             (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
10316                return;
10318   
10319 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10320     l_balance_type_code <> 'B' THEN
10321 IF NVL(p_source_15,'
10322 ') =  'ERV' AND 
10323 NVL(p_source_17,'
10324 ') =  'Y'
10325  THEN 
10326 
10327    --
10328    XLA_AE_LINES_PKG.SetNewLine;
10329 
10330    p_balance_type_code          := l_balance_type_code;
10331    -- set the flag so later we will know whether the gain loss line needs to be created
10332    
10333    IF(l_balance_type_code = 'A' ) THEN
10334      p_actual_flag :='G';
10335    END IF;
10336 
10337    --
10338    -- bulk performance
10339    --
10340    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10341                                       p_header_num   => 0); -- 4262811
10342    --
10343    -- set accounting line options
10344    --
10345    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10346            p_natural_side_code          => 'D'
10347          , p_gain_or_loss_flag          => 'Y'
10348          , p_gl_transfer_mode_code      => 'S'
10349          , p_acct_entry_type_code       => 'E'
10350          , p_switch_side_flag           => 'Y'
10351          , p_merge_duplicate_code       => 'N'
10352          );
10353    --
10354    l_acc_rev_natural_side_code := 'C';  -- 4262811
10355    -- 
10356    --
10357    -- set accounting line type info
10358    --
10359    xla_ae_lines_pkg.SetAcctLineType
10360       (p_component_type             => l_component_type
10361       ,p_event_type_code            => l_event_type_code
10362       ,p_line_definition_owner_code => l_line_definition_owner_code
10363       ,p_line_definition_code       => l_line_definition_code
10364       ,p_accounting_line_code       => l_component_code
10365       ,p_accounting_line_type_code  => l_component_type_code
10366       ,p_accounting_line_appl_id    => l_component_appl_id
10367       ,p_amb_context_code           => l_amb_context_code
10368       ,p_entity_code                => l_entity_code
10369       ,p_event_class_code           => l_event_class_code);
10370    --
10371    -- set accounting class
10372    --
10373    xla_ae_lines_pkg.SetAcctClass(
10374            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10375          , p_ae_header_id           => l_ae_header_id
10376          );
10377 
10378    --
10379    -- set rounding class
10380    --
10381    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10382                       'EXCHANGE_RATE_VARIANCE';
10383 
10384    --
10385    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10386    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10387    --
10388    -- bulk performance
10389    --
10390    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10391 
10392    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10393       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10394 
10395    -- 4955764
10396    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10397       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10398 
10399    -- 4458381 Public Sector Enh
10400       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
10401    --
10402    -- set accounting attributes for the line type
10403    --
10404    l_entered_amt_idx := 23;
10405    l_accted_amt_idx  := 28;
10406    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10407    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10408    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
10409    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10410    l_rec_acct_attrs.array_num_value(2)  := 
10411 xla_ae_sources_pkg.GetSystemSourceNum(
10412    p_source_code           => 'XLA_EVENT_APPL_ID'
10413  , p_source_type_code      => 'Y'
10414  , p_source_application_id =>  602
10415 );
10416    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10417    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
10418    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10419    l_rec_acct_attrs.array_char_value(4)  := 
10420 xla_ae_sources_pkg.GetSystemSourceChar(
10421    p_source_code           => 'XLA_ENTITY_CODE'
10422  , p_source_type_code      => 'Y'
10423  , p_source_application_id =>  602
10424 );
10425    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10426    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
10427    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10428    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
10429    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10430    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
10431    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10432    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
10433    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10437    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10434    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
10435    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10436    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
10438    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
10439    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10440    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
10441    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10442    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
10443    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10444    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
10445    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10446    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
10447    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10448    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
10449    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10450    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
10451    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10452    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
10453    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10454    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
10455    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10456    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
10457    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10458    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
10459    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10460    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
10461    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
10462    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
10463    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
10464    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
10465    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
10466    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
10467    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
10468    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
10469    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
10470    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
10471    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
10472    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
10473    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
10474    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
10475    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
10476    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
10477    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
10478    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
10479    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
10480    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
10481    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
10482    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
10483    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
10484    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
10485    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
10486    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
10487    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
10488    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
10489    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
10490    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
10491    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
10492    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
10493    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
10494    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
10495    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
10496    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
10497    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
10498    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
10499    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
10500    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
10501    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
10502    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
10503 
10504    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10505    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10506 
10507    ---------------------------------------------------------------------------------------------------------------
10508    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10509    ---------------------------------------------------------------------------------------------------------------
10510    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10511 
10512    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10513    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10514 
10518    AND l_bflow_method_code = 'PRIOR_ENTRY'
10515    IF xla_accounting_cache_pkg.GetValueChar
10516          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10517          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10519 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10520    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10521          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10522        )
10523    THEN
10524          xla_ae_lines_pkg.BflowUpgEntry
10525            (p_business_method_code    => l_bflow_method_code
10526            ,p_business_class_code     => l_bflow_class_code
10527            ,p_balance_type            => l_balance_type_code);
10528    ELSE
10529       NULL;
10530 -- No business flow processing for business flow method of NONE.
10531    END IF;
10532 
10533    --
10534    -- call analytical criteria
10535    --
10536    
10537    --
10538    -- call description
10539    --
10540    
10541 xla_ae_lines_pkg.SetLineDescription(
10542    p_ae_header_id => l_ae_header_id
10543   ,p_description  => Description_2 (
10544      p_application_id         => p_application_id
10545    , p_ae_header_id           => l_ae_header_id 
10546 , p_source_1 => p_source_1
10547    )
10548 );
10549 
10550 
10551    --
10552    -- call ADRs
10553    -- Bug 4922099
10554    --
10555    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10556         (NVL(l_actual_upg_option, 'N') = 'O') OR
10557         (NVL(l_enc_upg_option, 'N') = 'O')
10558       )
10559    THEN
10560    NULL;
10561    --
10562    --
10563    
10564   l_ccid := AcctDerRule_6(
10565            p_application_id           => p_application_id
10566          , p_ae_header_id             => l_ae_header_id 
10567 , p_source_6 => p_source_6
10568 , p_source_7 => p_source_7
10569 , p_source_7_meaning => p_source_7_meaning
10570 , p_source_8 => p_source_8
10571 , p_source_9 => p_source_9
10572 , p_source_9_meaning => p_source_9_meaning
10573 , p_source_10 => p_source_10
10574 , p_source_11 => p_source_11
10575 , p_source_12 => p_source_12
10576 , p_source_12_meaning => p_source_12_meaning
10577          , x_transaction_coa_id       => l_adr_transaction_coa_id
10578          , x_accounting_coa_id        => l_adr_accounting_coa_id
10579          , x_value_type_code          => l_adr_value_type_code
10580          , p_side                     => 'NA'
10581    );
10582 
10583    xla_ae_lines_pkg.set_ccid(
10584     p_code_combination_id          => l_ccid
10585   , p_value_type_code              => l_adr_value_type_code
10586   , p_transaction_coa_id           => l_adr_transaction_coa_id
10587   , p_accounting_coa_id            => l_adr_accounting_coa_id
10588   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10589   , p_adr_type_code                => 'S'
10590   , p_component_type               => l_component_type
10591   , p_component_code               => l_component_code
10592   , p_component_type_code          => l_component_type_code
10593   , p_component_appl_id            => l_component_appl_id
10594   , p_amb_context_code             => l_amb_context_code
10595   , p_side                         => 'NA'
10596   );
10597 
10598 
10599    l_segment := AcctDerRule_4(
10600            p_application_id           => p_application_id
10601          , p_ae_header_id             => l_ae_header_id 
10602 , p_source_6 => p_source_6
10603 , p_source_7 => p_source_7
10604 , p_source_7_meaning => p_source_7_meaning
10605 , p_source_8 => p_source_8
10606 , p_source_9 => p_source_9
10607 , p_source_9_meaning => p_source_9_meaning
10608 , p_source_10 => p_source_10
10609          , x_transaction_coa_id       => l_adr_transaction_coa_id
10610          , x_accounting_coa_id        => l_adr_accounting_coa_id
10611          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10612          , x_flex_value_set_id        => l_adr_flex_value_set_id
10613          , x_value_type_code          => l_adr_value_type_code
10614          , x_value_combination_id     => l_adr_value_combination_id
10615          , x_value_segment_code       => l_adr_value_segment_code
10616          , p_side                     => 'NA'
10617          , p_override_seg_flag        => 'Y'
10618    );
10619 
10620    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10621 
10622       xla_ae_lines_pkg.set_segment(
10623           p_to_segment_code         => 'GL_ACCOUNT'
10624         , p_segment_value           => l_segment
10625         , p_from_segment_code       => l_adr_value_segment_code
10626         , p_from_combination_id     => l_adr_value_combination_id
10627         , p_value_type_code         => l_adr_value_type_code
10628         , p_transaction_coa_id      => l_adr_transaction_coa_id
10629         , p_accounting_coa_id       => l_adr_accounting_coa_id
10630         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10631         , p_flex_value_set_id       => l_adr_flex_value_set_id
10632         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
10633         , p_adr_type_code           => 'S'
10634         , p_component_type          => l_component_type
10635         , p_component_code          => l_component_code
10636         , p_component_type_code     => l_component_type_code
10637         , p_component_appl_id       => l_component_appl_id
10638         , p_amb_context_code        => l_amb_context_code
10642         );
10639         , p_entity_code             => 'AP_INVOICES'
10640         , p_event_class_code        => 'PREPAYMENTS'
10641         , p_side                    => 'NA'
10643 
10644   END IF;
10645 
10646    l_segment := AcctDerRule_5(
10647            p_application_id           => p_application_id
10648          , p_ae_header_id             => l_ae_header_id 
10649 , p_source_7 => p_source_7
10650 , p_source_7_meaning => p_source_7_meaning
10651 , p_source_9 => p_source_9
10652 , p_source_9_meaning => p_source_9_meaning
10653 , p_source_11 => p_source_11
10654          , x_transaction_coa_id       => l_adr_transaction_coa_id
10655          , x_accounting_coa_id        => l_adr_accounting_coa_id
10656          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10657          , x_flex_value_set_id        => l_adr_flex_value_set_id
10658          , x_value_type_code          => l_adr_value_type_code
10659          , x_value_combination_id     => l_adr_value_combination_id
10660          , x_value_segment_code       => l_adr_value_segment_code
10661          , p_side                     => 'NA'
10662          , p_override_seg_flag        => 'Y'
10663    );
10664 
10665    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10666 
10667       xla_ae_lines_pkg.set_segment(
10668           p_to_segment_code         => 'GL_BALANCING'
10669         , p_segment_value           => l_segment
10670         , p_from_segment_code       => l_adr_value_segment_code
10671         , p_from_combination_id     => l_adr_value_combination_id
10672         , p_value_type_code         => l_adr_value_type_code
10673         , p_transaction_coa_id      => l_adr_transaction_coa_id
10674         , p_accounting_coa_id       => l_adr_accounting_coa_id
10675         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10676         , p_flex_value_set_id       => l_adr_flex_value_set_id
10677         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10678         , p_adr_type_code           => 'S'
10679         , p_component_type          => l_component_type
10680         , p_component_code          => l_component_code
10681         , p_component_type_code     => l_component_type_code
10682         , p_component_appl_id       => l_component_appl_id
10683         , p_amb_context_code        => l_amb_context_code
10684         , p_entity_code             => 'AP_INVOICES'
10685         , p_event_class_code        => 'PREPAYMENTS'
10686         , p_side                    => 'NA'
10687         );
10688 
10689   END IF;
10690 
10691    --
10692    --
10693    END IF;
10694    --
10695    -- Bug 4922099
10696    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10697           (NVL(l_enc_upg_option, 'N') = 'O')
10698         ) AND
10699         (l_bflow_method_code = 'PRIOR_ENTRY')
10700       )
10701    THEN
10702       IF
10703       --
10704       1 = 2
10705       --
10706       THEN
10707       xla_accounting_err_pkg.build_message
10708                                     (p_appli_s_name            => 'XLA'
10709                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10710                                     ,p_token_1                 => 'LINE_NUMBER'
10711                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10712                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10713                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10714                                                                              l_component_type
10715                                                                             ,l_component_code
10716                                                                             ,l_component_type_code
10717                                                                             ,l_component_appl_id
10718                                                                             ,l_amb_context_code
10719                                                                             ,l_entity_code
10720                                                                             ,l_event_class_code
10721                                                                            )
10722                                     ,p_token_3                 => 'OWNER'
10723                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10724                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10725                                                                           ,p_lookup_code    => l_component_type_code
10726                                                                          )
10727                                     ,p_token_4                 => 'PRODUCT_NAME'
10728                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10729                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10730                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10731                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10732                                     ,p_ae_header_id            =>  NULL
10733                                        );
10734 
10735         IF (C_LEVEL_ERROR>= g_log_level) THEN
10736                  trace
10737                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10738                       ,p_level    => C_LEVEL_ERROR
10742    END IF;
10739                       ,p_module   => l_log_module);
10740         END IF;
10741       END IF;
10743    --
10744    --
10745    ------------------------------------------------------------------------------------------------
10746    -- 4219869 Business Flow
10747    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10748    -- Prior Entry.  Currently, the following code is always generated.
10749    ------------------------------------------------------------------------------------------------
10750    XLA_AE_LINES_PKG.ValidateCurrentLine;
10751 
10752    ------------------------------------------------------------------------------------
10753    -- 4219869 Business Flow
10754    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10755    ------------------------------------------------------------------------------------
10756    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10757 
10758    ----------------------------------------------------------------------------------
10759    -- 4219869 Business Flow
10760    -- Update journal entry status -- Need to generate this within IF <condition>
10761    ----------------------------------------------------------------------------------
10762    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10763          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10764          ,p_balance_type_code => l_balance_type_code
10765          );
10766 
10767    -------------------------------------------------------------------------------------------
10768    -- 4262811 - Generate the Accrual Reversal lines
10769    -------------------------------------------------------------------------------------------
10770    BEGIN
10771       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10772                               (g_array_event(p_event_id).array_value_num('header_index'));
10773       IF l_acc_rev_flag IS NULL THEN
10774          l_acc_rev_flag := 'N';
10775       END IF;
10776    EXCEPTION
10777       WHEN OTHERS THEN
10778          l_acc_rev_flag := 'N';
10779    END;
10780    --
10781    IF (l_acc_rev_flag = 'Y') THEN
10782 
10783        -- 4645092  ------------------------------------------------------------------------------
10784        -- To allow MPA report to determine if it should generate report process
10785        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10786        ------------------------------------------------------------------------------------------
10787 
10788        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10789        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10790    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10791    -- call ADRs
10792    -- Bug 4922099
10793    --
10794    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10795         (NVL(l_actual_upg_option, 'N') = 'O') OR
10796         (NVL(l_enc_upg_option, 'N') = 'O')
10797       )
10798    THEN
10799    NULL;
10800    --
10801    --
10802    
10803   l_ccid := AcctDerRule_6(
10804            p_application_id           => p_application_id
10805          , p_ae_header_id             => l_ae_header_id 
10806 , p_source_6 => p_source_6
10807 , p_source_7 => p_source_7
10808 , p_source_7_meaning => p_source_7_meaning
10809 , p_source_8 => p_source_8
10810 , p_source_9 => p_source_9
10811 , p_source_9_meaning => p_source_9_meaning
10812 , p_source_10 => p_source_10
10813 , p_source_11 => p_source_11
10814 , p_source_12 => p_source_12
10815 , p_source_12_meaning => p_source_12_meaning
10816          , x_transaction_coa_id       => l_adr_transaction_coa_id
10817          , x_accounting_coa_id        => l_adr_accounting_coa_id
10818          , x_value_type_code          => l_adr_value_type_code
10819          , p_side                     => 'NA'
10820    );
10821 
10822    xla_ae_lines_pkg.set_ccid(
10823     p_code_combination_id          => l_ccid
10824   , p_value_type_code              => l_adr_value_type_code
10825   , p_transaction_coa_id           => l_adr_transaction_coa_id
10826   , p_accounting_coa_id            => l_adr_accounting_coa_id
10827   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10828   , p_adr_type_code                => 'S'
10829   , p_component_type               => l_component_type
10830   , p_component_code               => l_component_code
10831   , p_component_type_code          => l_component_type_code
10832   , p_component_appl_id            => l_component_appl_id
10833   , p_amb_context_code             => l_amb_context_code
10834   , p_side                         => 'NA'
10835   );
10836 
10837 
10838    l_segment := AcctDerRule_4(
10839            p_application_id           => p_application_id
10840          , p_ae_header_id             => l_ae_header_id 
10841 , p_source_6 => p_source_6
10842 , p_source_7 => p_source_7
10843 , p_source_7_meaning => p_source_7_meaning
10844 , p_source_8 => p_source_8
10845 , p_source_9 => p_source_9
10846 , p_source_9_meaning => p_source_9_meaning
10847 , p_source_10 => p_source_10
10848          , x_transaction_coa_id       => l_adr_transaction_coa_id
10849          , x_accounting_coa_id        => l_adr_accounting_coa_id
10850          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10851          , x_flex_value_set_id        => l_adr_flex_value_set_id
10852          , x_value_type_code          => l_adr_value_type_code
10856          , p_override_seg_flag        => 'Y'
10853          , x_value_combination_id     => l_adr_value_combination_id
10854          , x_value_segment_code       => l_adr_value_segment_code
10855          , p_side                     => 'NA'
10857    );
10858 
10859    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10860 
10861       xla_ae_lines_pkg.set_segment(
10862           p_to_segment_code         => 'GL_ACCOUNT'
10863         , p_segment_value           => l_segment
10864         , p_from_segment_code       => l_adr_value_segment_code
10865         , p_from_combination_id     => l_adr_value_combination_id
10866         , p_value_type_code         => l_adr_value_type_code
10867         , p_transaction_coa_id      => l_adr_transaction_coa_id
10868         , p_accounting_coa_id       => l_adr_accounting_coa_id
10869         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10870         , p_flex_value_set_id       => l_adr_flex_value_set_id
10871         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
10872         , p_adr_type_code           => 'S'
10873         , p_component_type          => l_component_type
10874         , p_component_code          => l_component_code
10875         , p_component_type_code     => l_component_type_code
10876         , p_component_appl_id       => l_component_appl_id
10877         , p_amb_context_code        => l_amb_context_code
10878         , p_entity_code             => 'AP_INVOICES'
10879         , p_event_class_code        => 'PREPAYMENTS'
10880         , p_side                    => 'NA'
10881         );
10882 
10883   END IF;
10884 
10885    l_segment := AcctDerRule_5(
10886            p_application_id           => p_application_id
10887          , p_ae_header_id             => l_ae_header_id 
10888 , p_source_7 => p_source_7
10889 , p_source_7_meaning => p_source_7_meaning
10890 , p_source_9 => p_source_9
10891 , p_source_9_meaning => p_source_9_meaning
10892 , p_source_11 => p_source_11
10893          , x_transaction_coa_id       => l_adr_transaction_coa_id
10894          , x_accounting_coa_id        => l_adr_accounting_coa_id
10895          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10896          , x_flex_value_set_id        => l_adr_flex_value_set_id
10897          , x_value_type_code          => l_adr_value_type_code
10898          , x_value_combination_id     => l_adr_value_combination_id
10899          , x_value_segment_code       => l_adr_value_segment_code
10900          , p_side                     => 'NA'
10901          , p_override_seg_flag        => 'Y'
10902    );
10903 
10904    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10905 
10906       xla_ae_lines_pkg.set_segment(
10907           p_to_segment_code         => 'GL_BALANCING'
10908         , p_segment_value           => l_segment
10909         , p_from_segment_code       => l_adr_value_segment_code
10910         , p_from_combination_id     => l_adr_value_combination_id
10911         , p_value_type_code         => l_adr_value_type_code
10912         , p_transaction_coa_id      => l_adr_transaction_coa_id
10913         , p_accounting_coa_id       => l_adr_accounting_coa_id
10914         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10915         , p_flex_value_set_id       => l_adr_flex_value_set_id
10916         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10917         , p_adr_type_code           => 'S'
10918         , p_component_type          => l_component_type
10919         , p_component_code          => l_component_code
10920         , p_component_type_code     => l_component_type_code
10921         , p_component_appl_id       => l_component_appl_id
10922         , p_amb_context_code        => l_amb_context_code
10923         , p_entity_code             => 'AP_INVOICES'
10924         , p_event_class_code        => 'PREPAYMENTS'
10925         , p_side                    => 'NA'
10926         );
10927 
10928   END IF;
10929 
10930    --
10931    --
10932    END IF;
10933 
10934        --
10935        -- Update the line information that should be overwritten
10936        --
10937        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10938                                          p_header_num   => 1);
10939        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10940 
10941        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10942 
10943        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10944           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10945        END IF;
10946 
10947       --
10948       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10949       --
10950       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10951           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10952       ELSE
10953           ---------------------------------------------------------------------------------------------------
10954           -- 4262811a Switch Sign
10955           ---------------------------------------------------------------------------------------------------
10956           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10957           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10961           -- 5132302
10958                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10959           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10960                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10962           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10963                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10964 
10965       END IF;
10966 
10967       -- 4955764
10968       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10969       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10970 
10971 
10972       XLA_AE_LINES_PKG.ValidateCurrentLine;
10973       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10974 
10975       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10976                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10977                ,p_balance_type_code => l_balance_type_code);
10978 
10979    END IF;
10980 
10981    -----------------------------------------------------------------------------------------
10982    -- 4262811 Multiperiod Accounting
10983    -----------------------------------------------------------------------------------------
10984      -- No MPA option is assigned.
10985 
10986 
10987 END IF;
10988 END IF;
10989 --
10990 
10991 --
10992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10993    trace
10994       (p_msg      => 'END of AcctLineType_25'
10995       ,p_level    => C_LEVEL_PROCEDURE
10996       ,p_module   => l_log_module);
10997 END IF;
10998 --
10999 EXCEPTION
11000   WHEN xla_exceptions_pkg.application_exception THEN
11001       RAISE;
11002   WHEN OTHERS THEN
11003        xla_exceptions_pkg.raise_message
11004            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_25');
11005 END AcctLineType_25;
11006 --
11007 
11008 ---------------------------------------
11009 --
11010 -- PRIVATE FUNCTION
11011 --         AcctLineType_26
11012 --
11013 ---------------------------------------
11014 PROCEDURE AcctLineType_26 (
11015   p_application_id        IN NUMBER
11016  ,p_event_id              IN NUMBER
11017  ,p_calculate_acctd_flag  IN VARCHAR2
11018  ,p_calculate_g_l_flag    IN VARCHAR2
11019  ,p_actual_flag           IN OUT VARCHAR2
11020  ,p_balance_type_code     OUT VARCHAR2
11021  ,p_gain_or_loss_ref      OUT VARCHAR2
11022  
11023 --Invoice Distribution Description
11024  , p_source_1            IN VARCHAR2
11025 --Invoice Distribution Account
11026  , p_source_11            IN NUMBER
11027 --Invoice Distribution Type
11028  , p_source_15            IN VARCHAR2
11029  , p_source_15_meaning    IN VARCHAR2
11030 --Purchasing Encumbrance Option
11031  , p_source_17            IN VARCHAR2
11032  , p_source_17_meaning    IN VARCHAR2
11033 --Accounting Reversal Indicator
11034  , p_source_19            IN VARCHAR2
11035 --Distribution Link Type
11036  , p_source_21            IN VARCHAR2
11037 --Allocation to Main Distribution Identifier
11038  , p_source_23            IN NUMBER
11039 --Invoice Identifier
11040  , p_source_24            IN NUMBER
11041 --Business Flow Accounts Payable Application Identifier
11042  , p_source_25            IN NUMBER
11043 --Business Flow Invoice Distribution Type
11044  , p_source_26            IN VARCHAR2
11045 --Business Flow Invoice Entity Code
11046  , p_source_27            IN VARCHAR2
11047 --Business Flow Invoice Distribution Identifier
11048  , p_source_28            IN NUMBER
11049 --Business Flow Invoice Identifier
11050  , p_source_29            IN NUMBER
11051 --Invoice Distribution Identifier
11052  , p_source_30            IN NUMBER
11053 --Payables Encumbrance Upgrade Credit Account
11054  , p_source_31            IN NUMBER
11055 --Payables Encumbrance Upgrade Credit Amount
11056  , p_source_32            IN NUMBER
11057 --Invoice Currency Code
11058  , p_source_33            IN VARCHAR2
11059 --Payables Encumbrance Upgrade Credit Base Amount
11060  , p_source_34            IN NUMBER
11061 --Payables Encumbrance Upgrade Debit Account
11062  , p_source_35            IN NUMBER
11063 --Payables Encumbrance Upgrade Debit Amount
11064  , p_source_36            IN NUMBER
11065 --Payables Encumbrance Upgrade Debit Base Amount
11066  , p_source_37            IN NUMBER
11067 --Payables Encumbrance Upgrade Option
11068  , p_source_38            IN VARCHAR2
11069 --Invoice Exchange Date
11070  , p_source_39            IN DATE
11071 --Invoice Exchange Rate
11072  , p_source_40            IN NUMBER
11073 --Invoice Exchange Rate Type
11074  , p_source_41            IN VARCHAR2
11075 --Deferred Accounting End Date
11076  , p_source_43            IN DATE
11077 --Deferred Accounting Option
11078  , p_source_44            IN VARCHAR2
11079 --Deferred Accounting Start Date
11080  , p_source_45            IN DATE
11081 --Override Accounted Amount Indicator
11082  , p_source_46            IN VARCHAR2
11083  , p_source_46_meaning    IN VARCHAR2
11084 --Invoice Supplier Identifier
11085  , p_source_47            IN NUMBER
11086 --Invoice Supplier Site Identifier
11087  , p_source_48            IN NUMBER
11088 --Third Party Type
11089  , p_source_49            IN VARCHAR2
11090 --Parent Reversal Identifier
11094 --Invoice Distribution Tax Line Identifier
11091  , p_source_50            IN NUMBER
11092 --Invoice Distribution Statistical Amount
11093  , p_source_51            IN NUMBER
11095  , p_source_52            IN NUMBER
11096 --Invoice Distribution Tax Distribution Identifier from Tax
11097  , p_source_53            IN NUMBER
11098 --Invoice Distribution Summary Tax Line Identifier
11099  , p_source_54            IN NUMBER
11100 --Payables Upgrade Credit Encumbrance Type Identifier
11101  , p_source_55            IN NUMBER
11102 --Payables Upgrade Debit Encumbrance Type Identifier
11103  , p_source_56            IN NUMBER
11104 --Invoice Distribution Encumbrance Amount
11105  , p_source_65            IN NUMBER
11106 --Invoice Distribution Encumbrance Ledger Amount
11107  , p_source_66            IN NUMBER
11108 )
11109 IS
11110 
11111 l_component_type              VARCHAR2(80);
11112 l_component_code              VARCHAR2(30);
11113 l_component_type_code         VARCHAR2(1);
11114 l_component_appl_id           INTEGER;
11115 l_amb_context_code            VARCHAR2(30);
11116 l_entity_code                 VARCHAR2(30);
11117 l_event_class_code            VARCHAR2(30);
11118 l_ae_header_id                NUMBER;
11119 l_event_type_code             VARCHAR2(30);
11120 l_line_definition_code        VARCHAR2(30);
11121 l_line_definition_owner_code  VARCHAR2(1);
11122 --
11123 -- adr variables
11124 l_segment                     VARCHAR2(30);
11125 l_ccid                        NUMBER;
11126 l_adr_transaction_coa_id      NUMBER;
11127 l_adr_accounting_coa_id       NUMBER;
11128 l_adr_flexfield_segment_code  VARCHAR2(30);
11129 l_adr_flex_value_set_id       NUMBER;
11130 l_adr_value_type_code         VARCHAR2(30);
11131 l_adr_value_combination_id    NUMBER;
11132 l_adr_value_segment_code      VARCHAR2(30);
11133 
11134 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11135 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11136 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11137 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11138 
11139 -- 4262811 Variables ------------------------------------------------------------------------------------------
11140 l_entered_amt_idx             NUMBER;
11141 l_accted_amt_idx              NUMBER;
11142 l_acc_rev_flag                VARCHAR2(1);
11143 l_accrual_line_num            NUMBER;
11144 l_tmp_amt                     NUMBER;
11145 l_acc_rev_natural_side_code   VARCHAR2(1);
11146 
11147 l_num_entries                 NUMBER;
11148 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11149 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11150 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11151 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11152 l_recog_line_1                NUMBER;
11153 l_recog_line_2                NUMBER;
11154 
11155 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11156 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11157 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11158 
11159 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11160 
11161 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11162 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11163 
11164 ---------------------------------------------------------------------------------------------------------------
11165 
11166 
11167 --
11168 -- bulk performance
11169 --
11170 l_balance_type_code           VARCHAR2(1);
11171 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11172 l_log_module                  VARCHAR2(240);
11173 
11174 --
11175 -- Upgrade strategy
11176 --
11177 l_actual_upg_option           VARCHAR2(1);
11178 l_enc_upg_option           VARCHAR2(1);
11179 
11180 --
11181 BEGIN
11182 --
11183 IF g_log_enabled THEN
11184       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
11185 END IF;
11186 --
11187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11188 
11189       trace
11190          (p_msg      => 'BEGIN of AcctLineType_26'
11191          ,p_level    => C_LEVEL_PROCEDURE
11192          ,p_module   => l_log_module);
11193 
11194 END IF;
11195 --
11196 l_component_type             := 'AMB_JLT';
11197 l_component_code             := 'AP_FREIGHT_EXPENSE_CM_ENC_DR';
11198 l_component_type_code        := 'S';
11199 l_component_appl_id          :=  200;
11200 l_amb_context_code           := 'DEFAULT';
11201 l_entity_code                := 'AP_INVOICES';
11202 l_event_class_code           := 'CREDIT MEMOS';
11203 l_event_type_code            := 'CREDIT MEMOS_ALL';
11204 l_line_definition_owner_code := 'S';
11205 l_line_definition_code       := 'ENC_CM_ALL';
11206 --
11207 l_balance_type_code          := 'E';
11208 l_segment                     := NULL;
11209 l_ccid                        := NULL;
11210 l_adr_transaction_coa_id      := NULL;
11211 l_adr_accounting_coa_id       := NULL;
11212 l_adr_flexfield_segment_code  := NULL;
11213 l_adr_flex_value_set_id       := NULL;
11214 l_adr_value_type_code         := NULL;
11215 l_adr_value_combination_id    := NULL;
11216 l_adr_value_segment_code      := NULL;
11217 
11218 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11219 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
11220 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11221 l_budgetary_control_flag     := 'Y';
11222 
11226 l_accted_amt_idx             := NULL;          -- 4262811
11223 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11224 l_bflow_applied_to_amt       := NULL; -- 5132302
11225 l_entered_amt_idx            := NULL;          -- 4262811
11227 l_acc_rev_flag               := NULL;          -- 4262811
11228 l_accrual_line_num           := NULL;          -- 4262811
11229 l_tmp_amt                    := NULL;          -- 4262811
11230 --
11231  
11232 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11233     l_balance_type_code <> 'B' THEN
11234 IF NVL(p_source_15,'
11235 ') =  'FREIGHT' AND 
11236 NVL(p_source_17,'
11237 ') =  'Y'
11238  THEN 
11239 
11240    --
11241    XLA_AE_LINES_PKG.SetNewLine;
11242 
11243    p_balance_type_code          := l_balance_type_code;
11244    -- set the flag so later we will know whether the gain loss line needs to be created
11245    
11246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11247      p_actual_flag :='A';
11248    END IF;
11249 
11250    --
11251    -- bulk performance
11252    --
11253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11254                                       p_header_num   => 0); -- 4262811
11255    --
11256    -- set accounting line options
11257    --
11258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11259            p_natural_side_code          => 'D'
11260          , p_gain_or_loss_flag          => 'N'
11261          , p_gl_transfer_mode_code      => 'S'
11262          , p_acct_entry_type_code       => 'E'
11263          , p_switch_side_flag           => 'Y'
11264          , p_merge_duplicate_code       => 'N'
11265          );
11266    --
11267    l_acc_rev_natural_side_code := 'C';  -- 4262811
11268    -- 
11269    --
11270    -- set accounting line type info
11271    --
11272    xla_ae_lines_pkg.SetAcctLineType
11273       (p_component_type             => l_component_type
11274       ,p_event_type_code            => l_event_type_code
11275       ,p_line_definition_owner_code => l_line_definition_owner_code
11276       ,p_line_definition_code       => l_line_definition_code
11277       ,p_accounting_line_code       => l_component_code
11278       ,p_accounting_line_type_code  => l_component_type_code
11279       ,p_accounting_line_appl_id    => l_component_appl_id
11280       ,p_amb_context_code           => l_amb_context_code
11281       ,p_entity_code                => l_entity_code
11282       ,p_event_class_code           => l_event_class_code);
11283    --
11284    -- set accounting class
11285    --
11286    xla_ae_lines_pkg.SetAcctClass(
11287            p_accounting_class_code  => 'FREIGHT'
11288          , p_ae_header_id           => l_ae_header_id
11289          );
11290 
11291    --
11292    -- set rounding class
11293    --
11294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11295                       'FREIGHT';
11296 
11297    --
11298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11300    --
11301    -- bulk performance
11302    --
11303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11304 
11305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11307 
11308    -- 4955764
11309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11311 
11312    -- 4458381 Public Sector Enh
11313       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
11314    --
11315    -- set accounting attributes for the line type
11316    --
11317    l_entered_amt_idx := 23;
11318    l_accted_amt_idx  := 28;
11319    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
11320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11321    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
11322    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11323    l_rec_acct_attrs.array_num_value(2)  := 
11324 xla_ae_sources_pkg.GetSystemSourceNum(
11325    p_source_code           => 'XLA_EVENT_APPL_ID'
11326  , p_source_type_code      => 'Y'
11327  , p_source_application_id =>  602
11328 );
11329    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11330    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
11331    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11332    l_rec_acct_attrs.array_char_value(4)  := 
11333 xla_ae_sources_pkg.GetSystemSourceChar(
11334    p_source_code           => 'XLA_ENTITY_CODE'
11335  , p_source_type_code      => 'Y'
11336  , p_source_application_id =>  602
11337 );
11338    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11339    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
11340    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11341    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
11342    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11343    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
11347    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
11344    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11345    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
11346    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11348    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11349    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
11350    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11351    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
11352    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11353    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
11354    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11355    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
11356    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11357    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
11358    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11359    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
11360    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11361    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
11362    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11363    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
11364    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11365    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
11366    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11367    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
11368    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11369    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
11370    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11371    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
11372    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11373    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
11374    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
11375    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
11376    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
11377    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
11378    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
11379    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
11380    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
11381    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
11382    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
11383    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
11384    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
11385    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
11386    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
11387    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
11388    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
11389    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
11390    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
11391    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
11392    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
11393    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
11394    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
11395    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
11396    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
11397    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
11398    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
11399    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
11400    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
11401    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
11402    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
11403    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
11404    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
11405    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
11406    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
11407    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
11408    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
11409    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
11410    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
11411    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
11412    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
11413    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
11414    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
11415    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
11416 
11417    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11418    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11419 
11420    ---------------------------------------------------------------------------------------------------------------
11421    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11422    ---------------------------------------------------------------------------------------------------------------
11423    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11424 
11425    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11429          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11426    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11427 
11428    IF xla_accounting_cache_pkg.GetValueChar
11430          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11431    AND l_bflow_method_code = 'PRIOR_ENTRY'
11432 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11433    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11434          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11435        )
11436    THEN
11437          xla_ae_lines_pkg.BflowUpgEntry
11438            (p_business_method_code    => l_bflow_method_code
11439            ,p_business_class_code     => l_bflow_class_code
11440            ,p_balance_type            => l_balance_type_code);
11441    ELSE
11442       NULL;
11443 -- No business flow processing for business flow method of NONE.
11444    END IF;
11445 
11446    --
11447    -- call analytical criteria
11448    --
11449    
11450    --
11451    -- call description
11452    --
11453    
11454 xla_ae_lines_pkg.SetLineDescription(
11455    p_ae_header_id => l_ae_header_id
11456   ,p_description  => Description_2 (
11457      p_application_id         => p_application_id
11458    , p_ae_header_id           => l_ae_header_id 
11459 , p_source_1 => p_source_1
11460    )
11461 );
11462 
11463 
11464    --
11465    -- call ADRs
11466    -- Bug 4922099
11467    --
11468    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11469         (NVL(l_actual_upg_option, 'N') = 'O') OR
11470         (NVL(l_enc_upg_option, 'N') = 'O')
11471       )
11472    THEN
11473    NULL;
11474    --
11475    --
11476    
11477   l_ccid := AcctDerRule_7(
11478            p_application_id           => p_application_id
11479          , p_ae_header_id             => l_ae_header_id 
11480 , p_source_11 => p_source_11
11481          , x_transaction_coa_id       => l_adr_transaction_coa_id
11482          , x_accounting_coa_id        => l_adr_accounting_coa_id
11483          , x_value_type_code          => l_adr_value_type_code
11484          , p_side                     => 'NA'
11485    );
11486 
11487    xla_ae_lines_pkg.set_ccid(
11488     p_code_combination_id          => l_ccid
11489   , p_value_type_code              => l_adr_value_type_code
11490   , p_transaction_coa_id           => l_adr_transaction_coa_id
11491   , p_accounting_coa_id            => l_adr_accounting_coa_id
11492   , p_adr_code                     => 'AP_INVOICE_DIST'
11493   , p_adr_type_code                => 'S'
11494   , p_component_type               => l_component_type
11495   , p_component_code               => l_component_code
11496   , p_component_type_code          => l_component_type_code
11497   , p_component_appl_id            => l_component_appl_id
11498   , p_amb_context_code             => l_amb_context_code
11499   , p_side                         => 'NA'
11500   );
11501 
11502 
11503    --
11504    --
11505    END IF;
11506    --
11507    -- Bug 4922099
11508    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11509           (NVL(l_enc_upg_option, 'N') = 'O')
11510         ) AND
11511         (l_bflow_method_code = 'PRIOR_ENTRY')
11512       )
11513    THEN
11514       IF
11515       --
11516       1 = 2
11517       --
11518       THEN
11519       xla_accounting_err_pkg.build_message
11520                                     (p_appli_s_name            => 'XLA'
11521                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11522                                     ,p_token_1                 => 'LINE_NUMBER'
11523                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11524                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11525                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11526                                                                              l_component_type
11527                                                                             ,l_component_code
11528                                                                             ,l_component_type_code
11529                                                                             ,l_component_appl_id
11530                                                                             ,l_amb_context_code
11531                                                                             ,l_entity_code
11532                                                                             ,l_event_class_code
11533                                                                            )
11534                                     ,p_token_3                 => 'OWNER'
11535                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11536                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11537                                                                           ,p_lookup_code    => l_component_type_code
11538                                                                          )
11539                                     ,p_token_4                 => 'PRODUCT_NAME'
11540                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11541                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11545                                        );
11542                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11543                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11544                                     ,p_ae_header_id            =>  NULL
11546 
11547         IF (C_LEVEL_ERROR>= g_log_level) THEN
11548                  trace
11549                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11550                       ,p_level    => C_LEVEL_ERROR
11551                       ,p_module   => l_log_module);
11552         END IF;
11553       END IF;
11554    END IF;
11555    --
11556    --
11557    ------------------------------------------------------------------------------------------------
11558    -- 4219869 Business Flow
11559    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11560    -- Prior Entry.  Currently, the following code is always generated.
11561    ------------------------------------------------------------------------------------------------
11562    XLA_AE_LINES_PKG.ValidateCurrentLine;
11563 
11564    ------------------------------------------------------------------------------------
11565    -- 4219869 Business Flow
11566    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11567    ------------------------------------------------------------------------------------
11568    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11569 
11570    ----------------------------------------------------------------------------------
11571    -- 4219869 Business Flow
11572    -- Update journal entry status -- Need to generate this within IF <condition>
11573    ----------------------------------------------------------------------------------
11574    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11575          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11576          ,p_balance_type_code => l_balance_type_code
11577          );
11578 
11579    -------------------------------------------------------------------------------------------
11580    -- 4262811 - Generate the Accrual Reversal lines
11581    -------------------------------------------------------------------------------------------
11582    BEGIN
11583       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11584                               (g_array_event(p_event_id).array_value_num('header_index'));
11585       IF l_acc_rev_flag IS NULL THEN
11586          l_acc_rev_flag := 'N';
11587       END IF;
11588    EXCEPTION
11589       WHEN OTHERS THEN
11590          l_acc_rev_flag := 'N';
11591    END;
11592    --
11593    IF (l_acc_rev_flag = 'Y') THEN
11594 
11595        -- 4645092  ------------------------------------------------------------------------------
11596        -- To allow MPA report to determine if it should generate report process
11597        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11598        ------------------------------------------------------------------------------------------
11599 
11600        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11601        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11602    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11603    -- call ADRs
11604    -- Bug 4922099
11605    --
11606    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11607         (NVL(l_actual_upg_option, 'N') = 'O') OR
11608         (NVL(l_enc_upg_option, 'N') = 'O')
11609       )
11610    THEN
11611    NULL;
11612    --
11613    --
11614    
11615   l_ccid := AcctDerRule_7(
11616            p_application_id           => p_application_id
11617          , p_ae_header_id             => l_ae_header_id 
11618 , p_source_11 => p_source_11
11619          , x_transaction_coa_id       => l_adr_transaction_coa_id
11620          , x_accounting_coa_id        => l_adr_accounting_coa_id
11621          , x_value_type_code          => l_adr_value_type_code
11622          , p_side                     => 'NA'
11623    );
11624 
11625    xla_ae_lines_pkg.set_ccid(
11626     p_code_combination_id          => l_ccid
11627   , p_value_type_code              => l_adr_value_type_code
11628   , p_transaction_coa_id           => l_adr_transaction_coa_id
11629   , p_accounting_coa_id            => l_adr_accounting_coa_id
11630   , p_adr_code                     => 'AP_INVOICE_DIST'
11631   , p_adr_type_code                => 'S'
11632   , p_component_type               => l_component_type
11633   , p_component_code               => l_component_code
11634   , p_component_type_code          => l_component_type_code
11635   , p_component_appl_id            => l_component_appl_id
11636   , p_amb_context_code             => l_amb_context_code
11637   , p_side                         => 'NA'
11638   );
11639 
11640 
11641    --
11642    --
11643    END IF;
11644 
11645        --
11646        -- Update the line information that should be overwritten
11647        --
11648        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11649                                          p_header_num   => 1);
11650        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11651 
11652        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11653 
11654        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11658       --
11655           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11656        END IF;
11657 
11659       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11660       --
11661       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11662           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11663       ELSE
11664           ---------------------------------------------------------------------------------------------------
11665           -- 4262811a Switch Sign
11666           ---------------------------------------------------------------------------------------------------
11667           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11668           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11669                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11670           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11671                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11672           -- 5132302
11673           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11674                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11675 
11676       END IF;
11677 
11678       -- 4955764
11679       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11680       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11681 
11682 
11683       XLA_AE_LINES_PKG.ValidateCurrentLine;
11684       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11685 
11686       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11687                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11688                ,p_balance_type_code => l_balance_type_code);
11689 
11690    END IF;
11691 
11692    -----------------------------------------------------------------------------------------
11693    -- 4262811 Multiperiod Accounting
11694    -----------------------------------------------------------------------------------------
11695      -- No MPA option is assigned.
11696 
11697 
11698 END IF;
11699 END IF;
11700 --
11701 
11702 --
11703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11704    trace
11705       (p_msg      => 'END of AcctLineType_26'
11706       ,p_level    => C_LEVEL_PROCEDURE
11707       ,p_module   => l_log_module);
11708 END IF;
11709 --
11710 EXCEPTION
11711   WHEN xla_exceptions_pkg.application_exception THEN
11712       RAISE;
11713   WHEN OTHERS THEN
11714        xla_exceptions_pkg.raise_message
11715            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_26');
11716 END AcctLineType_26;
11717 --
11718 
11719 ---------------------------------------
11720 --
11721 -- PRIVATE FUNCTION
11722 --         AcctLineType_27
11723 --
11724 ---------------------------------------
11725 PROCEDURE AcctLineType_27 (
11726   p_application_id        IN NUMBER
11727  ,p_event_id              IN NUMBER
11728  ,p_calculate_acctd_flag  IN VARCHAR2
11729  ,p_calculate_g_l_flag    IN VARCHAR2
11730  ,p_actual_flag           IN OUT VARCHAR2
11731  ,p_balance_type_code     OUT VARCHAR2
11732  ,p_gain_or_loss_ref      OUT VARCHAR2
11733  
11734 --Invoice Distribution Description
11735  , p_source_1            IN VARCHAR2
11736 --Invoice Distribution Account
11737  , p_source_11            IN NUMBER
11738 --Invoice Distribution Type
11739  , p_source_15            IN VARCHAR2
11740  , p_source_15_meaning    IN VARCHAR2
11741 --Purchasing Encumbrance Option
11742  , p_source_17            IN VARCHAR2
11743  , p_source_17_meaning    IN VARCHAR2
11744 --Accounting Reversal Indicator
11745  , p_source_19            IN VARCHAR2
11746 --Distribution Link Type
11747  , p_source_21            IN VARCHAR2
11748 --Allocation to Main Distribution Identifier
11749  , p_source_23            IN NUMBER
11750 --Invoice Identifier
11751  , p_source_24            IN NUMBER
11752 --Business Flow Accounts Payable Application Identifier
11753  , p_source_25            IN NUMBER
11754 --Business Flow Invoice Distribution Type
11755  , p_source_26            IN VARCHAR2
11756 --Business Flow Invoice Entity Code
11757  , p_source_27            IN VARCHAR2
11758 --Business Flow Invoice Distribution Identifier
11759  , p_source_28            IN NUMBER
11760 --Business Flow Invoice Identifier
11761  , p_source_29            IN NUMBER
11762 --Invoice Distribution Identifier
11763  , p_source_30            IN NUMBER
11764 --Payables Encumbrance Upgrade Credit Account
11765  , p_source_31            IN NUMBER
11766 --Payables Encumbrance Upgrade Credit Amount
11767  , p_source_32            IN NUMBER
11768 --Invoice Currency Code
11769  , p_source_33            IN VARCHAR2
11770 --Payables Encumbrance Upgrade Credit Base Amount
11771  , p_source_34            IN NUMBER
11772 --Payables Encumbrance Upgrade Debit Account
11773  , p_source_35            IN NUMBER
11774 --Payables Encumbrance Upgrade Debit Amount
11775  , p_source_36            IN NUMBER
11776 --Payables Encumbrance Upgrade Debit Base Amount
11780 --Invoice Exchange Date
11777  , p_source_37            IN NUMBER
11778 --Payables Encumbrance Upgrade Option
11779  , p_source_38            IN VARCHAR2
11781  , p_source_39            IN DATE
11782 --Invoice Exchange Rate
11783  , p_source_40            IN NUMBER
11784 --Invoice Exchange Rate Type
11785  , p_source_41            IN VARCHAR2
11786 --Deferred Accounting End Date
11787  , p_source_43            IN DATE
11788 --Deferred Accounting Option
11789  , p_source_44            IN VARCHAR2
11790 --Deferred Accounting Start Date
11791  , p_source_45            IN DATE
11792 --Override Accounted Amount Indicator
11793  , p_source_46            IN VARCHAR2
11794  , p_source_46_meaning    IN VARCHAR2
11795 --Invoice Supplier Identifier
11796  , p_source_47            IN NUMBER
11797 --Invoice Supplier Site Identifier
11798  , p_source_48            IN NUMBER
11799 --Third Party Type
11800  , p_source_49            IN VARCHAR2
11801 --Parent Reversal Identifier
11802  , p_source_50            IN NUMBER
11803 --Invoice Distribution Tax Line Identifier
11804  , p_source_52            IN NUMBER
11805 --Invoice Distribution Tax Distribution Identifier from Tax
11806  , p_source_53            IN NUMBER
11807 --Invoice Distribution Summary Tax Line Identifier
11808  , p_source_54            IN NUMBER
11809 --Payables Upgrade Credit Encumbrance Type Identifier
11810  , p_source_55            IN NUMBER
11811 --Payables Upgrade Debit Encumbrance Type Identifier
11812  , p_source_56            IN NUMBER
11813 --Invoice Distribution Encumbrance Amount
11814  , p_source_65            IN NUMBER
11815 --Invoice Distribution Encumbrance Ledger Amount
11816  , p_source_66            IN NUMBER
11817 )
11818 IS
11819 
11820 l_component_type              VARCHAR2(80);
11821 l_component_code              VARCHAR2(30);
11822 l_component_type_code         VARCHAR2(1);
11823 l_component_appl_id           INTEGER;
11824 l_amb_context_code            VARCHAR2(30);
11825 l_entity_code                 VARCHAR2(30);
11826 l_event_class_code            VARCHAR2(30);
11827 l_ae_header_id                NUMBER;
11828 l_event_type_code             VARCHAR2(30);
11829 l_line_definition_code        VARCHAR2(30);
11830 l_line_definition_owner_code  VARCHAR2(1);
11831 --
11832 -- adr variables
11833 l_segment                     VARCHAR2(30);
11834 l_ccid                        NUMBER;
11835 l_adr_transaction_coa_id      NUMBER;
11836 l_adr_accounting_coa_id       NUMBER;
11837 l_adr_flexfield_segment_code  VARCHAR2(30);
11838 l_adr_flex_value_set_id       NUMBER;
11839 l_adr_value_type_code         VARCHAR2(30);
11840 l_adr_value_combination_id    NUMBER;
11841 l_adr_value_segment_code      VARCHAR2(30);
11842 
11843 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11844 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11845 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11846 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11847 
11848 -- 4262811 Variables ------------------------------------------------------------------------------------------
11849 l_entered_amt_idx             NUMBER;
11850 l_accted_amt_idx              NUMBER;
11851 l_acc_rev_flag                VARCHAR2(1);
11852 l_accrual_line_num            NUMBER;
11853 l_tmp_amt                     NUMBER;
11854 l_acc_rev_natural_side_code   VARCHAR2(1);
11855 
11856 l_num_entries                 NUMBER;
11857 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11858 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11859 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11860 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11861 l_recog_line_1                NUMBER;
11862 l_recog_line_2                NUMBER;
11863 
11864 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11865 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11866 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11867 
11868 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11869 
11870 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11871 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11872 
11873 ---------------------------------------------------------------------------------------------------------------
11874 
11875 
11876 --
11877 -- bulk performance
11878 --
11879 l_balance_type_code           VARCHAR2(1);
11880 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11881 l_log_module                  VARCHAR2(240);
11882 
11883 --
11884 -- Upgrade strategy
11885 --
11886 l_actual_upg_option           VARCHAR2(1);
11887 l_enc_upg_option           VARCHAR2(1);
11888 
11889 --
11890 BEGIN
11891 --
11892 IF g_log_enabled THEN
11893       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
11894 END IF;
11895 --
11896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11897 
11898       trace
11899          (p_msg      => 'BEGIN of AcctLineType_27'
11900          ,p_level    => C_LEVEL_PROCEDURE
11901          ,p_module   => l_log_module);
11902 
11903 END IF;
11904 --
11905 l_component_type             := 'AMB_JLT';
11909 l_amb_context_code           := 'DEFAULT';
11906 l_component_code             := 'AP_FREIGHT_EXPENSE_DM_ENC_DR';
11907 l_component_type_code        := 'S';
11908 l_component_appl_id          :=  200;
11910 l_entity_code                := 'AP_INVOICES';
11911 l_event_class_code           := 'DEBIT MEMOS';
11912 l_event_type_code            := 'DEBIT MEMOS_ALL';
11913 l_line_definition_owner_code := 'S';
11914 l_line_definition_code       := 'ENC_DM_ALL';
11915 --
11916 l_balance_type_code          := 'E';
11917 l_segment                     := NULL;
11918 l_ccid                        := NULL;
11919 l_adr_transaction_coa_id      := NULL;
11920 l_adr_accounting_coa_id       := NULL;
11921 l_adr_flexfield_segment_code  := NULL;
11922 l_adr_flex_value_set_id       := NULL;
11923 l_adr_value_type_code         := NULL;
11924 l_adr_value_combination_id    := NULL;
11925 l_adr_value_segment_code      := NULL;
11926 
11927 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11928 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
11929 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11930 l_budgetary_control_flag     := 'Y';
11931 
11932 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11933 l_bflow_applied_to_amt       := NULL; -- 5132302
11934 l_entered_amt_idx            := NULL;          -- 4262811
11935 l_accted_amt_idx             := NULL;          -- 4262811
11936 l_acc_rev_flag               := NULL;          -- 4262811
11937 l_accrual_line_num           := NULL;          -- 4262811
11938 l_tmp_amt                    := NULL;          -- 4262811
11939 --
11940  
11941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11942     l_balance_type_code <> 'B' THEN
11943 IF NVL(p_source_15,'
11944 ') =  'FREIGHT' AND 
11945 NVL(p_source_17,'
11946 ') =  'Y'
11947  THEN 
11948 
11949    --
11950    XLA_AE_LINES_PKG.SetNewLine;
11951 
11952    p_balance_type_code          := l_balance_type_code;
11953    -- set the flag so later we will know whether the gain loss line needs to be created
11954    
11955    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11956      p_actual_flag :='A';
11957    END IF;
11958 
11959    --
11960    -- bulk performance
11961    --
11962    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11963                                       p_header_num   => 0); -- 4262811
11964    --
11965    -- set accounting line options
11966    --
11967    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11968            p_natural_side_code          => 'D'
11969          , p_gain_or_loss_flag          => 'N'
11970          , p_gl_transfer_mode_code      => 'S'
11971          , p_acct_entry_type_code       => 'E'
11972          , p_switch_side_flag           => 'Y'
11973          , p_merge_duplicate_code       => 'N'
11974          );
11975    --
11976    l_acc_rev_natural_side_code := 'C';  -- 4262811
11977    -- 
11978    --
11979    -- set accounting line type info
11980    --
11981    xla_ae_lines_pkg.SetAcctLineType
11982       (p_component_type             => l_component_type
11983       ,p_event_type_code            => l_event_type_code
11984       ,p_line_definition_owner_code => l_line_definition_owner_code
11985       ,p_line_definition_code       => l_line_definition_code
11986       ,p_accounting_line_code       => l_component_code
11987       ,p_accounting_line_type_code  => l_component_type_code
11988       ,p_accounting_line_appl_id    => l_component_appl_id
11989       ,p_amb_context_code           => l_amb_context_code
11990       ,p_entity_code                => l_entity_code
11991       ,p_event_class_code           => l_event_class_code);
11992    --
11993    -- set accounting class
11994    --
11995    xla_ae_lines_pkg.SetAcctClass(
11996            p_accounting_class_code  => 'FREIGHT'
11997          , p_ae_header_id           => l_ae_header_id
11998          );
11999 
12000    --
12001    -- set rounding class
12002    --
12003    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12004                       'FREIGHT';
12005 
12006    --
12007    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12008    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12009    --
12010    -- bulk performance
12011    --
12012    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12013 
12014    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12015       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12016 
12017    -- 4955764
12018    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12019       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12020 
12021    -- 4458381 Public Sector Enh
12022       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
12023    --
12024    -- set accounting attributes for the line type
12025    --
12026    l_entered_amt_idx := 23;
12027    l_accted_amt_idx  := 28;
12028    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
12032    l_rec_acct_attrs.array_num_value(2)  := 
12029    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12030    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
12031    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12033 xla_ae_sources_pkg.GetSystemSourceNum(
12034    p_source_code           => 'XLA_EVENT_APPL_ID'
12035  , p_source_type_code      => 'Y'
12036  , p_source_application_id =>  602
12037 );
12038    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12039    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
12040    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12041    l_rec_acct_attrs.array_char_value(4)  := 
12042 xla_ae_sources_pkg.GetSystemSourceChar(
12043    p_source_code           => 'XLA_ENTITY_CODE'
12044  , p_source_type_code      => 'Y'
12045  , p_source_application_id =>  602
12046 );
12047    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12048    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
12049    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12050    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
12051    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12052    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
12053    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12054    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
12055    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12056    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
12057    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12058    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
12059    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12060    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
12061    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12062    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
12063    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12064    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
12065    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12066    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
12067    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12068    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
12069    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12070    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
12071    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12072    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
12073    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12074    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
12075    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12076    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
12077    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12078    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
12079    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12080    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
12081    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12082    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
12083    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
12084    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
12085    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
12086    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
12087    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
12088    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
12089    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
12090    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
12091    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
12092    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
12093    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
12094    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
12095    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
12096    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
12097    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
12098    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
12099    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
12100    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
12101    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
12102    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
12103    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
12104    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
12105    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
12106    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
12107    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
12108    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
12109    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
12110    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
12111    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
12112    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
12113    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
12114    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
12115    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
12119    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
12116    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
12117    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
12118    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
12120    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
12121    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
12122    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
12123 
12124    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12125    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12126 
12127    ---------------------------------------------------------------------------------------------------------------
12128    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12129    ---------------------------------------------------------------------------------------------------------------
12130    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12131 
12132    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12133    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12134 
12135    IF xla_accounting_cache_pkg.GetValueChar
12136          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12137          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12138    AND l_bflow_method_code = 'PRIOR_ENTRY'
12139 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12140    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12141          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12142        )
12143    THEN
12144          xla_ae_lines_pkg.BflowUpgEntry
12145            (p_business_method_code    => l_bflow_method_code
12146            ,p_business_class_code     => l_bflow_class_code
12147            ,p_balance_type            => l_balance_type_code);
12148    ELSE
12149       NULL;
12150 -- No business flow processing for business flow method of NONE.
12151    END IF;
12152 
12153    --
12154    -- call analytical criteria
12155    --
12156    
12157    --
12158    -- call description
12159    --
12160    
12161 xla_ae_lines_pkg.SetLineDescription(
12162    p_ae_header_id => l_ae_header_id
12163   ,p_description  => Description_2 (
12164      p_application_id         => p_application_id
12165    , p_ae_header_id           => l_ae_header_id 
12166 , p_source_1 => p_source_1
12167    )
12168 );
12169 
12170 
12171    --
12172    -- call ADRs
12173    -- Bug 4922099
12174    --
12175    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12176         (NVL(l_actual_upg_option, 'N') = 'O') OR
12177         (NVL(l_enc_upg_option, 'N') = 'O')
12178       )
12179    THEN
12180    NULL;
12181    --
12182    --
12183    
12184   l_ccid := AcctDerRule_7(
12185            p_application_id           => p_application_id
12186          , p_ae_header_id             => l_ae_header_id 
12187 , p_source_11 => p_source_11
12188          , x_transaction_coa_id       => l_adr_transaction_coa_id
12189          , x_accounting_coa_id        => l_adr_accounting_coa_id
12190          , x_value_type_code          => l_adr_value_type_code
12191          , p_side                     => 'NA'
12192    );
12193 
12194    xla_ae_lines_pkg.set_ccid(
12195     p_code_combination_id          => l_ccid
12196   , p_value_type_code              => l_adr_value_type_code
12197   , p_transaction_coa_id           => l_adr_transaction_coa_id
12198   , p_accounting_coa_id            => l_adr_accounting_coa_id
12199   , p_adr_code                     => 'AP_INVOICE_DIST'
12200   , p_adr_type_code                => 'S'
12201   , p_component_type               => l_component_type
12202   , p_component_code               => l_component_code
12203   , p_component_type_code          => l_component_type_code
12204   , p_component_appl_id            => l_component_appl_id
12205   , p_amb_context_code             => l_amb_context_code
12206   , p_side                         => 'NA'
12207   );
12208 
12209 
12210    --
12211    --
12212    END IF;
12213    --
12214    -- Bug 4922099
12215    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12216           (NVL(l_enc_upg_option, 'N') = 'O')
12217         ) AND
12218         (l_bflow_method_code = 'PRIOR_ENTRY')
12219       )
12220    THEN
12221       IF
12222       --
12223       1 = 2
12224       --
12225       THEN
12226       xla_accounting_err_pkg.build_message
12227                                     (p_appli_s_name            => 'XLA'
12228                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12229                                     ,p_token_1                 => 'LINE_NUMBER'
12230                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12231                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12232                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12233                                                                              l_component_type
12234                                                                             ,l_component_code
12235                                                                             ,l_component_type_code
12239                                                                             ,l_event_class_code
12236                                                                             ,l_component_appl_id
12237                                                                             ,l_amb_context_code
12238                                                                             ,l_entity_code
12240                                                                            )
12241                                     ,p_token_3                 => 'OWNER'
12242                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12243                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12244                                                                           ,p_lookup_code    => l_component_type_code
12245                                                                          )
12246                                     ,p_token_4                 => 'PRODUCT_NAME'
12247                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12248                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12249                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12250                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12251                                     ,p_ae_header_id            =>  NULL
12252                                        );
12253 
12254         IF (C_LEVEL_ERROR>= g_log_level) THEN
12255                  trace
12256                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12257                       ,p_level    => C_LEVEL_ERROR
12258                       ,p_module   => l_log_module);
12259         END IF;
12260       END IF;
12261    END IF;
12262    --
12263    --
12264    ------------------------------------------------------------------------------------------------
12265    -- 4219869 Business Flow
12266    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12267    -- Prior Entry.  Currently, the following code is always generated.
12268    ------------------------------------------------------------------------------------------------
12269    XLA_AE_LINES_PKG.ValidateCurrentLine;
12270 
12271    ------------------------------------------------------------------------------------
12272    -- 4219869 Business Flow
12273    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12274    ------------------------------------------------------------------------------------
12275    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12276 
12277    ----------------------------------------------------------------------------------
12278    -- 4219869 Business Flow
12279    -- Update journal entry status -- Need to generate this within IF <condition>
12280    ----------------------------------------------------------------------------------
12281    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12282          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12283          ,p_balance_type_code => l_balance_type_code
12284          );
12285 
12286    -------------------------------------------------------------------------------------------
12287    -- 4262811 - Generate the Accrual Reversal lines
12288    -------------------------------------------------------------------------------------------
12289    BEGIN
12290       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12291                               (g_array_event(p_event_id).array_value_num('header_index'));
12292       IF l_acc_rev_flag IS NULL THEN
12293          l_acc_rev_flag := 'N';
12294       END IF;
12295    EXCEPTION
12296       WHEN OTHERS THEN
12297          l_acc_rev_flag := 'N';
12298    END;
12299    --
12300    IF (l_acc_rev_flag = 'Y') THEN
12301 
12302        -- 4645092  ------------------------------------------------------------------------------
12303        -- To allow MPA report to determine if it should generate report process
12304        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12305        ------------------------------------------------------------------------------------------
12306 
12307        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12308        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12309    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12310    -- call ADRs
12311    -- Bug 4922099
12312    --
12313    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12314         (NVL(l_actual_upg_option, 'N') = 'O') OR
12315         (NVL(l_enc_upg_option, 'N') = 'O')
12316       )
12317    THEN
12318    NULL;
12319    --
12320    --
12321    
12322   l_ccid := AcctDerRule_7(
12323            p_application_id           => p_application_id
12324          , p_ae_header_id             => l_ae_header_id 
12325 , p_source_11 => p_source_11
12326          , x_transaction_coa_id       => l_adr_transaction_coa_id
12327          , x_accounting_coa_id        => l_adr_accounting_coa_id
12328          , x_value_type_code          => l_adr_value_type_code
12329          , p_side                     => 'NA'
12330    );
12331 
12332    xla_ae_lines_pkg.set_ccid(
12333     p_code_combination_id          => l_ccid
12334   , p_value_type_code              => l_adr_value_type_code
12338   , p_adr_type_code                => 'S'
12335   , p_transaction_coa_id           => l_adr_transaction_coa_id
12336   , p_accounting_coa_id            => l_adr_accounting_coa_id
12337   , p_adr_code                     => 'AP_INVOICE_DIST'
12339   , p_component_type               => l_component_type
12340   , p_component_code               => l_component_code
12341   , p_component_type_code          => l_component_type_code
12342   , p_component_appl_id            => l_component_appl_id
12343   , p_amb_context_code             => l_amb_context_code
12344   , p_side                         => 'NA'
12345   );
12346 
12347 
12348    --
12349    --
12350    END IF;
12351 
12352        --
12353        -- Update the line information that should be overwritten
12354        --
12355        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12356                                          p_header_num   => 1);
12357        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12358 
12359        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12360 
12361        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12362           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12363        END IF;
12364 
12365       --
12366       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12367       --
12368       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12369           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12370       ELSE
12371           ---------------------------------------------------------------------------------------------------
12372           -- 4262811a Switch Sign
12373           ---------------------------------------------------------------------------------------------------
12374           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12375           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12376                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12377           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12378                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12379           -- 5132302
12380           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12381                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12382 
12383       END IF;
12384 
12385       -- 4955764
12386       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12387       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12388 
12389 
12390       XLA_AE_LINES_PKG.ValidateCurrentLine;
12391       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12392 
12393       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12394                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12395                ,p_balance_type_code => l_balance_type_code);
12396 
12397    END IF;
12398 
12399    -----------------------------------------------------------------------------------------
12400    -- 4262811 Multiperiod Accounting
12401    -----------------------------------------------------------------------------------------
12402      -- No MPA option is assigned.
12403 
12404 
12405 END IF;
12406 END IF;
12407 --
12408 
12409 --
12410 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12411    trace
12412       (p_msg      => 'END of AcctLineType_27'
12413       ,p_level    => C_LEVEL_PROCEDURE
12414       ,p_module   => l_log_module);
12415 END IF;
12416 --
12417 EXCEPTION
12418   WHEN xla_exceptions_pkg.application_exception THEN
12419       RAISE;
12420   WHEN OTHERS THEN
12421        xla_exceptions_pkg.raise_message
12422            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_27');
12423 END AcctLineType_27;
12424 --
12425 
12426 ---------------------------------------
12427 --
12428 -- PRIVATE FUNCTION
12429 --         AcctLineType_28
12430 --
12431 ---------------------------------------
12432 PROCEDURE AcctLineType_28 (
12433   p_application_id        IN NUMBER
12434  ,p_event_id              IN NUMBER
12435  ,p_calculate_acctd_flag  IN VARCHAR2
12436  ,p_calculate_g_l_flag    IN VARCHAR2
12437  ,p_actual_flag           IN OUT VARCHAR2
12438  ,p_balance_type_code     OUT VARCHAR2
12439  ,p_gain_or_loss_ref      OUT VARCHAR2
12440  
12441 --Invoice Distribution Description
12442  , p_source_1            IN VARCHAR2
12443 --Invoice Distribution Account
12444  , p_source_11            IN NUMBER
12445 --Invoice Distribution Type
12446  , p_source_15            IN VARCHAR2
12447  , p_source_15_meaning    IN VARCHAR2
12448 --Purchasing Encumbrance Option
12449  , p_source_17            IN VARCHAR2
12450  , p_source_17_meaning    IN VARCHAR2
12451 --Accounting Reversal Indicator
12452  , p_source_19            IN VARCHAR2
12453 --Distribution Link Type
12454  , p_source_21            IN VARCHAR2
12455 --Allocation to Main Distribution Identifier
12456  , p_source_23            IN NUMBER
12460  , p_source_25            IN NUMBER
12457 --Invoice Identifier
12458  , p_source_24            IN NUMBER
12459 --Business Flow Accounts Payable Application Identifier
12461 --Business Flow Invoice Distribution Type
12462  , p_source_26            IN VARCHAR2
12463 --Business Flow Invoice Entity Code
12464  , p_source_27            IN VARCHAR2
12465 --Business Flow Invoice Distribution Identifier
12466  , p_source_28            IN NUMBER
12467 --Business Flow Invoice Identifier
12468  , p_source_29            IN NUMBER
12469 --Invoice Distribution Identifier
12470  , p_source_30            IN NUMBER
12471 --Payables Encumbrance Upgrade Credit Account
12472  , p_source_31            IN NUMBER
12473 --Payables Encumbrance Upgrade Credit Amount
12474  , p_source_32            IN NUMBER
12475 --Invoice Currency Code
12476  , p_source_33            IN VARCHAR2
12477 --Payables Encumbrance Upgrade Credit Base Amount
12478  , p_source_34            IN NUMBER
12479 --Payables Encumbrance Upgrade Debit Account
12480  , p_source_35            IN NUMBER
12481 --Payables Encumbrance Upgrade Debit Amount
12482  , p_source_36            IN NUMBER
12483 --Payables Encumbrance Upgrade Debit Base Amount
12484  , p_source_37            IN NUMBER
12485 --Payables Encumbrance Upgrade Option
12486  , p_source_38            IN VARCHAR2
12487 --Invoice Exchange Date
12488  , p_source_39            IN DATE
12489 --Invoice Exchange Rate
12490  , p_source_40            IN NUMBER
12491 --Invoice Exchange Rate Type
12492  , p_source_41            IN VARCHAR2
12493 --Deferred Accounting End Date
12494  , p_source_43            IN DATE
12495 --Deferred Accounting Option
12496  , p_source_44            IN VARCHAR2
12497 --Deferred Accounting Start Date
12498  , p_source_45            IN DATE
12499 --Override Accounted Amount Indicator
12500  , p_source_46            IN VARCHAR2
12501  , p_source_46_meaning    IN VARCHAR2
12502 --Invoice Supplier Identifier
12503  , p_source_47            IN NUMBER
12504 --Invoice Supplier Site Identifier
12505  , p_source_48            IN NUMBER
12506 --Third Party Type
12507  , p_source_49            IN VARCHAR2
12508 --Parent Reversal Identifier
12509  , p_source_50            IN NUMBER
12510 --Invoice Distribution Statistical Amount
12511  , p_source_51            IN NUMBER
12512 --Invoice Distribution Tax Line Identifier
12513  , p_source_52            IN NUMBER
12514 --Invoice Distribution Tax Distribution Identifier from Tax
12515  , p_source_53            IN NUMBER
12516 --Invoice Distribution Summary Tax Line Identifier
12517  , p_source_54            IN NUMBER
12518 --Payables Upgrade Credit Encumbrance Type Identifier
12519  , p_source_55            IN NUMBER
12520 --Payables Upgrade Debit Encumbrance Type Identifier
12521  , p_source_56            IN NUMBER
12522 --Invoice Distribution Amount
12523  , p_source_57            IN NUMBER
12524 --Invoice Distribution Encumbrance Amount
12525  , p_source_65            IN NUMBER
12526 --Invoice Distribution Encumbrance Ledger Amount
12527  , p_source_66            IN NUMBER
12528 )
12529 IS
12530 
12531 l_component_type              VARCHAR2(80);
12532 l_component_code              VARCHAR2(30);
12533 l_component_type_code         VARCHAR2(1);
12534 l_component_appl_id           INTEGER;
12535 l_amb_context_code            VARCHAR2(30);
12536 l_entity_code                 VARCHAR2(30);
12537 l_event_class_code            VARCHAR2(30);
12538 l_ae_header_id                NUMBER;
12539 l_event_type_code             VARCHAR2(30);
12540 l_line_definition_code        VARCHAR2(30);
12541 l_line_definition_owner_code  VARCHAR2(1);
12542 --
12543 -- adr variables
12544 l_segment                     VARCHAR2(30);
12545 l_ccid                        NUMBER;
12546 l_adr_transaction_coa_id      NUMBER;
12547 l_adr_accounting_coa_id       NUMBER;
12548 l_adr_flexfield_segment_code  VARCHAR2(30);
12549 l_adr_flex_value_set_id       NUMBER;
12550 l_adr_value_type_code         VARCHAR2(30);
12551 l_adr_value_combination_id    NUMBER;
12552 l_adr_value_segment_code      VARCHAR2(30);
12553 
12554 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12555 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12556 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12557 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12558 
12559 -- 4262811 Variables ------------------------------------------------------------------------------------------
12560 l_entered_amt_idx             NUMBER;
12561 l_accted_amt_idx              NUMBER;
12562 l_acc_rev_flag                VARCHAR2(1);
12563 l_accrual_line_num            NUMBER;
12564 l_tmp_amt                     NUMBER;
12565 l_acc_rev_natural_side_code   VARCHAR2(1);
12566 
12567 l_num_entries                 NUMBER;
12568 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12569 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12570 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12571 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12572 l_recog_line_1                NUMBER;
12573 l_recog_line_2                NUMBER;
12574 
12575 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12576 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12577 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12578 
12582 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12579 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12580 
12581 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12583 
12584 ---------------------------------------------------------------------------------------------------------------
12585 
12586 
12587 --
12588 -- bulk performance
12589 --
12590 l_balance_type_code           VARCHAR2(1);
12591 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12592 l_log_module                  VARCHAR2(240);
12593 
12594 --
12595 -- Upgrade strategy
12596 --
12597 l_actual_upg_option           VARCHAR2(1);
12598 l_enc_upg_option           VARCHAR2(1);
12599 
12600 --
12601 BEGIN
12602 --
12603 IF g_log_enabled THEN
12604       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
12605 END IF;
12606 --
12607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12608 
12609       trace
12610          (p_msg      => 'BEGIN of AcctLineType_28'
12611          ,p_level    => C_LEVEL_PROCEDURE
12612          ,p_module   => l_log_module);
12613 
12614 END IF;
12615 --
12616 l_component_type             := 'AMB_JLT';
12617 l_component_code             := 'AP_FREIGHT_EXPENSE_INV_ENC_DR';
12618 l_component_type_code        := 'S';
12619 l_component_appl_id          :=  200;
12620 l_amb_context_code           := 'DEFAULT';
12621 l_entity_code                := 'AP_INVOICES';
12622 l_event_class_code           := 'INVOICES';
12623 l_event_type_code            := 'INVOICES_ALL';
12624 l_line_definition_owner_code := 'S';
12625 l_line_definition_code       := 'ENC_INVOICES_ALL';
12626 --
12627 l_balance_type_code          := 'E';
12628 l_segment                     := NULL;
12629 l_ccid                        := NULL;
12630 l_adr_transaction_coa_id      := NULL;
12631 l_adr_accounting_coa_id       := NULL;
12632 l_adr_flexfield_segment_code  := NULL;
12633 l_adr_flex_value_set_id       := NULL;
12634 l_adr_value_type_code         := NULL;
12635 l_adr_value_combination_id    := NULL;
12636 l_adr_value_segment_code      := NULL;
12637 
12638 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12639 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
12640 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12641 l_budgetary_control_flag     := 'Y';
12642 
12643 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12644 l_bflow_applied_to_amt       := NULL; -- 5132302
12645 l_entered_amt_idx            := NULL;          -- 4262811
12646 l_accted_amt_idx             := NULL;          -- 4262811
12647 l_acc_rev_flag               := NULL;          -- 4262811
12648 l_accrual_line_num           := NULL;          -- 4262811
12649 l_tmp_amt                    := NULL;          -- 4262811
12650 --
12651  
12652 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12653     l_balance_type_code <> 'B' THEN
12654 IF NVL(p_source_15,'
12655 ') =  'FREIGHT' AND 
12656 NVL(p_source_17,'
12657 ') =  'Y'
12658  THEN 
12659 
12660    --
12661    XLA_AE_LINES_PKG.SetNewLine;
12662 
12663    p_balance_type_code          := l_balance_type_code;
12664    -- set the flag so later we will know whether the gain loss line needs to be created
12665    
12666    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12667      p_actual_flag :='A';
12668    END IF;
12669 
12670    --
12671    -- bulk performance
12672    --
12673    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12674                                       p_header_num   => 0); -- 4262811
12675    --
12676    -- set accounting line options
12677    --
12678    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12679            p_natural_side_code          => 'D'
12680          , p_gain_or_loss_flag          => 'N'
12681          , p_gl_transfer_mode_code      => 'S'
12682          , p_acct_entry_type_code       => 'E'
12683          , p_switch_side_flag           => 'Y'
12684          , p_merge_duplicate_code       => 'N'
12685          );
12686    --
12687    l_acc_rev_natural_side_code := 'C';  -- 4262811
12688    -- 
12689    --
12690    -- set accounting line type info
12691    --
12692    xla_ae_lines_pkg.SetAcctLineType
12693       (p_component_type             => l_component_type
12694       ,p_event_type_code            => l_event_type_code
12695       ,p_line_definition_owner_code => l_line_definition_owner_code
12696       ,p_line_definition_code       => l_line_definition_code
12697       ,p_accounting_line_code       => l_component_code
12698       ,p_accounting_line_type_code  => l_component_type_code
12699       ,p_accounting_line_appl_id    => l_component_appl_id
12700       ,p_amb_context_code           => l_amb_context_code
12701       ,p_entity_code                => l_entity_code
12702       ,p_event_class_code           => l_event_class_code);
12703    --
12704    -- set accounting class
12705    --
12706    xla_ae_lines_pkg.SetAcctClass(
12707            p_accounting_class_code  => 'FREIGHT'
12708          , p_ae_header_id           => l_ae_header_id
12709          );
12710 
12711    --
12712    -- set rounding class
12713    --
12714    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12718    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12715                       'FREIGHT';
12716 
12717    --
12719    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12720    --
12721    -- bulk performance
12722    --
12723    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12724 
12725    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12726       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12727 
12728    -- 4955764
12729    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12730       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12731 
12732    -- 4458381 Public Sector Enh
12733       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
12734    --
12735    -- set accounting attributes for the line type
12736    --
12737    l_entered_amt_idx := 24;
12738    l_accted_amt_idx  := 29;
12739    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
12740    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12741    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
12742    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12743    l_rec_acct_attrs.array_num_value(2)  := 
12744 xla_ae_sources_pkg.GetSystemSourceNum(
12745    p_source_code           => 'XLA_EVENT_APPL_ID'
12746  , p_source_type_code      => 'Y'
12747  , p_source_application_id =>  602
12748 );
12749    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12750    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
12751    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12752    l_rec_acct_attrs.array_char_value(4)  := 
12753 xla_ae_sources_pkg.GetSystemSourceChar(
12754    p_source_code           => 'XLA_ENTITY_CODE'
12755  , p_source_type_code      => 'Y'
12756  , p_source_application_id =>  602
12757 );
12758    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12759    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
12760    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12761    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
12762    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
12763    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
12764    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
12765    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
12766    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12767    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
12768    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
12769    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
12770    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
12771    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
12772    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12773    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
12774    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
12775    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
12776    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
12777    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
12778    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
12779    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
12780    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
12781    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
12782    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
12783    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
12784    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
12785    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
12786    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
12787    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
12788    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
12789    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
12790    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
12791    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
12792    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
12793    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
12794    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
12795    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
12796    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
12797    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
12798    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
12799    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
12800    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
12801    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
12802    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
12803    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
12804    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
12805    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
12806    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
12807    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
12811    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
12808    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
12809    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
12810    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
12812    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
12813    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
12814    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
12815    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
12816    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
12817    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
12818    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
12819    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
12820    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
12821    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
12822    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
12823    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
12824    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
12825    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
12826    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
12827    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
12828    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
12829    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
12830    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
12831    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
12832    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
12833    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
12834    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
12835    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
12836    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
12837    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
12838 
12839    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12840    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12841 
12842    ---------------------------------------------------------------------------------------------------------------
12843    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12844    ---------------------------------------------------------------------------------------------------------------
12845    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12846 
12847    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12848    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12849 
12850    IF xla_accounting_cache_pkg.GetValueChar
12851          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12852          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12853    AND l_bflow_method_code = 'PRIOR_ENTRY'
12854 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12855    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12856          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12857        )
12858    THEN
12859          xla_ae_lines_pkg.BflowUpgEntry
12860            (p_business_method_code    => l_bflow_method_code
12861            ,p_business_class_code     => l_bflow_class_code
12862            ,p_balance_type            => l_balance_type_code);
12863    ELSE
12864       NULL;
12865 -- No business flow processing for business flow method of NONE.
12866    END IF;
12867 
12868    --
12869    -- call analytical criteria
12870    --
12871    
12872    --
12873    -- call description
12874    --
12875    
12876 xla_ae_lines_pkg.SetLineDescription(
12877    p_ae_header_id => l_ae_header_id
12878   ,p_description  => Description_2 (
12879      p_application_id         => p_application_id
12880    , p_ae_header_id           => l_ae_header_id 
12881 , p_source_1 => p_source_1
12882    )
12883 );
12884 
12885 
12886    --
12887    -- call ADRs
12888    -- Bug 4922099
12889    --
12890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12891         (NVL(l_actual_upg_option, 'N') = 'O') OR
12892         (NVL(l_enc_upg_option, 'N') = 'O')
12893       )
12894    THEN
12895    NULL;
12896    --
12897    --
12898    
12899   l_ccid := AcctDerRule_7(
12900            p_application_id           => p_application_id
12901          , p_ae_header_id             => l_ae_header_id 
12902 , p_source_11 => p_source_11
12903          , x_transaction_coa_id       => l_adr_transaction_coa_id
12904          , x_accounting_coa_id        => l_adr_accounting_coa_id
12905          , x_value_type_code          => l_adr_value_type_code
12906          , p_side                     => 'NA'
12907    );
12908 
12909    xla_ae_lines_pkg.set_ccid(
12910     p_code_combination_id          => l_ccid
12911   , p_value_type_code              => l_adr_value_type_code
12912   , p_transaction_coa_id           => l_adr_transaction_coa_id
12913   , p_accounting_coa_id            => l_adr_accounting_coa_id
12914   , p_adr_code                     => 'AP_INVOICE_DIST'
12915   , p_adr_type_code                => 'S'
12916   , p_component_type               => l_component_type
12920   , p_amb_context_code             => l_amb_context_code
12917   , p_component_code               => l_component_code
12918   , p_component_type_code          => l_component_type_code
12919   , p_component_appl_id            => l_component_appl_id
12921   , p_side                         => 'NA'
12922   );
12923 
12924 
12925    --
12926    --
12927    END IF;
12928    --
12929    -- Bug 4922099
12930    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12931           (NVL(l_enc_upg_option, 'N') = 'O')
12932         ) AND
12933         (l_bflow_method_code = 'PRIOR_ENTRY')
12934       )
12935    THEN
12936       IF
12937       --
12938       1 = 2
12939       --
12940       THEN
12941       xla_accounting_err_pkg.build_message
12942                                     (p_appli_s_name            => 'XLA'
12943                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12944                                     ,p_token_1                 => 'LINE_NUMBER'
12945                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12946                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12947                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12948                                                                              l_component_type
12949                                                                             ,l_component_code
12950                                                                             ,l_component_type_code
12951                                                                             ,l_component_appl_id
12952                                                                             ,l_amb_context_code
12953                                                                             ,l_entity_code
12954                                                                             ,l_event_class_code
12955                                                                            )
12956                                     ,p_token_3                 => 'OWNER'
12957                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12958                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12959                                                                           ,p_lookup_code    => l_component_type_code
12960                                                                          )
12961                                     ,p_token_4                 => 'PRODUCT_NAME'
12962                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12963                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12964                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12965                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12966                                     ,p_ae_header_id            =>  NULL
12967                                        );
12968 
12969         IF (C_LEVEL_ERROR>= g_log_level) THEN
12970                  trace
12971                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12972                       ,p_level    => C_LEVEL_ERROR
12973                       ,p_module   => l_log_module);
12974         END IF;
12975       END IF;
12976    END IF;
12977    --
12978    --
12979    ------------------------------------------------------------------------------------------------
12980    -- 4219869 Business Flow
12981    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12982    -- Prior Entry.  Currently, the following code is always generated.
12983    ------------------------------------------------------------------------------------------------
12984    XLA_AE_LINES_PKG.ValidateCurrentLine;
12985 
12986    ------------------------------------------------------------------------------------
12987    -- 4219869 Business Flow
12988    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12989    ------------------------------------------------------------------------------------
12990    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12991 
12992    ----------------------------------------------------------------------------------
12993    -- 4219869 Business Flow
12994    -- Update journal entry status -- Need to generate this within IF <condition>
12995    ----------------------------------------------------------------------------------
12996    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12997          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12998          ,p_balance_type_code => l_balance_type_code
12999          );
13000 
13001    -------------------------------------------------------------------------------------------
13002    -- 4262811 - Generate the Accrual Reversal lines
13003    -------------------------------------------------------------------------------------------
13004    BEGIN
13005       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13006                               (g_array_event(p_event_id).array_value_num('header_index'));
13007       IF l_acc_rev_flag IS NULL THEN
13008          l_acc_rev_flag := 'N';
13009       END IF;
13010    EXCEPTION
13011       WHEN OTHERS THEN
13012          l_acc_rev_flag := 'N';
13013    END;
13014    --
13015    IF (l_acc_rev_flag = 'Y') THEN
13016 
13020        ------------------------------------------------------------------------------------------
13017        -- 4645092  ------------------------------------------------------------------------------
13018        -- To allow MPA report to determine if it should generate report process
13019        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13021 
13022        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13023        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13024    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13025    -- call ADRs
13026    -- Bug 4922099
13027    --
13028    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13029         (NVL(l_actual_upg_option, 'N') = 'O') OR
13030         (NVL(l_enc_upg_option, 'N') = 'O')
13031       )
13032    THEN
13033    NULL;
13034    --
13035    --
13036    
13037   l_ccid := AcctDerRule_7(
13038            p_application_id           => p_application_id
13039          , p_ae_header_id             => l_ae_header_id 
13040 , p_source_11 => p_source_11
13041          , x_transaction_coa_id       => l_adr_transaction_coa_id
13042          , x_accounting_coa_id        => l_adr_accounting_coa_id
13043          , x_value_type_code          => l_adr_value_type_code
13044          , p_side                     => 'NA'
13045    );
13046 
13047    xla_ae_lines_pkg.set_ccid(
13048     p_code_combination_id          => l_ccid
13049   , p_value_type_code              => l_adr_value_type_code
13050   , p_transaction_coa_id           => l_adr_transaction_coa_id
13051   , p_accounting_coa_id            => l_adr_accounting_coa_id
13052   , p_adr_code                     => 'AP_INVOICE_DIST'
13053   , p_adr_type_code                => 'S'
13054   , p_component_type               => l_component_type
13055   , p_component_code               => l_component_code
13056   , p_component_type_code          => l_component_type_code
13057   , p_component_appl_id            => l_component_appl_id
13058   , p_amb_context_code             => l_amb_context_code
13059   , p_side                         => 'NA'
13060   );
13061 
13062 
13063    --
13064    --
13065    END IF;
13066 
13067        --
13068        -- Update the line information that should be overwritten
13069        --
13070        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13071                                          p_header_num   => 1);
13072        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13073 
13074        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13075 
13076        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13077           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13078        END IF;
13079 
13080       --
13081       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13082       --
13083       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13084           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13085       ELSE
13086           ---------------------------------------------------------------------------------------------------
13087           -- 4262811a Switch Sign
13088           ---------------------------------------------------------------------------------------------------
13089           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13090           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13091                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13092           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13093                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13094           -- 5132302
13095           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13096                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13097 
13098       END IF;
13099 
13100       -- 4955764
13101       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13102       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13103 
13104 
13105       XLA_AE_LINES_PKG.ValidateCurrentLine;
13106       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13107 
13108       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13109                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13110                ,p_balance_type_code => l_balance_type_code);
13111 
13112    END IF;
13113 
13114    -----------------------------------------------------------------------------------------
13115    -- 4262811 Multiperiod Accounting
13116    -----------------------------------------------------------------------------------------
13117      -- No MPA option is assigned.
13118 
13119 
13120 END IF;
13121 END IF;
13122 --
13123 
13124 --
13125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13126    trace
13127       (p_msg      => 'END of AcctLineType_28'
13128       ,p_level    => C_LEVEL_PROCEDURE
13129       ,p_module   => l_log_module);
13130 END IF;
13131 --
13132 EXCEPTION
13133   WHEN xla_exceptions_pkg.application_exception THEN
13134       RAISE;
13138 END AcctLineType_28;
13135   WHEN OTHERS THEN
13136        xla_exceptions_pkg.raise_message
13137            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_28');
13139 --
13140 
13141 ---------------------------------------
13142 --
13143 -- PRIVATE FUNCTION
13144 --         AcctLineType_29
13145 --
13146 ---------------------------------------
13147 PROCEDURE AcctLineType_29 (
13148   p_application_id        IN NUMBER
13149  ,p_event_id              IN NUMBER
13150  ,p_calculate_acctd_flag  IN VARCHAR2
13151  ,p_calculate_g_l_flag    IN VARCHAR2
13152  ,p_actual_flag           IN OUT VARCHAR2
13153  ,p_balance_type_code     OUT VARCHAR2
13154  ,p_gain_or_loss_ref      OUT VARCHAR2
13155  
13156 --Invoice Distribution Description
13157  , p_source_1            IN VARCHAR2
13158 --Invoice Distribution Account
13159  , p_source_11            IN NUMBER
13160 --Invoice Distribution Type
13161  , p_source_15            IN VARCHAR2
13162  , p_source_15_meaning    IN VARCHAR2
13163 --Purchasing Encumbrance Option
13164  , p_source_17            IN VARCHAR2
13165  , p_source_17_meaning    IN VARCHAR2
13166 --Accounting Reversal Indicator
13167  , p_source_19            IN VARCHAR2
13168 --Distribution Link Type
13169  , p_source_21            IN VARCHAR2
13170 --Allocation to Main Distribution Identifier
13171  , p_source_23            IN NUMBER
13172 --Invoice Identifier
13173  , p_source_24            IN NUMBER
13174 --Business Flow Accounts Payable Application Identifier
13175  , p_source_25            IN NUMBER
13176 --Business Flow Invoice Distribution Type
13177  , p_source_26            IN VARCHAR2
13178 --Business Flow Invoice Entity Code
13179  , p_source_27            IN VARCHAR2
13180 --Business Flow Invoice Distribution Identifier
13181  , p_source_28            IN NUMBER
13182 --Business Flow Invoice Identifier
13183  , p_source_29            IN NUMBER
13184 --Invoice Distribution Identifier
13185  , p_source_30            IN NUMBER
13186 --Payables Encumbrance Upgrade Credit Account
13187  , p_source_31            IN NUMBER
13188 --Payables Encumbrance Upgrade Credit Amount
13189  , p_source_32            IN NUMBER
13190 --Invoice Currency Code
13191  , p_source_33            IN VARCHAR2
13192 --Payables Encumbrance Upgrade Credit Base Amount
13193  , p_source_34            IN NUMBER
13194 --Payables Encumbrance Upgrade Debit Account
13195  , p_source_35            IN NUMBER
13196 --Payables Encumbrance Upgrade Debit Amount
13197  , p_source_36            IN NUMBER
13198 --Payables Encumbrance Upgrade Debit Base Amount
13199  , p_source_37            IN NUMBER
13200 --Payables Encumbrance Upgrade Option
13201  , p_source_38            IN VARCHAR2
13202 --Invoice Exchange Date
13203  , p_source_39            IN DATE
13204 --Invoice Exchange Rate
13205  , p_source_40            IN NUMBER
13206 --Invoice Exchange Rate Type
13207  , p_source_41            IN VARCHAR2
13208 --Deferred Accounting End Date
13209  , p_source_43            IN DATE
13210 --Deferred Accounting Option
13211  , p_source_44            IN VARCHAR2
13212 --Deferred Accounting Start Date
13213  , p_source_45            IN DATE
13214 --Override Accounted Amount Indicator
13215  , p_source_46            IN VARCHAR2
13216  , p_source_46_meaning    IN VARCHAR2
13217 --Invoice Supplier Identifier
13218  , p_source_47            IN NUMBER
13219 --Invoice Supplier Site Identifier
13220  , p_source_48            IN NUMBER
13221 --Third Party Type
13222  , p_source_49            IN VARCHAR2
13223 --Parent Reversal Identifier
13224  , p_source_50            IN NUMBER
13225 --Invoice Distribution Statistical Amount
13226  , p_source_51            IN NUMBER
13227 --Invoice Distribution Tax Line Identifier
13228  , p_source_52            IN NUMBER
13229 --Invoice Distribution Tax Distribution Identifier from Tax
13230  , p_source_53            IN NUMBER
13231 --Invoice Distribution Summary Tax Line Identifier
13232  , p_source_54            IN NUMBER
13233 --Payables Upgrade Credit Encumbrance Type Identifier
13234  , p_source_55            IN NUMBER
13235 --Payables Upgrade Debit Encumbrance Type Identifier
13236  , p_source_56            IN NUMBER
13237 --Invoice Distribution Encumbrance Amount
13238  , p_source_65            IN NUMBER
13239 --Invoice Distribution Encumbrance Ledger Amount
13240  , p_source_66            IN NUMBER
13241 )
13242 IS
13243 
13244 l_component_type              VARCHAR2(80);
13245 l_component_code              VARCHAR2(30);
13246 l_component_type_code         VARCHAR2(1);
13247 l_component_appl_id           INTEGER;
13248 l_amb_context_code            VARCHAR2(30);
13249 l_entity_code                 VARCHAR2(30);
13250 l_event_class_code            VARCHAR2(30);
13251 l_ae_header_id                NUMBER;
13252 l_event_type_code             VARCHAR2(30);
13253 l_line_definition_code        VARCHAR2(30);
13254 l_line_definition_owner_code  VARCHAR2(1);
13255 --
13256 -- adr variables
13257 l_segment                     VARCHAR2(30);
13258 l_ccid                        NUMBER;
13259 l_adr_transaction_coa_id      NUMBER;
13260 l_adr_accounting_coa_id       NUMBER;
13261 l_adr_flexfield_segment_code  VARCHAR2(30);
13262 l_adr_flex_value_set_id       NUMBER;
13263 l_adr_value_type_code         VARCHAR2(30);
13267 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13264 l_adr_value_combination_id    NUMBER;
13265 l_adr_value_segment_code      VARCHAR2(30);
13266 
13268 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13269 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13270 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13271 
13272 -- 4262811 Variables ------------------------------------------------------------------------------------------
13273 l_entered_amt_idx             NUMBER;
13274 l_accted_amt_idx              NUMBER;
13275 l_acc_rev_flag                VARCHAR2(1);
13276 l_accrual_line_num            NUMBER;
13277 l_tmp_amt                     NUMBER;
13278 l_acc_rev_natural_side_code   VARCHAR2(1);
13279 
13280 l_num_entries                 NUMBER;
13281 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13282 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13283 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13284 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13285 l_recog_line_1                NUMBER;
13286 l_recog_line_2                NUMBER;
13287 
13288 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13289 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13290 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13291 
13292 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13293 
13294 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13295 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13296 
13297 ---------------------------------------------------------------------------------------------------------------
13298 
13299 
13300 --
13301 -- bulk performance
13302 --
13303 l_balance_type_code           VARCHAR2(1);
13304 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13305 l_log_module                  VARCHAR2(240);
13306 
13307 --
13308 -- Upgrade strategy
13309 --
13310 l_actual_upg_option           VARCHAR2(1);
13311 l_enc_upg_option           VARCHAR2(1);
13312 
13313 --
13314 BEGIN
13315 --
13316 IF g_log_enabled THEN
13317       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
13318 END IF;
13319 --
13320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13321 
13322       trace
13323          (p_msg      => 'BEGIN of AcctLineType_29'
13324          ,p_level    => C_LEVEL_PROCEDURE
13325          ,p_module   => l_log_module);
13326 
13327 END IF;
13328 --
13329 l_component_type             := 'AMB_JLT';
13330 l_component_code             := 'AP_FREIGHT_EXPENSE_PP_ENC_DR';
13331 l_component_type_code        := 'S';
13332 l_component_appl_id          :=  200;
13333 l_amb_context_code           := 'DEFAULT';
13334 l_entity_code                := 'AP_INVOICES';
13335 l_event_class_code           := 'PREPAYMENTS';
13336 l_event_type_code            := 'PREPAYMENTS_ALL';
13337 l_line_definition_owner_code := 'S';
13338 l_line_definition_code       := 'ENC_PREPAY_ALL';
13339 --
13340 l_balance_type_code          := 'E';
13341 l_segment                     := NULL;
13342 l_ccid                        := NULL;
13343 l_adr_transaction_coa_id      := NULL;
13344 l_adr_accounting_coa_id       := NULL;
13345 l_adr_flexfield_segment_code  := NULL;
13346 l_adr_flex_value_set_id       := NULL;
13347 l_adr_value_type_code         := NULL;
13348 l_adr_value_combination_id    := NULL;
13349 l_adr_value_segment_code      := NULL;
13350 
13351 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13352 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
13353 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13354 l_budgetary_control_flag     := 'Y';
13355 
13356 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13357 l_bflow_applied_to_amt       := NULL; -- 5132302
13358 l_entered_amt_idx            := NULL;          -- 4262811
13359 l_accted_amt_idx             := NULL;          -- 4262811
13360 l_acc_rev_flag               := NULL;          -- 4262811
13361 l_accrual_line_num           := NULL;          -- 4262811
13362 l_tmp_amt                    := NULL;          -- 4262811
13363 --
13364  
13365 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13366     l_balance_type_code <> 'B' THEN
13367 IF NVL(p_source_15,'
13368 ') =  'FREIGHT' AND 
13369 NVL(p_source_17,'
13370 ') =  'Y'
13371  THEN 
13372 
13373    --
13374    XLA_AE_LINES_PKG.SetNewLine;
13375 
13376    p_balance_type_code          := l_balance_type_code;
13377    -- set the flag so later we will know whether the gain loss line needs to be created
13378    
13379    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13380      p_actual_flag :='A';
13381    END IF;
13382 
13383    --
13384    -- bulk performance
13385    --
13386    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13387                                       p_header_num   => 0); -- 4262811
13388    --
13389    -- set accounting line options
13390    --
13391    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13392            p_natural_side_code          => 'D'
13393          , p_gain_or_loss_flag          => 'N'
13397          , p_merge_duplicate_code       => 'N'
13394          , p_gl_transfer_mode_code      => 'S'
13395          , p_acct_entry_type_code       => 'E'
13396          , p_switch_side_flag           => 'Y'
13398          );
13399    --
13400    l_acc_rev_natural_side_code := 'C';  -- 4262811
13401    -- 
13402    --
13403    -- set accounting line type info
13404    --
13405    xla_ae_lines_pkg.SetAcctLineType
13406       (p_component_type             => l_component_type
13407       ,p_event_type_code            => l_event_type_code
13408       ,p_line_definition_owner_code => l_line_definition_owner_code
13409       ,p_line_definition_code       => l_line_definition_code
13410       ,p_accounting_line_code       => l_component_code
13411       ,p_accounting_line_type_code  => l_component_type_code
13412       ,p_accounting_line_appl_id    => l_component_appl_id
13413       ,p_amb_context_code           => l_amb_context_code
13414       ,p_entity_code                => l_entity_code
13415       ,p_event_class_code           => l_event_class_code);
13416    --
13417    -- set accounting class
13418    --
13419    xla_ae_lines_pkg.SetAcctClass(
13420            p_accounting_class_code  => 'FREIGHT'
13421          , p_ae_header_id           => l_ae_header_id
13422          );
13423 
13424    --
13425    -- set rounding class
13426    --
13427    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13428                       'FREIGHT';
13429 
13430    --
13431    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13432    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13433    --
13434    -- bulk performance
13435    --
13436    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13437 
13438    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13439       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13440 
13441    -- 4955764
13442    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13444 
13445    -- 4458381 Public Sector Enh
13446       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
13447    --
13448    -- set accounting attributes for the line type
13449    --
13450    l_entered_amt_idx := 23;
13451    l_accted_amt_idx  := 28;
13452    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
13453    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13454    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
13455    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13456    l_rec_acct_attrs.array_num_value(2)  := 
13457 xla_ae_sources_pkg.GetSystemSourceNum(
13458    p_source_code           => 'XLA_EVENT_APPL_ID'
13459  , p_source_type_code      => 'Y'
13460  , p_source_application_id =>  602
13461 );
13462    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13463    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
13464    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13465    l_rec_acct_attrs.array_char_value(4)  := 
13466 xla_ae_sources_pkg.GetSystemSourceChar(
13467    p_source_code           => 'XLA_ENTITY_CODE'
13468  , p_source_type_code      => 'Y'
13469  , p_source_application_id =>  602
13470 );
13471    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13472    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
13473    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13474    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
13475    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13476    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
13477    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13478    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
13479    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13480    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
13481    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13482    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
13483    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13484    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
13485    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13486    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
13487    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13488    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
13489    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13490    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
13491    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13492    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
13493    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13494    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
13495    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13496    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
13497    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13498    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
13502    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
13499    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13500    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
13501    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13503    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13504    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
13505    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13506    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
13507    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
13508    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
13509    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
13510    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
13511    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
13512    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
13513    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
13514    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
13515    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
13516    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
13517    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
13518    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
13519    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
13520    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
13521    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
13522    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
13523    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
13524    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
13525    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
13526    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
13527    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
13528    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
13529    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
13530    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
13531    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
13532    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
13533    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
13534    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
13535    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
13536    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
13537    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
13538    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
13539    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
13540    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
13541    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
13542    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
13543    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
13544    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
13545    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
13546    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
13547    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
13548    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
13549 
13550    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13551    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13552 
13553    ---------------------------------------------------------------------------------------------------------------
13554    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13555    ---------------------------------------------------------------------------------------------------------------
13556    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13557 
13558    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13559    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13560 
13561    IF xla_accounting_cache_pkg.GetValueChar
13562          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13563          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13564    AND l_bflow_method_code = 'PRIOR_ENTRY'
13565 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13566    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13567          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13568        )
13569    THEN
13570          xla_ae_lines_pkg.BflowUpgEntry
13571            (p_business_method_code    => l_bflow_method_code
13572            ,p_business_class_code     => l_bflow_class_code
13573            ,p_balance_type            => l_balance_type_code);
13574    ELSE
13575       NULL;
13576 -- No business flow processing for business flow method of NONE.
13577    END IF;
13578 
13579    --
13580    -- call analytical criteria
13581    --
13582    
13583    --
13584    -- call description
13585    --
13586    
13587 xla_ae_lines_pkg.SetLineDescription(
13588    p_ae_header_id => l_ae_header_id
13589   ,p_description  => Description_2 (
13590      p_application_id         => p_application_id
13591    , p_ae_header_id           => l_ae_header_id 
13592 , p_source_1 => p_source_1
13593    )
13594 );
13595 
13596 
13600    --
13597    --
13598    -- call ADRs
13599    -- Bug 4922099
13601    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13602         (NVL(l_actual_upg_option, 'N') = 'O') OR
13603         (NVL(l_enc_upg_option, 'N') = 'O')
13604       )
13605    THEN
13606    NULL;
13607    --
13608    --
13609    
13610   l_ccid := AcctDerRule_7(
13611            p_application_id           => p_application_id
13612          , p_ae_header_id             => l_ae_header_id 
13613 , p_source_11 => p_source_11
13614          , x_transaction_coa_id       => l_adr_transaction_coa_id
13615          , x_accounting_coa_id        => l_adr_accounting_coa_id
13616          , x_value_type_code          => l_adr_value_type_code
13617          , p_side                     => 'NA'
13618    );
13619 
13620    xla_ae_lines_pkg.set_ccid(
13621     p_code_combination_id          => l_ccid
13622   , p_value_type_code              => l_adr_value_type_code
13623   , p_transaction_coa_id           => l_adr_transaction_coa_id
13624   , p_accounting_coa_id            => l_adr_accounting_coa_id
13625   , p_adr_code                     => 'AP_INVOICE_DIST'
13626   , p_adr_type_code                => 'S'
13627   , p_component_type               => l_component_type
13628   , p_component_code               => l_component_code
13629   , p_component_type_code          => l_component_type_code
13630   , p_component_appl_id            => l_component_appl_id
13631   , p_amb_context_code             => l_amb_context_code
13632   , p_side                         => 'NA'
13633   );
13634 
13635 
13636    --
13637    --
13638    END IF;
13639    --
13640    -- Bug 4922099
13641    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13642           (NVL(l_enc_upg_option, 'N') = 'O')
13643         ) AND
13644         (l_bflow_method_code = 'PRIOR_ENTRY')
13645       )
13646    THEN
13647       IF
13648       --
13649       1 = 2
13650       --
13651       THEN
13652       xla_accounting_err_pkg.build_message
13653                                     (p_appli_s_name            => 'XLA'
13654                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13655                                     ,p_token_1                 => 'LINE_NUMBER'
13656                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13657                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13658                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13659                                                                              l_component_type
13660                                                                             ,l_component_code
13661                                                                             ,l_component_type_code
13662                                                                             ,l_component_appl_id
13663                                                                             ,l_amb_context_code
13664                                                                             ,l_entity_code
13665                                                                             ,l_event_class_code
13666                                                                            )
13667                                     ,p_token_3                 => 'OWNER'
13668                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13669                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13670                                                                           ,p_lookup_code    => l_component_type_code
13671                                                                          )
13672                                     ,p_token_4                 => 'PRODUCT_NAME'
13673                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13674                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13675                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13676                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13677                                     ,p_ae_header_id            =>  NULL
13678                                        );
13679 
13680         IF (C_LEVEL_ERROR>= g_log_level) THEN
13681                  trace
13682                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13683                       ,p_level    => C_LEVEL_ERROR
13684                       ,p_module   => l_log_module);
13685         END IF;
13686       END IF;
13687    END IF;
13688    --
13689    --
13690    ------------------------------------------------------------------------------------------------
13691    -- 4219869 Business Flow
13692    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13693    -- Prior Entry.  Currently, the following code is always generated.
13694    ------------------------------------------------------------------------------------------------
13695    XLA_AE_LINES_PKG.ValidateCurrentLine;
13696 
13697    ------------------------------------------------------------------------------------
13698    -- 4219869 Business Flow
13699    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13703    ----------------------------------------------------------------------------------
13700    ------------------------------------------------------------------------------------
13701    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13702 
13704    -- 4219869 Business Flow
13705    -- Update journal entry status -- Need to generate this within IF <condition>
13706    ----------------------------------------------------------------------------------
13707    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13708          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13709          ,p_balance_type_code => l_balance_type_code
13710          );
13711 
13712    -------------------------------------------------------------------------------------------
13713    -- 4262811 - Generate the Accrual Reversal lines
13714    -------------------------------------------------------------------------------------------
13715    BEGIN
13716       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13717                               (g_array_event(p_event_id).array_value_num('header_index'));
13718       IF l_acc_rev_flag IS NULL THEN
13719          l_acc_rev_flag := 'N';
13720       END IF;
13721    EXCEPTION
13722       WHEN OTHERS THEN
13723          l_acc_rev_flag := 'N';
13724    END;
13725    --
13726    IF (l_acc_rev_flag = 'Y') THEN
13727 
13728        -- 4645092  ------------------------------------------------------------------------------
13729        -- To allow MPA report to determine if it should generate report process
13730        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13731        ------------------------------------------------------------------------------------------
13732 
13733        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13734        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13735    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13736    -- call ADRs
13737    -- Bug 4922099
13738    --
13739    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13740         (NVL(l_actual_upg_option, 'N') = 'O') OR
13741         (NVL(l_enc_upg_option, 'N') = 'O')
13742       )
13743    THEN
13744    NULL;
13745    --
13746    --
13747    
13748   l_ccid := AcctDerRule_7(
13749            p_application_id           => p_application_id
13750          , p_ae_header_id             => l_ae_header_id 
13751 , p_source_11 => p_source_11
13752          , x_transaction_coa_id       => l_adr_transaction_coa_id
13753          , x_accounting_coa_id        => l_adr_accounting_coa_id
13754          , x_value_type_code          => l_adr_value_type_code
13755          , p_side                     => 'NA'
13756    );
13757 
13758    xla_ae_lines_pkg.set_ccid(
13759     p_code_combination_id          => l_ccid
13760   , p_value_type_code              => l_adr_value_type_code
13761   , p_transaction_coa_id           => l_adr_transaction_coa_id
13762   , p_accounting_coa_id            => l_adr_accounting_coa_id
13763   , p_adr_code                     => 'AP_INVOICE_DIST'
13764   , p_adr_type_code                => 'S'
13765   , p_component_type               => l_component_type
13766   , p_component_code               => l_component_code
13767   , p_component_type_code          => l_component_type_code
13768   , p_component_appl_id            => l_component_appl_id
13769   , p_amb_context_code             => l_amb_context_code
13770   , p_side                         => 'NA'
13771   );
13772 
13773 
13774    --
13775    --
13776    END IF;
13777 
13778        --
13779        -- Update the line information that should be overwritten
13780        --
13781        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13782                                          p_header_num   => 1);
13783        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13784 
13785        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13786 
13787        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13788           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13789        END IF;
13790 
13791       --
13792       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13793       --
13794       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13795           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13796       ELSE
13797           ---------------------------------------------------------------------------------------------------
13798           -- 4262811a Switch Sign
13799           ---------------------------------------------------------------------------------------------------
13800           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13801           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13802                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13803           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13804                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13805           -- 5132302
13806           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13807                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13808 
13809       END IF;
13810 
13814 
13811       -- 4955764
13812       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13813       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13815 
13816       XLA_AE_LINES_PKG.ValidateCurrentLine;
13817       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13818 
13819       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13820                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13821                ,p_balance_type_code => l_balance_type_code);
13822 
13823    END IF;
13824 
13825    -----------------------------------------------------------------------------------------
13826    -- 4262811 Multiperiod Accounting
13827    -----------------------------------------------------------------------------------------
13828      -- No MPA option is assigned.
13829 
13830 
13831 END IF;
13832 END IF;
13833 --
13834 
13835 --
13836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13837    trace
13838       (p_msg      => 'END of AcctLineType_29'
13839       ,p_level    => C_LEVEL_PROCEDURE
13840       ,p_module   => l_log_module);
13841 END IF;
13842 --
13843 EXCEPTION
13844   WHEN xla_exceptions_pkg.application_exception THEN
13845       RAISE;
13846   WHEN OTHERS THEN
13847        xla_exceptions_pkg.raise_message
13848            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_29');
13849 END AcctLineType_29;
13850 --
13851 
13852 ---------------------------------------
13853 --
13854 -- PRIVATE FUNCTION
13855 --         AcctLineType_30
13856 --
13857 ---------------------------------------
13858 PROCEDURE AcctLineType_30 (
13859   p_application_id        IN NUMBER
13860  ,p_event_id              IN NUMBER
13861  ,p_calculate_acctd_flag  IN VARCHAR2
13862  ,p_calculate_g_l_flag    IN VARCHAR2
13863  ,p_actual_flag           IN OUT VARCHAR2
13864  ,p_balance_type_code     OUT VARCHAR2
13865  ,p_gain_or_loss_ref      OUT VARCHAR2
13866  
13867 --Invoice Distribution Description
13868  , p_source_1            IN VARCHAR2
13869 --Invoice Distribution Ledger Amount
13870  , p_source_8            IN NUMBER
13871 --Invoice Distribution Account
13872  , p_source_11            IN NUMBER
13873 --Invoice Distribution Type
13874  , p_source_15            IN VARCHAR2
13875  , p_source_15_meaning    IN VARCHAR2
13876 --Accounting Reversal Indicator
13877  , p_source_19            IN VARCHAR2
13878 --Distribution Link Type
13879  , p_source_21            IN VARCHAR2
13880 --Allocation to Main Distribution Identifier
13881  , p_source_23            IN NUMBER
13882 --Invoice Identifier
13883  , p_source_24            IN NUMBER
13884 --Business Flow Accounts Payable Application Identifier
13885  , p_source_25            IN NUMBER
13886 --Business Flow Invoice Distribution Type
13887  , p_source_26            IN VARCHAR2
13888 --Business Flow Invoice Entity Code
13889  , p_source_27            IN VARCHAR2
13890 --Business Flow Invoice Distribution Identifier
13891  , p_source_28            IN NUMBER
13892 --Business Flow Invoice Identifier
13893  , p_source_29            IN NUMBER
13894 --Invoice Distribution Identifier
13895  , p_source_30            IN NUMBER
13896 --Payables Encumbrance Upgrade Credit Account
13897  , p_source_31            IN NUMBER
13898 --Payables Encumbrance Upgrade Credit Amount
13899  , p_source_32            IN NUMBER
13900 --Invoice Currency Code
13901  , p_source_33            IN VARCHAR2
13902 --Payables Encumbrance Upgrade Credit Base Amount
13903  , p_source_34            IN NUMBER
13904 --Payables Encumbrance Upgrade Debit Account
13905  , p_source_35            IN NUMBER
13906 --Payables Encumbrance Upgrade Debit Amount
13907  , p_source_36            IN NUMBER
13908 --Payables Encumbrance Upgrade Debit Base Amount
13909  , p_source_37            IN NUMBER
13910 --Payables Encumbrance Upgrade Option
13911  , p_source_38            IN VARCHAR2
13912 --Invoice Exchange Date
13913  , p_source_39            IN DATE
13914 --Invoice Exchange Rate
13915  , p_source_40            IN NUMBER
13916 --Invoice Exchange Rate Type
13917  , p_source_41            IN VARCHAR2
13918 --Deferred Accounting End Date
13919  , p_source_43            IN DATE
13920 --Deferred Accounting Option
13921  , p_source_44            IN VARCHAR2
13922 --Deferred Accounting Start Date
13923  , p_source_45            IN DATE
13924 --Override Accounted Amount Indicator
13925  , p_source_46            IN VARCHAR2
13926  , p_source_46_meaning    IN VARCHAR2
13927 --Invoice Supplier Identifier
13928  , p_source_47            IN NUMBER
13929 --Invoice Supplier Site Identifier
13930  , p_source_48            IN NUMBER
13931 --Third Party Type
13932  , p_source_49            IN VARCHAR2
13933 --Parent Reversal Identifier
13934  , p_source_50            IN NUMBER
13935 --Invoice Distribution Statistical Amount
13936  , p_source_51            IN NUMBER
13937 --Invoice Distribution Tax Line Identifier
13938  , p_source_52            IN NUMBER
13939 --Invoice Distribution Tax Distribution Identifier from Tax
13940  , p_source_53            IN NUMBER
13941 --Invoice Distribution Summary Tax Line Identifier
13942  , p_source_54            IN NUMBER
13943 --Payables Upgrade Credit Encumbrance Type Identifier
13944  , p_source_55            IN NUMBER
13945 --Payables Upgrade Debit Encumbrance Type Identifier
13946  , p_source_56            IN NUMBER
13947 --Invoice Distribution Amount
13948  , p_source_57            IN NUMBER
13949 )
13950 IS
13951 
13955 l_component_appl_id           INTEGER;
13952 l_component_type              VARCHAR2(80);
13953 l_component_code              VARCHAR2(30);
13954 l_component_type_code         VARCHAR2(1);
13956 l_amb_context_code            VARCHAR2(30);
13957 l_entity_code                 VARCHAR2(30);
13958 l_event_class_code            VARCHAR2(30);
13959 l_ae_header_id                NUMBER;
13960 l_event_type_code             VARCHAR2(30);
13961 l_line_definition_code        VARCHAR2(30);
13962 l_line_definition_owner_code  VARCHAR2(1);
13963 --
13964 -- adr variables
13965 l_segment                     VARCHAR2(30);
13966 l_ccid                        NUMBER;
13967 l_adr_transaction_coa_id      NUMBER;
13968 l_adr_accounting_coa_id       NUMBER;
13969 l_adr_flexfield_segment_code  VARCHAR2(30);
13970 l_adr_flex_value_set_id       NUMBER;
13971 l_adr_value_type_code         VARCHAR2(30);
13972 l_adr_value_combination_id    NUMBER;
13973 l_adr_value_segment_code      VARCHAR2(30);
13974 
13975 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13976 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13977 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13978 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13979 
13980 -- 4262811 Variables ------------------------------------------------------------------------------------------
13981 l_entered_amt_idx             NUMBER;
13982 l_accted_amt_idx              NUMBER;
13983 l_acc_rev_flag                VARCHAR2(1);
13984 l_accrual_line_num            NUMBER;
13985 l_tmp_amt                     NUMBER;
13986 l_acc_rev_natural_side_code   VARCHAR2(1);
13987 
13988 l_num_entries                 NUMBER;
13989 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13990 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13991 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13992 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13993 l_recog_line_1                NUMBER;
13994 l_recog_line_2                NUMBER;
13995 
13996 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13997 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13998 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13999 
14000 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14001 
14002 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14003 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14004 
14005 ---------------------------------------------------------------------------------------------------------------
14006 
14007 
14008 --
14009 -- bulk performance
14010 --
14011 l_balance_type_code           VARCHAR2(1);
14012 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14013 l_log_module                  VARCHAR2(240);
14014 
14015 --
14016 -- Upgrade strategy
14017 --
14018 l_actual_upg_option           VARCHAR2(1);
14019 l_enc_upg_option           VARCHAR2(1);
14020 
14021 --
14022 BEGIN
14023 --
14024 IF g_log_enabled THEN
14025       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
14026 END IF;
14027 --
14028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14029 
14030       trace
14031          (p_msg      => 'BEGIN of AcctLineType_30'
14032          ,p_level    => C_LEVEL_PROCEDURE
14033          ,p_module   => l_log_module);
14034 
14035 END IF;
14036 --
14037 l_component_type             := 'AMB_JLT';
14038 l_component_code             := 'AP_INVOICE_PREPAY_ENC_DR';
14039 l_component_type_code        := 'S';
14040 l_component_appl_id          :=  200;
14041 l_amb_context_code           := 'DEFAULT';
14042 l_entity_code                := 'AP_INVOICES';
14043 l_event_class_code           := 'INVOICES';
14044 l_event_type_code            := 'INVOICES_ALL';
14045 l_line_definition_owner_code := 'S';
14046 l_line_definition_code       := 'ENC_INVOICES_ALL';
14047 --
14048 l_balance_type_code          := 'E';
14049 l_segment                     := NULL;
14050 l_ccid                        := NULL;
14051 l_adr_transaction_coa_id      := NULL;
14052 l_adr_accounting_coa_id       := NULL;
14053 l_adr_flexfield_segment_code  := NULL;
14054 l_adr_flex_value_set_id       := NULL;
14055 l_adr_value_type_code         := NULL;
14056 l_adr_value_combination_id    := NULL;
14057 l_adr_value_segment_code      := NULL;
14058 
14059 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14060 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
14061 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14062 l_budgetary_control_flag     := 'Y';
14063 
14064 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14065 l_bflow_applied_to_amt       := NULL; -- 5132302
14066 l_entered_amt_idx            := NULL;          -- 4262811
14067 l_accted_amt_idx             := NULL;          -- 4262811
14068 l_acc_rev_flag               := NULL;          -- 4262811
14069 l_accrual_line_num           := NULL;          -- 4262811
14070 l_tmp_amt                    := NULL;          -- 4262811
14071 --
14072  
14073 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14074     l_balance_type_code <> 'B' THEN
14075 IF NVL(p_source_15,'
14076 ') =  'PREPAY' AND 
14077 NVL(
14081  , p_source_application_id =>  602
14078 xla_ae_sources_pkg.GetSystemSourceChar(
14079    p_source_code           => 'XLA_REFERENCE_CHAR_1'
14080  , p_source_type_code      => 'Y'
14082 ),'
14083 ') =  'FUNDS_CHECK'
14084  THEN 
14085 
14086    --
14087    XLA_AE_LINES_PKG.SetNewLine;
14088 
14089    p_balance_type_code          := l_balance_type_code;
14090    -- set the flag so later we will know whether the gain loss line needs to be created
14091    
14092    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14093      p_actual_flag :='A';
14094    END IF;
14095 
14096    --
14097    -- bulk performance
14098    --
14099    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14100                                       p_header_num   => 0); -- 4262811
14101    --
14102    -- set accounting line options
14103    --
14104    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14105            p_natural_side_code          => 'D'
14106          , p_gain_or_loss_flag          => 'N'
14107          , p_gl_transfer_mode_code      => 'S'
14108          , p_acct_entry_type_code       => 'E'
14109          , p_switch_side_flag           => 'Y'
14110          , p_merge_duplicate_code       => 'N'
14111          );
14112    --
14113    l_acc_rev_natural_side_code := 'C';  -- 4262811
14114    -- 
14115    --
14116    -- set accounting line type info
14117    --
14118    xla_ae_lines_pkg.SetAcctLineType
14119       (p_component_type             => l_component_type
14120       ,p_event_type_code            => l_event_type_code
14121       ,p_line_definition_owner_code => l_line_definition_owner_code
14122       ,p_line_definition_code       => l_line_definition_code
14123       ,p_accounting_line_code       => l_component_code
14124       ,p_accounting_line_type_code  => l_component_type_code
14125       ,p_accounting_line_appl_id    => l_component_appl_id
14126       ,p_amb_context_code           => l_amb_context_code
14127       ,p_entity_code                => l_entity_code
14128       ,p_event_class_code           => l_event_class_code);
14129    --
14130    -- set accounting class
14131    --
14132    xla_ae_lines_pkg.SetAcctClass(
14133            p_accounting_class_code  => 'RFE'
14134          , p_ae_header_id           => l_ae_header_id
14135          );
14136 
14137    --
14138    -- set rounding class
14139    --
14140    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14141                       'RFE';
14142 
14143    --
14144    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14145    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14146    --
14147    -- bulk performance
14148    --
14149    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14150 
14151    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14152       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14153 
14154    -- 4955764
14155    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14156       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14157 
14158    -- 4458381 Public Sector Enh
14159       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
14160    --
14161    -- set accounting attributes for the line type
14162    --
14163    l_entered_amt_idx := 24;
14164    l_accted_amt_idx  := 29;
14165    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
14166    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14167    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
14168    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14169    l_rec_acct_attrs.array_num_value(2)  := 
14170 xla_ae_sources_pkg.GetSystemSourceNum(
14171    p_source_code           => 'XLA_EVENT_APPL_ID'
14172  , p_source_type_code      => 'Y'
14173  , p_source_application_id =>  602
14174 );
14175    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14176    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
14177    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14178    l_rec_acct_attrs.array_char_value(4)  := 
14179 xla_ae_sources_pkg.GetSystemSourceChar(
14180    p_source_code           => 'XLA_ENTITY_CODE'
14181  , p_source_type_code      => 'Y'
14182  , p_source_application_id =>  602
14183 );
14184    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14185    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
14186    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14187    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
14188    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
14189    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
14190    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
14191    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
14192    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14193    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
14194    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
14195    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
14196    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
14197    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
14201    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
14198    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14199    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
14200    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
14202    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
14203    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
14204    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
14205    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
14206    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
14207    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
14208    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
14209    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
14210    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
14211    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
14212    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
14213    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
14214    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
14215    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
14216    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
14217    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
14218    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
14219    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
14220    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
14221    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
14222    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
14223    l_rec_acct_attrs.array_num_value(24)  := p_source_57;
14224    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
14225    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
14226    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
14227    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
14228    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
14229    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
14230    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
14231    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
14232    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
14233    l_rec_acct_attrs.array_num_value(29)  := p_source_8;
14234    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
14235    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
14236    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
14237    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
14238    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
14239    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
14240    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
14241    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
14242    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
14243    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
14244    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
14245    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
14246    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
14247    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
14248    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
14249    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
14250    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
14251    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
14252    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
14253    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
14254    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
14255    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
14256    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
14257    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
14258    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
14259    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
14260    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
14261    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
14262    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
14263    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
14264 
14265    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14266    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14267 
14268    ---------------------------------------------------------------------------------------------------------------
14269    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14270    ---------------------------------------------------------------------------------------------------------------
14271    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14272 
14273    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14274    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14275 
14276    IF xla_accounting_cache_pkg.GetValueChar
14277          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14278          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14279    AND l_bflow_method_code = 'PRIOR_ENTRY'
14283        )
14280 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14281    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14282          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14284    THEN
14285          xla_ae_lines_pkg.BflowUpgEntry
14286            (p_business_method_code    => l_bflow_method_code
14287            ,p_business_class_code     => l_bflow_class_code
14288            ,p_balance_type            => l_balance_type_code);
14289    ELSE
14290       NULL;
14291 -- No business flow processing for business flow method of NONE.
14292    END IF;
14293 
14294    --
14295    -- call analytical criteria
14296    --
14297    
14298    --
14299    -- call description
14300    --
14301    
14302 xla_ae_lines_pkg.SetLineDescription(
14303    p_ae_header_id => l_ae_header_id
14304   ,p_description  => Description_2 (
14305      p_application_id         => p_application_id
14306    , p_ae_header_id           => l_ae_header_id 
14307 , p_source_1 => p_source_1
14308    )
14309 );
14310 
14311 
14312    --
14313    -- call ADRs
14314    -- Bug 4922099
14315    --
14316    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14317         (NVL(l_actual_upg_option, 'N') = 'O') OR
14318         (NVL(l_enc_upg_option, 'N') = 'O')
14319       )
14320    THEN
14321    NULL;
14322    --
14323    --
14324    
14325   l_ccid := AcctDerRule_7(
14326            p_application_id           => p_application_id
14327          , p_ae_header_id             => l_ae_header_id 
14328 , p_source_11 => p_source_11
14329          , x_transaction_coa_id       => l_adr_transaction_coa_id
14330          , x_accounting_coa_id        => l_adr_accounting_coa_id
14331          , x_value_type_code          => l_adr_value_type_code
14332          , p_side                     => 'NA'
14333    );
14334 
14335    xla_ae_lines_pkg.set_ccid(
14336     p_code_combination_id          => l_ccid
14337   , p_value_type_code              => l_adr_value_type_code
14338   , p_transaction_coa_id           => l_adr_transaction_coa_id
14339   , p_accounting_coa_id            => l_adr_accounting_coa_id
14340   , p_adr_code                     => 'AP_INVOICE_DIST'
14341   , p_adr_type_code                => 'S'
14342   , p_component_type               => l_component_type
14343   , p_component_code               => l_component_code
14344   , p_component_type_code          => l_component_type_code
14345   , p_component_appl_id            => l_component_appl_id
14346   , p_amb_context_code             => l_amb_context_code
14347   , p_side                         => 'NA'
14348   );
14349 
14350 
14351    --
14352    --
14353    END IF;
14354    --
14355    -- Bug 4922099
14356    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14357           (NVL(l_enc_upg_option, 'N') = 'O')
14358         ) AND
14359         (l_bflow_method_code = 'PRIOR_ENTRY')
14360       )
14361    THEN
14362       IF
14363       --
14364       1 = 2
14365       --
14366       THEN
14367       xla_accounting_err_pkg.build_message
14368                                     (p_appli_s_name            => 'XLA'
14369                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14370                                     ,p_token_1                 => 'LINE_NUMBER'
14371                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14372                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14373                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14374                                                                              l_component_type
14375                                                                             ,l_component_code
14376                                                                             ,l_component_type_code
14377                                                                             ,l_component_appl_id
14378                                                                             ,l_amb_context_code
14379                                                                             ,l_entity_code
14380                                                                             ,l_event_class_code
14381                                                                            )
14382                                     ,p_token_3                 => 'OWNER'
14383                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14384                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14385                                                                           ,p_lookup_code    => l_component_type_code
14386                                                                          )
14387                                     ,p_token_4                 => 'PRODUCT_NAME'
14388                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14389                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14390                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14391                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14392                                     ,p_ae_header_id            =>  NULL
14393                                        );
14394 
14398                       ,p_level    => C_LEVEL_ERROR
14395         IF (C_LEVEL_ERROR>= g_log_level) THEN
14396                  trace
14397                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14399                       ,p_module   => l_log_module);
14400         END IF;
14401       END IF;
14402    END IF;
14403    --
14404    --
14405    ------------------------------------------------------------------------------------------------
14406    -- 4219869 Business Flow
14407    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14408    -- Prior Entry.  Currently, the following code is always generated.
14409    ------------------------------------------------------------------------------------------------
14410    XLA_AE_LINES_PKG.ValidateCurrentLine;
14411 
14412    ------------------------------------------------------------------------------------
14413    -- 4219869 Business Flow
14414    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14415    ------------------------------------------------------------------------------------
14416    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14417 
14418    ----------------------------------------------------------------------------------
14419    -- 4219869 Business Flow
14420    -- Update journal entry status -- Need to generate this within IF <condition>
14421    ----------------------------------------------------------------------------------
14422    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14423          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14424          ,p_balance_type_code => l_balance_type_code
14425          );
14426 
14427    -------------------------------------------------------------------------------------------
14428    -- 4262811 - Generate the Accrual Reversal lines
14429    -------------------------------------------------------------------------------------------
14430    BEGIN
14431       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14432                               (g_array_event(p_event_id).array_value_num('header_index'));
14433       IF l_acc_rev_flag IS NULL THEN
14434          l_acc_rev_flag := 'N';
14435       END IF;
14436    EXCEPTION
14437       WHEN OTHERS THEN
14438          l_acc_rev_flag := 'N';
14439    END;
14440    --
14441    IF (l_acc_rev_flag = 'Y') THEN
14442 
14443        -- 4645092  ------------------------------------------------------------------------------
14444        -- To allow MPA report to determine if it should generate report process
14445        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14446        ------------------------------------------------------------------------------------------
14447 
14448        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14449        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14450    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14451    -- call ADRs
14452    -- Bug 4922099
14453    --
14454    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14455         (NVL(l_actual_upg_option, 'N') = 'O') OR
14456         (NVL(l_enc_upg_option, 'N') = 'O')
14457       )
14458    THEN
14459    NULL;
14460    --
14461    --
14462    
14463   l_ccid := AcctDerRule_7(
14464            p_application_id           => p_application_id
14465          , p_ae_header_id             => l_ae_header_id 
14466 , p_source_11 => p_source_11
14467          , x_transaction_coa_id       => l_adr_transaction_coa_id
14468          , x_accounting_coa_id        => l_adr_accounting_coa_id
14469          , x_value_type_code          => l_adr_value_type_code
14470          , p_side                     => 'NA'
14471    );
14472 
14473    xla_ae_lines_pkg.set_ccid(
14474     p_code_combination_id          => l_ccid
14475   , p_value_type_code              => l_adr_value_type_code
14476   , p_transaction_coa_id           => l_adr_transaction_coa_id
14477   , p_accounting_coa_id            => l_adr_accounting_coa_id
14478   , p_adr_code                     => 'AP_INVOICE_DIST'
14479   , p_adr_type_code                => 'S'
14480   , p_component_type               => l_component_type
14481   , p_component_code               => l_component_code
14482   , p_component_type_code          => l_component_type_code
14483   , p_component_appl_id            => l_component_appl_id
14484   , p_amb_context_code             => l_amb_context_code
14485   , p_side                         => 'NA'
14486   );
14487 
14488 
14489    --
14490    --
14491    END IF;
14492 
14493        --
14494        -- Update the line information that should be overwritten
14495        --
14496        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14497                                          p_header_num   => 1);
14498        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14499 
14500        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14501 
14502        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14503           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14504        END IF;
14505 
14506       --
14507       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14508       --
14509       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14513           -- 4262811a Switch Sign
14510           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14511       ELSE
14512           ---------------------------------------------------------------------------------------------------
14514           ---------------------------------------------------------------------------------------------------
14515           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14516           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14517                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14518           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14519                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14520           -- 5132302
14521           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14522                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14523 
14524       END IF;
14525 
14526       -- 4955764
14527       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14528       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14529 
14530 
14531       XLA_AE_LINES_PKG.ValidateCurrentLine;
14532       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14533 
14534       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14535                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14536                ,p_balance_type_code => l_balance_type_code);
14537 
14538    END IF;
14539 
14540    -----------------------------------------------------------------------------------------
14541    -- 4262811 Multiperiod Accounting
14542    -----------------------------------------------------------------------------------------
14543      -- No MPA option is assigned.
14544 
14545 
14546 END IF;
14547 END IF;
14548 --
14549 
14550 --
14551 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14552    trace
14553       (p_msg      => 'END of AcctLineType_30'
14554       ,p_level    => C_LEVEL_PROCEDURE
14555       ,p_module   => l_log_module);
14556 END IF;
14557 --
14558 EXCEPTION
14559   WHEN xla_exceptions_pkg.application_exception THEN
14560       RAISE;
14561   WHEN OTHERS THEN
14562        xla_exceptions_pkg.raise_message
14563            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_30');
14564 END AcctLineType_30;
14565 --
14566 
14567 ---------------------------------------
14568 --
14569 -- PRIVATE FUNCTION
14570 --         AcctLineType_31
14571 --
14572 ---------------------------------------
14573 PROCEDURE AcctLineType_31 (
14574   p_application_id        IN NUMBER
14575  ,p_event_id              IN NUMBER
14576  ,p_calculate_acctd_flag  IN VARCHAR2
14577  ,p_calculate_g_l_flag    IN VARCHAR2
14578  ,p_actual_flag           IN OUT VARCHAR2
14579  ,p_balance_type_code     OUT VARCHAR2
14580  ,p_gain_or_loss_ref      OUT VARCHAR2
14581  
14582 --Invoice Distribution Type
14583  , p_source_15            IN VARCHAR2
14584  , p_source_15_meaning    IN VARCHAR2
14585 --Accrue on Receipt Option
14586  , p_source_18            IN VARCHAR2
14587  , p_source_18_meaning    IN VARCHAR2
14588 --Accounting Reversal Indicator
14589  , p_source_19            IN VARCHAR2
14590 --Distribution Link Type
14591  , p_source_21            IN VARCHAR2
14592 --Allocation to Main Distribution Identifier
14593  , p_source_23            IN NUMBER
14594 --Invoice Identifier
14595  , p_source_24            IN NUMBER
14596 --Invoice Distribution Identifier
14597  , p_source_30            IN NUMBER
14598 --Payables Encumbrance Upgrade Credit Account
14599  , p_source_31            IN NUMBER
14600 --Payables Encumbrance Upgrade Credit Amount
14601  , p_source_32            IN NUMBER
14602 --Invoice Currency Code
14603  , p_source_33            IN VARCHAR2
14604 --Payables Encumbrance Upgrade Credit Base Amount
14605  , p_source_34            IN NUMBER
14606 --Payables Encumbrance Upgrade Debit Account
14607  , p_source_35            IN NUMBER
14608 --Payables Encumbrance Upgrade Debit Amount
14609  , p_source_36            IN NUMBER
14610 --Payables Encumbrance Upgrade Debit Base Amount
14611  , p_source_37            IN NUMBER
14612 --Payables Encumbrance Upgrade Option
14613  , p_source_38            IN VARCHAR2
14614 --Deferred Accounting End Date
14615  , p_source_43            IN DATE
14616 --Deferred Accounting Option
14617  , p_source_44            IN VARCHAR2
14618 --Deferred Accounting Start Date
14619  , p_source_45            IN DATE
14620 --Override Accounted Amount Indicator
14621  , p_source_46            IN VARCHAR2
14622  , p_source_46_meaning    IN VARCHAR2
14623 --Third Party Type
14624  , p_source_49            IN VARCHAR2
14625 --Parent Reversal Identifier
14626  , p_source_50            IN NUMBER
14627 --Invoice Distribution Statistical Amount
14628  , p_source_51            IN NUMBER
14629 --Invoice Distribution Tax Line Identifier
14630  , p_source_52            IN NUMBER
14631 --Invoice Distribution Tax Distribution Identifier from Tax
14635 --Payables Upgrade Credit Encumbrance Type Identifier
14632  , p_source_53            IN NUMBER
14633 --Invoice Distribution Summary Tax Line Identifier
14634  , p_source_54            IN NUMBER
14636  , p_source_55            IN NUMBER
14637 --Payables Upgrade Debit Encumbrance Type Identifier
14638  , p_source_56            IN NUMBER
14639 --Invoice Distribution Amount
14640  , p_source_57            IN NUMBER
14641 --Purchase Order Distribution Identifier
14642  , p_source_58            IN NUMBER
14643 --Self-Assessed Tax Flag
14644  , p_source_59            IN VARCHAR2
14645  , p_source_59_meaning    IN VARCHAR2
14646 --Business Flow Purchasing Application Identifier
14647  , p_source_60            IN NUMBER
14648 --Business Flow Purchase Order Distribution Type
14649  , p_source_61            IN VARCHAR2
14650 --Business Flow Purchase Order Entity Code
14651  , p_source_62            IN VARCHAR2
14652 --Business Flow Purchase Order Distribution Identifier
14653  , p_source_63            IN NUMBER
14654 --Business Flow Purchasing Document Identifier
14655  , p_source_64            IN NUMBER
14656 --Invoice Distribution Encumbrance Amount
14657  , p_source_65            IN NUMBER
14658 --Invoice Distribution Encumbrance Ledger Amount
14659  , p_source_66            IN NUMBER
14660 )
14661 IS
14662 
14663 l_component_type              VARCHAR2(80);
14664 l_component_code              VARCHAR2(30);
14665 l_component_type_code         VARCHAR2(1);
14666 l_component_appl_id           INTEGER;
14667 l_amb_context_code            VARCHAR2(30);
14668 l_entity_code                 VARCHAR2(30);
14669 l_event_class_code            VARCHAR2(30);
14670 l_ae_header_id                NUMBER;
14671 l_event_type_code             VARCHAR2(30);
14672 l_line_definition_code        VARCHAR2(30);
14673 l_line_definition_owner_code  VARCHAR2(1);
14674 --
14675 -- adr variables
14676 l_segment                     VARCHAR2(30);
14677 l_ccid                        NUMBER;
14678 l_adr_transaction_coa_id      NUMBER;
14679 l_adr_accounting_coa_id       NUMBER;
14680 l_adr_flexfield_segment_code  VARCHAR2(30);
14681 l_adr_flex_value_set_id       NUMBER;
14682 l_adr_value_type_code         VARCHAR2(30);
14683 l_adr_value_combination_id    NUMBER;
14684 l_adr_value_segment_code      VARCHAR2(30);
14685 
14686 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14687 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14688 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14689 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14690 
14691 -- 4262811 Variables ------------------------------------------------------------------------------------------
14692 l_entered_amt_idx             NUMBER;
14693 l_accted_amt_idx              NUMBER;
14694 l_acc_rev_flag                VARCHAR2(1);
14695 l_accrual_line_num            NUMBER;
14696 l_tmp_amt                     NUMBER;
14697 l_acc_rev_natural_side_code   VARCHAR2(1);
14698 
14699 l_num_entries                 NUMBER;
14700 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14701 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14702 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14703 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14704 l_recog_line_1                NUMBER;
14705 l_recog_line_2                NUMBER;
14706 
14707 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14708 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14709 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14710 
14711 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14712 
14713 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14714 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14715 
14716 ---------------------------------------------------------------------------------------------------------------
14717 
14718 
14719 --
14720 -- bulk performance
14721 --
14722 l_balance_type_code           VARCHAR2(1);
14723 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14724 l_log_module                  VARCHAR2(240);
14725 
14726 --
14727 -- Upgrade strategy
14728 --
14729 l_actual_upg_option           VARCHAR2(1);
14730 l_enc_upg_option           VARCHAR2(1);
14731 
14732 --
14733 BEGIN
14734 --
14735 IF g_log_enabled THEN
14736       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
14737 END IF;
14738 --
14739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14740 
14741       trace
14742          (p_msg      => 'BEGIN of AcctLineType_31'
14743          ,p_level    => C_LEVEL_PROCEDURE
14744          ,p_module   => l_log_module);
14745 
14746 END IF;
14747 --
14748 l_component_type             := 'AMB_JLT';
14749 l_component_code             := 'AP_INV_NON_REC_TAX_PO_ENC';
14750 l_component_type_code        := 'S';
14751 l_component_appl_id          :=  200;
14752 l_amb_context_code           := 'DEFAULT';
14753 l_entity_code                := 'AP_INVOICES';
14754 l_event_class_code           := 'INVOICES';
14755 l_event_type_code            := 'INVOICES_ALL';
14756 l_line_definition_owner_code := 'S';
14757 l_line_definition_code       := 'ENC_INVOICES_ALL';
14758 --
14762 l_adr_transaction_coa_id      := NULL;
14759 l_balance_type_code          := 'E';
14760 l_segment                     := NULL;
14761 l_ccid                        := NULL;
14763 l_adr_accounting_coa_id       := NULL;
14764 l_adr_flexfield_segment_code  := NULL;
14765 l_adr_flex_value_set_id       := NULL;
14766 l_adr_value_type_code         := NULL;
14767 l_adr_value_combination_id    := NULL;
14768 l_adr_value_segment_code      := NULL;
14769 
14770 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
14771 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
14772 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
14773 l_budgetary_control_flag     := 'Y';
14774 
14775 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14776 l_bflow_applied_to_amt       := NULL; -- 5132302
14777 l_entered_amt_idx            := NULL;          -- 4262811
14778 l_accted_amt_idx             := NULL;          -- 4262811
14779 l_acc_rev_flag               := NULL;          -- 4262811
14780 l_accrual_line_num           := NULL;          -- 4262811
14781 l_tmp_amt                    := NULL;          -- 4262811
14782 --
14783  
14784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14785     l_balance_type_code <> 'B' THEN
14786 IF p_source_58 IS NOT NULL AND 
14787 NVL(p_source_15,'
14788 ') =  'NONREC_TAX' AND 
14789 NVL(p_source_59,'
14790 ') <>  'Y' AND 
14791 NVL(p_source_18,'
14792 ') <>  'Y'
14793  THEN 
14794 
14795    --
14796    XLA_AE_LINES_PKG.SetNewLine;
14797 
14798    p_balance_type_code          := l_balance_type_code;
14799    -- set the flag so later we will know whether the gain loss line needs to be created
14800    
14801    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14802      p_actual_flag :='A';
14803    END IF;
14804 
14805    --
14806    -- bulk performance
14807    --
14808    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14809                                       p_header_num   => 0); -- 4262811
14810    --
14811    -- set accounting line options
14812    --
14813    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14814            p_natural_side_code          => 'C'
14815          , p_gain_or_loss_flag          => 'N'
14816          , p_gl_transfer_mode_code      => 'S'
14817          , p_acct_entry_type_code       => 'E'
14818          , p_switch_side_flag           => 'Y'
14819          , p_merge_duplicate_code       => 'N'
14820          );
14821    --
14822    l_acc_rev_natural_side_code := 'D';  -- 4262811
14823    -- 
14824    --
14825    -- set accounting line type info
14826    --
14827    xla_ae_lines_pkg.SetAcctLineType
14828       (p_component_type             => l_component_type
14829       ,p_event_type_code            => l_event_type_code
14830       ,p_line_definition_owner_code => l_line_definition_owner_code
14831       ,p_line_definition_code       => l_line_definition_code
14832       ,p_accounting_line_code       => l_component_code
14833       ,p_accounting_line_type_code  => l_component_type_code
14834       ,p_accounting_line_appl_id    => l_component_appl_id
14835       ,p_amb_context_code           => l_amb_context_code
14836       ,p_entity_code                => l_entity_code
14837       ,p_event_class_code           => l_event_class_code);
14838    --
14839    -- set accounting class
14840    --
14841    xla_ae_lines_pkg.SetAcctClass(
14842            p_accounting_class_code  => 'PURCHASE_ORDER'
14843          , p_ae_header_id           => l_ae_header_id
14844          );
14845 
14846    --
14847    -- set rounding class
14848    --
14849    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14850                       'PURCHASE_ORDER';
14851 
14852    --
14853    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14854    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14855    --
14856    -- bulk performance
14857    --
14858    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14859 
14860    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14861       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14862 
14863    -- 4955764
14864    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14865       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14866 
14867    -- 4458381 Public Sector Enh
14868    
14869    --
14870    -- set accounting attributes for the line type
14871    --
14872    l_entered_amt_idx := 24;
14873    l_accted_amt_idx  := 26;
14874    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
14875    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14876    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
14877    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14878    l_rec_acct_attrs.array_num_value(2)  := 
14879 xla_ae_sources_pkg.GetSystemSourceNum(
14880    p_source_code           => 'XLA_EVENT_APPL_ID'
14881  , p_source_type_code      => 'Y'
14882  , p_source_application_id =>  602
14883 );
14884    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14888 xla_ae_sources_pkg.GetSystemSourceChar(
14885    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
14886    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14887    l_rec_acct_attrs.array_char_value(4)  := 
14889    p_source_code           => 'XLA_ENTITY_CODE'
14890  , p_source_type_code      => 'Y'
14891  , p_source_application_id =>  602
14892 );
14893    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14894    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
14895    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14896    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
14897    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
14898    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
14899    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
14900    l_rec_acct_attrs.array_num_value(8)  := p_source_60;
14901    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14902    l_rec_acct_attrs.array_char_value(9)  := p_source_61;
14903    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
14904    l_rec_acct_attrs.array_char_value(10)  := p_source_62;
14905    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
14906    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_63);
14907    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14908    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
14909    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
14910    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
14911    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
14912    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
14913    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
14914    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
14915    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
14916    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
14917    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
14918    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
14919    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
14920    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
14921    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
14922    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
14923    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
14924    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
14925    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
14926    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
14927    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
14928    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
14929    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
14930    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
14931    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
14932    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
14933    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
14934    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
14935    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
14936    l_rec_acct_attrs.array_num_value(26)  := p_source_66;
14937    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
14938    l_rec_acct_attrs.array_date_value(27)  := p_source_43;
14939    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
14940    l_rec_acct_attrs.array_char_value(28)  := p_source_44;
14941    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
14942    l_rec_acct_attrs.array_date_value(29)  := p_source_45;
14943    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
14944    l_rec_acct_attrs.array_char_value(30)  := p_source_46;
14945    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
14946    l_rec_acct_attrs.array_char_value(31)  := p_source_49;
14947    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
14948    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_50);
14949    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
14950    l_rec_acct_attrs.array_char_value(33)  := p_source_21;
14951    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
14952    l_rec_acct_attrs.array_num_value(34)  := p_source_51;
14953    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
14954    l_rec_acct_attrs.array_num_value(35)  := p_source_52;
14955    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
14956    l_rec_acct_attrs.array_num_value(36)  := p_source_53;
14957    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
14958    l_rec_acct_attrs.array_num_value(37)  := p_source_54;
14959    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
14960    l_rec_acct_attrs.array_num_value(38)  := p_source_55;
14961    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
14962    l_rec_acct_attrs.array_num_value(39)  := p_source_56;
14963 
14964    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14965    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14966 
14967    ---------------------------------------------------------------------------------------------------------------
14968    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14972    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14969    ---------------------------------------------------------------------------------------------------------------
14970    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14971 
14973    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14974 
14975    IF xla_accounting_cache_pkg.GetValueChar
14976          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14977          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14978    AND l_bflow_method_code = 'PRIOR_ENTRY'
14979 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14980    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14981          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14982        )
14983    THEN
14984          xla_ae_lines_pkg.BflowUpgEntry
14985            (p_business_method_code    => l_bflow_method_code
14986            ,p_business_class_code     => l_bflow_class_code
14987            ,p_balance_type            => l_balance_type_code);
14988    ELSE
14989       NULL;
14990 XLA_AE_LINES_PKG.business_flow_validation(
14991                                 p_business_method_code     => l_bflow_method_code
14992                                ,p_business_class_code      => l_bflow_class_code
14993                                ,p_inherit_description_flag => l_inherit_desc_flag);
14994    END IF;
14995 
14996    --
14997    -- call analytical criteria
14998    --
14999    -- Inherited Analytical Criteria for business flow method of Prior Entry.
15000    --
15001    -- call description
15002    --
15003    -- No description or it is inherited.
15004    --
15005    -- call ADRs
15006    -- Bug 4922099
15007    --
15008    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15009         (NVL(l_actual_upg_option, 'N') = 'O') OR
15010         (NVL(l_enc_upg_option, 'N') = 'O')
15011       )
15012    THEN
15013    NULL;
15014    --
15015    --
15016    
15017    --
15018    --
15019    END IF;
15020    --
15021    -- Bug 4922099
15022    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15023           (NVL(l_enc_upg_option, 'N') = 'O')
15024         ) AND
15025         (l_bflow_method_code = 'PRIOR_ENTRY')
15026       )
15027    THEN
15028       IF
15029       --
15030       1 = 1
15031       --
15032       THEN
15033       xla_accounting_err_pkg.build_message
15034                                     (p_appli_s_name            => 'XLA'
15035                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15036                                     ,p_token_1                 => 'LINE_NUMBER'
15037                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15038                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15039                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15040                                                                              l_component_type
15041                                                                             ,l_component_code
15042                                                                             ,l_component_type_code
15043                                                                             ,l_component_appl_id
15044                                                                             ,l_amb_context_code
15045                                                                             ,l_entity_code
15046                                                                             ,l_event_class_code
15047                                                                            )
15048                                     ,p_token_3                 => 'OWNER'
15049                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15050                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15051                                                                           ,p_lookup_code    => l_component_type_code
15052                                                                          )
15053                                     ,p_token_4                 => 'PRODUCT_NAME'
15054                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15055                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15056                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15057                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15058                                     ,p_ae_header_id            =>  NULL
15059                                        );
15060 
15061         IF (C_LEVEL_ERROR>= g_log_level) THEN
15062                  trace
15063                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15064                       ,p_level    => C_LEVEL_ERROR
15065                       ,p_module   => l_log_module);
15066         END IF;
15067       END IF;
15068    END IF;
15069    --
15070    --
15071    ------------------------------------------------------------------------------------------------
15072    -- 4219869 Business Flow
15076    -- No ValidateCurrentLine for business flow method of Prior Entry
15073    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15074    -- Prior Entry.  Currently, the following code is always generated.
15075    ------------------------------------------------------------------------------------------------
15077 
15078    ------------------------------------------------------------------------------------
15079    -- 4219869 Business Flow
15080    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15081    ------------------------------------------------------------------------------------
15082    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15083 
15084    ----------------------------------------------------------------------------------
15085    -- 4219869 Business Flow
15086    -- Update journal entry status -- Need to generate this within IF <condition>
15087    ----------------------------------------------------------------------------------
15088    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15089          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15090          ,p_balance_type_code => l_balance_type_code
15091          );
15092 
15093    -------------------------------------------------------------------------------------------
15094    -- 4262811 - Generate the Accrual Reversal lines
15095    -------------------------------------------------------------------------------------------
15096    BEGIN
15097       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15098                               (g_array_event(p_event_id).array_value_num('header_index'));
15099       IF l_acc_rev_flag IS NULL THEN
15100          l_acc_rev_flag := 'N';
15101       END IF;
15102    EXCEPTION
15103       WHEN OTHERS THEN
15104          l_acc_rev_flag := 'N';
15105    END;
15106    --
15107    IF (l_acc_rev_flag = 'Y') THEN
15108 
15109        -- 4645092  ------------------------------------------------------------------------------
15110        -- To allow MPA report to determine if it should generate report process
15111        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15112        ------------------------------------------------------------------------------------------
15113 
15114        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15115        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15116    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15117    -- call ADRs
15118    -- Bug 4922099
15119    --
15120    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15121         (NVL(l_actual_upg_option, 'N') = 'O') OR
15122         (NVL(l_enc_upg_option, 'N') = 'O')
15123       )
15124    THEN
15125    NULL;
15126    --
15127    --
15128    
15129    --
15130    --
15131    END IF;
15132 
15133        --
15134        -- Update the line information that should be overwritten
15135        --
15136        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15137                                          p_header_num   => 1);
15138        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15139 
15140        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15141 
15142        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15143           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15144        END IF;
15145 
15146       --
15147       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15148       --
15149       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15150           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15151       ELSE
15152           ---------------------------------------------------------------------------------------------------
15153           -- 4262811a Switch Sign
15154           ---------------------------------------------------------------------------------------------------
15155           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15156           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15157                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15158           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15159                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15160           -- 5132302
15161           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15162                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15163 
15164       END IF;
15165 
15166       -- 4955764
15167       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15168       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15169 
15170 
15171       XLA_AE_LINES_PKG.ValidateCurrentLine;
15172       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15173 
15174       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15175                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15179 
15176                ,p_balance_type_code => l_balance_type_code);
15177 
15178    END IF;
15180    -----------------------------------------------------------------------------------------
15181    -- 4262811 Multiperiod Accounting
15182    -----------------------------------------------------------------------------------------
15183      -- No MPA option is assigned.
15184 
15185 
15186 END IF;
15187 END IF;
15188 --
15189 
15190 --
15191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15192    trace
15193       (p_msg      => 'END of AcctLineType_31'
15194       ,p_level    => C_LEVEL_PROCEDURE
15195       ,p_module   => l_log_module);
15196 END IF;
15197 --
15198 EXCEPTION
15199   WHEN xla_exceptions_pkg.application_exception THEN
15200       RAISE;
15201   WHEN OTHERS THEN
15202        xla_exceptions_pkg.raise_message
15203            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_31');
15204 END AcctLineType_31;
15205 --
15206 
15207 ---------------------------------------
15208 --
15209 -- PRIVATE FUNCTION
15210 --         AcctLineType_32
15211 --
15212 ---------------------------------------
15213 PROCEDURE AcctLineType_32 (
15214   p_application_id        IN NUMBER
15215  ,p_event_id              IN NUMBER
15216  ,p_calculate_acctd_flag  IN VARCHAR2
15217  ,p_calculate_g_l_flag    IN VARCHAR2
15218  ,p_actual_flag           IN OUT VARCHAR2
15219  ,p_balance_type_code     OUT VARCHAR2
15220  ,p_gain_or_loss_ref      OUT VARCHAR2
15221  
15222 --Invoice Distribution Type
15223  , p_source_15            IN VARCHAR2
15224  , p_source_15_meaning    IN VARCHAR2
15225 --Accrue on Receipt Option
15226  , p_source_18            IN VARCHAR2
15227  , p_source_18_meaning    IN VARCHAR2
15228 --Accounting Reversal Indicator
15229  , p_source_19            IN VARCHAR2
15230 --Distribution Link Type
15231  , p_source_21            IN VARCHAR2
15232 --Allocation to Main Distribution Identifier
15233  , p_source_23            IN NUMBER
15234 --Invoice Identifier
15235  , p_source_24            IN NUMBER
15236 --Invoice Distribution Identifier
15237  , p_source_30            IN NUMBER
15238 --Payables Encumbrance Upgrade Credit Account
15239  , p_source_31            IN NUMBER
15240 --Payables Encumbrance Upgrade Credit Amount
15241  , p_source_32            IN NUMBER
15242 --Invoice Currency Code
15243  , p_source_33            IN VARCHAR2
15244 --Payables Encumbrance Upgrade Credit Base Amount
15245  , p_source_34            IN NUMBER
15246 --Payables Encumbrance Upgrade Debit Account
15247  , p_source_35            IN NUMBER
15248 --Payables Encumbrance Upgrade Debit Amount
15249  , p_source_36            IN NUMBER
15250 --Payables Encumbrance Upgrade Debit Base Amount
15251  , p_source_37            IN NUMBER
15252 --Payables Encumbrance Upgrade Option
15253  , p_source_38            IN VARCHAR2
15254 --Deferred Accounting End Date
15255  , p_source_43            IN DATE
15256 --Deferred Accounting Option
15257  , p_source_44            IN VARCHAR2
15258 --Deferred Accounting Start Date
15259  , p_source_45            IN DATE
15260 --Override Accounted Amount Indicator
15261  , p_source_46            IN VARCHAR2
15262  , p_source_46_meaning    IN VARCHAR2
15263 --Third Party Type
15264  , p_source_49            IN VARCHAR2
15265 --Parent Reversal Identifier
15266  , p_source_50            IN NUMBER
15267 --Invoice Distribution Statistical Amount
15268  , p_source_51            IN NUMBER
15269 --Invoice Distribution Tax Line Identifier
15270  , p_source_52            IN NUMBER
15271 --Invoice Distribution Tax Distribution Identifier from Tax
15272  , p_source_53            IN NUMBER
15273 --Invoice Distribution Summary Tax Line Identifier
15274  , p_source_54            IN NUMBER
15275 --Payables Upgrade Credit Encumbrance Type Identifier
15276  , p_source_55            IN NUMBER
15277 --Payables Upgrade Debit Encumbrance Type Identifier
15278  , p_source_56            IN NUMBER
15279 --Invoice Distribution Amount
15280  , p_source_57            IN NUMBER
15281 --Purchase Order Distribution Identifier
15282  , p_source_58            IN NUMBER
15283 --Business Flow Purchasing Application Identifier
15284  , p_source_60            IN NUMBER
15285 --Business Flow Purchase Order Distribution Type
15286  , p_source_61            IN VARCHAR2
15287 --Business Flow Purchase Order Entity Code
15288  , p_source_62            IN VARCHAR2
15289 --Business Flow Purchase Order Distribution Identifier
15290  , p_source_63            IN NUMBER
15291 --Business Flow Purchasing Document Identifier
15292  , p_source_64            IN NUMBER
15293 --Invoice Distribution Encumbrance Amount
15294  , p_source_65            IN NUMBER
15295 --Invoice Distribution Encumbrance Ledger Amount
15296  , p_source_66            IN NUMBER
15297 )
15298 IS
15299 
15300 l_component_type              VARCHAR2(80);
15301 l_component_code              VARCHAR2(30);
15302 l_component_type_code         VARCHAR2(1);
15303 l_component_appl_id           INTEGER;
15304 l_amb_context_code            VARCHAR2(30);
15305 l_entity_code                 VARCHAR2(30);
15306 l_event_class_code            VARCHAR2(30);
15307 l_ae_header_id                NUMBER;
15308 l_event_type_code             VARCHAR2(30);
15309 l_line_definition_code        VARCHAR2(30);
15310 l_line_definition_owner_code  VARCHAR2(1);
15311 --
15312 -- adr variables
15316 l_adr_accounting_coa_id       NUMBER;
15313 l_segment                     VARCHAR2(30);
15314 l_ccid                        NUMBER;
15315 l_adr_transaction_coa_id      NUMBER;
15317 l_adr_flexfield_segment_code  VARCHAR2(30);
15318 l_adr_flex_value_set_id       NUMBER;
15319 l_adr_value_type_code         VARCHAR2(30);
15320 l_adr_value_combination_id    NUMBER;
15321 l_adr_value_segment_code      VARCHAR2(30);
15322 
15323 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15324 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15325 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15326 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15327 
15328 -- 4262811 Variables ------------------------------------------------------------------------------------------
15329 l_entered_amt_idx             NUMBER;
15330 l_accted_amt_idx              NUMBER;
15331 l_acc_rev_flag                VARCHAR2(1);
15332 l_accrual_line_num            NUMBER;
15333 l_tmp_amt                     NUMBER;
15334 l_acc_rev_natural_side_code   VARCHAR2(1);
15335 
15336 l_num_entries                 NUMBER;
15337 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15338 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15339 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15340 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15341 l_recog_line_1                NUMBER;
15342 l_recog_line_2                NUMBER;
15343 
15344 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15345 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15346 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15347 
15348 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15349 
15350 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15351 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15352 
15353 ---------------------------------------------------------------------------------------------------------------
15354 
15355 
15356 --
15357 -- bulk performance
15358 --
15359 l_balance_type_code           VARCHAR2(1);
15360 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15361 l_log_module                  VARCHAR2(240);
15362 
15363 --
15364 -- Upgrade strategy
15365 --
15366 l_actual_upg_option           VARCHAR2(1);
15367 l_enc_upg_option           VARCHAR2(1);
15368 
15369 --
15370 BEGIN
15371 --
15372 IF g_log_enabled THEN
15373       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
15374 END IF;
15375 --
15376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15377 
15378       trace
15379          (p_msg      => 'BEGIN of AcctLineType_32'
15380          ,p_level    => C_LEVEL_PROCEDURE
15381          ,p_module   => l_log_module);
15382 
15383 END IF;
15384 --
15385 l_component_type             := 'AMB_JLT';
15386 l_component_code             := 'AP_INV_PO_ENC';
15387 l_component_type_code        := 'S';
15388 l_component_appl_id          :=  200;
15389 l_amb_context_code           := 'DEFAULT';
15390 l_entity_code                := 'AP_INVOICES';
15391 l_event_class_code           := 'INVOICES';
15392 l_event_type_code            := 'INVOICES_ALL';
15393 l_line_definition_owner_code := 'S';
15394 l_line_definition_code       := 'ENC_INVOICES_ALL';
15395 --
15396 l_balance_type_code          := 'E';
15397 l_segment                     := NULL;
15398 l_ccid                        := NULL;
15399 l_adr_transaction_coa_id      := NULL;
15400 l_adr_accounting_coa_id       := NULL;
15401 l_adr_flexfield_segment_code  := NULL;
15402 l_adr_flex_value_set_id       := NULL;
15403 l_adr_value_type_code         := NULL;
15404 l_adr_value_combination_id    := NULL;
15405 l_adr_value_segment_code      := NULL;
15406 
15407 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
15408 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
15409 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
15410 l_budgetary_control_flag     := 'Y';
15411 
15412 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15413 l_bflow_applied_to_amt       := NULL; -- 5132302
15414 l_entered_amt_idx            := NULL;          -- 4262811
15415 l_accted_amt_idx             := NULL;          -- 4262811
15416 l_acc_rev_flag               := NULL;          -- 4262811
15417 l_accrual_line_num           := NULL;          -- 4262811
15418 l_tmp_amt                    := NULL;          -- 4262811
15419 --
15420  
15421 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15422     l_balance_type_code <> 'B' THEN
15423 IF p_source_58 IS NOT NULL AND 
15424 (NVL(p_source_15,'
15425 ') =  'ACCRUAL' OR 
15426 NVL(p_source_15,'
15427 ') =  'ITEM') AND 
15428 NVL(p_source_18,'
15429 ') <>  'Y'
15430  THEN 
15431 
15432    --
15433    XLA_AE_LINES_PKG.SetNewLine;
15434 
15435    p_balance_type_code          := l_balance_type_code;
15436    -- set the flag so later we will know whether the gain loss line needs to be created
15437    
15438    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15439      p_actual_flag :='A';
15440    END IF;
15441 
15442    --
15443    -- bulk performance
15447    --
15444    --
15445    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15446                                       p_header_num   => 0); -- 4262811
15448    -- set accounting line options
15449    --
15450    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15451            p_natural_side_code          => 'C'
15452          , p_gain_or_loss_flag          => 'N'
15453          , p_gl_transfer_mode_code      => 'S'
15454          , p_acct_entry_type_code       => 'E'
15455          , p_switch_side_flag           => 'Y'
15456          , p_merge_duplicate_code       => 'N'
15457          );
15458    --
15459    l_acc_rev_natural_side_code := 'D';  -- 4262811
15460    -- 
15461    --
15462    -- set accounting line type info
15463    --
15464    xla_ae_lines_pkg.SetAcctLineType
15465       (p_component_type             => l_component_type
15466       ,p_event_type_code            => l_event_type_code
15467       ,p_line_definition_owner_code => l_line_definition_owner_code
15468       ,p_line_definition_code       => l_line_definition_code
15469       ,p_accounting_line_code       => l_component_code
15470       ,p_accounting_line_type_code  => l_component_type_code
15471       ,p_accounting_line_appl_id    => l_component_appl_id
15472       ,p_amb_context_code           => l_amb_context_code
15473       ,p_entity_code                => l_entity_code
15474       ,p_event_class_code           => l_event_class_code);
15475    --
15476    -- set accounting class
15477    --
15478    xla_ae_lines_pkg.SetAcctClass(
15479            p_accounting_class_code  => 'PURCHASE_ORDER'
15480          , p_ae_header_id           => l_ae_header_id
15481          );
15482 
15483    --
15484    -- set rounding class
15485    --
15486    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15487                       'PURCHASE_ORDER';
15488 
15489    --
15490    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15491    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15492    --
15493    -- bulk performance
15494    --
15495    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15496 
15497    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15498       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15499 
15500    -- 4955764
15501    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15502       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15503 
15504    -- 4458381 Public Sector Enh
15505    
15506    --
15507    -- set accounting attributes for the line type
15508    --
15509    l_entered_amt_idx := 24;
15510    l_accted_amt_idx  := 26;
15511    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
15512    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15513    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
15514    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15515    l_rec_acct_attrs.array_num_value(2)  := 
15516 xla_ae_sources_pkg.GetSystemSourceNum(
15517    p_source_code           => 'XLA_EVENT_APPL_ID'
15518  , p_source_type_code      => 'Y'
15519  , p_source_application_id =>  602
15520 );
15521    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15522    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
15523    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15524    l_rec_acct_attrs.array_char_value(4)  := 
15525 xla_ae_sources_pkg.GetSystemSourceChar(
15526    p_source_code           => 'XLA_ENTITY_CODE'
15527  , p_source_type_code      => 'Y'
15528  , p_source_application_id =>  602
15529 );
15530    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15531    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
15532    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15533    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
15534    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
15535    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
15536    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15537    l_rec_acct_attrs.array_num_value(8)  := p_source_60;
15538    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15539    l_rec_acct_attrs.array_char_value(9)  := p_source_61;
15540    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15541    l_rec_acct_attrs.array_char_value(10)  := p_source_62;
15542    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15543    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_63);
15544    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15545    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
15546    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
15547    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
15548    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
15549    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
15550    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15551    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
15552    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15556    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15553    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
15554    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15555    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
15557    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
15558    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
15559    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
15560    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
15561    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
15562    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
15563    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
15564    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
15565    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
15566    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
15567    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
15568    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
15569    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
15570    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
15571    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
15572    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
15573    l_rec_acct_attrs.array_num_value(26)  := p_source_66;
15574    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
15575    l_rec_acct_attrs.array_date_value(27)  := p_source_43;
15576    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
15577    l_rec_acct_attrs.array_char_value(28)  := p_source_44;
15578    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
15579    l_rec_acct_attrs.array_date_value(29)  := p_source_45;
15580    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
15581    l_rec_acct_attrs.array_char_value(30)  := p_source_46;
15582    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
15583    l_rec_acct_attrs.array_char_value(31)  := p_source_49;
15584    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
15585    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_50);
15586    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15587    l_rec_acct_attrs.array_char_value(33)  := p_source_21;
15588    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
15589    l_rec_acct_attrs.array_num_value(34)  := p_source_51;
15590    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15591    l_rec_acct_attrs.array_num_value(35)  := p_source_52;
15592    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15593    l_rec_acct_attrs.array_num_value(36)  := p_source_53;
15594    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15595    l_rec_acct_attrs.array_num_value(37)  := p_source_54;
15596    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15597    l_rec_acct_attrs.array_num_value(38)  := p_source_55;
15598    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15599    l_rec_acct_attrs.array_num_value(39)  := p_source_56;
15600 
15601    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15602    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15603 
15604    ---------------------------------------------------------------------------------------------------------------
15605    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15606    ---------------------------------------------------------------------------------------------------------------
15607    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15608 
15609    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15610    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15611 
15612    IF xla_accounting_cache_pkg.GetValueChar
15613          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15614          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15615    AND l_bflow_method_code = 'PRIOR_ENTRY'
15616 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15617    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15618          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15619        )
15620    THEN
15621          xla_ae_lines_pkg.BflowUpgEntry
15622            (p_business_method_code    => l_bflow_method_code
15623            ,p_business_class_code     => l_bflow_class_code
15624            ,p_balance_type            => l_balance_type_code);
15625    ELSE
15626       NULL;
15627 XLA_AE_LINES_PKG.business_flow_validation(
15628                                 p_business_method_code     => l_bflow_method_code
15629                                ,p_business_class_code      => l_bflow_class_code
15630                                ,p_inherit_description_flag => l_inherit_desc_flag);
15631    END IF;
15632 
15633    --
15634    -- call analytical criteria
15635    --
15636    -- Inherited Analytical Criteria for business flow method of Prior Entry.
15637    --
15638    -- call description
15639    --
15640    -- No description or it is inherited.
15641    --
15642    -- call ADRs
15643    -- Bug 4922099
15644    --
15645    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15649    THEN
15646         (NVL(l_actual_upg_option, 'N') = 'O') OR
15647         (NVL(l_enc_upg_option, 'N') = 'O')
15648       )
15650    NULL;
15651    --
15652    --
15653    
15654    --
15655    --
15656    END IF;
15657    --
15658    -- Bug 4922099
15659    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15660           (NVL(l_enc_upg_option, 'N') = 'O')
15661         ) AND
15662         (l_bflow_method_code = 'PRIOR_ENTRY')
15663       )
15664    THEN
15665       IF
15666       --
15667       1 = 1
15668       --
15669       THEN
15670       xla_accounting_err_pkg.build_message
15671                                     (p_appli_s_name            => 'XLA'
15672                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15673                                     ,p_token_1                 => 'LINE_NUMBER'
15674                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15675                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15676                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15677                                                                              l_component_type
15678                                                                             ,l_component_code
15679                                                                             ,l_component_type_code
15680                                                                             ,l_component_appl_id
15681                                                                             ,l_amb_context_code
15682                                                                             ,l_entity_code
15683                                                                             ,l_event_class_code
15684                                                                            )
15685                                     ,p_token_3                 => 'OWNER'
15686                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15687                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15688                                                                           ,p_lookup_code    => l_component_type_code
15689                                                                          )
15690                                     ,p_token_4                 => 'PRODUCT_NAME'
15691                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15692                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15693                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15694                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15695                                     ,p_ae_header_id            =>  NULL
15696                                        );
15697 
15698         IF (C_LEVEL_ERROR>= g_log_level) THEN
15699                  trace
15700                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15701                       ,p_level    => C_LEVEL_ERROR
15702                       ,p_module   => l_log_module);
15703         END IF;
15704       END IF;
15705    END IF;
15706    --
15707    --
15708    ------------------------------------------------------------------------------------------------
15709    -- 4219869 Business Flow
15710    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15711    -- Prior Entry.  Currently, the following code is always generated.
15712    ------------------------------------------------------------------------------------------------
15713    -- No ValidateCurrentLine for business flow method of Prior Entry
15714 
15715    ------------------------------------------------------------------------------------
15716    -- 4219869 Business Flow
15717    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15718    ------------------------------------------------------------------------------------
15719    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15720 
15721    ----------------------------------------------------------------------------------
15722    -- 4219869 Business Flow
15723    -- Update journal entry status -- Need to generate this within IF <condition>
15724    ----------------------------------------------------------------------------------
15725    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15726          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15727          ,p_balance_type_code => l_balance_type_code
15728          );
15729 
15730    -------------------------------------------------------------------------------------------
15731    -- 4262811 - Generate the Accrual Reversal lines
15732    -------------------------------------------------------------------------------------------
15733    BEGIN
15734       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15735                               (g_array_event(p_event_id).array_value_num('header_index'));
15736       IF l_acc_rev_flag IS NULL THEN
15737          l_acc_rev_flag := 'N';
15738       END IF;
15739    EXCEPTION
15740       WHEN OTHERS THEN
15741          l_acc_rev_flag := 'N';
15742    END;
15743    --
15744    IF (l_acc_rev_flag = 'Y') THEN
15745 
15746        -- 4645092  ------------------------------------------------------------------------------
15747        -- To allow MPA report to determine if it should generate report process
15751        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15748        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15749        ------------------------------------------------------------------------------------------
15750 
15752        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15753    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15754    -- call ADRs
15755    -- Bug 4922099
15756    --
15757    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15758         (NVL(l_actual_upg_option, 'N') = 'O') OR
15759         (NVL(l_enc_upg_option, 'N') = 'O')
15760       )
15761    THEN
15762    NULL;
15763    --
15764    --
15765    
15766    --
15767    --
15768    END IF;
15769 
15770        --
15771        -- Update the line information that should be overwritten
15772        --
15773        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15774                                          p_header_num   => 1);
15775        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15776 
15777        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15778 
15779        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15780           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15781        END IF;
15782 
15783       --
15784       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15785       --
15786       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15787           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15788       ELSE
15789           ---------------------------------------------------------------------------------------------------
15790           -- 4262811a Switch Sign
15791           ---------------------------------------------------------------------------------------------------
15792           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15793           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15794                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15795           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15796                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15797           -- 5132302
15798           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15799                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15800 
15801       END IF;
15802 
15803       -- 4955764
15804       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15805       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15806 
15807 
15808       XLA_AE_LINES_PKG.ValidateCurrentLine;
15809       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15810 
15811       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15812                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15813                ,p_balance_type_code => l_balance_type_code);
15814 
15815    END IF;
15816 
15817    -----------------------------------------------------------------------------------------
15818    -- 4262811 Multiperiod Accounting
15819    -----------------------------------------------------------------------------------------
15820      -- No MPA option is assigned.
15821 
15822 
15823 END IF;
15824 END IF;
15825 --
15826 
15827 --
15828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15829    trace
15830       (p_msg      => 'END of AcctLineType_32'
15831       ,p_level    => C_LEVEL_PROCEDURE
15832       ,p_module   => l_log_module);
15833 END IF;
15834 --
15835 EXCEPTION
15836   WHEN xla_exceptions_pkg.application_exception THEN
15837       RAISE;
15838   WHEN OTHERS THEN
15839        xla_exceptions_pkg.raise_message
15840            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_32');
15841 END AcctLineType_32;
15842 --
15843 
15844 ---------------------------------------
15845 --
15846 -- PRIVATE FUNCTION
15847 --         AcctLineType_33
15848 --
15849 ---------------------------------------
15850 PROCEDURE AcctLineType_33 (
15851   p_application_id        IN NUMBER
15852  ,p_event_id              IN NUMBER
15853  ,p_calculate_acctd_flag  IN VARCHAR2
15854  ,p_calculate_g_l_flag    IN VARCHAR2
15855  ,p_actual_flag           IN OUT VARCHAR2
15856  ,p_balance_type_code     OUT VARCHAR2
15857  ,p_gain_or_loss_ref      OUT VARCHAR2
15858  
15859 --Invoice Distribution Description
15860  , p_source_1            IN VARCHAR2
15861 --Invoice Distribution Account
15862  , p_source_11            IN NUMBER
15863 --Invoice Distribution Type
15864  , p_source_15            IN VARCHAR2
15865  , p_source_15_meaning    IN VARCHAR2
15866 --Purchasing Encumbrance Option
15867  , p_source_17            IN VARCHAR2
15868  , p_source_17_meaning    IN VARCHAR2
15869 --Accounting Reversal Indicator
15870  , p_source_19            IN VARCHAR2
15871 --Distribution Link Type
15872  , p_source_21            IN VARCHAR2
15876  , p_source_24            IN NUMBER
15873 --Allocation to Main Distribution Identifier
15874  , p_source_23            IN NUMBER
15875 --Invoice Identifier
15877 --Business Flow Accounts Payable Application Identifier
15878  , p_source_25            IN NUMBER
15879 --Business Flow Invoice Distribution Type
15880  , p_source_26            IN VARCHAR2
15881 --Business Flow Invoice Entity Code
15882  , p_source_27            IN VARCHAR2
15883 --Business Flow Invoice Distribution Identifier
15884  , p_source_28            IN NUMBER
15885 --Business Flow Invoice Identifier
15886  , p_source_29            IN NUMBER
15887 --Invoice Distribution Identifier
15888  , p_source_30            IN NUMBER
15889 --Payables Encumbrance Upgrade Credit Account
15890  , p_source_31            IN NUMBER
15891 --Payables Encumbrance Upgrade Credit Amount
15892  , p_source_32            IN NUMBER
15893 --Invoice Currency Code
15894  , p_source_33            IN VARCHAR2
15895 --Payables Encumbrance Upgrade Credit Base Amount
15896  , p_source_34            IN NUMBER
15897 --Payables Encumbrance Upgrade Debit Account
15898  , p_source_35            IN NUMBER
15899 --Payables Encumbrance Upgrade Debit Amount
15900  , p_source_36            IN NUMBER
15901 --Payables Encumbrance Upgrade Debit Base Amount
15902  , p_source_37            IN NUMBER
15903 --Payables Encumbrance Upgrade Option
15904  , p_source_38            IN VARCHAR2
15905 --Invoice Exchange Date
15906  , p_source_39            IN DATE
15907 --Invoice Exchange Rate
15908  , p_source_40            IN NUMBER
15909 --Invoice Exchange Rate Type
15910  , p_source_41            IN VARCHAR2
15911 --Deferred Accounting End Date
15912  , p_source_43            IN DATE
15913 --Deferred Accounting Option
15914  , p_source_44            IN VARCHAR2
15915 --Deferred Accounting Start Date
15916  , p_source_45            IN DATE
15917 --Override Accounted Amount Indicator
15918  , p_source_46            IN VARCHAR2
15919  , p_source_46_meaning    IN VARCHAR2
15920 --Invoice Supplier Identifier
15921  , p_source_47            IN NUMBER
15922 --Invoice Supplier Site Identifier
15923  , p_source_48            IN NUMBER
15924 --Third Party Type
15925  , p_source_49            IN VARCHAR2
15926 --Parent Reversal Identifier
15927  , p_source_50            IN NUMBER
15928 --Invoice Distribution Statistical Amount
15929  , p_source_51            IN NUMBER
15930 --Invoice Distribution Tax Line Identifier
15931  , p_source_52            IN NUMBER
15932 --Invoice Distribution Tax Distribution Identifier from Tax
15933  , p_source_53            IN NUMBER
15934 --Invoice Distribution Summary Tax Line Identifier
15935  , p_source_54            IN NUMBER
15936 --Payables Upgrade Credit Encumbrance Type Identifier
15937  , p_source_55            IN NUMBER
15938 --Payables Upgrade Debit Encumbrance Type Identifier
15939  , p_source_56            IN NUMBER
15940 --Invoice Distribution Encumbrance Amount
15941  , p_source_65            IN NUMBER
15942 --Invoice Distribution Encumbrance Ledger Amount
15943  , p_source_66            IN NUMBER
15944 )
15945 IS
15946 
15947 l_component_type              VARCHAR2(80);
15948 l_component_code              VARCHAR2(30);
15949 l_component_type_code         VARCHAR2(1);
15950 l_component_appl_id           INTEGER;
15951 l_amb_context_code            VARCHAR2(30);
15952 l_entity_code                 VARCHAR2(30);
15953 l_event_class_code            VARCHAR2(30);
15954 l_ae_header_id                NUMBER;
15955 l_event_type_code             VARCHAR2(30);
15956 l_line_definition_code        VARCHAR2(30);
15957 l_line_definition_owner_code  VARCHAR2(1);
15958 --
15959 -- adr variables
15960 l_segment                     VARCHAR2(30);
15961 l_ccid                        NUMBER;
15962 l_adr_transaction_coa_id      NUMBER;
15963 l_adr_accounting_coa_id       NUMBER;
15964 l_adr_flexfield_segment_code  VARCHAR2(30);
15965 l_adr_flex_value_set_id       NUMBER;
15966 l_adr_value_type_code         VARCHAR2(30);
15967 l_adr_value_combination_id    NUMBER;
15968 l_adr_value_segment_code      VARCHAR2(30);
15969 
15970 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15971 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15972 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15973 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15974 
15975 -- 4262811 Variables ------------------------------------------------------------------------------------------
15976 l_entered_amt_idx             NUMBER;
15977 l_accted_amt_idx              NUMBER;
15978 l_acc_rev_flag                VARCHAR2(1);
15979 l_accrual_line_num            NUMBER;
15980 l_tmp_amt                     NUMBER;
15981 l_acc_rev_natural_side_code   VARCHAR2(1);
15982 
15983 l_num_entries                 NUMBER;
15984 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15985 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15986 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15987 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15988 l_recog_line_1                NUMBER;
15989 l_recog_line_2                NUMBER;
15990 
15991 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15992 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15996 
15993 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15994 
15995 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15997 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15998 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15999 
16000 ---------------------------------------------------------------------------------------------------------------
16001 
16002 
16003 --
16004 -- bulk performance
16005 --
16006 l_balance_type_code           VARCHAR2(1);
16007 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16008 l_log_module                  VARCHAR2(240);
16009 
16010 --
16011 -- Upgrade strategy
16012 --
16013 l_actual_upg_option           VARCHAR2(1);
16014 l_enc_upg_option           VARCHAR2(1);
16015 
16016 --
16017 BEGIN
16018 --
16019 IF g_log_enabled THEN
16020       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
16021 END IF;
16022 --
16023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16024 
16025       trace
16026          (p_msg      => 'BEGIN of AcctLineType_33'
16027          ,p_level    => C_LEVEL_PROCEDURE
16028          ,p_module   => l_log_module);
16029 
16030 END IF;
16031 --
16032 l_component_type             := 'AMB_JLT';
16033 l_component_code             := 'AP_INV_PRICE_VAR_CM_ENC_DR';
16034 l_component_type_code        := 'S';
16035 l_component_appl_id          :=  200;
16036 l_amb_context_code           := 'DEFAULT';
16037 l_entity_code                := 'AP_INVOICES';
16038 l_event_class_code           := 'CREDIT MEMOS';
16039 l_event_type_code            := 'CREDIT MEMOS_ALL';
16040 l_line_definition_owner_code := 'S';
16041 l_line_definition_code       := 'ENC_CM_ALL';
16042 --
16043 l_balance_type_code          := 'E';
16044 l_segment                     := NULL;
16045 l_ccid                        := NULL;
16046 l_adr_transaction_coa_id      := NULL;
16047 l_adr_accounting_coa_id       := NULL;
16048 l_adr_flexfield_segment_code  := NULL;
16049 l_adr_flex_value_set_id       := NULL;
16050 l_adr_value_type_code         := NULL;
16051 l_adr_value_combination_id    := NULL;
16052 l_adr_value_segment_code      := NULL;
16053 
16054 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16055 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
16056 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16057 l_budgetary_control_flag     := 'Y';
16058 
16059 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16060 l_bflow_applied_to_amt       := NULL; -- 5132302
16061 l_entered_amt_idx            := NULL;          -- 4262811
16062 l_accted_amt_idx             := NULL;          -- 4262811
16063 l_acc_rev_flag               := NULL;          -- 4262811
16064 l_accrual_line_num           := NULL;          -- 4262811
16065 l_tmp_amt                    := NULL;          -- 4262811
16066 --
16067  
16068 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16069     l_balance_type_code <> 'B' THEN
16070 IF NVL(p_source_15,'
16071 ') =  'IPV' AND 
16072 NVL(p_source_17,'
16073 ') =  'Y'
16074  THEN 
16075 
16076    --
16077    XLA_AE_LINES_PKG.SetNewLine;
16078 
16079    p_balance_type_code          := l_balance_type_code;
16080    -- set the flag so later we will know whether the gain loss line needs to be created
16081    
16082    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16083      p_actual_flag :='A';
16084    END IF;
16085 
16086    --
16087    -- bulk performance
16088    --
16089    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16090                                       p_header_num   => 0); -- 4262811
16091    --
16092    -- set accounting line options
16093    --
16094    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16095            p_natural_side_code          => 'D'
16096          , p_gain_or_loss_flag          => 'N'
16097          , p_gl_transfer_mode_code      => 'S'
16098          , p_acct_entry_type_code       => 'E'
16099          , p_switch_side_flag           => 'Y'
16100          , p_merge_duplicate_code       => 'N'
16101          );
16102    --
16103    l_acc_rev_natural_side_code := 'C';  -- 4262811
16104    -- 
16105    --
16106    -- set accounting line type info
16107    --
16108    xla_ae_lines_pkg.SetAcctLineType
16109       (p_component_type             => l_component_type
16110       ,p_event_type_code            => l_event_type_code
16111       ,p_line_definition_owner_code => l_line_definition_owner_code
16112       ,p_line_definition_code       => l_line_definition_code
16113       ,p_accounting_line_code       => l_component_code
16114       ,p_accounting_line_type_code  => l_component_type_code
16115       ,p_accounting_line_appl_id    => l_component_appl_id
16116       ,p_amb_context_code           => l_amb_context_code
16117       ,p_entity_code                => l_entity_code
16118       ,p_event_class_code           => l_event_class_code);
16119    --
16120    -- set accounting class
16121    --
16122    xla_ae_lines_pkg.SetAcctClass(
16123            p_accounting_class_code  => 'IPV'
16124          , p_ae_header_id           => l_ae_header_id
16125          );
16126 
16127    --
16128    -- set rounding class
16129    --
16133    --
16130    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16131                       'IPV';
16132 
16134    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16135    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16136    --
16137    -- bulk performance
16138    --
16139    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16140 
16141    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16142       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16143 
16144    -- 4955764
16145    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16146       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16147 
16148    -- 4458381 Public Sector Enh
16149       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
16150    --
16151    -- set accounting attributes for the line type
16152    --
16153    l_entered_amt_idx := 23;
16154    l_accted_amt_idx  := 28;
16155    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
16156    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16157    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
16158    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16159    l_rec_acct_attrs.array_num_value(2)  := 
16160 xla_ae_sources_pkg.GetSystemSourceNum(
16161    p_source_code           => 'XLA_EVENT_APPL_ID'
16162  , p_source_type_code      => 'Y'
16163  , p_source_application_id =>  602
16164 );
16165    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16166    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
16167    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16168    l_rec_acct_attrs.array_char_value(4)  := 
16169 xla_ae_sources_pkg.GetSystemSourceChar(
16170    p_source_code           => 'XLA_ENTITY_CODE'
16171  , p_source_type_code      => 'Y'
16172  , p_source_application_id =>  602
16173 );
16174    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16175    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
16176    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16177    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
16178    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16179    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
16180    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16181    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
16182    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16183    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
16184    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16185    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
16186    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16187    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
16188    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16189    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
16190    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16191    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
16192    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16193    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
16194    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16195    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
16196    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16197    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
16198    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16199    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
16200    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16201    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
16202    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16203    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
16204    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16205    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
16206    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16207    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
16208    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16209    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
16210    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16211    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
16212    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16213    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
16214    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
16215    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
16216    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
16217    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
16218    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
16219    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
16220    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
16221    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
16225    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
16222    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
16223    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
16224    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
16226    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
16227    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
16228    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
16229    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
16230    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
16231    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
16232    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
16233    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
16234    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
16235    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
16236    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
16237    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
16238    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
16239    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
16240    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
16241    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
16242    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
16243    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
16244    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
16245    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
16246    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
16247    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
16248    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
16249    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
16250    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
16251    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
16252 
16253    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16254    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16255 
16256    ---------------------------------------------------------------------------------------------------------------
16257    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16258    ---------------------------------------------------------------------------------------------------------------
16259    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16260 
16261    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16262    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16263 
16264    IF xla_accounting_cache_pkg.GetValueChar
16265          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16266          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16267    AND l_bflow_method_code = 'PRIOR_ENTRY'
16268 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16269    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16270          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16271        )
16272    THEN
16273          xla_ae_lines_pkg.BflowUpgEntry
16274            (p_business_method_code    => l_bflow_method_code
16275            ,p_business_class_code     => l_bflow_class_code
16276            ,p_balance_type            => l_balance_type_code);
16277    ELSE
16278       NULL;
16279 -- No business flow processing for business flow method of NONE.
16280    END IF;
16281 
16282    --
16283    -- call analytical criteria
16284    --
16285    
16286    --
16287    -- call description
16288    --
16289    
16290 xla_ae_lines_pkg.SetLineDescription(
16291    p_ae_header_id => l_ae_header_id
16292   ,p_description  => Description_2 (
16293      p_application_id         => p_application_id
16294    , p_ae_header_id           => l_ae_header_id 
16295 , p_source_1 => p_source_1
16296    )
16297 );
16298 
16299 
16300    --
16301    -- call ADRs
16302    -- Bug 4922099
16303    --
16304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16305         (NVL(l_actual_upg_option, 'N') = 'O') OR
16306         (NVL(l_enc_upg_option, 'N') = 'O')
16307       )
16308    THEN
16309    NULL;
16310    --
16311    --
16312    
16313   l_ccid := AcctDerRule_7(
16314            p_application_id           => p_application_id
16315          , p_ae_header_id             => l_ae_header_id 
16316 , p_source_11 => p_source_11
16317          , x_transaction_coa_id       => l_adr_transaction_coa_id
16318          , x_accounting_coa_id        => l_adr_accounting_coa_id
16319          , x_value_type_code          => l_adr_value_type_code
16320          , p_side                     => 'NA'
16321    );
16322 
16323    xla_ae_lines_pkg.set_ccid(
16324     p_code_combination_id          => l_ccid
16325   , p_value_type_code              => l_adr_value_type_code
16326   , p_transaction_coa_id           => l_adr_transaction_coa_id
16327   , p_accounting_coa_id            => l_adr_accounting_coa_id
16328   , p_adr_code                     => 'AP_INVOICE_DIST'
16329   , p_adr_type_code                => 'S'
16330   , p_component_type               => l_component_type
16334   , p_amb_context_code             => l_amb_context_code
16331   , p_component_code               => l_component_code
16332   , p_component_type_code          => l_component_type_code
16333   , p_component_appl_id            => l_component_appl_id
16335   , p_side                         => 'NA'
16336   );
16337 
16338 
16339    --
16340    --
16341    END IF;
16342    --
16343    -- Bug 4922099
16344    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16345           (NVL(l_enc_upg_option, 'N') = 'O')
16346         ) AND
16347         (l_bflow_method_code = 'PRIOR_ENTRY')
16348       )
16349    THEN
16350       IF
16351       --
16352       1 = 2
16353       --
16354       THEN
16355       xla_accounting_err_pkg.build_message
16356                                     (p_appli_s_name            => 'XLA'
16357                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16358                                     ,p_token_1                 => 'LINE_NUMBER'
16359                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16360                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16361                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16362                                                                              l_component_type
16363                                                                             ,l_component_code
16364                                                                             ,l_component_type_code
16365                                                                             ,l_component_appl_id
16366                                                                             ,l_amb_context_code
16367                                                                             ,l_entity_code
16368                                                                             ,l_event_class_code
16369                                                                            )
16370                                     ,p_token_3                 => 'OWNER'
16371                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16372                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16373                                                                           ,p_lookup_code    => l_component_type_code
16374                                                                          )
16375                                     ,p_token_4                 => 'PRODUCT_NAME'
16376                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16377                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16378                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16379                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16380                                     ,p_ae_header_id            =>  NULL
16381                                        );
16382 
16383         IF (C_LEVEL_ERROR>= g_log_level) THEN
16384                  trace
16385                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16386                       ,p_level    => C_LEVEL_ERROR
16387                       ,p_module   => l_log_module);
16388         END IF;
16389       END IF;
16390    END IF;
16391    --
16392    --
16393    ------------------------------------------------------------------------------------------------
16394    -- 4219869 Business Flow
16395    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16396    -- Prior Entry.  Currently, the following code is always generated.
16397    ------------------------------------------------------------------------------------------------
16398    XLA_AE_LINES_PKG.ValidateCurrentLine;
16399 
16400    ------------------------------------------------------------------------------------
16401    -- 4219869 Business Flow
16402    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16403    ------------------------------------------------------------------------------------
16404    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16405 
16406    ----------------------------------------------------------------------------------
16407    -- 4219869 Business Flow
16408    -- Update journal entry status -- Need to generate this within IF <condition>
16409    ----------------------------------------------------------------------------------
16410    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16411          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16412          ,p_balance_type_code => l_balance_type_code
16413          );
16414 
16415    -------------------------------------------------------------------------------------------
16416    -- 4262811 - Generate the Accrual Reversal lines
16417    -------------------------------------------------------------------------------------------
16418    BEGIN
16419       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16420                               (g_array_event(p_event_id).array_value_num('header_index'));
16421       IF l_acc_rev_flag IS NULL THEN
16422          l_acc_rev_flag := 'N';
16423       END IF;
16424    EXCEPTION
16425       WHEN OTHERS THEN
16426          l_acc_rev_flag := 'N';
16427    END;
16428    --
16432        -- To allow MPA report to determine if it should generate report process
16429    IF (l_acc_rev_flag = 'Y') THEN
16430 
16431        -- 4645092  ------------------------------------------------------------------------------
16433        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16434        ------------------------------------------------------------------------------------------
16435 
16436        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16437        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16438    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16439    -- call ADRs
16440    -- Bug 4922099
16441    --
16442    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16443         (NVL(l_actual_upg_option, 'N') = 'O') OR
16444         (NVL(l_enc_upg_option, 'N') = 'O')
16445       )
16446    THEN
16447    NULL;
16448    --
16449    --
16450    
16451   l_ccid := AcctDerRule_7(
16452            p_application_id           => p_application_id
16453          , p_ae_header_id             => l_ae_header_id 
16454 , p_source_11 => p_source_11
16455          , x_transaction_coa_id       => l_adr_transaction_coa_id
16456          , x_accounting_coa_id        => l_adr_accounting_coa_id
16457          , x_value_type_code          => l_adr_value_type_code
16458          , p_side                     => 'NA'
16459    );
16460 
16461    xla_ae_lines_pkg.set_ccid(
16462     p_code_combination_id          => l_ccid
16463   , p_value_type_code              => l_adr_value_type_code
16464   , p_transaction_coa_id           => l_adr_transaction_coa_id
16465   , p_accounting_coa_id            => l_adr_accounting_coa_id
16466   , p_adr_code                     => 'AP_INVOICE_DIST'
16467   , p_adr_type_code                => 'S'
16468   , p_component_type               => l_component_type
16469   , p_component_code               => l_component_code
16470   , p_component_type_code          => l_component_type_code
16471   , p_component_appl_id            => l_component_appl_id
16472   , p_amb_context_code             => l_amb_context_code
16473   , p_side                         => 'NA'
16474   );
16475 
16476 
16477    --
16478    --
16479    END IF;
16480 
16481        --
16482        -- Update the line information that should be overwritten
16483        --
16484        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16485                                          p_header_num   => 1);
16486        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16487 
16488        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16489 
16490        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16491           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16492        END IF;
16493 
16494       --
16495       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16496       --
16497       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16498           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16499       ELSE
16500           ---------------------------------------------------------------------------------------------------
16501           -- 4262811a Switch Sign
16502           ---------------------------------------------------------------------------------------------------
16503           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16504           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16505                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16506           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16507                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16508           -- 5132302
16509           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16510                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16511 
16512       END IF;
16513 
16514       -- 4955764
16515       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16516       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16517 
16518 
16519       XLA_AE_LINES_PKG.ValidateCurrentLine;
16520       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16521 
16522       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16523                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16524                ,p_balance_type_code => l_balance_type_code);
16525 
16526    END IF;
16527 
16528    -----------------------------------------------------------------------------------------
16529    -- 4262811 Multiperiod Accounting
16530    -----------------------------------------------------------------------------------------
16531      -- No MPA option is assigned.
16532 
16533 
16534 END IF;
16535 END IF;
16536 --
16537 
16538 --
16539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16540    trace
16541       (p_msg      => 'END of AcctLineType_33'
16542       ,p_level    => C_LEVEL_PROCEDURE
16543       ,p_module   => l_log_module);
16544 END IF;
16545 --
16546 EXCEPTION
16547   WHEN xla_exceptions_pkg.application_exception THEN
16548       RAISE;
16549   WHEN OTHERS THEN
16550        xla_exceptions_pkg.raise_message
16554 
16551            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_33');
16552 END AcctLineType_33;
16553 --
16555 ---------------------------------------
16556 --
16557 -- PRIVATE FUNCTION
16558 --         AcctLineType_34
16559 --
16560 ---------------------------------------
16561 PROCEDURE AcctLineType_34 (
16562   p_application_id        IN NUMBER
16563  ,p_event_id              IN NUMBER
16564  ,p_calculate_acctd_flag  IN VARCHAR2
16565  ,p_calculate_g_l_flag    IN VARCHAR2
16566  ,p_actual_flag           IN OUT VARCHAR2
16567  ,p_balance_type_code     OUT VARCHAR2
16568  ,p_gain_or_loss_ref      OUT VARCHAR2
16569  
16570 --Invoice Distribution Description
16571  , p_source_1            IN VARCHAR2
16572 --Invoice Distribution Account
16573  , p_source_11            IN NUMBER
16574 --Invoice Distribution Type
16575  , p_source_15            IN VARCHAR2
16576  , p_source_15_meaning    IN VARCHAR2
16577 --Purchasing Encumbrance Option
16578  , p_source_17            IN VARCHAR2
16579  , p_source_17_meaning    IN VARCHAR2
16580 --Accounting Reversal Indicator
16581  , p_source_19            IN VARCHAR2
16582 --Distribution Link Type
16583  , p_source_21            IN VARCHAR2
16584 --Allocation to Main Distribution Identifier
16585  , p_source_23            IN NUMBER
16586 --Invoice Identifier
16587  , p_source_24            IN NUMBER
16588 --Business Flow Accounts Payable Application Identifier
16589  , p_source_25            IN NUMBER
16590 --Business Flow Invoice Distribution Type
16591  , p_source_26            IN VARCHAR2
16592 --Business Flow Invoice Entity Code
16593  , p_source_27            IN VARCHAR2
16594 --Business Flow Invoice Distribution Identifier
16595  , p_source_28            IN NUMBER
16596 --Business Flow Invoice Identifier
16597  , p_source_29            IN NUMBER
16598 --Invoice Distribution Identifier
16599  , p_source_30            IN NUMBER
16600 --Payables Encumbrance Upgrade Credit Account
16601  , p_source_31            IN NUMBER
16602 --Payables Encumbrance Upgrade Credit Amount
16603  , p_source_32            IN NUMBER
16604 --Invoice Currency Code
16605  , p_source_33            IN VARCHAR2
16606 --Payables Encumbrance Upgrade Credit Base Amount
16607  , p_source_34            IN NUMBER
16608 --Payables Encumbrance Upgrade Debit Account
16609  , p_source_35            IN NUMBER
16610 --Payables Encumbrance Upgrade Debit Amount
16611  , p_source_36            IN NUMBER
16612 --Payables Encumbrance Upgrade Debit Base Amount
16613  , p_source_37            IN NUMBER
16614 --Payables Encumbrance Upgrade Option
16615  , p_source_38            IN VARCHAR2
16616 --Invoice Exchange Date
16617  , p_source_39            IN DATE
16618 --Invoice Exchange Rate
16619  , p_source_40            IN NUMBER
16620 --Invoice Exchange Rate Type
16621  , p_source_41            IN VARCHAR2
16622 --Deferred Accounting End Date
16623  , p_source_43            IN DATE
16624 --Deferred Accounting Option
16625  , p_source_44            IN VARCHAR2
16626 --Deferred Accounting Start Date
16627  , p_source_45            IN DATE
16628 --Override Accounted Amount Indicator
16629  , p_source_46            IN VARCHAR2
16630  , p_source_46_meaning    IN VARCHAR2
16631 --Invoice Supplier Identifier
16632  , p_source_47            IN NUMBER
16633 --Invoice Supplier Site Identifier
16634  , p_source_48            IN NUMBER
16635 --Third Party Type
16636  , p_source_49            IN VARCHAR2
16637 --Parent Reversal Identifier
16638  , p_source_50            IN NUMBER
16639 --Invoice Distribution Tax Line Identifier
16640  , p_source_52            IN NUMBER
16641 --Invoice Distribution Tax Distribution Identifier from Tax
16642  , p_source_53            IN NUMBER
16643 --Invoice Distribution Summary Tax Line Identifier
16644  , p_source_54            IN NUMBER
16645 --Payables Upgrade Credit Encumbrance Type Identifier
16646  , p_source_55            IN NUMBER
16647 --Payables Upgrade Debit Encumbrance Type Identifier
16648  , p_source_56            IN NUMBER
16649 --Invoice Distribution Encumbrance Amount
16650  , p_source_65            IN NUMBER
16651 --Invoice Distribution Encumbrance Ledger Amount
16652  , p_source_66            IN NUMBER
16653 )
16654 IS
16655 
16656 l_component_type              VARCHAR2(80);
16657 l_component_code              VARCHAR2(30);
16658 l_component_type_code         VARCHAR2(1);
16659 l_component_appl_id           INTEGER;
16660 l_amb_context_code            VARCHAR2(30);
16661 l_entity_code                 VARCHAR2(30);
16662 l_event_class_code            VARCHAR2(30);
16663 l_ae_header_id                NUMBER;
16664 l_event_type_code             VARCHAR2(30);
16665 l_line_definition_code        VARCHAR2(30);
16666 l_line_definition_owner_code  VARCHAR2(1);
16667 --
16668 -- adr variables
16669 l_segment                     VARCHAR2(30);
16670 l_ccid                        NUMBER;
16671 l_adr_transaction_coa_id      NUMBER;
16672 l_adr_accounting_coa_id       NUMBER;
16673 l_adr_flexfield_segment_code  VARCHAR2(30);
16674 l_adr_flex_value_set_id       NUMBER;
16675 l_adr_value_type_code         VARCHAR2(30);
16676 l_adr_value_combination_id    NUMBER;
16677 l_adr_value_segment_code      VARCHAR2(30);
16678 
16679 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16680 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16681 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16682 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16683 
16687 l_acc_rev_flag                VARCHAR2(1);
16684 -- 4262811 Variables ------------------------------------------------------------------------------------------
16685 l_entered_amt_idx             NUMBER;
16686 l_accted_amt_idx              NUMBER;
16688 l_accrual_line_num            NUMBER;
16689 l_tmp_amt                     NUMBER;
16690 l_acc_rev_natural_side_code   VARCHAR2(1);
16691 
16692 l_num_entries                 NUMBER;
16693 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16694 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16695 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16696 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16697 l_recog_line_1                NUMBER;
16698 l_recog_line_2                NUMBER;
16699 
16700 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16701 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16702 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16703 
16704 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16705 
16706 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16707 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16708 
16709 ---------------------------------------------------------------------------------------------------------------
16710 
16711 
16712 --
16713 -- bulk performance
16714 --
16715 l_balance_type_code           VARCHAR2(1);
16716 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16717 l_log_module                  VARCHAR2(240);
16718 
16719 --
16720 -- Upgrade strategy
16721 --
16722 l_actual_upg_option           VARCHAR2(1);
16723 l_enc_upg_option           VARCHAR2(1);
16724 
16725 --
16726 BEGIN
16727 --
16728 IF g_log_enabled THEN
16729       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
16730 END IF;
16731 --
16732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16733 
16734       trace
16735          (p_msg      => 'BEGIN of AcctLineType_34'
16736          ,p_level    => C_LEVEL_PROCEDURE
16737          ,p_module   => l_log_module);
16738 
16739 END IF;
16740 --
16741 l_component_type             := 'AMB_JLT';
16742 l_component_code             := 'AP_INV_PRICE_VAR_DM_ENC_DR';
16743 l_component_type_code        := 'S';
16744 l_component_appl_id          :=  200;
16745 l_amb_context_code           := 'DEFAULT';
16746 l_entity_code                := 'AP_INVOICES';
16747 l_event_class_code           := 'DEBIT MEMOS';
16748 l_event_type_code            := 'DEBIT MEMOS_ALL';
16749 l_line_definition_owner_code := 'S';
16750 l_line_definition_code       := 'ENC_DM_ALL';
16751 --
16752 l_balance_type_code          := 'E';
16753 l_segment                     := NULL;
16754 l_ccid                        := NULL;
16755 l_adr_transaction_coa_id      := NULL;
16756 l_adr_accounting_coa_id       := NULL;
16757 l_adr_flexfield_segment_code  := NULL;
16758 l_adr_flex_value_set_id       := NULL;
16759 l_adr_value_type_code         := NULL;
16760 l_adr_value_combination_id    := NULL;
16761 l_adr_value_segment_code      := NULL;
16762 
16763 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16764 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
16765 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16766 l_budgetary_control_flag     := 'Y';
16767 
16768 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16769 l_bflow_applied_to_amt       := NULL; -- 5132302
16770 l_entered_amt_idx            := NULL;          -- 4262811
16771 l_accted_amt_idx             := NULL;          -- 4262811
16772 l_acc_rev_flag               := NULL;          -- 4262811
16773 l_accrual_line_num           := NULL;          -- 4262811
16774 l_tmp_amt                    := NULL;          -- 4262811
16775 --
16776  
16777 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16778     l_balance_type_code <> 'B' THEN
16779 IF NVL(p_source_15,'
16780 ') =  'IPV' AND 
16781 NVL(p_source_17,'
16782 ') =  'Y'
16783  THEN 
16784 
16785    --
16786    XLA_AE_LINES_PKG.SetNewLine;
16787 
16788    p_balance_type_code          := l_balance_type_code;
16789    -- set the flag so later we will know whether the gain loss line needs to be created
16790    
16791    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16792      p_actual_flag :='A';
16793    END IF;
16794 
16795    --
16796    -- bulk performance
16797    --
16798    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16799                                       p_header_num   => 0); -- 4262811
16800    --
16801    -- set accounting line options
16802    --
16803    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16804            p_natural_side_code          => 'D'
16805          , p_gain_or_loss_flag          => 'N'
16806          , p_gl_transfer_mode_code      => 'S'
16807          , p_acct_entry_type_code       => 'E'
16808          , p_switch_side_flag           => 'Y'
16809          , p_merge_duplicate_code       => 'N'
16810          );
16811    --
16812    l_acc_rev_natural_side_code := 'C';  -- 4262811
16813    -- 
16814    --
16815    -- set accounting line type info
16816    --
16820       ,p_line_definition_owner_code => l_line_definition_owner_code
16817    xla_ae_lines_pkg.SetAcctLineType
16818       (p_component_type             => l_component_type
16819       ,p_event_type_code            => l_event_type_code
16821       ,p_line_definition_code       => l_line_definition_code
16822       ,p_accounting_line_code       => l_component_code
16823       ,p_accounting_line_type_code  => l_component_type_code
16824       ,p_accounting_line_appl_id    => l_component_appl_id
16825       ,p_amb_context_code           => l_amb_context_code
16826       ,p_entity_code                => l_entity_code
16827       ,p_event_class_code           => l_event_class_code);
16828    --
16829    -- set accounting class
16830    --
16831    xla_ae_lines_pkg.SetAcctClass(
16832            p_accounting_class_code  => 'IPV'
16833          , p_ae_header_id           => l_ae_header_id
16834          );
16835 
16836    --
16837    -- set rounding class
16838    --
16839    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16840                       'IPV';
16841 
16842    --
16843    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16844    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16845    --
16846    -- bulk performance
16847    --
16848    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16849 
16850    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16851       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16852 
16853    -- 4955764
16854    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16855       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16856 
16857    -- 4458381 Public Sector Enh
16858       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
16859    --
16860    -- set accounting attributes for the line type
16861    --
16862    l_entered_amt_idx := 23;
16863    l_accted_amt_idx  := 28;
16864    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
16865    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16866    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
16867    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16868    l_rec_acct_attrs.array_num_value(2)  := 
16869 xla_ae_sources_pkg.GetSystemSourceNum(
16870    p_source_code           => 'XLA_EVENT_APPL_ID'
16871  , p_source_type_code      => 'Y'
16872  , p_source_application_id =>  602
16873 );
16874    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16875    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
16876    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16877    l_rec_acct_attrs.array_char_value(4)  := 
16878 xla_ae_sources_pkg.GetSystemSourceChar(
16879    p_source_code           => 'XLA_ENTITY_CODE'
16880  , p_source_type_code      => 'Y'
16881  , p_source_application_id =>  602
16882 );
16883    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16884    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
16885    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16886    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
16887    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16888    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
16889    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16890    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
16891    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16892    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
16893    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16894    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
16895    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16896    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
16897    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16898    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
16899    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16900    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
16901    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16902    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
16903    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16904    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
16905    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16906    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
16907    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16908    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
16909    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16910    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
16911    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16912    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
16913    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16914    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
16915    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16916    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
16917    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16921    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16918    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
16919    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16920    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
16922    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
16923    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
16924    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
16925    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
16926    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
16927    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
16928    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
16929    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
16930    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
16931    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
16932    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
16933    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
16934    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
16935    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
16936    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
16937    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
16938    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
16939    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
16940    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
16941    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
16942    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
16943    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
16944    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
16945    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
16946    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
16947    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
16948    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
16949    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
16950    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
16951    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
16952    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
16953    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
16954    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
16955    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
16956    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
16957    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
16958    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
16959 
16960    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16961    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16962 
16963    ---------------------------------------------------------------------------------------------------------------
16964    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16965    ---------------------------------------------------------------------------------------------------------------
16966    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16967 
16968    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16969    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16970 
16971    IF xla_accounting_cache_pkg.GetValueChar
16972          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16973          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16974    AND l_bflow_method_code = 'PRIOR_ENTRY'
16975 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16976    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16977          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16978        )
16979    THEN
16980          xla_ae_lines_pkg.BflowUpgEntry
16981            (p_business_method_code    => l_bflow_method_code
16982            ,p_business_class_code     => l_bflow_class_code
16983            ,p_balance_type            => l_balance_type_code);
16984    ELSE
16985       NULL;
16986 -- No business flow processing for business flow method of NONE.
16987    END IF;
16988 
16989    --
16990    -- call analytical criteria
16991    --
16992    
16993    --
16994    -- call description
16995    --
16996    
16997 xla_ae_lines_pkg.SetLineDescription(
16998    p_ae_header_id => l_ae_header_id
16999   ,p_description  => Description_2 (
17000      p_application_id         => p_application_id
17001    , p_ae_header_id           => l_ae_header_id 
17002 , p_source_1 => p_source_1
17003    )
17004 );
17005 
17006 
17007    --
17008    -- call ADRs
17009    -- Bug 4922099
17010    --
17011    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17012         (NVL(l_actual_upg_option, 'N') = 'O') OR
17013         (NVL(l_enc_upg_option, 'N') = 'O')
17014       )
17015    THEN
17016    NULL;
17017    --
17018    --
17019    
17020   l_ccid := AcctDerRule_7(
17021            p_application_id           => p_application_id
17022          , p_ae_header_id             => l_ae_header_id 
17023 , p_source_11 => p_source_11
17024          , x_transaction_coa_id       => l_adr_transaction_coa_id
17028    );
17025          , x_accounting_coa_id        => l_adr_accounting_coa_id
17026          , x_value_type_code          => l_adr_value_type_code
17027          , p_side                     => 'NA'
17029 
17030    xla_ae_lines_pkg.set_ccid(
17031     p_code_combination_id          => l_ccid
17032   , p_value_type_code              => l_adr_value_type_code
17033   , p_transaction_coa_id           => l_adr_transaction_coa_id
17034   , p_accounting_coa_id            => l_adr_accounting_coa_id
17035   , p_adr_code                     => 'AP_INVOICE_DIST'
17036   , p_adr_type_code                => 'S'
17037   , p_component_type               => l_component_type
17038   , p_component_code               => l_component_code
17039   , p_component_type_code          => l_component_type_code
17040   , p_component_appl_id            => l_component_appl_id
17041   , p_amb_context_code             => l_amb_context_code
17042   , p_side                         => 'NA'
17043   );
17044 
17045 
17046    --
17047    --
17048    END IF;
17049    --
17050    -- Bug 4922099
17051    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17052           (NVL(l_enc_upg_option, 'N') = 'O')
17053         ) AND
17054         (l_bflow_method_code = 'PRIOR_ENTRY')
17055       )
17056    THEN
17057       IF
17058       --
17059       1 = 2
17060       --
17061       THEN
17062       xla_accounting_err_pkg.build_message
17063                                     (p_appli_s_name            => 'XLA'
17064                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17065                                     ,p_token_1                 => 'LINE_NUMBER'
17066                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17067                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17068                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17069                                                                              l_component_type
17070                                                                             ,l_component_code
17071                                                                             ,l_component_type_code
17072                                                                             ,l_component_appl_id
17073                                                                             ,l_amb_context_code
17074                                                                             ,l_entity_code
17075                                                                             ,l_event_class_code
17076                                                                            )
17077                                     ,p_token_3                 => 'OWNER'
17078                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17079                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17080                                                                           ,p_lookup_code    => l_component_type_code
17081                                                                          )
17082                                     ,p_token_4                 => 'PRODUCT_NAME'
17083                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17084                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17085                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17086                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17087                                     ,p_ae_header_id            =>  NULL
17088                                        );
17089 
17090         IF (C_LEVEL_ERROR>= g_log_level) THEN
17091                  trace
17092                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17093                       ,p_level    => C_LEVEL_ERROR
17094                       ,p_module   => l_log_module);
17095         END IF;
17096       END IF;
17097    END IF;
17098    --
17099    --
17100    ------------------------------------------------------------------------------------------------
17101    -- 4219869 Business Flow
17102    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17103    -- Prior Entry.  Currently, the following code is always generated.
17104    ------------------------------------------------------------------------------------------------
17105    XLA_AE_LINES_PKG.ValidateCurrentLine;
17106 
17107    ------------------------------------------------------------------------------------
17108    -- 4219869 Business Flow
17109    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17110    ------------------------------------------------------------------------------------
17111    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17112 
17113    ----------------------------------------------------------------------------------
17114    -- 4219869 Business Flow
17115    -- Update journal entry status -- Need to generate this within IF <condition>
17116    ----------------------------------------------------------------------------------
17117    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17118          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17119          ,p_balance_type_code => l_balance_type_code
17120          );
17121 
17125    BEGIN
17122    -------------------------------------------------------------------------------------------
17123    -- 4262811 - Generate the Accrual Reversal lines
17124    -------------------------------------------------------------------------------------------
17126       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17127                               (g_array_event(p_event_id).array_value_num('header_index'));
17128       IF l_acc_rev_flag IS NULL THEN
17129          l_acc_rev_flag := 'N';
17130       END IF;
17131    EXCEPTION
17132       WHEN OTHERS THEN
17133          l_acc_rev_flag := 'N';
17134    END;
17135    --
17136    IF (l_acc_rev_flag = 'Y') THEN
17137 
17138        -- 4645092  ------------------------------------------------------------------------------
17139        -- To allow MPA report to determine if it should generate report process
17140        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17141        ------------------------------------------------------------------------------------------
17142 
17143        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17144        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17145    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17146    -- call ADRs
17147    -- Bug 4922099
17148    --
17149    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17150         (NVL(l_actual_upg_option, 'N') = 'O') OR
17151         (NVL(l_enc_upg_option, 'N') = 'O')
17152       )
17153    THEN
17154    NULL;
17155    --
17156    --
17157    
17158   l_ccid := AcctDerRule_7(
17159            p_application_id           => p_application_id
17160          , p_ae_header_id             => l_ae_header_id 
17161 , p_source_11 => p_source_11
17162          , x_transaction_coa_id       => l_adr_transaction_coa_id
17163          , x_accounting_coa_id        => l_adr_accounting_coa_id
17164          , x_value_type_code          => l_adr_value_type_code
17165          , p_side                     => 'NA'
17166    );
17167 
17168    xla_ae_lines_pkg.set_ccid(
17169     p_code_combination_id          => l_ccid
17170   , p_value_type_code              => l_adr_value_type_code
17171   , p_transaction_coa_id           => l_adr_transaction_coa_id
17172   , p_accounting_coa_id            => l_adr_accounting_coa_id
17173   , p_adr_code                     => 'AP_INVOICE_DIST'
17174   , p_adr_type_code                => 'S'
17175   , p_component_type               => l_component_type
17176   , p_component_code               => l_component_code
17177   , p_component_type_code          => l_component_type_code
17178   , p_component_appl_id            => l_component_appl_id
17179   , p_amb_context_code             => l_amb_context_code
17180   , p_side                         => 'NA'
17181   );
17182 
17183 
17184    --
17185    --
17186    END IF;
17187 
17188        --
17189        -- Update the line information that should be overwritten
17190        --
17191        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17192                                          p_header_num   => 1);
17193        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17194 
17195        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17196 
17197        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17198           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17199        END IF;
17200 
17201       --
17202       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17203       --
17204       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17205           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17206       ELSE
17207           ---------------------------------------------------------------------------------------------------
17208           -- 4262811a Switch Sign
17209           ---------------------------------------------------------------------------------------------------
17210           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17211           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17212                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17213           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17214                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17215           -- 5132302
17216           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17217                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17218 
17219       END IF;
17220 
17221       -- 4955764
17222       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17223       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17224 
17225 
17226       XLA_AE_LINES_PKG.ValidateCurrentLine;
17227       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17228 
17229       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17230                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17234 
17231                ,p_balance_type_code => l_balance_type_code);
17232 
17233    END IF;
17235    -----------------------------------------------------------------------------------------
17236    -- 4262811 Multiperiod Accounting
17237    -----------------------------------------------------------------------------------------
17238      -- No MPA option is assigned.
17239 
17240 
17241 END IF;
17242 END IF;
17243 --
17244 
17245 --
17246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17247    trace
17248       (p_msg      => 'END of AcctLineType_34'
17249       ,p_level    => C_LEVEL_PROCEDURE
17250       ,p_module   => l_log_module);
17251 END IF;
17252 --
17253 EXCEPTION
17254   WHEN xla_exceptions_pkg.application_exception THEN
17255       RAISE;
17256   WHEN OTHERS THEN
17257        xla_exceptions_pkg.raise_message
17258            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_34');
17259 END AcctLineType_34;
17260 --
17261 
17262 ---------------------------------------
17263 --
17264 -- PRIVATE FUNCTION
17265 --         AcctLineType_35
17266 --
17267 ---------------------------------------
17268 PROCEDURE AcctLineType_35 (
17269   p_application_id        IN NUMBER
17270  ,p_event_id              IN NUMBER
17271  ,p_calculate_acctd_flag  IN VARCHAR2
17272  ,p_calculate_g_l_flag    IN VARCHAR2
17273  ,p_actual_flag           IN OUT VARCHAR2
17274  ,p_balance_type_code     OUT VARCHAR2
17275  ,p_gain_or_loss_ref      OUT VARCHAR2
17276  
17277 --Invoice Distribution Description
17278  , p_source_1            IN VARCHAR2
17279 --Invoice Distribution Account
17280  , p_source_11            IN NUMBER
17281 --Invoice Distribution Type
17282  , p_source_15            IN VARCHAR2
17283  , p_source_15_meaning    IN VARCHAR2
17284 --Purchasing Encumbrance Option
17285  , p_source_17            IN VARCHAR2
17286  , p_source_17_meaning    IN VARCHAR2
17287 --Accounting Reversal Indicator
17288  , p_source_19            IN VARCHAR2
17289 --Distribution Link Type
17290  , p_source_21            IN VARCHAR2
17291 --Allocation to Main Distribution Identifier
17292  , p_source_23            IN NUMBER
17293 --Invoice Identifier
17294  , p_source_24            IN NUMBER
17295 --Business Flow Accounts Payable Application Identifier
17296  , p_source_25            IN NUMBER
17297 --Business Flow Invoice Distribution Type
17298  , p_source_26            IN VARCHAR2
17299 --Business Flow Invoice Entity Code
17300  , p_source_27            IN VARCHAR2
17301 --Business Flow Invoice Distribution Identifier
17302  , p_source_28            IN NUMBER
17303 --Business Flow Invoice Identifier
17304  , p_source_29            IN NUMBER
17305 --Invoice Distribution Identifier
17306  , p_source_30            IN NUMBER
17307 --Payables Encumbrance Upgrade Credit Account
17308  , p_source_31            IN NUMBER
17309 --Payables Encumbrance Upgrade Credit Amount
17310  , p_source_32            IN NUMBER
17311 --Invoice Currency Code
17312  , p_source_33            IN VARCHAR2
17313 --Payables Encumbrance Upgrade Credit Base Amount
17314  , p_source_34            IN NUMBER
17315 --Payables Encumbrance Upgrade Debit Account
17316  , p_source_35            IN NUMBER
17317 --Payables Encumbrance Upgrade Debit Amount
17318  , p_source_36            IN NUMBER
17319 --Payables Encumbrance Upgrade Debit Base Amount
17320  , p_source_37            IN NUMBER
17321 --Payables Encumbrance Upgrade Option
17322  , p_source_38            IN VARCHAR2
17323 --Invoice Exchange Date
17324  , p_source_39            IN DATE
17325 --Invoice Exchange Rate
17326  , p_source_40            IN NUMBER
17327 --Invoice Exchange Rate Type
17328  , p_source_41            IN VARCHAR2
17329 --Deferred Accounting End Date
17330  , p_source_43            IN DATE
17331 --Deferred Accounting Option
17332  , p_source_44            IN VARCHAR2
17333 --Deferred Accounting Start Date
17334  , p_source_45            IN DATE
17335 --Override Accounted Amount Indicator
17336  , p_source_46            IN VARCHAR2
17337  , p_source_46_meaning    IN VARCHAR2
17338 --Invoice Supplier Identifier
17339  , p_source_47            IN NUMBER
17340 --Invoice Supplier Site Identifier
17341  , p_source_48            IN NUMBER
17342 --Third Party Type
17343  , p_source_49            IN VARCHAR2
17344 --Parent Reversal Identifier
17345  , p_source_50            IN NUMBER
17346 --Invoice Distribution Statistical Amount
17347  , p_source_51            IN NUMBER
17348 --Invoice Distribution Tax Line Identifier
17349  , p_source_52            IN NUMBER
17350 --Invoice Distribution Tax Distribution Identifier from Tax
17351  , p_source_53            IN NUMBER
17352 --Invoice Distribution Summary Tax Line Identifier
17353  , p_source_54            IN NUMBER
17354 --Payables Upgrade Credit Encumbrance Type Identifier
17355  , p_source_55            IN NUMBER
17356 --Payables Upgrade Debit Encumbrance Type Identifier
17357  , p_source_56            IN NUMBER
17358 --Invoice Distribution Amount
17359  , p_source_57            IN NUMBER
17360 --Invoice Distribution Encumbrance Amount
17361  , p_source_65            IN NUMBER
17362 --Invoice Distribution Encumbrance Ledger Amount
17363  , p_source_66            IN NUMBER
17364 )
17365 IS
17366 
17367 l_component_type              VARCHAR2(80);
17368 l_component_code              VARCHAR2(30);
17372 l_entity_code                 VARCHAR2(30);
17369 l_component_type_code         VARCHAR2(1);
17370 l_component_appl_id           INTEGER;
17371 l_amb_context_code            VARCHAR2(30);
17373 l_event_class_code            VARCHAR2(30);
17374 l_ae_header_id                NUMBER;
17375 l_event_type_code             VARCHAR2(30);
17376 l_line_definition_code        VARCHAR2(30);
17377 l_line_definition_owner_code  VARCHAR2(1);
17378 --
17379 -- adr variables
17380 l_segment                     VARCHAR2(30);
17381 l_ccid                        NUMBER;
17382 l_adr_transaction_coa_id      NUMBER;
17383 l_adr_accounting_coa_id       NUMBER;
17384 l_adr_flexfield_segment_code  VARCHAR2(30);
17385 l_adr_flex_value_set_id       NUMBER;
17386 l_adr_value_type_code         VARCHAR2(30);
17387 l_adr_value_combination_id    NUMBER;
17388 l_adr_value_segment_code      VARCHAR2(30);
17389 
17390 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17391 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17392 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17393 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17394 
17395 -- 4262811 Variables ------------------------------------------------------------------------------------------
17396 l_entered_amt_idx             NUMBER;
17397 l_accted_amt_idx              NUMBER;
17398 l_acc_rev_flag                VARCHAR2(1);
17399 l_accrual_line_num            NUMBER;
17400 l_tmp_amt                     NUMBER;
17401 l_acc_rev_natural_side_code   VARCHAR2(1);
17402 
17403 l_num_entries                 NUMBER;
17404 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17405 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17406 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17407 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17408 l_recog_line_1                NUMBER;
17409 l_recog_line_2                NUMBER;
17410 
17411 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17412 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17413 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17414 
17415 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17416 
17417 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17418 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17419 
17420 ---------------------------------------------------------------------------------------------------------------
17421 
17422 
17423 --
17424 -- bulk performance
17425 --
17426 l_balance_type_code           VARCHAR2(1);
17427 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17428 l_log_module                  VARCHAR2(240);
17429 
17430 --
17431 -- Upgrade strategy
17432 --
17433 l_actual_upg_option           VARCHAR2(1);
17434 l_enc_upg_option           VARCHAR2(1);
17435 
17436 --
17437 BEGIN
17438 --
17439 IF g_log_enabled THEN
17440       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
17441 END IF;
17442 --
17443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17444 
17445       trace
17446          (p_msg      => 'BEGIN of AcctLineType_35'
17447          ,p_level    => C_LEVEL_PROCEDURE
17448          ,p_module   => l_log_module);
17449 
17450 END IF;
17451 --
17452 l_component_type             := 'AMB_JLT';
17453 l_component_code             := 'AP_INV_PRICE_VAR_INV_ENC_DR';
17454 l_component_type_code        := 'S';
17455 l_component_appl_id          :=  200;
17456 l_amb_context_code           := 'DEFAULT';
17457 l_entity_code                := 'AP_INVOICES';
17458 l_event_class_code           := 'INVOICES';
17459 l_event_type_code            := 'INVOICES_ALL';
17460 l_line_definition_owner_code := 'S';
17461 l_line_definition_code       := 'ENC_INVOICES_ALL';
17462 --
17463 l_balance_type_code          := 'E';
17464 l_segment                     := NULL;
17465 l_ccid                        := NULL;
17466 l_adr_transaction_coa_id      := NULL;
17467 l_adr_accounting_coa_id       := NULL;
17468 l_adr_flexfield_segment_code  := NULL;
17469 l_adr_flex_value_set_id       := NULL;
17470 l_adr_value_type_code         := NULL;
17471 l_adr_value_combination_id    := NULL;
17472 l_adr_value_segment_code      := NULL;
17473 
17474 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17475 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
17476 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17477 l_budgetary_control_flag     := 'Y';
17478 
17479 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17480 l_bflow_applied_to_amt       := NULL; -- 5132302
17481 l_entered_amt_idx            := NULL;          -- 4262811
17482 l_accted_amt_idx             := NULL;          -- 4262811
17483 l_acc_rev_flag               := NULL;          -- 4262811
17484 l_accrual_line_num           := NULL;          -- 4262811
17485 l_tmp_amt                    := NULL;          -- 4262811
17486 --
17487  
17488 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17489     l_balance_type_code <> 'B' THEN
17490 IF NVL(p_source_15,'
17491 ') =  'IPV' AND 
17492 NVL(p_source_17,'
17493 ') =  'Y'
17494  THEN 
17495 
17496    --
17497    XLA_AE_LINES_PKG.SetNewLine;
17498 
17499    p_balance_type_code          := l_balance_type_code;
17503      p_actual_flag :='A';
17500    -- set the flag so later we will know whether the gain loss line needs to be created
17501    
17502    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17504    END IF;
17505 
17506    --
17507    -- bulk performance
17508    --
17509    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17510                                       p_header_num   => 0); -- 4262811
17511    --
17512    -- set accounting line options
17513    --
17514    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17515            p_natural_side_code          => 'D'
17516          , p_gain_or_loss_flag          => 'N'
17517          , p_gl_transfer_mode_code      => 'S'
17518          , p_acct_entry_type_code       => 'E'
17519          , p_switch_side_flag           => 'Y'
17520          , p_merge_duplicate_code       => 'N'
17521          );
17522    --
17523    l_acc_rev_natural_side_code := 'C';  -- 4262811
17524    -- 
17525    --
17526    -- set accounting line type info
17527    --
17528    xla_ae_lines_pkg.SetAcctLineType
17529       (p_component_type             => l_component_type
17530       ,p_event_type_code            => l_event_type_code
17531       ,p_line_definition_owner_code => l_line_definition_owner_code
17532       ,p_line_definition_code       => l_line_definition_code
17533       ,p_accounting_line_code       => l_component_code
17534       ,p_accounting_line_type_code  => l_component_type_code
17535       ,p_accounting_line_appl_id    => l_component_appl_id
17536       ,p_amb_context_code           => l_amb_context_code
17537       ,p_entity_code                => l_entity_code
17538       ,p_event_class_code           => l_event_class_code);
17539    --
17540    -- set accounting class
17541    --
17542    xla_ae_lines_pkg.SetAcctClass(
17543            p_accounting_class_code  => 'IPV'
17544          , p_ae_header_id           => l_ae_header_id
17545          );
17546 
17547    --
17548    -- set rounding class
17549    --
17550    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17551                       'IPV';
17552 
17553    --
17554    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17555    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17556    --
17557    -- bulk performance
17558    --
17559    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17560 
17561    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17562       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17563 
17564    -- 4955764
17565    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17566       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17567 
17568    -- 4458381 Public Sector Enh
17569       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
17570    --
17571    -- set accounting attributes for the line type
17572    --
17573    l_entered_amt_idx := 24;
17574    l_accted_amt_idx  := 29;
17575    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
17576    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17577    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
17578    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17579    l_rec_acct_attrs.array_num_value(2)  := 
17580 xla_ae_sources_pkg.GetSystemSourceNum(
17581    p_source_code           => 'XLA_EVENT_APPL_ID'
17582  , p_source_type_code      => 'Y'
17583  , p_source_application_id =>  602
17584 );
17585    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17586    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
17587    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17588    l_rec_acct_attrs.array_char_value(4)  := 
17589 xla_ae_sources_pkg.GetSystemSourceChar(
17590    p_source_code           => 'XLA_ENTITY_CODE'
17591  , p_source_type_code      => 'Y'
17592  , p_source_application_id =>  602
17593 );
17594    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17595    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
17596    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17597    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
17598    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
17599    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
17600    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
17601    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
17602    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17603    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
17604    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
17605    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
17606    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
17607    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
17608    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17609    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
17610    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
17611    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
17615    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
17612    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
17613    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
17614    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
17616    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
17617    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
17618    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
17619    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
17620    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
17621    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
17622    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
17623    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
17624    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
17625    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
17626    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
17627    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
17628    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
17629    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
17630    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
17631    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
17632    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
17633    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
17634    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
17635    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
17636    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
17637    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
17638    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
17639    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
17640    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
17641    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
17642    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
17643    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
17644    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
17645    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
17646    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
17647    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
17648    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
17649    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
17650    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
17651    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
17652    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
17653    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
17654    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
17655    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
17656    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
17657    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
17658    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
17659    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
17660    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
17661    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
17662    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
17663    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
17664    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
17665    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
17666    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
17667    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
17668    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
17669    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
17670    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
17671    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
17672    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
17673    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
17674 
17675    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17676    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17677 
17678    ---------------------------------------------------------------------------------------------------------------
17679    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17680    ---------------------------------------------------------------------------------------------------------------
17681    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17682 
17683    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17684    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17685 
17686    IF xla_accounting_cache_pkg.GetValueChar
17687          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17688          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17689    AND l_bflow_method_code = 'PRIOR_ENTRY'
17690 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17691    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17692          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17693        )
17694    THEN
17695          xla_ae_lines_pkg.BflowUpgEntry
17696            (p_business_method_code    => l_bflow_method_code
17697            ,p_business_class_code     => l_bflow_class_code
17701 -- No business flow processing for business flow method of NONE.
17698            ,p_balance_type            => l_balance_type_code);
17699    ELSE
17700       NULL;
17702    END IF;
17703 
17704    --
17705    -- call analytical criteria
17706    --
17707    
17708    --
17709    -- call description
17710    --
17711    
17712 xla_ae_lines_pkg.SetLineDescription(
17713    p_ae_header_id => l_ae_header_id
17714   ,p_description  => Description_2 (
17715      p_application_id         => p_application_id
17716    , p_ae_header_id           => l_ae_header_id 
17717 , p_source_1 => p_source_1
17718    )
17719 );
17720 
17721 
17722    --
17723    -- call ADRs
17724    -- Bug 4922099
17725    --
17726    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17727         (NVL(l_actual_upg_option, 'N') = 'O') OR
17728         (NVL(l_enc_upg_option, 'N') = 'O')
17729       )
17730    THEN
17731    NULL;
17732    --
17733    --
17734    
17735   l_ccid := AcctDerRule_7(
17736            p_application_id           => p_application_id
17737          , p_ae_header_id             => l_ae_header_id 
17738 , p_source_11 => p_source_11
17739          , x_transaction_coa_id       => l_adr_transaction_coa_id
17740          , x_accounting_coa_id        => l_adr_accounting_coa_id
17741          , x_value_type_code          => l_adr_value_type_code
17742          , p_side                     => 'NA'
17743    );
17744 
17745    xla_ae_lines_pkg.set_ccid(
17746     p_code_combination_id          => l_ccid
17747   , p_value_type_code              => l_adr_value_type_code
17748   , p_transaction_coa_id           => l_adr_transaction_coa_id
17749   , p_accounting_coa_id            => l_adr_accounting_coa_id
17750   , p_adr_code                     => 'AP_INVOICE_DIST'
17751   , p_adr_type_code                => 'S'
17752   , p_component_type               => l_component_type
17753   , p_component_code               => l_component_code
17754   , p_component_type_code          => l_component_type_code
17755   , p_component_appl_id            => l_component_appl_id
17756   , p_amb_context_code             => l_amb_context_code
17757   , p_side                         => 'NA'
17758   );
17759 
17760 
17761    --
17762    --
17763    END IF;
17764    --
17765    -- Bug 4922099
17766    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17767           (NVL(l_enc_upg_option, 'N') = 'O')
17768         ) AND
17769         (l_bflow_method_code = 'PRIOR_ENTRY')
17770       )
17771    THEN
17772       IF
17773       --
17774       1 = 2
17775       --
17776       THEN
17777       xla_accounting_err_pkg.build_message
17778                                     (p_appli_s_name            => 'XLA'
17779                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17780                                     ,p_token_1                 => 'LINE_NUMBER'
17781                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17782                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17783                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17784                                                                              l_component_type
17785                                                                             ,l_component_code
17786                                                                             ,l_component_type_code
17787                                                                             ,l_component_appl_id
17788                                                                             ,l_amb_context_code
17789                                                                             ,l_entity_code
17790                                                                             ,l_event_class_code
17791                                                                            )
17792                                     ,p_token_3                 => 'OWNER'
17793                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17794                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17795                                                                           ,p_lookup_code    => l_component_type_code
17796                                                                          )
17797                                     ,p_token_4                 => 'PRODUCT_NAME'
17798                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17799                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17800                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17801                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17802                                     ,p_ae_header_id            =>  NULL
17803                                        );
17804 
17805         IF (C_LEVEL_ERROR>= g_log_level) THEN
17806                  trace
17807                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17808                       ,p_level    => C_LEVEL_ERROR
17809                       ,p_module   => l_log_module);
17810         END IF;
17811       END IF;
17812    END IF;
17813    --
17814    --
17818    -- Prior Entry.  Currently, the following code is always generated.
17815    ------------------------------------------------------------------------------------------------
17816    -- 4219869 Business Flow
17817    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17819    ------------------------------------------------------------------------------------------------
17820    XLA_AE_LINES_PKG.ValidateCurrentLine;
17821 
17822    ------------------------------------------------------------------------------------
17823    -- 4219869 Business Flow
17824    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17825    ------------------------------------------------------------------------------------
17826    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17827 
17828    ----------------------------------------------------------------------------------
17829    -- 4219869 Business Flow
17830    -- Update journal entry status -- Need to generate this within IF <condition>
17831    ----------------------------------------------------------------------------------
17832    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17833          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17834          ,p_balance_type_code => l_balance_type_code
17835          );
17836 
17837    -------------------------------------------------------------------------------------------
17838    -- 4262811 - Generate the Accrual Reversal lines
17839    -------------------------------------------------------------------------------------------
17840    BEGIN
17841       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17842                               (g_array_event(p_event_id).array_value_num('header_index'));
17843       IF l_acc_rev_flag IS NULL THEN
17844          l_acc_rev_flag := 'N';
17845       END IF;
17846    EXCEPTION
17847       WHEN OTHERS THEN
17848          l_acc_rev_flag := 'N';
17849    END;
17850    --
17851    IF (l_acc_rev_flag = 'Y') THEN
17852 
17853        -- 4645092  ------------------------------------------------------------------------------
17854        -- To allow MPA report to determine if it should generate report process
17855        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17856        ------------------------------------------------------------------------------------------
17857 
17858        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17859        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17860    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17861    -- call ADRs
17862    -- Bug 4922099
17863    --
17864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17865         (NVL(l_actual_upg_option, 'N') = 'O') OR
17866         (NVL(l_enc_upg_option, 'N') = 'O')
17867       )
17868    THEN
17869    NULL;
17870    --
17871    --
17872    
17873   l_ccid := AcctDerRule_7(
17874            p_application_id           => p_application_id
17875          , p_ae_header_id             => l_ae_header_id 
17876 , p_source_11 => p_source_11
17877          , x_transaction_coa_id       => l_adr_transaction_coa_id
17878          , x_accounting_coa_id        => l_adr_accounting_coa_id
17879          , x_value_type_code          => l_adr_value_type_code
17880          , p_side                     => 'NA'
17881    );
17882 
17883    xla_ae_lines_pkg.set_ccid(
17884     p_code_combination_id          => l_ccid
17885   , p_value_type_code              => l_adr_value_type_code
17886   , p_transaction_coa_id           => l_adr_transaction_coa_id
17887   , p_accounting_coa_id            => l_adr_accounting_coa_id
17888   , p_adr_code                     => 'AP_INVOICE_DIST'
17889   , p_adr_type_code                => 'S'
17890   , p_component_type               => l_component_type
17891   , p_component_code               => l_component_code
17892   , p_component_type_code          => l_component_type_code
17893   , p_component_appl_id            => l_component_appl_id
17894   , p_amb_context_code             => l_amb_context_code
17895   , p_side                         => 'NA'
17896   );
17897 
17898 
17899    --
17900    --
17901    END IF;
17902 
17903        --
17904        -- Update the line information that should be overwritten
17905        --
17906        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17907                                          p_header_num   => 1);
17908        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17909 
17910        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17911 
17912        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17913           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17914        END IF;
17915 
17916       --
17917       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17918       --
17919       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17920           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17921       ELSE
17922           ---------------------------------------------------------------------------------------------------
17923           -- 4262811a Switch Sign
17927                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17924           ---------------------------------------------------------------------------------------------------
17925           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17926           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17928           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17929                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17930           -- 5132302
17931           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17932                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17933 
17934       END IF;
17935 
17936       -- 4955764
17937       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17938       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17939 
17940 
17941       XLA_AE_LINES_PKG.ValidateCurrentLine;
17942       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17943 
17944       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17945                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17946                ,p_balance_type_code => l_balance_type_code);
17947 
17948    END IF;
17949 
17950    -----------------------------------------------------------------------------------------
17951    -- 4262811 Multiperiod Accounting
17952    -----------------------------------------------------------------------------------------
17953      -- No MPA option is assigned.
17954 
17955 
17956 END IF;
17957 END IF;
17958 --
17959 
17960 --
17961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17962    trace
17963       (p_msg      => 'END of AcctLineType_35'
17964       ,p_level    => C_LEVEL_PROCEDURE
17965       ,p_module   => l_log_module);
17966 END IF;
17967 --
17968 EXCEPTION
17969   WHEN xla_exceptions_pkg.application_exception THEN
17970       RAISE;
17971   WHEN OTHERS THEN
17972        xla_exceptions_pkg.raise_message
17973            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_35');
17974 END AcctLineType_35;
17975 --
17976 
17977 ---------------------------------------
17978 --
17979 -- PRIVATE FUNCTION
17980 --         AcctLineType_36
17981 --
17982 ---------------------------------------
17983 PROCEDURE AcctLineType_36 (
17984   p_application_id        IN NUMBER
17985  ,p_event_id              IN NUMBER
17986  ,p_calculate_acctd_flag  IN VARCHAR2
17987  ,p_calculate_g_l_flag    IN VARCHAR2
17988  ,p_actual_flag           IN OUT VARCHAR2
17989  ,p_balance_type_code     OUT VARCHAR2
17990  ,p_gain_or_loss_ref      OUT VARCHAR2
17991  
17992 --Invoice Distribution Description
17993  , p_source_1            IN VARCHAR2
17994 --Invoice Distribution Account
17995  , p_source_11            IN NUMBER
17996 --Invoice Distribution Type
17997  , p_source_15            IN VARCHAR2
17998  , p_source_15_meaning    IN VARCHAR2
17999 --Purchasing Encumbrance Option
18000  , p_source_17            IN VARCHAR2
18001  , p_source_17_meaning    IN VARCHAR2
18002 --Accounting Reversal Indicator
18003  , p_source_19            IN VARCHAR2
18004 --Distribution Link Type
18005  , p_source_21            IN VARCHAR2
18006 --Allocation to Main Distribution Identifier
18007  , p_source_23            IN NUMBER
18008 --Invoice Identifier
18009  , p_source_24            IN NUMBER
18010 --Business Flow Accounts Payable Application Identifier
18011  , p_source_25            IN NUMBER
18012 --Business Flow Invoice Distribution Type
18013  , p_source_26            IN VARCHAR2
18014 --Business Flow Invoice Entity Code
18015  , p_source_27            IN VARCHAR2
18016 --Business Flow Invoice Distribution Identifier
18017  , p_source_28            IN NUMBER
18018 --Business Flow Invoice Identifier
18019  , p_source_29            IN NUMBER
18020 --Invoice Distribution Identifier
18021  , p_source_30            IN NUMBER
18022 --Payables Encumbrance Upgrade Credit Account
18023  , p_source_31            IN NUMBER
18024 --Payables Encumbrance Upgrade Credit Amount
18025  , p_source_32            IN NUMBER
18026 --Invoice Currency Code
18027  , p_source_33            IN VARCHAR2
18028 --Payables Encumbrance Upgrade Credit Base Amount
18029  , p_source_34            IN NUMBER
18030 --Payables Encumbrance Upgrade Debit Account
18031  , p_source_35            IN NUMBER
18032 --Payables Encumbrance Upgrade Debit Amount
18033  , p_source_36            IN NUMBER
18034 --Payables Encumbrance Upgrade Debit Base Amount
18035  , p_source_37            IN NUMBER
18036 --Payables Encumbrance Upgrade Option
18037  , p_source_38            IN VARCHAR2
18038 --Invoice Exchange Date
18039  , p_source_39            IN DATE
18040 --Invoice Exchange Rate
18041  , p_source_40            IN NUMBER
18042 --Invoice Exchange Rate Type
18043  , p_source_41            IN VARCHAR2
18044 --Deferred Accounting End Date
18045  , p_source_43            IN DATE
18046 --Deferred Accounting Option
18047  , p_source_44            IN VARCHAR2
18048 --Deferred Accounting Start Date
18049  , p_source_45            IN DATE
18050 --Override Accounted Amount Indicator
18051  , p_source_46            IN VARCHAR2
18052  , p_source_46_meaning    IN VARCHAR2
18056  , p_source_48            IN NUMBER
18053 --Invoice Supplier Identifier
18054  , p_source_47            IN NUMBER
18055 --Invoice Supplier Site Identifier
18057 --Third Party Type
18058  , p_source_49            IN VARCHAR2
18059 --Parent Reversal Identifier
18060  , p_source_50            IN NUMBER
18061 --Invoice Distribution Statistical Amount
18062  , p_source_51            IN NUMBER
18063 --Invoice Distribution Tax Line Identifier
18064  , p_source_52            IN NUMBER
18065 --Invoice Distribution Tax Distribution Identifier from Tax
18066  , p_source_53            IN NUMBER
18067 --Invoice Distribution Summary Tax Line Identifier
18068  , p_source_54            IN NUMBER
18069 --Payables Upgrade Credit Encumbrance Type Identifier
18070  , p_source_55            IN NUMBER
18071 --Payables Upgrade Debit Encumbrance Type Identifier
18072  , p_source_56            IN NUMBER
18073 --Invoice Distribution Encumbrance Amount
18074  , p_source_65            IN NUMBER
18075 --Invoice Distribution Encumbrance Ledger Amount
18076  , p_source_66            IN NUMBER
18077 )
18078 IS
18079 
18080 l_component_type              VARCHAR2(80);
18081 l_component_code              VARCHAR2(30);
18082 l_component_type_code         VARCHAR2(1);
18083 l_component_appl_id           INTEGER;
18084 l_amb_context_code            VARCHAR2(30);
18085 l_entity_code                 VARCHAR2(30);
18086 l_event_class_code            VARCHAR2(30);
18087 l_ae_header_id                NUMBER;
18088 l_event_type_code             VARCHAR2(30);
18089 l_line_definition_code        VARCHAR2(30);
18090 l_line_definition_owner_code  VARCHAR2(1);
18091 --
18092 -- adr variables
18093 l_segment                     VARCHAR2(30);
18094 l_ccid                        NUMBER;
18095 l_adr_transaction_coa_id      NUMBER;
18096 l_adr_accounting_coa_id       NUMBER;
18097 l_adr_flexfield_segment_code  VARCHAR2(30);
18098 l_adr_flex_value_set_id       NUMBER;
18099 l_adr_value_type_code         VARCHAR2(30);
18100 l_adr_value_combination_id    NUMBER;
18101 l_adr_value_segment_code      VARCHAR2(30);
18102 
18103 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18104 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18105 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18106 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18107 
18108 -- 4262811 Variables ------------------------------------------------------------------------------------------
18109 l_entered_amt_idx             NUMBER;
18110 l_accted_amt_idx              NUMBER;
18111 l_acc_rev_flag                VARCHAR2(1);
18112 l_accrual_line_num            NUMBER;
18113 l_tmp_amt                     NUMBER;
18114 l_acc_rev_natural_side_code   VARCHAR2(1);
18115 
18116 l_num_entries                 NUMBER;
18117 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18118 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18119 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18120 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18121 l_recog_line_1                NUMBER;
18122 l_recog_line_2                NUMBER;
18123 
18124 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18125 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18126 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18127 
18128 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18129 
18130 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18131 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18132 
18133 ---------------------------------------------------------------------------------------------------------------
18134 
18135 
18136 --
18137 -- bulk performance
18138 --
18139 l_balance_type_code           VARCHAR2(1);
18140 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18141 l_log_module                  VARCHAR2(240);
18142 
18143 --
18144 -- Upgrade strategy
18145 --
18146 l_actual_upg_option           VARCHAR2(1);
18147 l_enc_upg_option           VARCHAR2(1);
18148 
18149 --
18150 BEGIN
18151 --
18152 IF g_log_enabled THEN
18153       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
18154 END IF;
18155 --
18156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18157 
18158       trace
18159          (p_msg      => 'BEGIN of AcctLineType_36'
18160          ,p_level    => C_LEVEL_PROCEDURE
18161          ,p_module   => l_log_module);
18162 
18163 END IF;
18164 --
18165 l_component_type             := 'AMB_JLT';
18166 l_component_code             := 'AP_INV_PRICE_VAR_PP_ENC_DR';
18167 l_component_type_code        := 'S';
18168 l_component_appl_id          :=  200;
18169 l_amb_context_code           := 'DEFAULT';
18170 l_entity_code                := 'AP_INVOICES';
18171 l_event_class_code           := 'PREPAYMENTS';
18172 l_event_type_code            := 'PREPAYMENTS_ALL';
18173 l_line_definition_owner_code := 'S';
18174 l_line_definition_code       := 'ENC_PREPAY_ALL';
18175 --
18176 l_balance_type_code          := 'E';
18177 l_segment                     := NULL;
18178 l_ccid                        := NULL;
18179 l_adr_transaction_coa_id      := NULL;
18180 l_adr_accounting_coa_id       := NULL;
18181 l_adr_flexfield_segment_code  := NULL;
18185 l_adr_value_segment_code      := NULL;
18182 l_adr_flex_value_set_id       := NULL;
18183 l_adr_value_type_code         := NULL;
18184 l_adr_value_combination_id    := NULL;
18186 
18187 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18188 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
18189 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18190 l_budgetary_control_flag     := 'Y';
18191 
18192 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18193 l_bflow_applied_to_amt       := NULL; -- 5132302
18194 l_entered_amt_idx            := NULL;          -- 4262811
18195 l_accted_amt_idx             := NULL;          -- 4262811
18196 l_acc_rev_flag               := NULL;          -- 4262811
18197 l_accrual_line_num           := NULL;          -- 4262811
18198 l_tmp_amt                    := NULL;          -- 4262811
18199 --
18200  
18201 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18202     l_balance_type_code <> 'B' THEN
18203 IF NVL(p_source_15,'
18204 ') =  'IPV' AND 
18205 NVL(p_source_17,'
18206 ') =  'Y'
18207  THEN 
18208 
18209    --
18210    XLA_AE_LINES_PKG.SetNewLine;
18211 
18212    p_balance_type_code          := l_balance_type_code;
18213    -- set the flag so later we will know whether the gain loss line needs to be created
18214    
18215    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18216      p_actual_flag :='A';
18217    END IF;
18218 
18219    --
18220    -- bulk performance
18221    --
18222    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18223                                       p_header_num   => 0); -- 4262811
18224    --
18225    -- set accounting line options
18226    --
18227    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18228            p_natural_side_code          => 'D'
18229          , p_gain_or_loss_flag          => 'N'
18230          , p_gl_transfer_mode_code      => 'S'
18231          , p_acct_entry_type_code       => 'E'
18232          , p_switch_side_flag           => 'Y'
18233          , p_merge_duplicate_code       => 'N'
18234          );
18235    --
18236    l_acc_rev_natural_side_code := 'C';  -- 4262811
18237    -- 
18238    --
18239    -- set accounting line type info
18240    --
18241    xla_ae_lines_pkg.SetAcctLineType
18242       (p_component_type             => l_component_type
18243       ,p_event_type_code            => l_event_type_code
18244       ,p_line_definition_owner_code => l_line_definition_owner_code
18245       ,p_line_definition_code       => l_line_definition_code
18246       ,p_accounting_line_code       => l_component_code
18247       ,p_accounting_line_type_code  => l_component_type_code
18248       ,p_accounting_line_appl_id    => l_component_appl_id
18249       ,p_amb_context_code           => l_amb_context_code
18250       ,p_entity_code                => l_entity_code
18251       ,p_event_class_code           => l_event_class_code);
18252    --
18253    -- set accounting class
18254    --
18255    xla_ae_lines_pkg.SetAcctClass(
18256            p_accounting_class_code  => 'IPV'
18257          , p_ae_header_id           => l_ae_header_id
18258          );
18259 
18260    --
18261    -- set rounding class
18262    --
18263    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18264                       'IPV';
18265 
18266    --
18267    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18268    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18269    --
18270    -- bulk performance
18271    --
18272    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18273 
18274    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18275       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18276 
18277    -- 4955764
18278    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18279       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18280 
18281    -- 4458381 Public Sector Enh
18282       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
18283    --
18284    -- set accounting attributes for the line type
18285    --
18286    l_entered_amt_idx := 23;
18287    l_accted_amt_idx  := 28;
18288    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
18289    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18290    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
18291    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18292    l_rec_acct_attrs.array_num_value(2)  := 
18293 xla_ae_sources_pkg.GetSystemSourceNum(
18294    p_source_code           => 'XLA_EVENT_APPL_ID'
18295  , p_source_type_code      => 'Y'
18296  , p_source_application_id =>  602
18297 );
18298    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18299    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
18300    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18301    l_rec_acct_attrs.array_char_value(4)  := 
18302 xla_ae_sources_pkg.GetSystemSourceChar(
18303    p_source_code           => 'XLA_ENTITY_CODE'
18304  , p_source_type_code      => 'Y'
18305  , p_source_application_id =>  602
18306 );
18307    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18311    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18308    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
18309    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18310    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
18312    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
18313    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18314    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
18315    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18316    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
18317    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18318    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
18319    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18320    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
18321    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
18322    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
18323    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
18324    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
18325    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
18326    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
18327    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
18328    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
18329    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
18330    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
18331    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
18332    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
18333    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
18334    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
18335    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
18336    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
18337    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
18338    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
18339    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
18340    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
18341    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
18342    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
18343    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
18344    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
18345    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
18346    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
18347    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
18348    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
18349    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
18350    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
18351    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
18352    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
18353    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
18354    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
18355    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
18356    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
18357    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
18358    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
18359    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
18360    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
18361    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
18362    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
18363    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
18364    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
18365    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
18366    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
18367    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
18368    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
18369    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
18370    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
18371    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
18372    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
18373    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
18374    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
18375    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
18376    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
18377    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
18378    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
18379    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
18380    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
18381    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
18382    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
18383    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
18384    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
18385 
18386    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18387    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18388 
18389    ---------------------------------------------------------------------------------------------------------------
18393 
18390    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18391    ---------------------------------------------------------------------------------------------------------------
18392    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18394    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18395    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18396 
18397    IF xla_accounting_cache_pkg.GetValueChar
18398          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18399          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18400    AND l_bflow_method_code = 'PRIOR_ENTRY'
18401 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18402    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18403          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18404        )
18405    THEN
18406          xla_ae_lines_pkg.BflowUpgEntry
18407            (p_business_method_code    => l_bflow_method_code
18408            ,p_business_class_code     => l_bflow_class_code
18409            ,p_balance_type            => l_balance_type_code);
18410    ELSE
18411       NULL;
18412 -- No business flow processing for business flow method of NONE.
18413    END IF;
18414 
18415    --
18416    -- call analytical criteria
18417    --
18418    
18419    --
18420    -- call description
18421    --
18422    
18423 xla_ae_lines_pkg.SetLineDescription(
18424    p_ae_header_id => l_ae_header_id
18425   ,p_description  => Description_2 (
18426      p_application_id         => p_application_id
18427    , p_ae_header_id           => l_ae_header_id 
18428 , p_source_1 => p_source_1
18429    )
18430 );
18431 
18432 
18433    --
18434    -- call ADRs
18435    -- Bug 4922099
18436    --
18437    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18438         (NVL(l_actual_upg_option, 'N') = 'O') OR
18439         (NVL(l_enc_upg_option, 'N') = 'O')
18440       )
18441    THEN
18442    NULL;
18443    --
18444    --
18445    
18446   l_ccid := AcctDerRule_7(
18447            p_application_id           => p_application_id
18448          , p_ae_header_id             => l_ae_header_id 
18449 , p_source_11 => p_source_11
18450          , x_transaction_coa_id       => l_adr_transaction_coa_id
18451          , x_accounting_coa_id        => l_adr_accounting_coa_id
18452          , x_value_type_code          => l_adr_value_type_code
18453          , p_side                     => 'NA'
18454    );
18455 
18456    xla_ae_lines_pkg.set_ccid(
18457     p_code_combination_id          => l_ccid
18458   , p_value_type_code              => l_adr_value_type_code
18459   , p_transaction_coa_id           => l_adr_transaction_coa_id
18460   , p_accounting_coa_id            => l_adr_accounting_coa_id
18461   , p_adr_code                     => 'AP_INVOICE_DIST'
18462   , p_adr_type_code                => 'S'
18463   , p_component_type               => l_component_type
18464   , p_component_code               => l_component_code
18465   , p_component_type_code          => l_component_type_code
18466   , p_component_appl_id            => l_component_appl_id
18467   , p_amb_context_code             => l_amb_context_code
18468   , p_side                         => 'NA'
18469   );
18470 
18471 
18472    --
18473    --
18474    END IF;
18475    --
18476    -- Bug 4922099
18477    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18478           (NVL(l_enc_upg_option, 'N') = 'O')
18479         ) AND
18480         (l_bflow_method_code = 'PRIOR_ENTRY')
18481       )
18482    THEN
18483       IF
18484       --
18485       1 = 2
18486       --
18487       THEN
18488       xla_accounting_err_pkg.build_message
18489                                     (p_appli_s_name            => 'XLA'
18490                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18491                                     ,p_token_1                 => 'LINE_NUMBER'
18492                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18493                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18494                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18495                                                                              l_component_type
18496                                                                             ,l_component_code
18497                                                                             ,l_component_type_code
18498                                                                             ,l_component_appl_id
18499                                                                             ,l_amb_context_code
18500                                                                             ,l_entity_code
18501                                                                             ,l_event_class_code
18502                                                                            )
18503                                     ,p_token_3                 => 'OWNER'
18504                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18505                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18509                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18506                                                                           ,p_lookup_code    => l_component_type_code
18507                                                                          )
18508                                     ,p_token_4                 => 'PRODUCT_NAME'
18510                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18511                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18512                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18513                                     ,p_ae_header_id            =>  NULL
18514                                        );
18515 
18516         IF (C_LEVEL_ERROR>= g_log_level) THEN
18517                  trace
18518                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18519                       ,p_level    => C_LEVEL_ERROR
18520                       ,p_module   => l_log_module);
18521         END IF;
18522       END IF;
18523    END IF;
18524    --
18525    --
18526    ------------------------------------------------------------------------------------------------
18527    -- 4219869 Business Flow
18528    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18529    -- Prior Entry.  Currently, the following code is always generated.
18530    ------------------------------------------------------------------------------------------------
18531    XLA_AE_LINES_PKG.ValidateCurrentLine;
18532 
18533    ------------------------------------------------------------------------------------
18534    -- 4219869 Business Flow
18535    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18536    ------------------------------------------------------------------------------------
18537    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18538 
18539    ----------------------------------------------------------------------------------
18540    -- 4219869 Business Flow
18541    -- Update journal entry status -- Need to generate this within IF <condition>
18542    ----------------------------------------------------------------------------------
18543    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18544          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18545          ,p_balance_type_code => l_balance_type_code
18546          );
18547 
18548    -------------------------------------------------------------------------------------------
18549    -- 4262811 - Generate the Accrual Reversal lines
18550    -------------------------------------------------------------------------------------------
18551    BEGIN
18552       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18553                               (g_array_event(p_event_id).array_value_num('header_index'));
18554       IF l_acc_rev_flag IS NULL THEN
18555          l_acc_rev_flag := 'N';
18556       END IF;
18557    EXCEPTION
18558       WHEN OTHERS THEN
18559          l_acc_rev_flag := 'N';
18560    END;
18561    --
18562    IF (l_acc_rev_flag = 'Y') THEN
18563 
18564        -- 4645092  ------------------------------------------------------------------------------
18565        -- To allow MPA report to determine if it should generate report process
18566        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18567        ------------------------------------------------------------------------------------------
18568 
18569        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18570        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18571    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18572    -- call ADRs
18573    -- Bug 4922099
18574    --
18575    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18576         (NVL(l_actual_upg_option, 'N') = 'O') OR
18577         (NVL(l_enc_upg_option, 'N') = 'O')
18578       )
18579    THEN
18580    NULL;
18581    --
18582    --
18583    
18584   l_ccid := AcctDerRule_7(
18585            p_application_id           => p_application_id
18586          , p_ae_header_id             => l_ae_header_id 
18587 , p_source_11 => p_source_11
18588          , x_transaction_coa_id       => l_adr_transaction_coa_id
18589          , x_accounting_coa_id        => l_adr_accounting_coa_id
18590          , x_value_type_code          => l_adr_value_type_code
18591          , p_side                     => 'NA'
18592    );
18593 
18594    xla_ae_lines_pkg.set_ccid(
18595     p_code_combination_id          => l_ccid
18596   , p_value_type_code              => l_adr_value_type_code
18597   , p_transaction_coa_id           => l_adr_transaction_coa_id
18598   , p_accounting_coa_id            => l_adr_accounting_coa_id
18599   , p_adr_code                     => 'AP_INVOICE_DIST'
18600   , p_adr_type_code                => 'S'
18601   , p_component_type               => l_component_type
18602   , p_component_code               => l_component_code
18603   , p_component_type_code          => l_component_type_code
18604   , p_component_appl_id            => l_component_appl_id
18605   , p_amb_context_code             => l_amb_context_code
18606   , p_side                         => 'NA'
18607   );
18608 
18609 
18610    --
18611    --
18612    END IF;
18613 
18614        --
18618                                          p_header_num   => 1);
18615        -- Update the line information that should be overwritten
18616        --
18617        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18619        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18620 
18621        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18622 
18623        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18624           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18625        END IF;
18626 
18627       --
18628       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18629       --
18630       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18631           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18632       ELSE
18633           ---------------------------------------------------------------------------------------------------
18634           -- 4262811a Switch Sign
18635           ---------------------------------------------------------------------------------------------------
18636           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18637           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18638                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18639           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18640                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18641           -- 5132302
18642           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18643                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18644 
18645       END IF;
18646 
18647       -- 4955764
18648       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18649       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18650 
18651 
18652       XLA_AE_LINES_PKG.ValidateCurrentLine;
18653       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18654 
18655       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18656                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18657                ,p_balance_type_code => l_balance_type_code);
18658 
18659    END IF;
18660 
18661    -----------------------------------------------------------------------------------------
18662    -- 4262811 Multiperiod Accounting
18663    -----------------------------------------------------------------------------------------
18664      -- No MPA option is assigned.
18665 
18666 
18667 END IF;
18668 END IF;
18669 --
18670 
18671 --
18672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18673    trace
18674       (p_msg      => 'END of AcctLineType_36'
18675       ,p_level    => C_LEVEL_PROCEDURE
18676       ,p_module   => l_log_module);
18677 END IF;
18678 --
18679 EXCEPTION
18680   WHEN xla_exceptions_pkg.application_exception THEN
18681       RAISE;
18682   WHEN OTHERS THEN
18683        xla_exceptions_pkg.raise_message
18684            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_36');
18685 END AcctLineType_36;
18686 --
18687 
18688 ---------------------------------------
18689 --
18690 -- PRIVATE FUNCTION
18691 --         AcctLineType_37
18692 --
18693 ---------------------------------------
18694 PROCEDURE AcctLineType_37 (
18695   p_application_id        IN NUMBER
18696  ,p_event_id              IN NUMBER
18697  ,p_calculate_acctd_flag  IN VARCHAR2
18698  ,p_calculate_g_l_flag    IN VARCHAR2
18699  ,p_actual_flag           IN OUT VARCHAR2
18700  ,p_balance_type_code     OUT VARCHAR2
18701  ,p_gain_or_loss_ref      OUT VARCHAR2
18702  
18703 --Invoice Distribution Description
18704  , p_source_1            IN VARCHAR2
18705 --Invoice Distribution Account
18706  , p_source_11            IN NUMBER
18707 --Invoice Distribution Type
18708  , p_source_15            IN VARCHAR2
18709  , p_source_15_meaning    IN VARCHAR2
18710 --Purchasing Encumbrance Option
18711  , p_source_17            IN VARCHAR2
18712  , p_source_17_meaning    IN VARCHAR2
18713 --Accrue on Receipt Option
18714  , p_source_18            IN VARCHAR2
18715  , p_source_18_meaning    IN VARCHAR2
18716 --Accounting Reversal Indicator
18717  , p_source_19            IN VARCHAR2
18718 --Distribution Link Type
18719  , p_source_21            IN VARCHAR2
18720 --Allocation to Main Distribution Identifier
18721  , p_source_23            IN NUMBER
18722 --Invoice Identifier
18723  , p_source_24            IN NUMBER
18724 --Business Flow Accounts Payable Application Identifier
18725  , p_source_25            IN NUMBER
18726 --Business Flow Invoice Distribution Type
18727  , p_source_26            IN VARCHAR2
18728 --Business Flow Invoice Entity Code
18729  , p_source_27            IN VARCHAR2
18730 --Business Flow Invoice Distribution Identifier
18731  , p_source_28            IN NUMBER
18732 --Business Flow Invoice Identifier
18733  , p_source_29            IN NUMBER
18734 --Invoice Distribution Identifier
18735  , p_source_30            IN NUMBER
18739  , p_source_32            IN NUMBER
18736 --Payables Encumbrance Upgrade Credit Account
18737  , p_source_31            IN NUMBER
18738 --Payables Encumbrance Upgrade Credit Amount
18740 --Invoice Currency Code
18741  , p_source_33            IN VARCHAR2
18742 --Payables Encumbrance Upgrade Credit Base Amount
18743  , p_source_34            IN NUMBER
18744 --Payables Encumbrance Upgrade Debit Account
18745  , p_source_35            IN NUMBER
18746 --Payables Encumbrance Upgrade Debit Amount
18747  , p_source_36            IN NUMBER
18748 --Payables Encumbrance Upgrade Debit Base Amount
18749  , p_source_37            IN NUMBER
18750 --Payables Encumbrance Upgrade Option
18751  , p_source_38            IN VARCHAR2
18752 --Invoice Exchange Date
18753  , p_source_39            IN DATE
18754 --Invoice Exchange Rate
18755  , p_source_40            IN NUMBER
18756 --Invoice Exchange Rate Type
18757  , p_source_41            IN VARCHAR2
18758 --Deferred Accounting End Date
18759  , p_source_43            IN DATE
18760 --Deferred Accounting Option
18761  , p_source_44            IN VARCHAR2
18762 --Deferred Accounting Start Date
18763  , p_source_45            IN DATE
18764 --Override Accounted Amount Indicator
18765  , p_source_46            IN VARCHAR2
18766  , p_source_46_meaning    IN VARCHAR2
18767 --Invoice Supplier Identifier
18768  , p_source_47            IN NUMBER
18769 --Invoice Supplier Site Identifier
18770  , p_source_48            IN NUMBER
18771 --Third Party Type
18772  , p_source_49            IN VARCHAR2
18773 --Parent Reversal Identifier
18774  , p_source_50            IN NUMBER
18775 --Invoice Distribution Statistical Amount
18776  , p_source_51            IN NUMBER
18777 --Invoice Distribution Tax Line Identifier
18778  , p_source_52            IN NUMBER
18779 --Invoice Distribution Tax Distribution Identifier from Tax
18780  , p_source_53            IN NUMBER
18781 --Invoice Distribution Summary Tax Line Identifier
18782  , p_source_54            IN NUMBER
18783 --Payables Upgrade Credit Encumbrance Type Identifier
18784  , p_source_55            IN NUMBER
18785 --Payables Upgrade Debit Encumbrance Type Identifier
18786  , p_source_56            IN NUMBER
18787 --Invoice Distribution Encumbrance Amount
18788  , p_source_65            IN NUMBER
18789 --Invoice Distribution Encumbrance Ledger Amount
18790  , p_source_66            IN NUMBER
18791 )
18792 IS
18793 
18794 l_component_type              VARCHAR2(80);
18795 l_component_code              VARCHAR2(30);
18796 l_component_type_code         VARCHAR2(1);
18797 l_component_appl_id           INTEGER;
18798 l_amb_context_code            VARCHAR2(30);
18799 l_entity_code                 VARCHAR2(30);
18800 l_event_class_code            VARCHAR2(30);
18801 l_ae_header_id                NUMBER;
18802 l_event_type_code             VARCHAR2(30);
18803 l_line_definition_code        VARCHAR2(30);
18804 l_line_definition_owner_code  VARCHAR2(1);
18805 --
18806 -- adr variables
18807 l_segment                     VARCHAR2(30);
18808 l_ccid                        NUMBER;
18809 l_adr_transaction_coa_id      NUMBER;
18810 l_adr_accounting_coa_id       NUMBER;
18811 l_adr_flexfield_segment_code  VARCHAR2(30);
18812 l_adr_flex_value_set_id       NUMBER;
18813 l_adr_value_type_code         VARCHAR2(30);
18814 l_adr_value_combination_id    NUMBER;
18815 l_adr_value_segment_code      VARCHAR2(30);
18816 
18817 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18818 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18819 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18820 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18821 
18822 -- 4262811 Variables ------------------------------------------------------------------------------------------
18823 l_entered_amt_idx             NUMBER;
18824 l_accted_amt_idx              NUMBER;
18825 l_acc_rev_flag                VARCHAR2(1);
18826 l_accrual_line_num            NUMBER;
18827 l_tmp_amt                     NUMBER;
18828 l_acc_rev_natural_side_code   VARCHAR2(1);
18829 
18830 l_num_entries                 NUMBER;
18831 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18832 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18833 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18834 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18835 l_recog_line_1                NUMBER;
18836 l_recog_line_2                NUMBER;
18837 
18838 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18839 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18840 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18841 
18842 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18843 
18844 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18845 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18846 
18847 ---------------------------------------------------------------------------------------------------------------
18848 
18849 
18850 --
18851 -- bulk performance
18852 --
18853 l_balance_type_code           VARCHAR2(1);
18854 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18855 l_log_module                  VARCHAR2(240);
18856 
18857 --
18858 -- Upgrade strategy
18859 --
18860 l_actual_upg_option           VARCHAR2(1);
18864 BEGIN
18861 l_enc_upg_option           VARCHAR2(1);
18862 
18863 --
18865 --
18866 IF g_log_enabled THEN
18867       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
18868 END IF;
18869 --
18870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18871 
18872       trace
18873          (p_msg      => 'BEGIN of AcctLineType_37'
18874          ,p_level    => C_LEVEL_PROCEDURE
18875          ,p_module   => l_log_module);
18876 
18877 END IF;
18878 --
18879 l_component_type             := 'AMB_JLT';
18880 l_component_code             := 'AP_ITEM_EXPENSE_CM_ENC_DR';
18881 l_component_type_code        := 'S';
18882 l_component_appl_id          :=  200;
18883 l_amb_context_code           := 'DEFAULT';
18884 l_entity_code                := 'AP_INVOICES';
18885 l_event_class_code           := 'CREDIT MEMOS';
18886 l_event_type_code            := 'CREDIT MEMOS_ALL';
18887 l_line_definition_owner_code := 'S';
18888 l_line_definition_code       := 'ENC_CM_ALL';
18889 --
18890 l_balance_type_code          := 'E';
18891 l_segment                     := NULL;
18892 l_ccid                        := NULL;
18893 l_adr_transaction_coa_id      := NULL;
18894 l_adr_accounting_coa_id       := NULL;
18895 l_adr_flexfield_segment_code  := NULL;
18896 l_adr_flex_value_set_id       := NULL;
18897 l_adr_value_type_code         := NULL;
18898 l_adr_value_combination_id    := NULL;
18899 l_adr_value_segment_code      := NULL;
18900 
18901 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18902 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
18903 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18904 l_budgetary_control_flag     := 'Y';
18905 
18906 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18907 l_bflow_applied_to_amt       := NULL; -- 5132302
18908 l_entered_amt_idx            := NULL;          -- 4262811
18909 l_accted_amt_idx             := NULL;          -- 4262811
18910 l_acc_rev_flag               := NULL;          -- 4262811
18911 l_accrual_line_num           := NULL;          -- 4262811
18912 l_tmp_amt                    := NULL;          -- 4262811
18913 --
18914  
18915 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18916     l_balance_type_code <> 'B' THEN
18917 IF NVL(p_source_15,'
18918 ') =  'ITEM' AND 
18919 NVL(p_source_18,'
18920 ') <>  'Y' AND 
18921 NVL(p_source_17,'
18922 ') =  'Y'
18923  THEN 
18924 
18925    --
18926    XLA_AE_LINES_PKG.SetNewLine;
18927 
18928    p_balance_type_code          := l_balance_type_code;
18929    -- set the flag so later we will know whether the gain loss line needs to be created
18930    
18931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18932      p_actual_flag :='A';
18933    END IF;
18934 
18935    --
18936    -- bulk performance
18937    --
18938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18939                                       p_header_num   => 0); -- 4262811
18940    --
18941    -- set accounting line options
18942    --
18943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18944            p_natural_side_code          => 'D'
18945          , p_gain_or_loss_flag          => 'N'
18946          , p_gl_transfer_mode_code      => 'S'
18947          , p_acct_entry_type_code       => 'E'
18948          , p_switch_side_flag           => 'Y'
18949          , p_merge_duplicate_code       => 'N'
18950          );
18951    --
18952    l_acc_rev_natural_side_code := 'C';  -- 4262811
18953    -- 
18954    --
18955    -- set accounting line type info
18956    --
18957    xla_ae_lines_pkg.SetAcctLineType
18958       (p_component_type             => l_component_type
18959       ,p_event_type_code            => l_event_type_code
18960       ,p_line_definition_owner_code => l_line_definition_owner_code
18961       ,p_line_definition_code       => l_line_definition_code
18962       ,p_accounting_line_code       => l_component_code
18963       ,p_accounting_line_type_code  => l_component_type_code
18964       ,p_accounting_line_appl_id    => l_component_appl_id
18965       ,p_amb_context_code           => l_amb_context_code
18966       ,p_entity_code                => l_entity_code
18967       ,p_event_class_code           => l_event_class_code);
18968    --
18969    -- set accounting class
18970    --
18971    xla_ae_lines_pkg.SetAcctClass(
18972            p_accounting_class_code  => 'ITEM EXPENSE'
18973          , p_ae_header_id           => l_ae_header_id
18974          );
18975 
18976    --
18977    -- set rounding class
18978    --
18979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18980                       'ITEM EXPENSE';
18981 
18982    --
18983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18985    --
18986    -- bulk performance
18987    --
18988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18989 
18990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18992 
18993    -- 4955764
18994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18998       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
18995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18996 
18997    -- 4458381 Public Sector Enh
18999    --
19000    -- set accounting attributes for the line type
19001    --
19002    l_entered_amt_idx := 23;
19003    l_accted_amt_idx  := 28;
19004    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
19005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19006    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
19007    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19008    l_rec_acct_attrs.array_num_value(2)  := 
19009 xla_ae_sources_pkg.GetSystemSourceNum(
19010    p_source_code           => 'XLA_EVENT_APPL_ID'
19011  , p_source_type_code      => 'Y'
19012  , p_source_application_id =>  602
19013 );
19014    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19015    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
19016    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19017    l_rec_acct_attrs.array_char_value(4)  := 
19018 xla_ae_sources_pkg.GetSystemSourceChar(
19019    p_source_code           => 'XLA_ENTITY_CODE'
19020  , p_source_type_code      => 'Y'
19021  , p_source_application_id =>  602
19022 );
19023    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19024    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
19025    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19026    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
19027    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19028    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
19029    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19030    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
19031    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19032    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
19033    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19034    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
19035    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19036    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
19037    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19038    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
19039    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19040    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
19041    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19042    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
19043    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19044    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
19045    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19046    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
19047    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19048    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
19049    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19050    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
19051    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19052    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
19053    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19054    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
19055    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19056    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
19057    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19058    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
19059    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19060    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
19061    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19062    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
19063    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
19064    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
19065    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
19066    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
19067    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
19068    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
19069    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
19070    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
19071    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
19072    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
19073    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
19074    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
19075    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
19076    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
19077    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
19078    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
19079    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
19080    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
19081    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
19082    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
19083    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
19084    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
19088    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
19085    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
19086    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
19087    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
19089    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
19090    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
19091    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
19092    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
19093    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
19094    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
19095    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
19096    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
19097    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
19098    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
19099    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
19100    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
19101 
19102    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19103    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19104 
19105    ---------------------------------------------------------------------------------------------------------------
19106    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19107    ---------------------------------------------------------------------------------------------------------------
19108    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19109 
19110    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19111    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19112 
19113    IF xla_accounting_cache_pkg.GetValueChar
19114          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19115          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19116    AND l_bflow_method_code = 'PRIOR_ENTRY'
19117 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19118    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19119          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19120        )
19121    THEN
19122          xla_ae_lines_pkg.BflowUpgEntry
19123            (p_business_method_code    => l_bflow_method_code
19124            ,p_business_class_code     => l_bflow_class_code
19125            ,p_balance_type            => l_balance_type_code);
19126    ELSE
19127       NULL;
19128 -- No business flow processing for business flow method of NONE.
19129    END IF;
19130 
19131    --
19132    -- call analytical criteria
19133    --
19134    
19135    --
19136    -- call description
19137    --
19138    
19139 xla_ae_lines_pkg.SetLineDescription(
19140    p_ae_header_id => l_ae_header_id
19141   ,p_description  => Description_2 (
19142      p_application_id         => p_application_id
19143    , p_ae_header_id           => l_ae_header_id 
19144 , p_source_1 => p_source_1
19145    )
19146 );
19147 
19148 
19149    --
19150    -- call ADRs
19151    -- Bug 4922099
19152    --
19153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19154         (NVL(l_actual_upg_option, 'N') = 'O') OR
19155         (NVL(l_enc_upg_option, 'N') = 'O')
19156       )
19157    THEN
19158    NULL;
19159    --
19160    --
19161    
19162   l_ccid := AcctDerRule_7(
19163            p_application_id           => p_application_id
19164          , p_ae_header_id             => l_ae_header_id 
19165 , p_source_11 => p_source_11
19166          , x_transaction_coa_id       => l_adr_transaction_coa_id
19167          , x_accounting_coa_id        => l_adr_accounting_coa_id
19168          , x_value_type_code          => l_adr_value_type_code
19169          , p_side                     => 'NA'
19170    );
19171 
19172    xla_ae_lines_pkg.set_ccid(
19173     p_code_combination_id          => l_ccid
19174   , p_value_type_code              => l_adr_value_type_code
19175   , p_transaction_coa_id           => l_adr_transaction_coa_id
19176   , p_accounting_coa_id            => l_adr_accounting_coa_id
19177   , p_adr_code                     => 'AP_INVOICE_DIST'
19178   , p_adr_type_code                => 'S'
19179   , p_component_type               => l_component_type
19180   , p_component_code               => l_component_code
19181   , p_component_type_code          => l_component_type_code
19182   , p_component_appl_id            => l_component_appl_id
19183   , p_amb_context_code             => l_amb_context_code
19184   , p_side                         => 'NA'
19185   );
19186 
19187 
19188    --
19189    --
19190    END IF;
19191    --
19192    -- Bug 4922099
19193    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19194           (NVL(l_enc_upg_option, 'N') = 'O')
19195         ) AND
19196         (l_bflow_method_code = 'PRIOR_ENTRY')
19197       )
19198    THEN
19199       IF
19200       --
19201       1 = 2
19202       --
19203       THEN
19204       xla_accounting_err_pkg.build_message
19205                                     (p_appli_s_name            => 'XLA'
19209                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19206                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19207                                     ,p_token_1                 => 'LINE_NUMBER'
19208                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19210                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19211                                                                              l_component_type
19212                                                                             ,l_component_code
19213                                                                             ,l_component_type_code
19214                                                                             ,l_component_appl_id
19215                                                                             ,l_amb_context_code
19216                                                                             ,l_entity_code
19217                                                                             ,l_event_class_code
19218                                                                            )
19219                                     ,p_token_3                 => 'OWNER'
19220                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19221                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19222                                                                           ,p_lookup_code    => l_component_type_code
19223                                                                          )
19224                                     ,p_token_4                 => 'PRODUCT_NAME'
19225                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19226                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19227                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19228                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19229                                     ,p_ae_header_id            =>  NULL
19230                                        );
19231 
19232         IF (C_LEVEL_ERROR>= g_log_level) THEN
19233                  trace
19234                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19235                       ,p_level    => C_LEVEL_ERROR
19236                       ,p_module   => l_log_module);
19237         END IF;
19238       END IF;
19239    END IF;
19240    --
19241    --
19242    ------------------------------------------------------------------------------------------------
19243    -- 4219869 Business Flow
19244    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19245    -- Prior Entry.  Currently, the following code is always generated.
19246    ------------------------------------------------------------------------------------------------
19247    XLA_AE_LINES_PKG.ValidateCurrentLine;
19248 
19249    ------------------------------------------------------------------------------------
19250    -- 4219869 Business Flow
19251    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19252    ------------------------------------------------------------------------------------
19253    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19254 
19255    ----------------------------------------------------------------------------------
19256    -- 4219869 Business Flow
19257    -- Update journal entry status -- Need to generate this within IF <condition>
19258    ----------------------------------------------------------------------------------
19259    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19260          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19261          ,p_balance_type_code => l_balance_type_code
19262          );
19263 
19264    -------------------------------------------------------------------------------------------
19265    -- 4262811 - Generate the Accrual Reversal lines
19266    -------------------------------------------------------------------------------------------
19267    BEGIN
19268       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19269                               (g_array_event(p_event_id).array_value_num('header_index'));
19270       IF l_acc_rev_flag IS NULL THEN
19271          l_acc_rev_flag := 'N';
19272       END IF;
19273    EXCEPTION
19274       WHEN OTHERS THEN
19275          l_acc_rev_flag := 'N';
19276    END;
19277    --
19278    IF (l_acc_rev_flag = 'Y') THEN
19279 
19280        -- 4645092  ------------------------------------------------------------------------------
19281        -- To allow MPA report to determine if it should generate report process
19282        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19283        ------------------------------------------------------------------------------------------
19284 
19285        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19286        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19287    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19288    -- call ADRs
19289    -- Bug 4922099
19290    --
19291    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19292         (NVL(l_actual_upg_option, 'N') = 'O') OR
19293         (NVL(l_enc_upg_option, 'N') = 'O')
19294       )
19295    THEN
19296    NULL;
19297    --
19298    --
19299    
19303 , p_source_11 => p_source_11
19300   l_ccid := AcctDerRule_7(
19301            p_application_id           => p_application_id
19302          , p_ae_header_id             => l_ae_header_id 
19304          , x_transaction_coa_id       => l_adr_transaction_coa_id
19305          , x_accounting_coa_id        => l_adr_accounting_coa_id
19306          , x_value_type_code          => l_adr_value_type_code
19307          , p_side                     => 'NA'
19308    );
19309 
19310    xla_ae_lines_pkg.set_ccid(
19311     p_code_combination_id          => l_ccid
19312   , p_value_type_code              => l_adr_value_type_code
19313   , p_transaction_coa_id           => l_adr_transaction_coa_id
19314   , p_accounting_coa_id            => l_adr_accounting_coa_id
19315   , p_adr_code                     => 'AP_INVOICE_DIST'
19316   , p_adr_type_code                => 'S'
19317   , p_component_type               => l_component_type
19318   , p_component_code               => l_component_code
19319   , p_component_type_code          => l_component_type_code
19320   , p_component_appl_id            => l_component_appl_id
19321   , p_amb_context_code             => l_amb_context_code
19322   , p_side                         => 'NA'
19323   );
19324 
19325 
19326    --
19327    --
19328    END IF;
19329 
19330        --
19331        -- Update the line information that should be overwritten
19332        --
19333        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19334                                          p_header_num   => 1);
19335        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19336 
19337        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19338 
19339        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19340           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19341        END IF;
19342 
19343       --
19344       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19345       --
19346       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19347           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19348       ELSE
19349           ---------------------------------------------------------------------------------------------------
19350           -- 4262811a Switch Sign
19351           ---------------------------------------------------------------------------------------------------
19352           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19353           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19354                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19355           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19356                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19357           -- 5132302
19358           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19359                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19360 
19361       END IF;
19362 
19363       -- 4955764
19364       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19365       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19366 
19367 
19368       XLA_AE_LINES_PKG.ValidateCurrentLine;
19369       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19370 
19371       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19372                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19373                ,p_balance_type_code => l_balance_type_code);
19374 
19375    END IF;
19376 
19377    -----------------------------------------------------------------------------------------
19378    -- 4262811 Multiperiod Accounting
19379    -----------------------------------------------------------------------------------------
19380      -- No MPA option is assigned.
19381 
19382 
19383 END IF;
19384 END IF;
19385 --
19386 
19387 --
19388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19389    trace
19390       (p_msg      => 'END of AcctLineType_37'
19391       ,p_level    => C_LEVEL_PROCEDURE
19392       ,p_module   => l_log_module);
19393 END IF;
19394 --
19395 EXCEPTION
19396   WHEN xla_exceptions_pkg.application_exception THEN
19397       RAISE;
19398   WHEN OTHERS THEN
19399        xla_exceptions_pkg.raise_message
19400            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_37');
19401 END AcctLineType_37;
19402 --
19403 
19404 ---------------------------------------
19405 --
19406 -- PRIVATE FUNCTION
19407 --         AcctLineType_38
19408 --
19409 ---------------------------------------
19410 PROCEDURE AcctLineType_38 (
19411   p_application_id        IN NUMBER
19412  ,p_event_id              IN NUMBER
19413  ,p_calculate_acctd_flag  IN VARCHAR2
19414  ,p_calculate_g_l_flag    IN VARCHAR2
19415  ,p_actual_flag           IN OUT VARCHAR2
19416  ,p_balance_type_code     OUT VARCHAR2
19417  ,p_gain_or_loss_ref      OUT VARCHAR2
19418  
19419 --Invoice Distribution Description
19420  , p_source_1            IN VARCHAR2
19424  , p_source_15            IN VARCHAR2
19421 --Invoice Distribution Account
19422  , p_source_11            IN NUMBER
19423 --Invoice Distribution Type
19425  , p_source_15_meaning    IN VARCHAR2
19426 --Purchasing Encumbrance Option
19427  , p_source_17            IN VARCHAR2
19428  , p_source_17_meaning    IN VARCHAR2
19429 --Accrue on Receipt Option
19430  , p_source_18            IN VARCHAR2
19431  , p_source_18_meaning    IN VARCHAR2
19432 --Accounting Reversal Indicator
19433  , p_source_19            IN VARCHAR2
19434 --Distribution Link Type
19435  , p_source_21            IN VARCHAR2
19436 --Allocation to Main Distribution Identifier
19437  , p_source_23            IN NUMBER
19438 --Invoice Identifier
19439  , p_source_24            IN NUMBER
19440 --Business Flow Accounts Payable Application Identifier
19441  , p_source_25            IN NUMBER
19442 --Business Flow Invoice Distribution Type
19443  , p_source_26            IN VARCHAR2
19444 --Business Flow Invoice Entity Code
19445  , p_source_27            IN VARCHAR2
19446 --Business Flow Invoice Distribution Identifier
19447  , p_source_28            IN NUMBER
19448 --Business Flow Invoice Identifier
19449  , p_source_29            IN NUMBER
19450 --Invoice Distribution Identifier
19451  , p_source_30            IN NUMBER
19452 --Payables Encumbrance Upgrade Credit Account
19453  , p_source_31            IN NUMBER
19454 --Payables Encumbrance Upgrade Credit Amount
19455  , p_source_32            IN NUMBER
19456 --Invoice Currency Code
19457  , p_source_33            IN VARCHAR2
19458 --Payables Encumbrance Upgrade Credit Base Amount
19459  , p_source_34            IN NUMBER
19460 --Payables Encumbrance Upgrade Debit Account
19461  , p_source_35            IN NUMBER
19462 --Payables Encumbrance Upgrade Debit Amount
19463  , p_source_36            IN NUMBER
19464 --Payables Encumbrance Upgrade Debit Base Amount
19465  , p_source_37            IN NUMBER
19466 --Payables Encumbrance Upgrade Option
19467  , p_source_38            IN VARCHAR2
19468 --Invoice Exchange Date
19469  , p_source_39            IN DATE
19470 --Invoice Exchange Rate
19471  , p_source_40            IN NUMBER
19472 --Invoice Exchange Rate Type
19473  , p_source_41            IN VARCHAR2
19474 --Deferred Accounting End Date
19475  , p_source_43            IN DATE
19476 --Deferred Accounting Option
19477  , p_source_44            IN VARCHAR2
19478 --Deferred Accounting Start Date
19479  , p_source_45            IN DATE
19480 --Override Accounted Amount Indicator
19481  , p_source_46            IN VARCHAR2
19482  , p_source_46_meaning    IN VARCHAR2
19483 --Invoice Supplier Identifier
19484  , p_source_47            IN NUMBER
19485 --Invoice Supplier Site Identifier
19486  , p_source_48            IN NUMBER
19487 --Third Party Type
19488  , p_source_49            IN VARCHAR2
19489 --Parent Reversal Identifier
19490  , p_source_50            IN NUMBER
19491 --Invoice Distribution Tax Line Identifier
19492  , p_source_52            IN NUMBER
19493 --Invoice Distribution Tax Distribution Identifier from Tax
19494  , p_source_53            IN NUMBER
19495 --Invoice Distribution Summary Tax Line Identifier
19496  , p_source_54            IN NUMBER
19497 --Payables Upgrade Credit Encumbrance Type Identifier
19498  , p_source_55            IN NUMBER
19499 --Payables Upgrade Debit Encumbrance Type Identifier
19500  , p_source_56            IN NUMBER
19501 --Invoice Distribution Encumbrance Amount
19502  , p_source_65            IN NUMBER
19503 --Invoice Distribution Encumbrance Ledger Amount
19504  , p_source_66            IN NUMBER
19505 )
19506 IS
19507 
19508 l_component_type              VARCHAR2(80);
19509 l_component_code              VARCHAR2(30);
19510 l_component_type_code         VARCHAR2(1);
19511 l_component_appl_id           INTEGER;
19512 l_amb_context_code            VARCHAR2(30);
19513 l_entity_code                 VARCHAR2(30);
19514 l_event_class_code            VARCHAR2(30);
19515 l_ae_header_id                NUMBER;
19516 l_event_type_code             VARCHAR2(30);
19517 l_line_definition_code        VARCHAR2(30);
19518 l_line_definition_owner_code  VARCHAR2(1);
19519 --
19520 -- adr variables
19521 l_segment                     VARCHAR2(30);
19522 l_ccid                        NUMBER;
19523 l_adr_transaction_coa_id      NUMBER;
19524 l_adr_accounting_coa_id       NUMBER;
19525 l_adr_flexfield_segment_code  VARCHAR2(30);
19526 l_adr_flex_value_set_id       NUMBER;
19527 l_adr_value_type_code         VARCHAR2(30);
19528 l_adr_value_combination_id    NUMBER;
19529 l_adr_value_segment_code      VARCHAR2(30);
19530 
19531 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19532 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19533 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19534 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19535 
19536 -- 4262811 Variables ------------------------------------------------------------------------------------------
19537 l_entered_amt_idx             NUMBER;
19538 l_accted_amt_idx              NUMBER;
19539 l_acc_rev_flag                VARCHAR2(1);
19540 l_accrual_line_num            NUMBER;
19541 l_tmp_amt                     NUMBER;
19542 l_acc_rev_natural_side_code   VARCHAR2(1);
19543 
19544 l_num_entries                 NUMBER;
19545 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19546 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19547 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19551 
19548 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19549 l_recog_line_1                NUMBER;
19550 l_recog_line_2                NUMBER;
19552 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19553 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19554 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19555 
19556 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19557 
19558 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19559 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19560 
19561 ---------------------------------------------------------------------------------------------------------------
19562 
19563 
19564 --
19565 -- bulk performance
19566 --
19567 l_balance_type_code           VARCHAR2(1);
19568 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19569 l_log_module                  VARCHAR2(240);
19570 
19571 --
19572 -- Upgrade strategy
19573 --
19574 l_actual_upg_option           VARCHAR2(1);
19575 l_enc_upg_option           VARCHAR2(1);
19576 
19577 --
19578 BEGIN
19579 --
19580 IF g_log_enabled THEN
19581       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
19582 END IF;
19583 --
19584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19585 
19586       trace
19587          (p_msg      => 'BEGIN of AcctLineType_38'
19588          ,p_level    => C_LEVEL_PROCEDURE
19589          ,p_module   => l_log_module);
19590 
19591 END IF;
19592 --
19593 l_component_type             := 'AMB_JLT';
19594 l_component_code             := 'AP_ITEM_EXPENSE_DM_ENC_DR';
19595 l_component_type_code        := 'S';
19596 l_component_appl_id          :=  200;
19597 l_amb_context_code           := 'DEFAULT';
19598 l_entity_code                := 'AP_INVOICES';
19599 l_event_class_code           := 'DEBIT MEMOS';
19600 l_event_type_code            := 'DEBIT MEMOS_ALL';
19601 l_line_definition_owner_code := 'S';
19602 l_line_definition_code       := 'ENC_DM_ALL';
19603 --
19604 l_balance_type_code          := 'E';
19605 l_segment                     := NULL;
19606 l_ccid                        := NULL;
19607 l_adr_transaction_coa_id      := NULL;
19608 l_adr_accounting_coa_id       := NULL;
19609 l_adr_flexfield_segment_code  := NULL;
19610 l_adr_flex_value_set_id       := NULL;
19611 l_adr_value_type_code         := NULL;
19612 l_adr_value_combination_id    := NULL;
19613 l_adr_value_segment_code      := NULL;
19614 
19615 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
19616 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
19617 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19618 l_budgetary_control_flag     := 'Y';
19619 
19620 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19621 l_bflow_applied_to_amt       := NULL; -- 5132302
19622 l_entered_amt_idx            := NULL;          -- 4262811
19623 l_accted_amt_idx             := NULL;          -- 4262811
19624 l_acc_rev_flag               := NULL;          -- 4262811
19625 l_accrual_line_num           := NULL;          -- 4262811
19626 l_tmp_amt                    := NULL;          -- 4262811
19627 --
19628  
19629 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19630     l_balance_type_code <> 'B' THEN
19631 IF NVL(p_source_15,'
19632 ') =  'ITEM' AND 
19633 NVL(p_source_18,'
19634 ') <>  'Y' AND 
19635 NVL(p_source_17,'
19636 ') =  'Y'
19637  THEN 
19638 
19639    --
19640    XLA_AE_LINES_PKG.SetNewLine;
19641 
19642    p_balance_type_code          := l_balance_type_code;
19643    -- set the flag so later we will know whether the gain loss line needs to be created
19644    
19645    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19646      p_actual_flag :='A';
19647    END IF;
19648 
19649    --
19650    -- bulk performance
19651    --
19652    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19653                                       p_header_num   => 0); -- 4262811
19654    --
19655    -- set accounting line options
19656    --
19657    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19658            p_natural_side_code          => 'D'
19659          , p_gain_or_loss_flag          => 'N'
19660          , p_gl_transfer_mode_code      => 'S'
19661          , p_acct_entry_type_code       => 'E'
19662          , p_switch_side_flag           => 'Y'
19663          , p_merge_duplicate_code       => 'N'
19664          );
19665    --
19666    l_acc_rev_natural_side_code := 'C';  -- 4262811
19667    -- 
19668    --
19669    -- set accounting line type info
19670    --
19671    xla_ae_lines_pkg.SetAcctLineType
19672       (p_component_type             => l_component_type
19673       ,p_event_type_code            => l_event_type_code
19674       ,p_line_definition_owner_code => l_line_definition_owner_code
19675       ,p_line_definition_code       => l_line_definition_code
19676       ,p_accounting_line_code       => l_component_code
19677       ,p_accounting_line_type_code  => l_component_type_code
19678       ,p_accounting_line_appl_id    => l_component_appl_id
19679       ,p_amb_context_code           => l_amb_context_code
19683    -- set accounting class
19680       ,p_entity_code                => l_entity_code
19681       ,p_event_class_code           => l_event_class_code);
19682    --
19684    --
19685    xla_ae_lines_pkg.SetAcctClass(
19686            p_accounting_class_code  => 'ITEM EXPENSE'
19687          , p_ae_header_id           => l_ae_header_id
19688          );
19689 
19690    --
19691    -- set rounding class
19692    --
19693    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19694                       'ITEM EXPENSE';
19695 
19696    --
19697    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19698    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19699    --
19700    -- bulk performance
19701    --
19702    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19703 
19704    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19705       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19706 
19707    -- 4955764
19708    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19709       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19710 
19711    -- 4458381 Public Sector Enh
19712       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
19713    --
19714    -- set accounting attributes for the line type
19715    --
19716    l_entered_amt_idx := 23;
19717    l_accted_amt_idx  := 28;
19718    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
19719    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19720    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
19721    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19722    l_rec_acct_attrs.array_num_value(2)  := 
19723 xla_ae_sources_pkg.GetSystemSourceNum(
19724    p_source_code           => 'XLA_EVENT_APPL_ID'
19725  , p_source_type_code      => 'Y'
19726  , p_source_application_id =>  602
19727 );
19728    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19729    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
19730    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19731    l_rec_acct_attrs.array_char_value(4)  := 
19732 xla_ae_sources_pkg.GetSystemSourceChar(
19733    p_source_code           => 'XLA_ENTITY_CODE'
19734  , p_source_type_code      => 'Y'
19735  , p_source_application_id =>  602
19736 );
19737    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19738    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
19739    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19740    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
19741    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19742    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
19743    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19744    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
19745    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19746    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
19747    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19748    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
19749    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19750    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
19751    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19752    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
19753    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19754    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
19755    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19756    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
19757    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19758    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
19759    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19760    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
19761    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19762    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
19763    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19764    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
19765    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19766    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
19767    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19768    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
19769    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19770    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
19771    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19772    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
19773    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19774    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
19775    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19776    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
19777    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
19778    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
19782    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
19779    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
19780    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
19781    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
19783    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
19784    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
19785    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
19786    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
19787    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
19788    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
19789    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
19790    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
19791    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
19792    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
19793    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
19794    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
19795    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
19796    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
19797    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
19798    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
19799    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
19800    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
19801    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
19802    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
19803    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
19804    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
19805    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
19806    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
19807    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
19808    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
19809    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
19810    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
19811    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
19812    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
19813 
19814    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19815    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19816 
19817    ---------------------------------------------------------------------------------------------------------------
19818    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19819    ---------------------------------------------------------------------------------------------------------------
19820    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19821 
19822    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19823    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19824 
19825    IF xla_accounting_cache_pkg.GetValueChar
19826          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19827          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19828    AND l_bflow_method_code = 'PRIOR_ENTRY'
19829 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19830    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19831          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19832        )
19833    THEN
19834          xla_ae_lines_pkg.BflowUpgEntry
19835            (p_business_method_code    => l_bflow_method_code
19836            ,p_business_class_code     => l_bflow_class_code
19837            ,p_balance_type            => l_balance_type_code);
19838    ELSE
19839       NULL;
19840 -- No business flow processing for business flow method of NONE.
19841    END IF;
19842 
19843    --
19844    -- call analytical criteria
19845    --
19846    
19847    --
19848    -- call description
19849    --
19850    
19851 xla_ae_lines_pkg.SetLineDescription(
19852    p_ae_header_id => l_ae_header_id
19853   ,p_description  => Description_2 (
19854      p_application_id         => p_application_id
19855    , p_ae_header_id           => l_ae_header_id 
19856 , p_source_1 => p_source_1
19857    )
19858 );
19859 
19860 
19861    --
19862    -- call ADRs
19863    -- Bug 4922099
19864    --
19865    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19866         (NVL(l_actual_upg_option, 'N') = 'O') OR
19867         (NVL(l_enc_upg_option, 'N') = 'O')
19868       )
19869    THEN
19870    NULL;
19871    --
19872    --
19873    
19874   l_ccid := AcctDerRule_7(
19875            p_application_id           => p_application_id
19876          , p_ae_header_id             => l_ae_header_id 
19877 , p_source_11 => p_source_11
19878          , x_transaction_coa_id       => l_adr_transaction_coa_id
19879          , x_accounting_coa_id        => l_adr_accounting_coa_id
19880          , x_value_type_code          => l_adr_value_type_code
19881          , p_side                     => 'NA'
19882    );
19883 
19884    xla_ae_lines_pkg.set_ccid(
19885     p_code_combination_id          => l_ccid
19886   , p_value_type_code              => l_adr_value_type_code
19887   , p_transaction_coa_id           => l_adr_transaction_coa_id
19891   , p_component_type               => l_component_type
19888   , p_accounting_coa_id            => l_adr_accounting_coa_id
19889   , p_adr_code                     => 'AP_INVOICE_DIST'
19890   , p_adr_type_code                => 'S'
19892   , p_component_code               => l_component_code
19893   , p_component_type_code          => l_component_type_code
19894   , p_component_appl_id            => l_component_appl_id
19895   , p_amb_context_code             => l_amb_context_code
19896   , p_side                         => 'NA'
19897   );
19898 
19899 
19900    --
19901    --
19902    END IF;
19903    --
19904    -- Bug 4922099
19905    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19906           (NVL(l_enc_upg_option, 'N') = 'O')
19907         ) AND
19908         (l_bflow_method_code = 'PRIOR_ENTRY')
19909       )
19910    THEN
19911       IF
19912       --
19913       1 = 2
19914       --
19915       THEN
19916       xla_accounting_err_pkg.build_message
19917                                     (p_appli_s_name            => 'XLA'
19918                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19919                                     ,p_token_1                 => 'LINE_NUMBER'
19920                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19921                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19922                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19923                                                                              l_component_type
19924                                                                             ,l_component_code
19925                                                                             ,l_component_type_code
19926                                                                             ,l_component_appl_id
19927                                                                             ,l_amb_context_code
19928                                                                             ,l_entity_code
19929                                                                             ,l_event_class_code
19930                                                                            )
19931                                     ,p_token_3                 => 'OWNER'
19932                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19933                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19934                                                                           ,p_lookup_code    => l_component_type_code
19935                                                                          )
19936                                     ,p_token_4                 => 'PRODUCT_NAME'
19937                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19938                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19939                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19940                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19941                                     ,p_ae_header_id            =>  NULL
19942                                        );
19943 
19944         IF (C_LEVEL_ERROR>= g_log_level) THEN
19945                  trace
19946                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19947                       ,p_level    => C_LEVEL_ERROR
19948                       ,p_module   => l_log_module);
19949         END IF;
19950       END IF;
19951    END IF;
19952    --
19953    --
19954    ------------------------------------------------------------------------------------------------
19955    -- 4219869 Business Flow
19956    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19957    -- Prior Entry.  Currently, the following code is always generated.
19958    ------------------------------------------------------------------------------------------------
19959    XLA_AE_LINES_PKG.ValidateCurrentLine;
19960 
19961    ------------------------------------------------------------------------------------
19962    -- 4219869 Business Flow
19963    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19964    ------------------------------------------------------------------------------------
19965    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19966 
19967    ----------------------------------------------------------------------------------
19968    -- 4219869 Business Flow
19969    -- Update journal entry status -- Need to generate this within IF <condition>
19970    ----------------------------------------------------------------------------------
19971    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19972          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19973          ,p_balance_type_code => l_balance_type_code
19974          );
19975 
19976    -------------------------------------------------------------------------------------------
19977    -- 4262811 - Generate the Accrual Reversal lines
19978    -------------------------------------------------------------------------------------------
19979    BEGIN
19980       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19981                               (g_array_event(p_event_id).array_value_num('header_index'));
19982       IF l_acc_rev_flag IS NULL THEN
19986       WHEN OTHERS THEN
19983          l_acc_rev_flag := 'N';
19984       END IF;
19985    EXCEPTION
19987          l_acc_rev_flag := 'N';
19988    END;
19989    --
19990    IF (l_acc_rev_flag = 'Y') THEN
19991 
19992        -- 4645092  ------------------------------------------------------------------------------
19993        -- To allow MPA report to determine if it should generate report process
19994        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19995        ------------------------------------------------------------------------------------------
19996 
19997        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19998        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19999    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20000    -- call ADRs
20001    -- Bug 4922099
20002    --
20003    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20004         (NVL(l_actual_upg_option, 'N') = 'O') OR
20005         (NVL(l_enc_upg_option, 'N') = 'O')
20006       )
20007    THEN
20008    NULL;
20009    --
20010    --
20011    
20012   l_ccid := AcctDerRule_7(
20013            p_application_id           => p_application_id
20014          , p_ae_header_id             => l_ae_header_id 
20015 , p_source_11 => p_source_11
20016          , x_transaction_coa_id       => l_adr_transaction_coa_id
20017          , x_accounting_coa_id        => l_adr_accounting_coa_id
20018          , x_value_type_code          => l_adr_value_type_code
20019          , p_side                     => 'NA'
20020    );
20021 
20022    xla_ae_lines_pkg.set_ccid(
20023     p_code_combination_id          => l_ccid
20024   , p_value_type_code              => l_adr_value_type_code
20025   , p_transaction_coa_id           => l_adr_transaction_coa_id
20026   , p_accounting_coa_id            => l_adr_accounting_coa_id
20027   , p_adr_code                     => 'AP_INVOICE_DIST'
20028   , p_adr_type_code                => 'S'
20029   , p_component_type               => l_component_type
20030   , p_component_code               => l_component_code
20031   , p_component_type_code          => l_component_type_code
20032   , p_component_appl_id            => l_component_appl_id
20033   , p_amb_context_code             => l_amb_context_code
20034   , p_side                         => 'NA'
20035   );
20036 
20037 
20038    --
20039    --
20040    END IF;
20041 
20042        --
20043        -- Update the line information that should be overwritten
20044        --
20045        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20046                                          p_header_num   => 1);
20047        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20048 
20049        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20050 
20051        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20052           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20053        END IF;
20054 
20055       --
20056       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20057       --
20058       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20059           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20060       ELSE
20061           ---------------------------------------------------------------------------------------------------
20062           -- 4262811a Switch Sign
20063           ---------------------------------------------------------------------------------------------------
20064           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20065           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20066                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20067           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20068                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20069           -- 5132302
20070           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20071                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20072 
20073       END IF;
20074 
20075       -- 4955764
20076       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20077       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20078 
20079 
20080       XLA_AE_LINES_PKG.ValidateCurrentLine;
20081       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20082 
20083       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20084                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20085                ,p_balance_type_code => l_balance_type_code);
20086 
20087    END IF;
20088 
20089    -----------------------------------------------------------------------------------------
20090    -- 4262811 Multiperiod Accounting
20091    -----------------------------------------------------------------------------------------
20092      -- No MPA option is assigned.
20093 
20094 
20095 END IF;
20096 END IF;
20097 --
20098 
20099 --
20100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20101    trace
20102       (p_msg      => 'END of AcctLineType_38'
20106 --
20103       ,p_level    => C_LEVEL_PROCEDURE
20104       ,p_module   => l_log_module);
20105 END IF;
20107 EXCEPTION
20108   WHEN xla_exceptions_pkg.application_exception THEN
20109       RAISE;
20110   WHEN OTHERS THEN
20111        xla_exceptions_pkg.raise_message
20112            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_38');
20113 END AcctLineType_38;
20114 --
20115 
20116 ---------------------------------------
20117 --
20118 -- PRIVATE FUNCTION
20119 --         AcctLineType_39
20120 --
20121 ---------------------------------------
20122 PROCEDURE AcctLineType_39 (
20123   p_application_id        IN NUMBER
20124  ,p_event_id              IN NUMBER
20125  ,p_calculate_acctd_flag  IN VARCHAR2
20126  ,p_calculate_g_l_flag    IN VARCHAR2
20127  ,p_actual_flag           IN OUT VARCHAR2
20128  ,p_balance_type_code     OUT VARCHAR2
20129  ,p_gain_or_loss_ref      OUT VARCHAR2
20130  
20131 --Invoice Distribution Description
20132  , p_source_1            IN VARCHAR2
20133 --Invoice Distribution Account
20134  , p_source_11            IN NUMBER
20135 --Invoice Distribution Type
20136  , p_source_15            IN VARCHAR2
20137  , p_source_15_meaning    IN VARCHAR2
20138 --Purchasing Encumbrance Option
20139  , p_source_17            IN VARCHAR2
20140  , p_source_17_meaning    IN VARCHAR2
20141 --Accrue on Receipt Option
20142  , p_source_18            IN VARCHAR2
20143  , p_source_18_meaning    IN VARCHAR2
20144 --Accounting Reversal Indicator
20145  , p_source_19            IN VARCHAR2
20146 --Distribution Link Type
20147  , p_source_21            IN VARCHAR2
20148 --Allocation to Main Distribution Identifier
20149  , p_source_23            IN NUMBER
20150 --Invoice Identifier
20151  , p_source_24            IN NUMBER
20152 --Business Flow Accounts Payable Application Identifier
20153  , p_source_25            IN NUMBER
20154 --Business Flow Invoice Distribution Type
20155  , p_source_26            IN VARCHAR2
20156 --Business Flow Invoice Entity Code
20157  , p_source_27            IN VARCHAR2
20158 --Business Flow Invoice Distribution Identifier
20159  , p_source_28            IN NUMBER
20160 --Business Flow Invoice Identifier
20161  , p_source_29            IN NUMBER
20162 --Invoice Distribution Identifier
20163  , p_source_30            IN NUMBER
20164 --Payables Encumbrance Upgrade Credit Account
20165  , p_source_31            IN NUMBER
20166 --Payables Encumbrance Upgrade Credit Amount
20167  , p_source_32            IN NUMBER
20168 --Invoice Currency Code
20169  , p_source_33            IN VARCHAR2
20170 --Payables Encumbrance Upgrade Credit Base Amount
20171  , p_source_34            IN NUMBER
20172 --Payables Encumbrance Upgrade Debit Account
20173  , p_source_35            IN NUMBER
20174 --Payables Encumbrance Upgrade Debit Amount
20175  , p_source_36            IN NUMBER
20176 --Payables Encumbrance Upgrade Debit Base Amount
20177  , p_source_37            IN NUMBER
20178 --Payables Encumbrance Upgrade Option
20179  , p_source_38            IN VARCHAR2
20180 --Invoice Exchange Date
20181  , p_source_39            IN DATE
20182 --Invoice Exchange Rate
20183  , p_source_40            IN NUMBER
20184 --Invoice Exchange Rate Type
20185  , p_source_41            IN VARCHAR2
20186 --Deferred Accounting End Date
20187  , p_source_43            IN DATE
20188 --Deferred Accounting Option
20189  , p_source_44            IN VARCHAR2
20190 --Deferred Accounting Start Date
20191  , p_source_45            IN DATE
20192 --Override Accounted Amount Indicator
20193  , p_source_46            IN VARCHAR2
20194  , p_source_46_meaning    IN VARCHAR2
20195 --Invoice Supplier Identifier
20196  , p_source_47            IN NUMBER
20197 --Invoice Supplier Site Identifier
20198  , p_source_48            IN NUMBER
20199 --Third Party Type
20200  , p_source_49            IN VARCHAR2
20201 --Parent Reversal Identifier
20202  , p_source_50            IN NUMBER
20203 --Invoice Distribution Statistical Amount
20204  , p_source_51            IN NUMBER
20205 --Invoice Distribution Tax Line Identifier
20206  , p_source_52            IN NUMBER
20207 --Invoice Distribution Tax Distribution Identifier from Tax
20208  , p_source_53            IN NUMBER
20209 --Invoice Distribution Summary Tax Line Identifier
20210  , p_source_54            IN NUMBER
20211 --Payables Upgrade Credit Encumbrance Type Identifier
20212  , p_source_55            IN NUMBER
20213 --Payables Upgrade Debit Encumbrance Type Identifier
20214  , p_source_56            IN NUMBER
20215 --Invoice Distribution Amount
20216  , p_source_57            IN NUMBER
20217 --Invoice Distribution Encumbrance Amount
20218  , p_source_65            IN NUMBER
20219 --Invoice Distribution Encumbrance Ledger Amount
20220  , p_source_66            IN NUMBER
20221 --Invoice Type
20222  , p_source_68            IN VARCHAR2
20223  , p_source_68_meaning    IN VARCHAR2
20224 )
20225 IS
20226 
20227 l_component_type              VARCHAR2(80);
20228 l_component_code              VARCHAR2(30);
20229 l_component_type_code         VARCHAR2(1);
20230 l_component_appl_id           INTEGER;
20231 l_amb_context_code            VARCHAR2(30);
20232 l_entity_code                 VARCHAR2(30);
20233 l_event_class_code            VARCHAR2(30);
20234 l_ae_header_id                NUMBER;
20235 l_event_type_code             VARCHAR2(30);
20236 l_line_definition_code        VARCHAR2(30);
20240 l_segment                     VARCHAR2(30);
20237 l_line_definition_owner_code  VARCHAR2(1);
20238 --
20239 -- adr variables
20241 l_ccid                        NUMBER;
20242 l_adr_transaction_coa_id      NUMBER;
20243 l_adr_accounting_coa_id       NUMBER;
20244 l_adr_flexfield_segment_code  VARCHAR2(30);
20245 l_adr_flex_value_set_id       NUMBER;
20246 l_adr_value_type_code         VARCHAR2(30);
20247 l_adr_value_combination_id    NUMBER;
20248 l_adr_value_segment_code      VARCHAR2(30);
20249 
20250 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20251 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20252 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20253 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20254 
20255 -- 4262811 Variables ------------------------------------------------------------------------------------------
20256 l_entered_amt_idx             NUMBER;
20257 l_accted_amt_idx              NUMBER;
20258 l_acc_rev_flag                VARCHAR2(1);
20259 l_accrual_line_num            NUMBER;
20260 l_tmp_amt                     NUMBER;
20261 l_acc_rev_natural_side_code   VARCHAR2(1);
20262 
20263 l_num_entries                 NUMBER;
20264 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20265 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20266 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20267 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20268 l_recog_line_1                NUMBER;
20269 l_recog_line_2                NUMBER;
20270 
20271 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20272 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20273 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20274 
20275 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20276 
20277 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20278 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20279 
20280 ---------------------------------------------------------------------------------------------------------------
20281 
20282 
20283 --
20284 -- bulk performance
20285 --
20286 l_balance_type_code           VARCHAR2(1);
20287 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20288 l_log_module                  VARCHAR2(240);
20289 
20290 --
20291 -- Upgrade strategy
20292 --
20293 l_actual_upg_option           VARCHAR2(1);
20294 l_enc_upg_option           VARCHAR2(1);
20295 
20296 --
20297 BEGIN
20298 --
20299 IF g_log_enabled THEN
20300       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
20301 END IF;
20302 --
20303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20304 
20305       trace
20306          (p_msg      => 'BEGIN of AcctLineType_39'
20307          ,p_level    => C_LEVEL_PROCEDURE
20308          ,p_module   => l_log_module);
20309 
20310 END IF;
20311 --
20312 l_component_type             := 'AMB_JLT';
20313 l_component_code             := 'AP_ITEM_EXPENSE_INV_ENC_DR';
20314 l_component_type_code        := 'S';
20315 l_component_appl_id          :=  200;
20316 l_amb_context_code           := 'DEFAULT';
20317 l_entity_code                := 'AP_INVOICES';
20318 l_event_class_code           := 'INVOICES';
20319 l_event_type_code            := 'INVOICES_ALL';
20320 l_line_definition_owner_code := 'S';
20321 l_line_definition_code       := 'ENC_INVOICES_ALL';
20322 --
20323 l_balance_type_code          := 'E';
20324 l_segment                     := NULL;
20325 l_ccid                        := NULL;
20326 l_adr_transaction_coa_id      := NULL;
20327 l_adr_accounting_coa_id       := NULL;
20328 l_adr_flexfield_segment_code  := NULL;
20329 l_adr_flex_value_set_id       := NULL;
20330 l_adr_value_type_code         := NULL;
20331 l_adr_value_combination_id    := NULL;
20332 l_adr_value_segment_code      := NULL;
20333 
20334 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
20335 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
20336 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20337 l_budgetary_control_flag     := 'Y';
20338 
20339 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20340 l_bflow_applied_to_amt       := NULL; -- 5132302
20341 l_entered_amt_idx            := NULL;          -- 4262811
20342 l_accted_amt_idx             := NULL;          -- 4262811
20343 l_acc_rev_flag               := NULL;          -- 4262811
20344 l_accrual_line_num           := NULL;          -- 4262811
20345 l_tmp_amt                    := NULL;          -- 4262811
20346 --
20347  
20348 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20349     l_balance_type_code <> 'B' THEN
20350 IF (NVL(p_source_68,'
20351 ') =  'STANDARD' OR 
20352 NVL(p_source_68,'
20353 ') =  'MIXED' OR 
20354 NVL(p_source_68,'
20355 ') =  'AWT' OR 
20356 NVL(p_source_68,'
20357 ') =  'EXPENSE REPORT') AND 
20358 NVL(p_source_15,'
20359 ') =  'ITEM' AND 
20360 NVL(p_source_18,'
20361 ') <>  'Y' AND 
20362 NVL(p_source_17,'
20363 ') =  'Y'
20364  THEN 
20365 
20366    --
20367    XLA_AE_LINES_PKG.SetNewLine;
20368 
20372    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20369    p_balance_type_code          := l_balance_type_code;
20370    -- set the flag so later we will know whether the gain loss line needs to be created
20371    
20373      p_actual_flag :='A';
20374    END IF;
20375 
20376    --
20377    -- bulk performance
20378    --
20379    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20380                                       p_header_num   => 0); -- 4262811
20381    --
20382    -- set accounting line options
20383    --
20384    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20385            p_natural_side_code          => 'D'
20386          , p_gain_or_loss_flag          => 'N'
20387          , p_gl_transfer_mode_code      => 'S'
20388          , p_acct_entry_type_code       => 'E'
20389          , p_switch_side_flag           => 'Y'
20390          , p_merge_duplicate_code       => 'N'
20391          );
20392    --
20393    l_acc_rev_natural_side_code := 'C';  -- 4262811
20394    -- 
20395    --
20396    -- set accounting line type info
20397    --
20398    xla_ae_lines_pkg.SetAcctLineType
20399       (p_component_type             => l_component_type
20400       ,p_event_type_code            => l_event_type_code
20401       ,p_line_definition_owner_code => l_line_definition_owner_code
20402       ,p_line_definition_code       => l_line_definition_code
20403       ,p_accounting_line_code       => l_component_code
20404       ,p_accounting_line_type_code  => l_component_type_code
20405       ,p_accounting_line_appl_id    => l_component_appl_id
20406       ,p_amb_context_code           => l_amb_context_code
20407       ,p_entity_code                => l_entity_code
20408       ,p_event_class_code           => l_event_class_code);
20409    --
20410    -- set accounting class
20411    --
20412    xla_ae_lines_pkg.SetAcctClass(
20413            p_accounting_class_code  => 'ITEM EXPENSE'
20414          , p_ae_header_id           => l_ae_header_id
20415          );
20416 
20417    --
20418    -- set rounding class
20419    --
20420    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20421                       'ITEM EXPENSE';
20422 
20423    --
20424    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20425    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20426    --
20427    -- bulk performance
20428    --
20429    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20430 
20431    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20432       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20433 
20434    -- 4955764
20435    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20436       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20437 
20438    -- 4458381 Public Sector Enh
20439       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
20440    --
20441    -- set accounting attributes for the line type
20442    --
20443    l_entered_amt_idx := 24;
20444    l_accted_amt_idx  := 29;
20445    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
20446    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20447    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
20448    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20449    l_rec_acct_attrs.array_num_value(2)  := 
20450 xla_ae_sources_pkg.GetSystemSourceNum(
20451    p_source_code           => 'XLA_EVENT_APPL_ID'
20452  , p_source_type_code      => 'Y'
20453  , p_source_application_id =>  602
20454 );
20455    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20456    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
20457    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20458    l_rec_acct_attrs.array_char_value(4)  := 
20459 xla_ae_sources_pkg.GetSystemSourceChar(
20460    p_source_code           => 'XLA_ENTITY_CODE'
20461  , p_source_type_code      => 'Y'
20462  , p_source_application_id =>  602
20463 );
20464    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20465    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
20466    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20467    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
20468    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
20469    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
20470    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
20471    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
20472    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20473    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
20474    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
20475    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
20476    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
20477    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
20478    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20479    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
20480    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
20484    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
20481    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
20482    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
20483    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
20485    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
20486    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
20487    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
20488    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
20489    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
20490    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
20491    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
20492    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
20493    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
20494    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
20495    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
20496    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
20497    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
20498    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
20499    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
20500    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
20501    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
20502    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
20503    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
20504    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
20505    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
20506    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
20507    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
20508    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
20509    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
20510    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
20511    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
20512    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
20513    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
20514    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
20515    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
20516    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
20517    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
20518    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
20519    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
20520    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
20521    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
20522    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
20523    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
20524    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
20525    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
20526    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
20527    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
20528    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
20529    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
20530    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
20531    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
20532    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
20533    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
20534    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
20535    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
20536    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
20537    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
20538    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
20539    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
20540    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
20541    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
20542    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
20543    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
20544 
20545    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20546    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20547 
20548    ---------------------------------------------------------------------------------------------------------------
20549    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20550    ---------------------------------------------------------------------------------------------------------------
20551    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20552 
20553    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20554    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20555 
20556    IF xla_accounting_cache_pkg.GetValueChar
20557          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20558          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20559    AND l_bflow_method_code = 'PRIOR_ENTRY'
20560 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20561    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20562          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20563        )
20564    THEN
20565          xla_ae_lines_pkg.BflowUpgEntry
20566            (p_business_method_code    => l_bflow_method_code
20570       NULL;
20567            ,p_business_class_code     => l_bflow_class_code
20568            ,p_balance_type            => l_balance_type_code);
20569    ELSE
20571 -- No business flow processing for business flow method of NONE.
20572    END IF;
20573 
20574    --
20575    -- call analytical criteria
20576    --
20577    
20578    --
20579    -- call description
20580    --
20581    
20582 xla_ae_lines_pkg.SetLineDescription(
20583    p_ae_header_id => l_ae_header_id
20584   ,p_description  => Description_2 (
20585      p_application_id         => p_application_id
20586    , p_ae_header_id           => l_ae_header_id 
20587 , p_source_1 => p_source_1
20588    )
20589 );
20590 
20591 
20592    --
20593    -- call ADRs
20594    -- Bug 4922099
20595    --
20596    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20597         (NVL(l_actual_upg_option, 'N') = 'O') OR
20598         (NVL(l_enc_upg_option, 'N') = 'O')
20599       )
20600    THEN
20601    NULL;
20602    --
20603    --
20604    
20605   l_ccid := AcctDerRule_7(
20606            p_application_id           => p_application_id
20607          , p_ae_header_id             => l_ae_header_id 
20608 , p_source_11 => p_source_11
20609          , x_transaction_coa_id       => l_adr_transaction_coa_id
20610          , x_accounting_coa_id        => l_adr_accounting_coa_id
20611          , x_value_type_code          => l_adr_value_type_code
20612          , p_side                     => 'NA'
20613    );
20614 
20615    xla_ae_lines_pkg.set_ccid(
20616     p_code_combination_id          => l_ccid
20617   , p_value_type_code              => l_adr_value_type_code
20618   , p_transaction_coa_id           => l_adr_transaction_coa_id
20619   , p_accounting_coa_id            => l_adr_accounting_coa_id
20620   , p_adr_code                     => 'AP_INVOICE_DIST'
20621   , p_adr_type_code                => 'S'
20622   , p_component_type               => l_component_type
20623   , p_component_code               => l_component_code
20624   , p_component_type_code          => l_component_type_code
20625   , p_component_appl_id            => l_component_appl_id
20626   , p_amb_context_code             => l_amb_context_code
20627   , p_side                         => 'NA'
20628   );
20629 
20630 
20631    --
20632    --
20633    END IF;
20634    --
20635    -- Bug 4922099
20636    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20637           (NVL(l_enc_upg_option, 'N') = 'O')
20638         ) AND
20639         (l_bflow_method_code = 'PRIOR_ENTRY')
20640       )
20641    THEN
20642       IF
20643       --
20644       1 = 2
20645       --
20646       THEN
20647       xla_accounting_err_pkg.build_message
20648                                     (p_appli_s_name            => 'XLA'
20649                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20650                                     ,p_token_1                 => 'LINE_NUMBER'
20651                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20652                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20653                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20654                                                                              l_component_type
20655                                                                             ,l_component_code
20656                                                                             ,l_component_type_code
20657                                                                             ,l_component_appl_id
20658                                                                             ,l_amb_context_code
20659                                                                             ,l_entity_code
20660                                                                             ,l_event_class_code
20661                                                                            )
20662                                     ,p_token_3                 => 'OWNER'
20663                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20664                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20665                                                                           ,p_lookup_code    => l_component_type_code
20666                                                                          )
20667                                     ,p_token_4                 => 'PRODUCT_NAME'
20668                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20669                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20670                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20671                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20672                                     ,p_ae_header_id            =>  NULL
20673                                        );
20674 
20675         IF (C_LEVEL_ERROR>= g_log_level) THEN
20676                  trace
20677                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20678                       ,p_level    => C_LEVEL_ERROR
20679                       ,p_module   => l_log_module);
20680         END IF;
20681       END IF;
20682    END IF;
20683    --
20684    --
20688    -- Prior Entry.  Currently, the following code is always generated.
20685    ------------------------------------------------------------------------------------------------
20686    -- 4219869 Business Flow
20687    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20689    ------------------------------------------------------------------------------------------------
20690    XLA_AE_LINES_PKG.ValidateCurrentLine;
20691 
20692    ------------------------------------------------------------------------------------
20693    -- 4219869 Business Flow
20694    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20695    ------------------------------------------------------------------------------------
20696    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20697 
20698    ----------------------------------------------------------------------------------
20699    -- 4219869 Business Flow
20700    -- Update journal entry status -- Need to generate this within IF <condition>
20701    ----------------------------------------------------------------------------------
20702    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20703          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20704          ,p_balance_type_code => l_balance_type_code
20705          );
20706 
20707    -------------------------------------------------------------------------------------------
20708    -- 4262811 - Generate the Accrual Reversal lines
20709    -------------------------------------------------------------------------------------------
20710    BEGIN
20711       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20712                               (g_array_event(p_event_id).array_value_num('header_index'));
20713       IF l_acc_rev_flag IS NULL THEN
20714          l_acc_rev_flag := 'N';
20715       END IF;
20716    EXCEPTION
20717       WHEN OTHERS THEN
20718          l_acc_rev_flag := 'N';
20719    END;
20720    --
20721    IF (l_acc_rev_flag = 'Y') THEN
20722 
20723        -- 4645092  ------------------------------------------------------------------------------
20724        -- To allow MPA report to determine if it should generate report process
20725        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20726        ------------------------------------------------------------------------------------------
20727 
20728        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20729        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20730    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20731    -- call ADRs
20732    -- Bug 4922099
20733    --
20734    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20735         (NVL(l_actual_upg_option, 'N') = 'O') OR
20736         (NVL(l_enc_upg_option, 'N') = 'O')
20737       )
20738    THEN
20739    NULL;
20740    --
20741    --
20742    
20743   l_ccid := AcctDerRule_7(
20744            p_application_id           => p_application_id
20745          , p_ae_header_id             => l_ae_header_id 
20746 , p_source_11 => p_source_11
20747          , x_transaction_coa_id       => l_adr_transaction_coa_id
20748          , x_accounting_coa_id        => l_adr_accounting_coa_id
20749          , x_value_type_code          => l_adr_value_type_code
20750          , p_side                     => 'NA'
20751    );
20752 
20753    xla_ae_lines_pkg.set_ccid(
20754     p_code_combination_id          => l_ccid
20755   , p_value_type_code              => l_adr_value_type_code
20756   , p_transaction_coa_id           => l_adr_transaction_coa_id
20757   , p_accounting_coa_id            => l_adr_accounting_coa_id
20758   , p_adr_code                     => 'AP_INVOICE_DIST'
20759   , p_adr_type_code                => 'S'
20760   , p_component_type               => l_component_type
20761   , p_component_code               => l_component_code
20762   , p_component_type_code          => l_component_type_code
20763   , p_component_appl_id            => l_component_appl_id
20764   , p_amb_context_code             => l_amb_context_code
20765   , p_side                         => 'NA'
20766   );
20767 
20768 
20769    --
20770    --
20771    END IF;
20772 
20773        --
20774        -- Update the line information that should be overwritten
20775        --
20776        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20777                                          p_header_num   => 1);
20778        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20779 
20780        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20781 
20782        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20783           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20784        END IF;
20785 
20786       --
20787       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20788       --
20789       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20790           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20791       ELSE
20792           ---------------------------------------------------------------------------------------------------
20793           -- 4262811a Switch Sign
20794           ---------------------------------------------------------------------------------------------------
20798           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20795           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20796           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20797                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20799                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20800           -- 5132302
20801           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20802                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20803 
20804       END IF;
20805 
20806       -- 4955764
20807       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20808       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20809 
20810 
20811       XLA_AE_LINES_PKG.ValidateCurrentLine;
20812       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20813 
20814       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20815                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20816                ,p_balance_type_code => l_balance_type_code);
20817 
20818    END IF;
20819 
20820    -----------------------------------------------------------------------------------------
20821    -- 4262811 Multiperiod Accounting
20822    -----------------------------------------------------------------------------------------
20823      -- No MPA option is assigned.
20824 
20825 
20826 END IF;
20827 END IF;
20828 --
20829 
20830 --
20831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20832    trace
20833       (p_msg      => 'END of AcctLineType_39'
20834       ,p_level    => C_LEVEL_PROCEDURE
20835       ,p_module   => l_log_module);
20836 END IF;
20837 --
20838 EXCEPTION
20839   WHEN xla_exceptions_pkg.application_exception THEN
20840       RAISE;
20841   WHEN OTHERS THEN
20842        xla_exceptions_pkg.raise_message
20843            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_39');
20844 END AcctLineType_39;
20845 --
20846 
20847 ---------------------------------------
20848 --
20849 -- PRIVATE FUNCTION
20850 --         AcctLineType_40
20851 --
20852 ---------------------------------------
20853 PROCEDURE AcctLineType_40 (
20854   p_application_id        IN NUMBER
20855  ,p_event_id              IN NUMBER
20856  ,p_calculate_acctd_flag  IN VARCHAR2
20857  ,p_calculate_g_l_flag    IN VARCHAR2
20858  ,p_actual_flag           IN OUT VARCHAR2
20859  ,p_balance_type_code     OUT VARCHAR2
20860  ,p_gain_or_loss_ref      OUT VARCHAR2
20861  
20862 --Invoice Distribution Description
20863  , p_source_1            IN VARCHAR2
20864 --Invoice Distribution Account
20865  , p_source_11            IN NUMBER
20866 --Invoice Distribution Type
20867  , p_source_15            IN VARCHAR2
20868  , p_source_15_meaning    IN VARCHAR2
20869 --Purchasing Encumbrance Option
20870  , p_source_17            IN VARCHAR2
20871  , p_source_17_meaning    IN VARCHAR2
20872 --Accrue on Receipt Option
20873  , p_source_18            IN VARCHAR2
20874  , p_source_18_meaning    IN VARCHAR2
20875 --Accounting Reversal Indicator
20876  , p_source_19            IN VARCHAR2
20877 --Distribution Link Type
20878  , p_source_21            IN VARCHAR2
20879 --Allocation to Main Distribution Identifier
20880  , p_source_23            IN NUMBER
20881 --Invoice Identifier
20882  , p_source_24            IN NUMBER
20883 --Business Flow Accounts Payable Application Identifier
20884  , p_source_25            IN NUMBER
20885 --Business Flow Invoice Distribution Type
20886  , p_source_26            IN VARCHAR2
20887 --Business Flow Invoice Entity Code
20888  , p_source_27            IN VARCHAR2
20889 --Business Flow Invoice Distribution Identifier
20890  , p_source_28            IN NUMBER
20891 --Business Flow Invoice Identifier
20892  , p_source_29            IN NUMBER
20893 --Invoice Distribution Identifier
20894  , p_source_30            IN NUMBER
20895 --Payables Encumbrance Upgrade Credit Account
20896  , p_source_31            IN NUMBER
20897 --Payables Encumbrance Upgrade Credit Amount
20898  , p_source_32            IN NUMBER
20899 --Invoice Currency Code
20900  , p_source_33            IN VARCHAR2
20901 --Payables Encumbrance Upgrade Credit Base Amount
20902  , p_source_34            IN NUMBER
20903 --Payables Encumbrance Upgrade Debit Account
20904  , p_source_35            IN NUMBER
20905 --Payables Encumbrance Upgrade Debit Amount
20906  , p_source_36            IN NUMBER
20907 --Payables Encumbrance Upgrade Debit Base Amount
20908  , p_source_37            IN NUMBER
20909 --Payables Encumbrance Upgrade Option
20910  , p_source_38            IN VARCHAR2
20911 --Invoice Exchange Date
20912  , p_source_39            IN DATE
20913 --Invoice Exchange Rate
20914  , p_source_40            IN NUMBER
20915 --Invoice Exchange Rate Type
20916  , p_source_41            IN VARCHAR2
20917 --Deferred Accounting End Date
20918  , p_source_43            IN DATE
20919 --Deferred Accounting Option
20920  , p_source_44            IN VARCHAR2
20921 --Deferred Accounting Start Date
20922  , p_source_45            IN DATE
20923 --Override Accounted Amount Indicator
20927  , p_source_47            IN NUMBER
20924  , p_source_46            IN VARCHAR2
20925  , p_source_46_meaning    IN VARCHAR2
20926 --Invoice Supplier Identifier
20928 --Invoice Supplier Site Identifier
20929  , p_source_48            IN NUMBER
20930 --Third Party Type
20931  , p_source_49            IN VARCHAR2
20932 --Parent Reversal Identifier
20933  , p_source_50            IN NUMBER
20934 --Invoice Distribution Statistical Amount
20935  , p_source_51            IN NUMBER
20936 --Invoice Distribution Tax Line Identifier
20937  , p_source_52            IN NUMBER
20938 --Invoice Distribution Tax Distribution Identifier from Tax
20939  , p_source_53            IN NUMBER
20940 --Invoice Distribution Summary Tax Line Identifier
20941  , p_source_54            IN NUMBER
20942 --Payables Upgrade Credit Encumbrance Type Identifier
20943  , p_source_55            IN NUMBER
20944 --Payables Upgrade Debit Encumbrance Type Identifier
20945  , p_source_56            IN NUMBER
20946 --Invoice Distribution Encumbrance Amount
20947  , p_source_65            IN NUMBER
20948 --Invoice Distribution Encumbrance Ledger Amount
20949  , p_source_66            IN NUMBER
20950 )
20951 IS
20952 
20953 l_component_type              VARCHAR2(80);
20954 l_component_code              VARCHAR2(30);
20955 l_component_type_code         VARCHAR2(1);
20956 l_component_appl_id           INTEGER;
20957 l_amb_context_code            VARCHAR2(30);
20958 l_entity_code                 VARCHAR2(30);
20959 l_event_class_code            VARCHAR2(30);
20960 l_ae_header_id                NUMBER;
20961 l_event_type_code             VARCHAR2(30);
20962 l_line_definition_code        VARCHAR2(30);
20963 l_line_definition_owner_code  VARCHAR2(1);
20964 --
20965 -- adr variables
20966 l_segment                     VARCHAR2(30);
20967 l_ccid                        NUMBER;
20968 l_adr_transaction_coa_id      NUMBER;
20969 l_adr_accounting_coa_id       NUMBER;
20970 l_adr_flexfield_segment_code  VARCHAR2(30);
20971 l_adr_flex_value_set_id       NUMBER;
20972 l_adr_value_type_code         VARCHAR2(30);
20973 l_adr_value_combination_id    NUMBER;
20974 l_adr_value_segment_code      VARCHAR2(30);
20975 
20976 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20977 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20978 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20979 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20980 
20981 -- 4262811 Variables ------------------------------------------------------------------------------------------
20982 l_entered_amt_idx             NUMBER;
20983 l_accted_amt_idx              NUMBER;
20984 l_acc_rev_flag                VARCHAR2(1);
20985 l_accrual_line_num            NUMBER;
20986 l_tmp_amt                     NUMBER;
20987 l_acc_rev_natural_side_code   VARCHAR2(1);
20988 
20989 l_num_entries                 NUMBER;
20990 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20991 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20992 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20993 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20994 l_recog_line_1                NUMBER;
20995 l_recog_line_2                NUMBER;
20996 
20997 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20998 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20999 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21000 
21001 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21002 
21003 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21004 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21005 
21006 ---------------------------------------------------------------------------------------------------------------
21007 
21008 
21009 --
21010 -- bulk performance
21011 --
21012 l_balance_type_code           VARCHAR2(1);
21013 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21014 l_log_module                  VARCHAR2(240);
21015 
21016 --
21017 -- Upgrade strategy
21018 --
21019 l_actual_upg_option           VARCHAR2(1);
21020 l_enc_upg_option           VARCHAR2(1);
21021 
21022 --
21023 BEGIN
21024 --
21025 IF g_log_enabled THEN
21026       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
21027 END IF;
21028 --
21029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21030 
21031       trace
21032          (p_msg      => 'BEGIN of AcctLineType_40'
21033          ,p_level    => C_LEVEL_PROCEDURE
21034          ,p_module   => l_log_module);
21035 
21036 END IF;
21037 --
21038 l_component_type             := 'AMB_JLT';
21039 l_component_code             := 'AP_ITEM_EXPENSE_PP_ENC_DR';
21040 l_component_type_code        := 'S';
21041 l_component_appl_id          :=  200;
21042 l_amb_context_code           := 'DEFAULT';
21043 l_entity_code                := 'AP_INVOICES';
21044 l_event_class_code           := 'PREPAYMENTS';
21045 l_event_type_code            := 'PREPAYMENTS_ALL';
21046 l_line_definition_owner_code := 'S';
21047 l_line_definition_code       := 'ENC_PREPAY_ALL';
21048 --
21049 l_balance_type_code          := 'E';
21050 l_segment                     := NULL;
21054 l_adr_flexfield_segment_code  := NULL;
21051 l_ccid                        := NULL;
21052 l_adr_transaction_coa_id      := NULL;
21053 l_adr_accounting_coa_id       := NULL;
21055 l_adr_flex_value_set_id       := NULL;
21056 l_adr_value_type_code         := NULL;
21057 l_adr_value_combination_id    := NULL;
21058 l_adr_value_segment_code      := NULL;
21059 
21060 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
21061 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
21062 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21063 l_budgetary_control_flag     := 'Y';
21064 
21065 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21066 l_bflow_applied_to_amt       := NULL; -- 5132302
21067 l_entered_amt_idx            := NULL;          -- 4262811
21068 l_accted_amt_idx             := NULL;          -- 4262811
21069 l_acc_rev_flag               := NULL;          -- 4262811
21070 l_accrual_line_num           := NULL;          -- 4262811
21071 l_tmp_amt                    := NULL;          -- 4262811
21072 --
21073  
21074 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21075     l_balance_type_code <> 'B' THEN
21076 IF NVL(p_source_15,'
21077 ') =  'ITEM' AND 
21078 NVL(p_source_18,'
21079 ') <>  'Y' AND 
21080 NVL(p_source_17,'
21081 ') =  'Y'
21082  THEN 
21083 
21084    --
21085    XLA_AE_LINES_PKG.SetNewLine;
21086 
21087    p_balance_type_code          := l_balance_type_code;
21088    -- set the flag so later we will know whether the gain loss line needs to be created
21089    
21090    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21091      p_actual_flag :='A';
21092    END IF;
21093 
21094    --
21095    -- bulk performance
21096    --
21097    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21098                                       p_header_num   => 0); -- 4262811
21099    --
21100    -- set accounting line options
21101    --
21102    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21103            p_natural_side_code          => 'D'
21104          , p_gain_or_loss_flag          => 'N'
21105          , p_gl_transfer_mode_code      => 'S'
21106          , p_acct_entry_type_code       => 'E'
21107          , p_switch_side_flag           => 'Y'
21108          , p_merge_duplicate_code       => 'N'
21109          );
21110    --
21111    l_acc_rev_natural_side_code := 'C';  -- 4262811
21112    -- 
21113    --
21114    -- set accounting line type info
21115    --
21116    xla_ae_lines_pkg.SetAcctLineType
21117       (p_component_type             => l_component_type
21118       ,p_event_type_code            => l_event_type_code
21119       ,p_line_definition_owner_code => l_line_definition_owner_code
21120       ,p_line_definition_code       => l_line_definition_code
21121       ,p_accounting_line_code       => l_component_code
21122       ,p_accounting_line_type_code  => l_component_type_code
21123       ,p_accounting_line_appl_id    => l_component_appl_id
21124       ,p_amb_context_code           => l_amb_context_code
21125       ,p_entity_code                => l_entity_code
21126       ,p_event_class_code           => l_event_class_code);
21127    --
21128    -- set accounting class
21129    --
21130    xla_ae_lines_pkg.SetAcctClass(
21131            p_accounting_class_code  => 'ITEM EXPENSE'
21132          , p_ae_header_id           => l_ae_header_id
21133          );
21134 
21135    --
21136    -- set rounding class
21137    --
21138    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21139                       'ITEM EXPENSE';
21140 
21141    --
21142    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21143    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21144    --
21145    -- bulk performance
21146    --
21147    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21148 
21149    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21150       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21151 
21152    -- 4955764
21153    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21154       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21155 
21156    -- 4458381 Public Sector Enh
21157       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
21158    --
21159    -- set accounting attributes for the line type
21160    --
21161    l_entered_amt_idx := 23;
21162    l_accted_amt_idx  := 28;
21163    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
21164    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21165    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
21166    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21167    l_rec_acct_attrs.array_num_value(2)  := 
21168 xla_ae_sources_pkg.GetSystemSourceNum(
21169    p_source_code           => 'XLA_EVENT_APPL_ID'
21170  , p_source_type_code      => 'Y'
21171  , p_source_application_id =>  602
21172 );
21173    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21174    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
21175    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21176    l_rec_acct_attrs.array_char_value(4)  := 
21180  , p_source_application_id =>  602
21177 xla_ae_sources_pkg.GetSystemSourceChar(
21178    p_source_code           => 'XLA_ENTITY_CODE'
21179  , p_source_type_code      => 'Y'
21181 );
21182    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21183    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
21184    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21185    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
21186    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
21187    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
21188    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21189    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
21190    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
21191    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
21192    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
21193    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
21194    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21195    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
21196    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
21197    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
21198    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
21199    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
21200    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
21201    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
21202    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
21203    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
21204    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
21205    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
21206    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
21207    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
21208    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
21209    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
21210    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
21211    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
21212    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
21213    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
21214    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
21215    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
21216    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
21217    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
21218    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
21219    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
21220    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
21221    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
21222    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
21223    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
21224    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
21225    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
21226    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
21227    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
21228    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
21229    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
21230    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
21231    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
21232    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
21233    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
21234    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
21235    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
21236    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
21237    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
21238    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
21239    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
21240    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
21241    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
21242    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
21243    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
21244    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
21245    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
21246    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
21247    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
21248    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
21249    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
21250    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
21251    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
21252    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
21253    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
21254    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
21255    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
21256    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
21257    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
21258    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
21259    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
21260 
21261    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21262    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21263 
21267    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21264    ---------------------------------------------------------------------------------------------------------------
21265    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21266    ---------------------------------------------------------------------------------------------------------------
21268 
21269    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21270    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21271 
21272    IF xla_accounting_cache_pkg.GetValueChar
21273          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21274          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21275    AND l_bflow_method_code = 'PRIOR_ENTRY'
21276 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21277    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21278          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21279        )
21280    THEN
21281          xla_ae_lines_pkg.BflowUpgEntry
21282            (p_business_method_code    => l_bflow_method_code
21283            ,p_business_class_code     => l_bflow_class_code
21284            ,p_balance_type            => l_balance_type_code);
21285    ELSE
21286       NULL;
21287 -- No business flow processing for business flow method of NONE.
21288    END IF;
21289 
21290    --
21291    -- call analytical criteria
21292    --
21293    
21294    --
21295    -- call description
21296    --
21297    
21298 xla_ae_lines_pkg.SetLineDescription(
21299    p_ae_header_id => l_ae_header_id
21300   ,p_description  => Description_2 (
21301      p_application_id         => p_application_id
21302    , p_ae_header_id           => l_ae_header_id 
21303 , p_source_1 => p_source_1
21304    )
21305 );
21306 
21307 
21308    --
21309    -- call ADRs
21310    -- Bug 4922099
21311    --
21312    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21313         (NVL(l_actual_upg_option, 'N') = 'O') OR
21314         (NVL(l_enc_upg_option, 'N') = 'O')
21315       )
21316    THEN
21317    NULL;
21318    --
21319    --
21320    
21321   l_ccid := AcctDerRule_7(
21322            p_application_id           => p_application_id
21323          , p_ae_header_id             => l_ae_header_id 
21324 , p_source_11 => p_source_11
21325          , x_transaction_coa_id       => l_adr_transaction_coa_id
21326          , x_accounting_coa_id        => l_adr_accounting_coa_id
21327          , x_value_type_code          => l_adr_value_type_code
21328          , p_side                     => 'NA'
21329    );
21330 
21331    xla_ae_lines_pkg.set_ccid(
21332     p_code_combination_id          => l_ccid
21333   , p_value_type_code              => l_adr_value_type_code
21334   , p_transaction_coa_id           => l_adr_transaction_coa_id
21335   , p_accounting_coa_id            => l_adr_accounting_coa_id
21336   , p_adr_code                     => 'AP_INVOICE_DIST'
21337   , p_adr_type_code                => 'S'
21338   , p_component_type               => l_component_type
21339   , p_component_code               => l_component_code
21340   , p_component_type_code          => l_component_type_code
21341   , p_component_appl_id            => l_component_appl_id
21342   , p_amb_context_code             => l_amb_context_code
21343   , p_side                         => 'NA'
21344   );
21345 
21346 
21347    --
21348    --
21349    END IF;
21350    --
21351    -- Bug 4922099
21352    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21353           (NVL(l_enc_upg_option, 'N') = 'O')
21354         ) AND
21355         (l_bflow_method_code = 'PRIOR_ENTRY')
21356       )
21357    THEN
21358       IF
21359       --
21360       1 = 2
21361       --
21362       THEN
21363       xla_accounting_err_pkg.build_message
21364                                     (p_appli_s_name            => 'XLA'
21365                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21366                                     ,p_token_1                 => 'LINE_NUMBER'
21367                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21368                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21369                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21370                                                                              l_component_type
21371                                                                             ,l_component_code
21372                                                                             ,l_component_type_code
21373                                                                             ,l_component_appl_id
21374                                                                             ,l_amb_context_code
21375                                                                             ,l_entity_code
21376                                                                             ,l_event_class_code
21377                                                                            )
21378                                     ,p_token_3                 => 'OWNER'
21379                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21380                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21384                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21381                                                                           ,p_lookup_code    => l_component_type_code
21382                                                                          )
21383                                     ,p_token_4                 => 'PRODUCT_NAME'
21385                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21386                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21387                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21388                                     ,p_ae_header_id            =>  NULL
21389                                        );
21390 
21391         IF (C_LEVEL_ERROR>= g_log_level) THEN
21392                  trace
21393                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21394                       ,p_level    => C_LEVEL_ERROR
21395                       ,p_module   => l_log_module);
21396         END IF;
21397       END IF;
21398    END IF;
21399    --
21400    --
21401    ------------------------------------------------------------------------------------------------
21402    -- 4219869 Business Flow
21403    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21404    -- Prior Entry.  Currently, the following code is always generated.
21405    ------------------------------------------------------------------------------------------------
21406    XLA_AE_LINES_PKG.ValidateCurrentLine;
21407 
21408    ------------------------------------------------------------------------------------
21409    -- 4219869 Business Flow
21410    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21411    ------------------------------------------------------------------------------------
21412    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21413 
21414    ----------------------------------------------------------------------------------
21415    -- 4219869 Business Flow
21416    -- Update journal entry status -- Need to generate this within IF <condition>
21417    ----------------------------------------------------------------------------------
21418    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21419          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21420          ,p_balance_type_code => l_balance_type_code
21421          );
21422 
21423    -------------------------------------------------------------------------------------------
21424    -- 4262811 - Generate the Accrual Reversal lines
21425    -------------------------------------------------------------------------------------------
21426    BEGIN
21427       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21428                               (g_array_event(p_event_id).array_value_num('header_index'));
21429       IF l_acc_rev_flag IS NULL THEN
21430          l_acc_rev_flag := 'N';
21431       END IF;
21432    EXCEPTION
21433       WHEN OTHERS THEN
21434          l_acc_rev_flag := 'N';
21435    END;
21436    --
21437    IF (l_acc_rev_flag = 'Y') THEN
21438 
21439        -- 4645092  ------------------------------------------------------------------------------
21440        -- To allow MPA report to determine if it should generate report process
21441        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21442        ------------------------------------------------------------------------------------------
21443 
21444        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21445        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21446    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21447    -- call ADRs
21448    -- Bug 4922099
21449    --
21450    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21451         (NVL(l_actual_upg_option, 'N') = 'O') OR
21452         (NVL(l_enc_upg_option, 'N') = 'O')
21453       )
21454    THEN
21455    NULL;
21456    --
21457    --
21458    
21459   l_ccid := AcctDerRule_7(
21460            p_application_id           => p_application_id
21461          , p_ae_header_id             => l_ae_header_id 
21462 , p_source_11 => p_source_11
21463          , x_transaction_coa_id       => l_adr_transaction_coa_id
21464          , x_accounting_coa_id        => l_adr_accounting_coa_id
21465          , x_value_type_code          => l_adr_value_type_code
21466          , p_side                     => 'NA'
21467    );
21468 
21469    xla_ae_lines_pkg.set_ccid(
21470     p_code_combination_id          => l_ccid
21471   , p_value_type_code              => l_adr_value_type_code
21472   , p_transaction_coa_id           => l_adr_transaction_coa_id
21473   , p_accounting_coa_id            => l_adr_accounting_coa_id
21474   , p_adr_code                     => 'AP_INVOICE_DIST'
21475   , p_adr_type_code                => 'S'
21476   , p_component_type               => l_component_type
21477   , p_component_code               => l_component_code
21478   , p_component_type_code          => l_component_type_code
21479   , p_component_appl_id            => l_component_appl_id
21480   , p_amb_context_code             => l_amb_context_code
21481   , p_side                         => 'NA'
21482   );
21483 
21484 
21485    --
21486    --
21487    END IF;
21488 
21489        --
21493                                          p_header_num   => 1);
21490        -- Update the line information that should be overwritten
21491        --
21492        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21494        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21495 
21496        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21497 
21498        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21499           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21500        END IF;
21501 
21502       --
21503       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21504       --
21505       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21506           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21507       ELSE
21508           ---------------------------------------------------------------------------------------------------
21509           -- 4262811a Switch Sign
21510           ---------------------------------------------------------------------------------------------------
21511           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21512           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21513                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21514           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21515                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21516           -- 5132302
21517           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21518                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21519 
21520       END IF;
21521 
21522       -- 4955764
21523       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21524       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21525 
21526 
21527       XLA_AE_LINES_PKG.ValidateCurrentLine;
21528       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21529 
21530       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21531                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21532                ,p_balance_type_code => l_balance_type_code);
21533 
21534    END IF;
21535 
21536    -----------------------------------------------------------------------------------------
21537    -- 4262811 Multiperiod Accounting
21538    -----------------------------------------------------------------------------------------
21539      -- No MPA option is assigned.
21540 
21541 
21542 END IF;
21543 END IF;
21544 --
21545 
21546 --
21547 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21548    trace
21549       (p_msg      => 'END of AcctLineType_40'
21550       ,p_level    => C_LEVEL_PROCEDURE
21551       ,p_module   => l_log_module);
21552 END IF;
21553 --
21554 EXCEPTION
21555   WHEN xla_exceptions_pkg.application_exception THEN
21556       RAISE;
21557   WHEN OTHERS THEN
21558        xla_exceptions_pkg.raise_message
21559            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_40');
21560 END AcctLineType_40;
21561 --
21562 
21563 ---------------------------------------
21564 --
21565 -- PRIVATE FUNCTION
21566 --         AcctLineType_41
21567 --
21568 ---------------------------------------
21569 PROCEDURE AcctLineType_41 (
21570   p_application_id        IN NUMBER
21571  ,p_event_id              IN NUMBER
21572  ,p_calculate_acctd_flag  IN VARCHAR2
21573  ,p_calculate_g_l_flag    IN VARCHAR2
21574  ,p_actual_flag           IN OUT VARCHAR2
21575  ,p_balance_type_code     OUT VARCHAR2
21576  ,p_gain_or_loss_ref      OUT VARCHAR2
21577  
21578 --Invoice Distribution Description
21579  , p_source_1            IN VARCHAR2
21580 --Invoice Distribution Account
21581  , p_source_11            IN NUMBER
21582 --Invoice Distribution Type
21583  , p_source_15            IN VARCHAR2
21584  , p_source_15_meaning    IN VARCHAR2
21585 --Purchasing Encumbrance Option
21586  , p_source_17            IN VARCHAR2
21587  , p_source_17_meaning    IN VARCHAR2
21588 --Accounting Reversal Indicator
21589  , p_source_19            IN VARCHAR2
21590 --Distribution Link Type
21591  , p_source_21            IN VARCHAR2
21592 --Allocation to Main Distribution Identifier
21593  , p_source_23            IN NUMBER
21594 --Invoice Identifier
21595  , p_source_24            IN NUMBER
21596 --Business Flow Accounts Payable Application Identifier
21597  , p_source_25            IN NUMBER
21598 --Business Flow Invoice Distribution Type
21599  , p_source_26            IN VARCHAR2
21600 --Business Flow Invoice Entity Code
21601  , p_source_27            IN VARCHAR2
21602 --Business Flow Invoice Distribution Identifier
21603  , p_source_28            IN NUMBER
21604 --Business Flow Invoice Identifier
21605  , p_source_29            IN NUMBER
21606 --Invoice Distribution Identifier
21607  , p_source_30            IN NUMBER
21608 --Payables Encumbrance Upgrade Credit Account
21609  , p_source_31            IN NUMBER
21613  , p_source_33            IN VARCHAR2
21610 --Payables Encumbrance Upgrade Credit Amount
21611  , p_source_32            IN NUMBER
21612 --Invoice Currency Code
21614 --Payables Encumbrance Upgrade Credit Base Amount
21615  , p_source_34            IN NUMBER
21616 --Payables Encumbrance Upgrade Debit Account
21617  , p_source_35            IN NUMBER
21618 --Payables Encumbrance Upgrade Debit Amount
21619  , p_source_36            IN NUMBER
21620 --Payables Encumbrance Upgrade Debit Base Amount
21621  , p_source_37            IN NUMBER
21622 --Payables Encumbrance Upgrade Option
21623  , p_source_38            IN VARCHAR2
21624 --Invoice Exchange Date
21625  , p_source_39            IN DATE
21626 --Invoice Exchange Rate
21627  , p_source_40            IN NUMBER
21628 --Invoice Exchange Rate Type
21629  , p_source_41            IN VARCHAR2
21630 --Deferred Accounting End Date
21631  , p_source_43            IN DATE
21632 --Deferred Accounting Option
21633  , p_source_44            IN VARCHAR2
21634 --Deferred Accounting Start Date
21635  , p_source_45            IN DATE
21636 --Override Accounted Amount Indicator
21637  , p_source_46            IN VARCHAR2
21638  , p_source_46_meaning    IN VARCHAR2
21639 --Invoice Supplier Identifier
21640  , p_source_47            IN NUMBER
21641 --Invoice Supplier Site Identifier
21642  , p_source_48            IN NUMBER
21643 --Third Party Type
21644  , p_source_49            IN VARCHAR2
21645 --Parent Reversal Identifier
21646  , p_source_50            IN NUMBER
21647 --Invoice Distribution Statistical Amount
21648  , p_source_51            IN NUMBER
21649 --Invoice Distribution Tax Line Identifier
21650  , p_source_52            IN NUMBER
21651 --Invoice Distribution Tax Distribution Identifier from Tax
21652  , p_source_53            IN NUMBER
21653 --Invoice Distribution Summary Tax Line Identifier
21654  , p_source_54            IN NUMBER
21655 --Payables Upgrade Credit Encumbrance Type Identifier
21656  , p_source_55            IN NUMBER
21657 --Payables Upgrade Debit Encumbrance Type Identifier
21658  , p_source_56            IN NUMBER
21659 --Invoice Distribution Encumbrance Amount
21660  , p_source_65            IN NUMBER
21661 --Invoice Distribution Encumbrance Ledger Amount
21662  , p_source_66            IN NUMBER
21663 )
21664 IS
21665 
21666 l_component_type              VARCHAR2(80);
21667 l_component_code              VARCHAR2(30);
21668 l_component_type_code         VARCHAR2(1);
21669 l_component_appl_id           INTEGER;
21670 l_amb_context_code            VARCHAR2(30);
21671 l_entity_code                 VARCHAR2(30);
21672 l_event_class_code            VARCHAR2(30);
21673 l_ae_header_id                NUMBER;
21674 l_event_type_code             VARCHAR2(30);
21675 l_line_definition_code        VARCHAR2(30);
21676 l_line_definition_owner_code  VARCHAR2(1);
21677 --
21678 -- adr variables
21679 l_segment                     VARCHAR2(30);
21680 l_ccid                        NUMBER;
21681 l_adr_transaction_coa_id      NUMBER;
21682 l_adr_accounting_coa_id       NUMBER;
21683 l_adr_flexfield_segment_code  VARCHAR2(30);
21684 l_adr_flex_value_set_id       NUMBER;
21685 l_adr_value_type_code         VARCHAR2(30);
21686 l_adr_value_combination_id    NUMBER;
21687 l_adr_value_segment_code      VARCHAR2(30);
21688 
21689 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21690 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21691 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21692 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21693 
21694 -- 4262811 Variables ------------------------------------------------------------------------------------------
21695 l_entered_amt_idx             NUMBER;
21696 l_accted_amt_idx              NUMBER;
21697 l_acc_rev_flag                VARCHAR2(1);
21698 l_accrual_line_num            NUMBER;
21699 l_tmp_amt                     NUMBER;
21700 l_acc_rev_natural_side_code   VARCHAR2(1);
21701 
21702 l_num_entries                 NUMBER;
21703 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21704 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21705 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21706 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21707 l_recog_line_1                NUMBER;
21708 l_recog_line_2                NUMBER;
21709 
21710 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21711 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21712 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21713 
21714 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21715 
21716 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21717 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21718 
21719 ---------------------------------------------------------------------------------------------------------------
21720 
21721 
21722 --
21723 -- bulk performance
21724 --
21725 l_balance_type_code           VARCHAR2(1);
21726 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21727 l_log_module                  VARCHAR2(240);
21728 
21729 --
21730 -- Upgrade strategy
21731 --
21732 l_actual_upg_option           VARCHAR2(1);
21733 l_enc_upg_option           VARCHAR2(1);
21737 --
21734 
21735 --
21736 BEGIN
21738 IF g_log_enabled THEN
21739       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
21740 END IF;
21741 --
21742 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21743 
21744       trace
21745          (p_msg      => 'BEGIN of AcctLineType_41'
21746          ,p_level    => C_LEVEL_PROCEDURE
21747          ,p_module   => l_log_module);
21748 
21749 END IF;
21750 --
21751 l_component_type             := 'AMB_JLT';
21752 l_component_code             := 'AP_MISC_EXPENSE_CM_ENC_DR';
21753 l_component_type_code        := 'S';
21754 l_component_appl_id          :=  200;
21755 l_amb_context_code           := 'DEFAULT';
21756 l_entity_code                := 'AP_INVOICES';
21757 l_event_class_code           := 'CREDIT MEMOS';
21758 l_event_type_code            := 'CREDIT MEMOS_ALL';
21759 l_line_definition_owner_code := 'S';
21760 l_line_definition_code       := 'ENC_CM_ALL';
21761 --
21762 l_balance_type_code          := 'E';
21763 l_segment                     := NULL;
21764 l_ccid                        := NULL;
21765 l_adr_transaction_coa_id      := NULL;
21766 l_adr_accounting_coa_id       := NULL;
21767 l_adr_flexfield_segment_code  := NULL;
21768 l_adr_flex_value_set_id       := NULL;
21769 l_adr_value_type_code         := NULL;
21770 l_adr_value_combination_id    := NULL;
21771 l_adr_value_segment_code      := NULL;
21772 
21773 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
21774 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
21775 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21776 l_budgetary_control_flag     := 'Y';
21777 
21778 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21779 l_bflow_applied_to_amt       := NULL; -- 5132302
21780 l_entered_amt_idx            := NULL;          -- 4262811
21781 l_accted_amt_idx             := NULL;          -- 4262811
21782 l_acc_rev_flag               := NULL;          -- 4262811
21783 l_accrual_line_num           := NULL;          -- 4262811
21784 l_tmp_amt                    := NULL;          -- 4262811
21785 --
21786  
21787 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21788     l_balance_type_code <> 'B' THEN
21789 IF NVL(p_source_15,'
21790 ') =  'MISCELLANEOUS' AND 
21791 NVL(p_source_17,'
21792 ') =  'Y'
21793  THEN 
21794 
21795    --
21796    XLA_AE_LINES_PKG.SetNewLine;
21797 
21798    p_balance_type_code          := l_balance_type_code;
21799    -- set the flag so later we will know whether the gain loss line needs to be created
21800    
21801    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21802      p_actual_flag :='A';
21803    END IF;
21804 
21805    --
21806    -- bulk performance
21807    --
21808    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21809                                       p_header_num   => 0); -- 4262811
21810    --
21811    -- set accounting line options
21812    --
21813    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21814            p_natural_side_code          => 'D'
21815          , p_gain_or_loss_flag          => 'N'
21816          , p_gl_transfer_mode_code      => 'S'
21817          , p_acct_entry_type_code       => 'E'
21818          , p_switch_side_flag           => 'Y'
21819          , p_merge_duplicate_code       => 'N'
21820          );
21821    --
21822    l_acc_rev_natural_side_code := 'C';  -- 4262811
21823    -- 
21824    --
21825    -- set accounting line type info
21826    --
21827    xla_ae_lines_pkg.SetAcctLineType
21828       (p_component_type             => l_component_type
21829       ,p_event_type_code            => l_event_type_code
21830       ,p_line_definition_owner_code => l_line_definition_owner_code
21831       ,p_line_definition_code       => l_line_definition_code
21832       ,p_accounting_line_code       => l_component_code
21833       ,p_accounting_line_type_code  => l_component_type_code
21834       ,p_accounting_line_appl_id    => l_component_appl_id
21835       ,p_amb_context_code           => l_amb_context_code
21836       ,p_entity_code                => l_entity_code
21837       ,p_event_class_code           => l_event_class_code);
21838    --
21839    -- set accounting class
21840    --
21841    xla_ae_lines_pkg.SetAcctClass(
21842            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
21843          , p_ae_header_id           => l_ae_header_id
21844          );
21845 
21846    --
21847    -- set rounding class
21848    --
21849    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21850                       'MISCELLANEOUS EXPENSE';
21851 
21852    --
21853    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21854    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21855    --
21856    -- bulk performance
21857    --
21858    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21859 
21860    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21861       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21862 
21863    -- 4955764
21864    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21865       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21869    --
21866 
21867    -- 4458381 Public Sector Enh
21868       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
21870    -- set accounting attributes for the line type
21871    --
21872    l_entered_amt_idx := 23;
21873    l_accted_amt_idx  := 28;
21874    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
21875    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21876    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
21877    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21878    l_rec_acct_attrs.array_num_value(2)  := 
21879 xla_ae_sources_pkg.GetSystemSourceNum(
21880    p_source_code           => 'XLA_EVENT_APPL_ID'
21881  , p_source_type_code      => 'Y'
21882  , p_source_application_id =>  602
21883 );
21884    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21885    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
21886    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21887    l_rec_acct_attrs.array_char_value(4)  := 
21888 xla_ae_sources_pkg.GetSystemSourceChar(
21889    p_source_code           => 'XLA_ENTITY_CODE'
21890  , p_source_type_code      => 'Y'
21891  , p_source_application_id =>  602
21892 );
21893    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21894    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
21895    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21896    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
21897    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
21898    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
21899    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21900    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
21901    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
21902    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
21903    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
21904    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
21905    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21906    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
21907    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
21908    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
21909    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
21910    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
21911    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
21912    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
21913    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
21914    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
21915    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
21916    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
21917    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
21918    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
21919    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
21920    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
21921    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
21922    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
21923    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
21924    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
21925    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
21926    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
21927    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
21928    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
21929    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
21930    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
21931    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
21932    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
21933    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
21934    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
21935    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
21936    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
21937    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
21938    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
21939    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
21940    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
21941    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
21942    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
21943    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
21944    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
21945    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
21946    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
21947    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
21948    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
21949    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
21950    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
21951    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
21952    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
21953    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
21954    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
21955    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
21956    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
21957    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
21961    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
21958    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
21959    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
21960    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
21962    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
21963    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
21964    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
21965    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
21966    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
21967    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
21968    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
21969    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
21970    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
21971 
21972    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21973    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21974 
21975    ---------------------------------------------------------------------------------------------------------------
21976    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21977    ---------------------------------------------------------------------------------------------------------------
21978    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21979 
21980    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21981    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21982 
21983    IF xla_accounting_cache_pkg.GetValueChar
21984          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21985          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21986    AND l_bflow_method_code = 'PRIOR_ENTRY'
21987 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21988    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21989          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21990        )
21991    THEN
21992          xla_ae_lines_pkg.BflowUpgEntry
21993            (p_business_method_code    => l_bflow_method_code
21994            ,p_business_class_code     => l_bflow_class_code
21995            ,p_balance_type            => l_balance_type_code);
21996    ELSE
21997       NULL;
21998 -- No business flow processing for business flow method of NONE.
21999    END IF;
22000 
22001    --
22002    -- call analytical criteria
22003    --
22004    
22005    --
22006    -- call description
22007    --
22008    
22009 xla_ae_lines_pkg.SetLineDescription(
22010    p_ae_header_id => l_ae_header_id
22011   ,p_description  => Description_2 (
22012      p_application_id         => p_application_id
22013    , p_ae_header_id           => l_ae_header_id 
22014 , p_source_1 => p_source_1
22015    )
22016 );
22017 
22018 
22019    --
22020    -- call ADRs
22021    -- Bug 4922099
22022    --
22023    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22024         (NVL(l_actual_upg_option, 'N') = 'O') OR
22025         (NVL(l_enc_upg_option, 'N') = 'O')
22026       )
22027    THEN
22028    NULL;
22029    --
22030    --
22031    
22032   l_ccid := AcctDerRule_7(
22033            p_application_id           => p_application_id
22034          , p_ae_header_id             => l_ae_header_id 
22035 , p_source_11 => p_source_11
22036          , x_transaction_coa_id       => l_adr_transaction_coa_id
22037          , x_accounting_coa_id        => l_adr_accounting_coa_id
22038          , x_value_type_code          => l_adr_value_type_code
22039          , p_side                     => 'NA'
22040    );
22041 
22042    xla_ae_lines_pkg.set_ccid(
22043     p_code_combination_id          => l_ccid
22044   , p_value_type_code              => l_adr_value_type_code
22045   , p_transaction_coa_id           => l_adr_transaction_coa_id
22046   , p_accounting_coa_id            => l_adr_accounting_coa_id
22047   , p_adr_code                     => 'AP_INVOICE_DIST'
22048   , p_adr_type_code                => 'S'
22049   , p_component_type               => l_component_type
22050   , p_component_code               => l_component_code
22051   , p_component_type_code          => l_component_type_code
22052   , p_component_appl_id            => l_component_appl_id
22053   , p_amb_context_code             => l_amb_context_code
22054   , p_side                         => 'NA'
22055   );
22056 
22057 
22058    --
22059    --
22060    END IF;
22061    --
22062    -- Bug 4922099
22063    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22064           (NVL(l_enc_upg_option, 'N') = 'O')
22065         ) AND
22066         (l_bflow_method_code = 'PRIOR_ENTRY')
22067       )
22068    THEN
22069       IF
22070       --
22071       1 = 2
22072       --
22073       THEN
22074       xla_accounting_err_pkg.build_message
22075                                     (p_appli_s_name            => 'XLA'
22076                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22077                                     ,p_token_1                 => 'LINE_NUMBER'
22078                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22082                                                                             ,l_component_code
22079                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22080                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22081                                                                              l_component_type
22083                                                                             ,l_component_type_code
22084                                                                             ,l_component_appl_id
22085                                                                             ,l_amb_context_code
22086                                                                             ,l_entity_code
22087                                                                             ,l_event_class_code
22088                                                                            )
22089                                     ,p_token_3                 => 'OWNER'
22090                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22091                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22092                                                                           ,p_lookup_code    => l_component_type_code
22093                                                                          )
22094                                     ,p_token_4                 => 'PRODUCT_NAME'
22095                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22096                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22097                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22098                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22099                                     ,p_ae_header_id            =>  NULL
22100                                        );
22101 
22102         IF (C_LEVEL_ERROR>= g_log_level) THEN
22103                  trace
22104                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22105                       ,p_level    => C_LEVEL_ERROR
22106                       ,p_module   => l_log_module);
22107         END IF;
22108       END IF;
22109    END IF;
22110    --
22111    --
22112    ------------------------------------------------------------------------------------------------
22113    -- 4219869 Business Flow
22114    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22115    -- Prior Entry.  Currently, the following code is always generated.
22116    ------------------------------------------------------------------------------------------------
22117    XLA_AE_LINES_PKG.ValidateCurrentLine;
22118 
22119    ------------------------------------------------------------------------------------
22120    -- 4219869 Business Flow
22121    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22122    ------------------------------------------------------------------------------------
22123    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22124 
22125    ----------------------------------------------------------------------------------
22126    -- 4219869 Business Flow
22127    -- Update journal entry status -- Need to generate this within IF <condition>
22128    ----------------------------------------------------------------------------------
22129    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22130          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22131          ,p_balance_type_code => l_balance_type_code
22132          );
22133 
22134    -------------------------------------------------------------------------------------------
22135    -- 4262811 - Generate the Accrual Reversal lines
22136    -------------------------------------------------------------------------------------------
22137    BEGIN
22138       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22139                               (g_array_event(p_event_id).array_value_num('header_index'));
22140       IF l_acc_rev_flag IS NULL THEN
22141          l_acc_rev_flag := 'N';
22142       END IF;
22143    EXCEPTION
22144       WHEN OTHERS THEN
22145          l_acc_rev_flag := 'N';
22146    END;
22147    --
22148    IF (l_acc_rev_flag = 'Y') THEN
22149 
22150        -- 4645092  ------------------------------------------------------------------------------
22151        -- To allow MPA report to determine if it should generate report process
22152        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22153        ------------------------------------------------------------------------------------------
22154 
22155        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22156        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22157    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22158    -- call ADRs
22159    -- Bug 4922099
22160    --
22161    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22162         (NVL(l_actual_upg_option, 'N') = 'O') OR
22163         (NVL(l_enc_upg_option, 'N') = 'O')
22164       )
22165    THEN
22166    NULL;
22167    --
22168    --
22169    
22170   l_ccid := AcctDerRule_7(
22171            p_application_id           => p_application_id
22172          , p_ae_header_id             => l_ae_header_id 
22176          , x_value_type_code          => l_adr_value_type_code
22173 , p_source_11 => p_source_11
22174          , x_transaction_coa_id       => l_adr_transaction_coa_id
22175          , x_accounting_coa_id        => l_adr_accounting_coa_id
22177          , p_side                     => 'NA'
22178    );
22179 
22180    xla_ae_lines_pkg.set_ccid(
22181     p_code_combination_id          => l_ccid
22182   , p_value_type_code              => l_adr_value_type_code
22183   , p_transaction_coa_id           => l_adr_transaction_coa_id
22184   , p_accounting_coa_id            => l_adr_accounting_coa_id
22185   , p_adr_code                     => 'AP_INVOICE_DIST'
22186   , p_adr_type_code                => 'S'
22187   , p_component_type               => l_component_type
22188   , p_component_code               => l_component_code
22189   , p_component_type_code          => l_component_type_code
22190   , p_component_appl_id            => l_component_appl_id
22191   , p_amb_context_code             => l_amb_context_code
22192   , p_side                         => 'NA'
22193   );
22194 
22195 
22196    --
22197    --
22198    END IF;
22199 
22200        --
22201        -- Update the line information that should be overwritten
22202        --
22203        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22204                                          p_header_num   => 1);
22205        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22206 
22207        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22208 
22209        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22210           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22211        END IF;
22212 
22213       --
22214       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22215       --
22216       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22217           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22218       ELSE
22219           ---------------------------------------------------------------------------------------------------
22220           -- 4262811a Switch Sign
22221           ---------------------------------------------------------------------------------------------------
22222           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22223           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22224                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22225           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22226                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22227           -- 5132302
22228           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22229                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22230 
22231       END IF;
22232 
22233       -- 4955764
22234       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22235       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22236 
22237 
22238       XLA_AE_LINES_PKG.ValidateCurrentLine;
22239       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22240 
22241       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22242                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22243                ,p_balance_type_code => l_balance_type_code);
22244 
22245    END IF;
22246 
22247    -----------------------------------------------------------------------------------------
22248    -- 4262811 Multiperiod Accounting
22249    -----------------------------------------------------------------------------------------
22250      -- No MPA option is assigned.
22251 
22252 
22253 END IF;
22254 END IF;
22255 --
22256 
22257 --
22258 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22259    trace
22260       (p_msg      => 'END of AcctLineType_41'
22261       ,p_level    => C_LEVEL_PROCEDURE
22262       ,p_module   => l_log_module);
22263 END IF;
22264 --
22265 EXCEPTION
22266   WHEN xla_exceptions_pkg.application_exception THEN
22267       RAISE;
22268   WHEN OTHERS THEN
22269        xla_exceptions_pkg.raise_message
22270            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_41');
22271 END AcctLineType_41;
22272 --
22273 
22274 ---------------------------------------
22275 --
22276 -- PRIVATE FUNCTION
22277 --         AcctLineType_42
22278 --
22279 ---------------------------------------
22280 PROCEDURE AcctLineType_42 (
22281   p_application_id        IN NUMBER
22282  ,p_event_id              IN NUMBER
22283  ,p_calculate_acctd_flag  IN VARCHAR2
22284  ,p_calculate_g_l_flag    IN VARCHAR2
22285  ,p_actual_flag           IN OUT VARCHAR2
22286  ,p_balance_type_code     OUT VARCHAR2
22287  ,p_gain_or_loss_ref      OUT VARCHAR2
22288  
22289 --Invoice Distribution Description
22290  , p_source_1            IN VARCHAR2
22291 --Invoice Distribution Account
22292  , p_source_11            IN NUMBER
22296 --Purchasing Encumbrance Option
22293 --Invoice Distribution Type
22294  , p_source_15            IN VARCHAR2
22295  , p_source_15_meaning    IN VARCHAR2
22297  , p_source_17            IN VARCHAR2
22298  , p_source_17_meaning    IN VARCHAR2
22299 --Accounting Reversal Indicator
22300  , p_source_19            IN VARCHAR2
22301 --Distribution Link Type
22302  , p_source_21            IN VARCHAR2
22303 --Allocation to Main Distribution Identifier
22304  , p_source_23            IN NUMBER
22305 --Invoice Identifier
22306  , p_source_24            IN NUMBER
22307 --Business Flow Accounts Payable Application Identifier
22308  , p_source_25            IN NUMBER
22309 --Business Flow Invoice Distribution Type
22310  , p_source_26            IN VARCHAR2
22311 --Business Flow Invoice Entity Code
22312  , p_source_27            IN VARCHAR2
22313 --Business Flow Invoice Distribution Identifier
22314  , p_source_28            IN NUMBER
22315 --Business Flow Invoice Identifier
22316  , p_source_29            IN NUMBER
22317 --Invoice Distribution Identifier
22318  , p_source_30            IN NUMBER
22319 --Payables Encumbrance Upgrade Credit Account
22320  , p_source_31            IN NUMBER
22321 --Payables Encumbrance Upgrade Credit Amount
22322  , p_source_32            IN NUMBER
22323 --Invoice Currency Code
22324  , p_source_33            IN VARCHAR2
22325 --Payables Encumbrance Upgrade Credit Base Amount
22326  , p_source_34            IN NUMBER
22327 --Payables Encumbrance Upgrade Debit Account
22328  , p_source_35            IN NUMBER
22329 --Payables Encumbrance Upgrade Debit Amount
22330  , p_source_36            IN NUMBER
22331 --Payables Encumbrance Upgrade Debit Base Amount
22332  , p_source_37            IN NUMBER
22333 --Payables Encumbrance Upgrade Option
22334  , p_source_38            IN VARCHAR2
22335 --Invoice Exchange Date
22336  , p_source_39            IN DATE
22337 --Invoice Exchange Rate
22338  , p_source_40            IN NUMBER
22339 --Invoice Exchange Rate Type
22340  , p_source_41            IN VARCHAR2
22341 --Deferred Accounting End Date
22342  , p_source_43            IN DATE
22343 --Deferred Accounting Option
22344  , p_source_44            IN VARCHAR2
22345 --Deferred Accounting Start Date
22346  , p_source_45            IN DATE
22347 --Override Accounted Amount Indicator
22348  , p_source_46            IN VARCHAR2
22349  , p_source_46_meaning    IN VARCHAR2
22350 --Invoice Supplier Identifier
22351  , p_source_47            IN NUMBER
22352 --Invoice Supplier Site Identifier
22353  , p_source_48            IN NUMBER
22354 --Third Party Type
22355  , p_source_49            IN VARCHAR2
22356 --Parent Reversal Identifier
22357  , p_source_50            IN NUMBER
22358 --Invoice Distribution Tax Line Identifier
22359  , p_source_52            IN NUMBER
22360 --Invoice Distribution Tax Distribution Identifier from Tax
22361  , p_source_53            IN NUMBER
22362 --Invoice Distribution Summary Tax Line Identifier
22363  , p_source_54            IN NUMBER
22364 --Payables Upgrade Credit Encumbrance Type Identifier
22365  , p_source_55            IN NUMBER
22366 --Payables Upgrade Debit Encumbrance Type Identifier
22367  , p_source_56            IN NUMBER
22368 --Invoice Distribution Encumbrance Amount
22369  , p_source_65            IN NUMBER
22370 --Invoice Distribution Encumbrance Ledger Amount
22371  , p_source_66            IN NUMBER
22372 )
22373 IS
22374 
22375 l_component_type              VARCHAR2(80);
22376 l_component_code              VARCHAR2(30);
22377 l_component_type_code         VARCHAR2(1);
22378 l_component_appl_id           INTEGER;
22379 l_amb_context_code            VARCHAR2(30);
22380 l_entity_code                 VARCHAR2(30);
22381 l_event_class_code            VARCHAR2(30);
22382 l_ae_header_id                NUMBER;
22383 l_event_type_code             VARCHAR2(30);
22384 l_line_definition_code        VARCHAR2(30);
22385 l_line_definition_owner_code  VARCHAR2(1);
22386 --
22387 -- adr variables
22388 l_segment                     VARCHAR2(30);
22389 l_ccid                        NUMBER;
22390 l_adr_transaction_coa_id      NUMBER;
22391 l_adr_accounting_coa_id       NUMBER;
22392 l_adr_flexfield_segment_code  VARCHAR2(30);
22393 l_adr_flex_value_set_id       NUMBER;
22394 l_adr_value_type_code         VARCHAR2(30);
22395 l_adr_value_combination_id    NUMBER;
22396 l_adr_value_segment_code      VARCHAR2(30);
22397 
22398 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22399 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22400 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22401 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22402 
22403 -- 4262811 Variables ------------------------------------------------------------------------------------------
22404 l_entered_amt_idx             NUMBER;
22405 l_accted_amt_idx              NUMBER;
22406 l_acc_rev_flag                VARCHAR2(1);
22407 l_accrual_line_num            NUMBER;
22408 l_tmp_amt                     NUMBER;
22409 l_acc_rev_natural_side_code   VARCHAR2(1);
22410 
22411 l_num_entries                 NUMBER;
22412 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22413 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22414 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22415 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22416 l_recog_line_1                NUMBER;
22417 l_recog_line_2                NUMBER;
22418 
22422 
22419 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22420 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22421 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22423 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22424 
22425 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22426 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22427 
22428 ---------------------------------------------------------------------------------------------------------------
22429 
22430 
22431 --
22432 -- bulk performance
22433 --
22434 l_balance_type_code           VARCHAR2(1);
22435 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22436 l_log_module                  VARCHAR2(240);
22437 
22438 --
22439 -- Upgrade strategy
22440 --
22441 l_actual_upg_option           VARCHAR2(1);
22442 l_enc_upg_option           VARCHAR2(1);
22443 
22444 --
22445 BEGIN
22446 --
22447 IF g_log_enabled THEN
22448       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
22449 END IF;
22450 --
22451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22452 
22453       trace
22454          (p_msg      => 'BEGIN of AcctLineType_42'
22455          ,p_level    => C_LEVEL_PROCEDURE
22456          ,p_module   => l_log_module);
22457 
22458 END IF;
22459 --
22460 l_component_type             := 'AMB_JLT';
22461 l_component_code             := 'AP_MISC_EXPENSE_DM_ENC_DR';
22462 l_component_type_code        := 'S';
22463 l_component_appl_id          :=  200;
22464 l_amb_context_code           := 'DEFAULT';
22465 l_entity_code                := 'AP_INVOICES';
22466 l_event_class_code           := 'DEBIT MEMOS';
22467 l_event_type_code            := 'DEBIT MEMOS_ALL';
22468 l_line_definition_owner_code := 'S';
22469 l_line_definition_code       := 'ENC_DM_ALL';
22470 --
22471 l_balance_type_code          := 'E';
22472 l_segment                     := NULL;
22473 l_ccid                        := NULL;
22474 l_adr_transaction_coa_id      := NULL;
22475 l_adr_accounting_coa_id       := NULL;
22476 l_adr_flexfield_segment_code  := NULL;
22477 l_adr_flex_value_set_id       := NULL;
22478 l_adr_value_type_code         := NULL;
22479 l_adr_value_combination_id    := NULL;
22480 l_adr_value_segment_code      := NULL;
22481 
22482 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
22483 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
22484 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22485 l_budgetary_control_flag     := 'Y';
22486 
22487 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22488 l_bflow_applied_to_amt       := NULL; -- 5132302
22489 l_entered_amt_idx            := NULL;          -- 4262811
22490 l_accted_amt_idx             := NULL;          -- 4262811
22491 l_acc_rev_flag               := NULL;          -- 4262811
22492 l_accrual_line_num           := NULL;          -- 4262811
22493 l_tmp_amt                    := NULL;          -- 4262811
22494 --
22495  
22496 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22497     l_balance_type_code <> 'B' THEN
22498 IF NVL(p_source_15,'
22499 ') =  'MISCELLANEOUS' AND 
22500 NVL(p_source_17,'
22501 ') =  'Y'
22502  THEN 
22503 
22504    --
22505    XLA_AE_LINES_PKG.SetNewLine;
22506 
22507    p_balance_type_code          := l_balance_type_code;
22508    -- set the flag so later we will know whether the gain loss line needs to be created
22509    
22510    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22511      p_actual_flag :='A';
22512    END IF;
22513 
22514    --
22515    -- bulk performance
22516    --
22517    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22518                                       p_header_num   => 0); -- 4262811
22519    --
22520    -- set accounting line options
22521    --
22522    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22523            p_natural_side_code          => 'D'
22524          , p_gain_or_loss_flag          => 'N'
22525          , p_gl_transfer_mode_code      => 'S'
22526          , p_acct_entry_type_code       => 'E'
22527          , p_switch_side_flag           => 'Y'
22528          , p_merge_duplicate_code       => 'N'
22529          );
22530    --
22531    l_acc_rev_natural_side_code := 'C';  -- 4262811
22532    -- 
22533    --
22534    -- set accounting line type info
22535    --
22536    xla_ae_lines_pkg.SetAcctLineType
22537       (p_component_type             => l_component_type
22538       ,p_event_type_code            => l_event_type_code
22539       ,p_line_definition_owner_code => l_line_definition_owner_code
22540       ,p_line_definition_code       => l_line_definition_code
22541       ,p_accounting_line_code       => l_component_code
22542       ,p_accounting_line_type_code  => l_component_type_code
22543       ,p_accounting_line_appl_id    => l_component_appl_id
22544       ,p_amb_context_code           => l_amb_context_code
22545       ,p_entity_code                => l_entity_code
22546       ,p_event_class_code           => l_event_class_code);
22547    --
22548    -- set accounting class
22549    --
22550    xla_ae_lines_pkg.SetAcctClass(
22551            p_accounting_class_code  => 'FREIGHT'
22555    --
22552          , p_ae_header_id           => l_ae_header_id
22553          );
22554 
22556    -- set rounding class
22557    --
22558    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22559                       'FREIGHT';
22560 
22561    --
22562    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22563    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22564    --
22565    -- bulk performance
22566    --
22567    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22568 
22569    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22570       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22571 
22572    -- 4955764
22573    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22574       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22575 
22576    -- 4458381 Public Sector Enh
22577       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
22578    --
22579    -- set accounting attributes for the line type
22580    --
22581    l_entered_amt_idx := 23;
22582    l_accted_amt_idx  := 28;
22583    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
22584    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22585    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
22586    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
22587    l_rec_acct_attrs.array_num_value(2)  := 
22588 xla_ae_sources_pkg.GetSystemSourceNum(
22589    p_source_code           => 'XLA_EVENT_APPL_ID'
22590  , p_source_type_code      => 'Y'
22591  , p_source_application_id =>  602
22592 );
22593    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
22594    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
22595    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
22596    l_rec_acct_attrs.array_char_value(4)  := 
22597 xla_ae_sources_pkg.GetSystemSourceChar(
22598    p_source_code           => 'XLA_ENTITY_CODE'
22599  , p_source_type_code      => 'Y'
22600  , p_source_application_id =>  602
22601 );
22602    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
22603    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
22604    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
22605    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
22606    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
22607    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
22608    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22609    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
22610    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
22611    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
22612    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
22613    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
22614    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22615    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
22616    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
22617    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
22618    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
22619    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
22620    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
22621    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
22622    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
22623    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
22624    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
22625    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
22626    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
22627    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
22628    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
22629    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
22630    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
22631    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
22632    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
22633    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
22634    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
22635    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
22636    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
22637    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
22638    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
22639    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
22640    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
22641    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
22642    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
22643    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
22644    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
22645    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
22646    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
22647    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
22648    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
22649    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
22653    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
22650    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
22651    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
22652    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
22654    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
22655    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
22656    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
22657    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
22658    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
22659    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
22660    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
22661    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
22662    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
22663    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
22664    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
22665    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
22666    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
22667    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
22668    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
22669    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
22670    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
22671    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
22672    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
22673    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
22674    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
22675    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
22676    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
22677    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
22678 
22679    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22680    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22681 
22682    ---------------------------------------------------------------------------------------------------------------
22683    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22684    ---------------------------------------------------------------------------------------------------------------
22685    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22686 
22687    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22688    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22689 
22690    IF xla_accounting_cache_pkg.GetValueChar
22691          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22692          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22693    AND l_bflow_method_code = 'PRIOR_ENTRY'
22694 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22695    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22696          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22697        )
22698    THEN
22699          xla_ae_lines_pkg.BflowUpgEntry
22700            (p_business_method_code    => l_bflow_method_code
22701            ,p_business_class_code     => l_bflow_class_code
22702            ,p_balance_type            => l_balance_type_code);
22703    ELSE
22704       NULL;
22705 -- No business flow processing for business flow method of NONE.
22706    END IF;
22707 
22708    --
22709    -- call analytical criteria
22710    --
22711    
22712    --
22713    -- call description
22714    --
22715    
22716 xla_ae_lines_pkg.SetLineDescription(
22717    p_ae_header_id => l_ae_header_id
22718   ,p_description  => Description_2 (
22719      p_application_id         => p_application_id
22720    , p_ae_header_id           => l_ae_header_id 
22721 , p_source_1 => p_source_1
22722    )
22723 );
22724 
22725 
22726    --
22727    -- call ADRs
22728    -- Bug 4922099
22729    --
22730    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22731         (NVL(l_actual_upg_option, 'N') = 'O') OR
22732         (NVL(l_enc_upg_option, 'N') = 'O')
22733       )
22734    THEN
22735    NULL;
22736    --
22737    --
22738    
22739   l_ccid := AcctDerRule_7(
22740            p_application_id           => p_application_id
22741          , p_ae_header_id             => l_ae_header_id 
22742 , p_source_11 => p_source_11
22743          , x_transaction_coa_id       => l_adr_transaction_coa_id
22744          , x_accounting_coa_id        => l_adr_accounting_coa_id
22745          , x_value_type_code          => l_adr_value_type_code
22746          , p_side                     => 'NA'
22747    );
22748 
22749    xla_ae_lines_pkg.set_ccid(
22750     p_code_combination_id          => l_ccid
22751   , p_value_type_code              => l_adr_value_type_code
22752   , p_transaction_coa_id           => l_adr_transaction_coa_id
22753   , p_accounting_coa_id            => l_adr_accounting_coa_id
22754   , p_adr_code                     => 'AP_INVOICE_DIST'
22755   , p_adr_type_code                => 'S'
22756   , p_component_type               => l_component_type
22757   , p_component_code               => l_component_code
22758   , p_component_type_code          => l_component_type_code
22762   );
22759   , p_component_appl_id            => l_component_appl_id
22760   , p_amb_context_code             => l_amb_context_code
22761   , p_side                         => 'NA'
22763 
22764 
22765    --
22766    --
22767    END IF;
22768    --
22769    -- Bug 4922099
22770    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22771           (NVL(l_enc_upg_option, 'N') = 'O')
22772         ) AND
22773         (l_bflow_method_code = 'PRIOR_ENTRY')
22774       )
22775    THEN
22776       IF
22777       --
22778       1 = 2
22779       --
22780       THEN
22781       xla_accounting_err_pkg.build_message
22782                                     (p_appli_s_name            => 'XLA'
22783                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22784                                     ,p_token_1                 => 'LINE_NUMBER'
22785                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22786                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22787                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22788                                                                              l_component_type
22789                                                                             ,l_component_code
22790                                                                             ,l_component_type_code
22791                                                                             ,l_component_appl_id
22792                                                                             ,l_amb_context_code
22793                                                                             ,l_entity_code
22794                                                                             ,l_event_class_code
22795                                                                            )
22796                                     ,p_token_3                 => 'OWNER'
22797                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22798                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22799                                                                           ,p_lookup_code    => l_component_type_code
22800                                                                          )
22801                                     ,p_token_4                 => 'PRODUCT_NAME'
22802                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22803                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22804                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22805                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22806                                     ,p_ae_header_id            =>  NULL
22807                                        );
22808 
22809         IF (C_LEVEL_ERROR>= g_log_level) THEN
22810                  trace
22811                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22812                       ,p_level    => C_LEVEL_ERROR
22813                       ,p_module   => l_log_module);
22814         END IF;
22815       END IF;
22816    END IF;
22817    --
22818    --
22819    ------------------------------------------------------------------------------------------------
22820    -- 4219869 Business Flow
22821    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22822    -- Prior Entry.  Currently, the following code is always generated.
22823    ------------------------------------------------------------------------------------------------
22824    XLA_AE_LINES_PKG.ValidateCurrentLine;
22825 
22826    ------------------------------------------------------------------------------------
22827    -- 4219869 Business Flow
22828    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22829    ------------------------------------------------------------------------------------
22830    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22831 
22832    ----------------------------------------------------------------------------------
22833    -- 4219869 Business Flow
22834    -- Update journal entry status -- Need to generate this within IF <condition>
22835    ----------------------------------------------------------------------------------
22836    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22837          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22838          ,p_balance_type_code => l_balance_type_code
22839          );
22840 
22841    -------------------------------------------------------------------------------------------
22842    -- 4262811 - Generate the Accrual Reversal lines
22843    -------------------------------------------------------------------------------------------
22844    BEGIN
22845       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22846                               (g_array_event(p_event_id).array_value_num('header_index'));
22847       IF l_acc_rev_flag IS NULL THEN
22848          l_acc_rev_flag := 'N';
22849       END IF;
22850    EXCEPTION
22851       WHEN OTHERS THEN
22852          l_acc_rev_flag := 'N';
22853    END;
22854    --
22855    IF (l_acc_rev_flag = 'Y') THEN
22856 
22860        ------------------------------------------------------------------------------------------
22857        -- 4645092  ------------------------------------------------------------------------------
22858        -- To allow MPA report to determine if it should generate report process
22859        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22861 
22862        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22863        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22864    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22865    -- call ADRs
22866    -- Bug 4922099
22867    --
22868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22869         (NVL(l_actual_upg_option, 'N') = 'O') OR
22870         (NVL(l_enc_upg_option, 'N') = 'O')
22871       )
22872    THEN
22873    NULL;
22874    --
22875    --
22876    
22877   l_ccid := AcctDerRule_7(
22878            p_application_id           => p_application_id
22879          , p_ae_header_id             => l_ae_header_id 
22880 , p_source_11 => p_source_11
22881          , x_transaction_coa_id       => l_adr_transaction_coa_id
22882          , x_accounting_coa_id        => l_adr_accounting_coa_id
22883          , x_value_type_code          => l_adr_value_type_code
22884          , p_side                     => 'NA'
22885    );
22886 
22887    xla_ae_lines_pkg.set_ccid(
22888     p_code_combination_id          => l_ccid
22889   , p_value_type_code              => l_adr_value_type_code
22890   , p_transaction_coa_id           => l_adr_transaction_coa_id
22891   , p_accounting_coa_id            => l_adr_accounting_coa_id
22892   , p_adr_code                     => 'AP_INVOICE_DIST'
22893   , p_adr_type_code                => 'S'
22894   , p_component_type               => l_component_type
22895   , p_component_code               => l_component_code
22896   , p_component_type_code          => l_component_type_code
22897   , p_component_appl_id            => l_component_appl_id
22898   , p_amb_context_code             => l_amb_context_code
22899   , p_side                         => 'NA'
22900   );
22901 
22902 
22903    --
22904    --
22905    END IF;
22906 
22907        --
22908        -- Update the line information that should be overwritten
22909        --
22910        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22911                                          p_header_num   => 1);
22912        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22913 
22914        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22915 
22916        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22917           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22918        END IF;
22919 
22920       --
22921       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22922       --
22923       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22924           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22925       ELSE
22926           ---------------------------------------------------------------------------------------------------
22927           -- 4262811a Switch Sign
22928           ---------------------------------------------------------------------------------------------------
22929           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22930           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22931                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22932           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22933                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22934           -- 5132302
22935           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22936                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22937 
22938       END IF;
22939 
22940       -- 4955764
22941       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22943 
22944 
22945       XLA_AE_LINES_PKG.ValidateCurrentLine;
22946       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22947 
22948       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22949                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22950                ,p_balance_type_code => l_balance_type_code);
22951 
22952    END IF;
22953 
22954    -----------------------------------------------------------------------------------------
22955    -- 4262811 Multiperiod Accounting
22956    -----------------------------------------------------------------------------------------
22957      -- No MPA option is assigned.
22958 
22959 
22960 END IF;
22961 END IF;
22962 --
22963 
22964 --
22965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22966    trace
22967       (p_msg      => 'END of AcctLineType_42'
22968       ,p_level    => C_LEVEL_PROCEDURE
22969       ,p_module   => l_log_module);
22970 END IF;
22971 --
22972 EXCEPTION
22973   WHEN xla_exceptions_pkg.application_exception THEN
22977            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_42');
22974       RAISE;
22975   WHEN OTHERS THEN
22976        xla_exceptions_pkg.raise_message
22978 END AcctLineType_42;
22979 --
22980 
22981 ---------------------------------------
22982 --
22983 -- PRIVATE FUNCTION
22984 --         AcctLineType_43
22985 --
22986 ---------------------------------------
22987 PROCEDURE AcctLineType_43 (
22988   p_application_id        IN NUMBER
22989  ,p_event_id              IN NUMBER
22990  ,p_calculate_acctd_flag  IN VARCHAR2
22991  ,p_calculate_g_l_flag    IN VARCHAR2
22992  ,p_actual_flag           IN OUT VARCHAR2
22993  ,p_balance_type_code     OUT VARCHAR2
22994  ,p_gain_or_loss_ref      OUT VARCHAR2
22995  
22996 --Invoice Distribution Description
22997  , p_source_1            IN VARCHAR2
22998 --Invoice Distribution Account
22999  , p_source_11            IN NUMBER
23000 --Invoice Distribution Type
23001  , p_source_15            IN VARCHAR2
23002  , p_source_15_meaning    IN VARCHAR2
23003 --Purchasing Encumbrance Option
23004  , p_source_17            IN VARCHAR2
23005  , p_source_17_meaning    IN VARCHAR2
23006 --Accounting Reversal Indicator
23007  , p_source_19            IN VARCHAR2
23008 --Distribution Link Type
23009  , p_source_21            IN VARCHAR2
23010 --Allocation to Main Distribution Identifier
23011  , p_source_23            IN NUMBER
23012 --Invoice Identifier
23013  , p_source_24            IN NUMBER
23014 --Business Flow Accounts Payable Application Identifier
23015  , p_source_25            IN NUMBER
23016 --Business Flow Invoice Distribution Type
23017  , p_source_26            IN VARCHAR2
23018 --Business Flow Invoice Entity Code
23019  , p_source_27            IN VARCHAR2
23020 --Business Flow Invoice Distribution Identifier
23021  , p_source_28            IN NUMBER
23022 --Business Flow Invoice Identifier
23023  , p_source_29            IN NUMBER
23024 --Invoice Distribution Identifier
23025  , p_source_30            IN NUMBER
23026 --Payables Encumbrance Upgrade Credit Account
23027  , p_source_31            IN NUMBER
23028 --Payables Encumbrance Upgrade Credit Amount
23029  , p_source_32            IN NUMBER
23030 --Invoice Currency Code
23031  , p_source_33            IN VARCHAR2
23032 --Payables Encumbrance Upgrade Credit Base Amount
23033  , p_source_34            IN NUMBER
23034 --Payables Encumbrance Upgrade Debit Account
23035  , p_source_35            IN NUMBER
23036 --Payables Encumbrance Upgrade Debit Amount
23037  , p_source_36            IN NUMBER
23038 --Payables Encumbrance Upgrade Debit Base Amount
23039  , p_source_37            IN NUMBER
23040 --Payables Encumbrance Upgrade Option
23041  , p_source_38            IN VARCHAR2
23042 --Invoice Exchange Date
23043  , p_source_39            IN DATE
23044 --Invoice Exchange Rate
23045  , p_source_40            IN NUMBER
23046 --Invoice Exchange Rate Type
23047  , p_source_41            IN VARCHAR2
23048 --Deferred Accounting End Date
23049  , p_source_43            IN DATE
23050 --Deferred Accounting Option
23051  , p_source_44            IN VARCHAR2
23052 --Deferred Accounting Start Date
23053  , p_source_45            IN DATE
23054 --Override Accounted Amount Indicator
23055  , p_source_46            IN VARCHAR2
23056  , p_source_46_meaning    IN VARCHAR2
23057 --Invoice Supplier Identifier
23058  , p_source_47            IN NUMBER
23059 --Invoice Supplier Site Identifier
23060  , p_source_48            IN NUMBER
23061 --Third Party Type
23062  , p_source_49            IN VARCHAR2
23063 --Parent Reversal Identifier
23064  , p_source_50            IN NUMBER
23065 --Invoice Distribution Statistical Amount
23066  , p_source_51            IN NUMBER
23067 --Invoice Distribution Tax Line Identifier
23068  , p_source_52            IN NUMBER
23069 --Invoice Distribution Tax Distribution Identifier from Tax
23070  , p_source_53            IN NUMBER
23071 --Invoice Distribution Summary Tax Line Identifier
23072  , p_source_54            IN NUMBER
23073 --Payables Upgrade Credit Encumbrance Type Identifier
23074  , p_source_55            IN NUMBER
23075 --Payables Upgrade Debit Encumbrance Type Identifier
23076  , p_source_56            IN NUMBER
23077 --Invoice Distribution Amount
23078  , p_source_57            IN NUMBER
23079 --Invoice Distribution Encumbrance Amount
23080  , p_source_65            IN NUMBER
23081 --Invoice Distribution Encumbrance Ledger Amount
23082  , p_source_66            IN NUMBER
23083 )
23084 IS
23085 
23086 l_component_type              VARCHAR2(80);
23087 l_component_code              VARCHAR2(30);
23088 l_component_type_code         VARCHAR2(1);
23089 l_component_appl_id           INTEGER;
23090 l_amb_context_code            VARCHAR2(30);
23091 l_entity_code                 VARCHAR2(30);
23092 l_event_class_code            VARCHAR2(30);
23093 l_ae_header_id                NUMBER;
23094 l_event_type_code             VARCHAR2(30);
23095 l_line_definition_code        VARCHAR2(30);
23096 l_line_definition_owner_code  VARCHAR2(1);
23097 --
23098 -- adr variables
23099 l_segment                     VARCHAR2(30);
23100 l_ccid                        NUMBER;
23101 l_adr_transaction_coa_id      NUMBER;
23102 l_adr_accounting_coa_id       NUMBER;
23103 l_adr_flexfield_segment_code  VARCHAR2(30);
23104 l_adr_flex_value_set_id       NUMBER;
23105 l_adr_value_type_code         VARCHAR2(30);
23106 l_adr_value_combination_id    NUMBER;
23107 l_adr_value_segment_code      VARCHAR2(30);
23108 
23112 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23109 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23110 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23111 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23113 
23114 -- 4262811 Variables ------------------------------------------------------------------------------------------
23115 l_entered_amt_idx             NUMBER;
23116 l_accted_amt_idx              NUMBER;
23117 l_acc_rev_flag                VARCHAR2(1);
23118 l_accrual_line_num            NUMBER;
23119 l_tmp_amt                     NUMBER;
23120 l_acc_rev_natural_side_code   VARCHAR2(1);
23121 
23122 l_num_entries                 NUMBER;
23123 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23124 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23125 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23126 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23127 l_recog_line_1                NUMBER;
23128 l_recog_line_2                NUMBER;
23129 
23130 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23131 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23132 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23133 
23134 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23135 
23136 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23137 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23138 
23139 ---------------------------------------------------------------------------------------------------------------
23140 
23141 
23142 --
23143 -- bulk performance
23144 --
23145 l_balance_type_code           VARCHAR2(1);
23146 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23147 l_log_module                  VARCHAR2(240);
23148 
23149 --
23150 -- Upgrade strategy
23151 --
23152 l_actual_upg_option           VARCHAR2(1);
23153 l_enc_upg_option           VARCHAR2(1);
23154 
23155 --
23156 BEGIN
23157 --
23158 IF g_log_enabled THEN
23159       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
23160 END IF;
23161 --
23162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23163 
23164       trace
23165          (p_msg      => 'BEGIN of AcctLineType_43'
23166          ,p_level    => C_LEVEL_PROCEDURE
23167          ,p_module   => l_log_module);
23168 
23169 END IF;
23170 --
23171 l_component_type             := 'AMB_JLT';
23172 l_component_code             := 'AP_MISC_EXPENSE_INV_ENC_DR';
23173 l_component_type_code        := 'S';
23174 l_component_appl_id          :=  200;
23175 l_amb_context_code           := 'DEFAULT';
23176 l_entity_code                := 'AP_INVOICES';
23177 l_event_class_code           := 'INVOICES';
23178 l_event_type_code            := 'INVOICES_ALL';
23179 l_line_definition_owner_code := 'S';
23180 l_line_definition_code       := 'ENC_INVOICES_ALL';
23181 --
23182 l_balance_type_code          := 'E';
23183 l_segment                     := NULL;
23184 l_ccid                        := NULL;
23185 l_adr_transaction_coa_id      := NULL;
23186 l_adr_accounting_coa_id       := NULL;
23187 l_adr_flexfield_segment_code  := NULL;
23188 l_adr_flex_value_set_id       := NULL;
23189 l_adr_value_type_code         := NULL;
23190 l_adr_value_combination_id    := NULL;
23191 l_adr_value_segment_code      := NULL;
23192 
23193 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
23194 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
23195 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23196 l_budgetary_control_flag     := 'Y';
23197 
23198 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23199 l_bflow_applied_to_amt       := NULL; -- 5132302
23200 l_entered_amt_idx            := NULL;          -- 4262811
23201 l_accted_amt_idx             := NULL;          -- 4262811
23202 l_acc_rev_flag               := NULL;          -- 4262811
23203 l_accrual_line_num           := NULL;          -- 4262811
23204 l_tmp_amt                    := NULL;          -- 4262811
23205 --
23206  
23207 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23208     l_balance_type_code <> 'B' THEN
23209 IF NVL(p_source_15,'
23210 ') =  'MISCELLANEOUS' AND 
23211 NVL(p_source_17,'
23212 ') =  'Y'
23213  THEN 
23214 
23215    --
23216    XLA_AE_LINES_PKG.SetNewLine;
23217 
23218    p_balance_type_code          := l_balance_type_code;
23219    -- set the flag so later we will know whether the gain loss line needs to be created
23220    
23221    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23222      p_actual_flag :='A';
23223    END IF;
23224 
23225    --
23226    -- bulk performance
23227    --
23228    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23229                                       p_header_num   => 0); -- 4262811
23230    --
23231    -- set accounting line options
23232    --
23233    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23234            p_natural_side_code          => 'D'
23235          , p_gain_or_loss_flag          => 'N'
23236          , p_gl_transfer_mode_code      => 'S'
23237          , p_acct_entry_type_code       => 'E'
23238          , p_switch_side_flag           => 'Y'
23239          , p_merge_duplicate_code       => 'N'
23243    -- 
23240          );
23241    --
23242    l_acc_rev_natural_side_code := 'C';  -- 4262811
23244    --
23245    -- set accounting line type info
23246    --
23247    xla_ae_lines_pkg.SetAcctLineType
23248       (p_component_type             => l_component_type
23249       ,p_event_type_code            => l_event_type_code
23250       ,p_line_definition_owner_code => l_line_definition_owner_code
23251       ,p_line_definition_code       => l_line_definition_code
23252       ,p_accounting_line_code       => l_component_code
23253       ,p_accounting_line_type_code  => l_component_type_code
23254       ,p_accounting_line_appl_id    => l_component_appl_id
23255       ,p_amb_context_code           => l_amb_context_code
23256       ,p_entity_code                => l_entity_code
23257       ,p_event_class_code           => l_event_class_code);
23258    --
23259    -- set accounting class
23260    --
23261    xla_ae_lines_pkg.SetAcctClass(
23262            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
23263          , p_ae_header_id           => l_ae_header_id
23264          );
23265 
23266    --
23267    -- set rounding class
23268    --
23269    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23270                       'MISCELLANEOUS EXPENSE';
23271 
23272    --
23273    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23274    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23275    --
23276    -- bulk performance
23277    --
23278    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23279 
23280    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23281       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23282 
23283    -- 4955764
23284    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23285       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23286 
23287    -- 4458381 Public Sector Enh
23288       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
23289    --
23290    -- set accounting attributes for the line type
23291    --
23292    l_entered_amt_idx := 24;
23293    l_accted_amt_idx  := 29;
23294    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
23295    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23296    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
23297    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23298    l_rec_acct_attrs.array_num_value(2)  := 
23299 xla_ae_sources_pkg.GetSystemSourceNum(
23300    p_source_code           => 'XLA_EVENT_APPL_ID'
23301  , p_source_type_code      => 'Y'
23302  , p_source_application_id =>  602
23303 );
23304    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23305    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
23306    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23307    l_rec_acct_attrs.array_char_value(4)  := 
23308 xla_ae_sources_pkg.GetSystemSourceChar(
23309    p_source_code           => 'XLA_ENTITY_CODE'
23310  , p_source_type_code      => 'Y'
23311  , p_source_application_id =>  602
23312 );
23313    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23314    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
23315    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23316    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
23317    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
23318    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
23319    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
23320    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
23321    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23322    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
23323    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
23324    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
23325    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
23326    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
23327    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23328    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
23329    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
23330    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
23331    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
23332    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
23333    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
23334    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
23335    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
23336    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
23337    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
23338    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
23339    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
23340    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
23341    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
23342    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
23346    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
23343    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
23344    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
23345    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
23347    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
23348    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
23349    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
23350    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
23351    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
23352    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
23353    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
23354    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
23355    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
23356    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
23357    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
23358    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
23359    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
23360    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
23361    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
23362    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
23363    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
23364    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
23365    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
23366    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
23367    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
23368    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
23369    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
23370    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
23371    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
23372    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
23373    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
23374    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
23375    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
23376    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
23377    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
23378    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
23379    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
23380    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
23381    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
23382    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
23383    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
23384    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
23385    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
23386    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
23387    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
23388    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
23389    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
23390    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
23391    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
23392    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
23393 
23394    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23395    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23396 
23397    ---------------------------------------------------------------------------------------------------------------
23398    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23399    ---------------------------------------------------------------------------------------------------------------
23400    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23401 
23402    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23403    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23404 
23405    IF xla_accounting_cache_pkg.GetValueChar
23406          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23407          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23408    AND l_bflow_method_code = 'PRIOR_ENTRY'
23409 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23410    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23411          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23412        )
23413    THEN
23414          xla_ae_lines_pkg.BflowUpgEntry
23415            (p_business_method_code    => l_bflow_method_code
23416            ,p_business_class_code     => l_bflow_class_code
23417            ,p_balance_type            => l_balance_type_code);
23418    ELSE
23419       NULL;
23420 -- No business flow processing for business flow method of NONE.
23421    END IF;
23422 
23423    --
23424    -- call analytical criteria
23425    --
23426    
23427    --
23428    -- call description
23429    --
23430    
23431 xla_ae_lines_pkg.SetLineDescription(
23432    p_ae_header_id => l_ae_header_id
23433   ,p_description  => Description_2 (
23434      p_application_id         => p_application_id
23435    , p_ae_header_id           => l_ae_header_id 
23436 , p_source_1 => p_source_1
23437    )
23438 );
23439 
23440 
23441    --
23445    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23442    -- call ADRs
23443    -- Bug 4922099
23444    --
23446         (NVL(l_actual_upg_option, 'N') = 'O') OR
23447         (NVL(l_enc_upg_option, 'N') = 'O')
23448       )
23449    THEN
23450    NULL;
23451    --
23452    --
23453    
23454   l_ccid := AcctDerRule_7(
23455            p_application_id           => p_application_id
23456          , p_ae_header_id             => l_ae_header_id 
23457 , p_source_11 => p_source_11
23458          , x_transaction_coa_id       => l_adr_transaction_coa_id
23459          , x_accounting_coa_id        => l_adr_accounting_coa_id
23460          , x_value_type_code          => l_adr_value_type_code
23461          , p_side                     => 'NA'
23462    );
23463 
23464    xla_ae_lines_pkg.set_ccid(
23465     p_code_combination_id          => l_ccid
23466   , p_value_type_code              => l_adr_value_type_code
23467   , p_transaction_coa_id           => l_adr_transaction_coa_id
23468   , p_accounting_coa_id            => l_adr_accounting_coa_id
23469   , p_adr_code                     => 'AP_INVOICE_DIST'
23470   , p_adr_type_code                => 'S'
23471   , p_component_type               => l_component_type
23472   , p_component_code               => l_component_code
23473   , p_component_type_code          => l_component_type_code
23474   , p_component_appl_id            => l_component_appl_id
23475   , p_amb_context_code             => l_amb_context_code
23476   , p_side                         => 'NA'
23477   );
23478 
23479 
23480    --
23481    --
23482    END IF;
23483    --
23484    -- Bug 4922099
23485    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23486           (NVL(l_enc_upg_option, 'N') = 'O')
23487         ) AND
23488         (l_bflow_method_code = 'PRIOR_ENTRY')
23489       )
23490    THEN
23491       IF
23492       --
23493       1 = 2
23494       --
23495       THEN
23496       xla_accounting_err_pkg.build_message
23497                                     (p_appli_s_name            => 'XLA'
23498                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23499                                     ,p_token_1                 => 'LINE_NUMBER'
23500                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23501                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23502                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23503                                                                              l_component_type
23504                                                                             ,l_component_code
23505                                                                             ,l_component_type_code
23506                                                                             ,l_component_appl_id
23507                                                                             ,l_amb_context_code
23508                                                                             ,l_entity_code
23509                                                                             ,l_event_class_code
23510                                                                            )
23511                                     ,p_token_3                 => 'OWNER'
23512                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23513                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23514                                                                           ,p_lookup_code    => l_component_type_code
23515                                                                          )
23516                                     ,p_token_4                 => 'PRODUCT_NAME'
23517                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23518                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23519                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23520                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23521                                     ,p_ae_header_id            =>  NULL
23522                                        );
23523 
23524         IF (C_LEVEL_ERROR>= g_log_level) THEN
23525                  trace
23526                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23527                       ,p_level    => C_LEVEL_ERROR
23528                       ,p_module   => l_log_module);
23529         END IF;
23530       END IF;
23531    END IF;
23532    --
23533    --
23534    ------------------------------------------------------------------------------------------------
23535    -- 4219869 Business Flow
23536    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23537    -- Prior Entry.  Currently, the following code is always generated.
23538    ------------------------------------------------------------------------------------------------
23539    XLA_AE_LINES_PKG.ValidateCurrentLine;
23540 
23541    ------------------------------------------------------------------------------------
23542    -- 4219869 Business Flow
23543    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23544    ------------------------------------------------------------------------------------
23548    -- 4219869 Business Flow
23545    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23546 
23547    ----------------------------------------------------------------------------------
23549    -- Update journal entry status -- Need to generate this within IF <condition>
23550    ----------------------------------------------------------------------------------
23551    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23552          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23553          ,p_balance_type_code => l_balance_type_code
23554          );
23555 
23556    -------------------------------------------------------------------------------------------
23557    -- 4262811 - Generate the Accrual Reversal lines
23558    -------------------------------------------------------------------------------------------
23559    BEGIN
23560       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23561                               (g_array_event(p_event_id).array_value_num('header_index'));
23562       IF l_acc_rev_flag IS NULL THEN
23563          l_acc_rev_flag := 'N';
23564       END IF;
23565    EXCEPTION
23566       WHEN OTHERS THEN
23567          l_acc_rev_flag := 'N';
23568    END;
23569    --
23570    IF (l_acc_rev_flag = 'Y') THEN
23571 
23572        -- 4645092  ------------------------------------------------------------------------------
23573        -- To allow MPA report to determine if it should generate report process
23574        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23575        ------------------------------------------------------------------------------------------
23576 
23577        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23578        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23579    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23580    -- call ADRs
23581    -- Bug 4922099
23582    --
23583    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23584         (NVL(l_actual_upg_option, 'N') = 'O') OR
23585         (NVL(l_enc_upg_option, 'N') = 'O')
23586       )
23587    THEN
23588    NULL;
23589    --
23590    --
23591    
23592   l_ccid := AcctDerRule_7(
23593            p_application_id           => p_application_id
23594          , p_ae_header_id             => l_ae_header_id 
23595 , p_source_11 => p_source_11
23596          , x_transaction_coa_id       => l_adr_transaction_coa_id
23597          , x_accounting_coa_id        => l_adr_accounting_coa_id
23598          , x_value_type_code          => l_adr_value_type_code
23599          , p_side                     => 'NA'
23600    );
23601 
23602    xla_ae_lines_pkg.set_ccid(
23603     p_code_combination_id          => l_ccid
23604   , p_value_type_code              => l_adr_value_type_code
23605   , p_transaction_coa_id           => l_adr_transaction_coa_id
23606   , p_accounting_coa_id            => l_adr_accounting_coa_id
23607   , p_adr_code                     => 'AP_INVOICE_DIST'
23608   , p_adr_type_code                => 'S'
23609   , p_component_type               => l_component_type
23610   , p_component_code               => l_component_code
23611   , p_component_type_code          => l_component_type_code
23612   , p_component_appl_id            => l_component_appl_id
23613   , p_amb_context_code             => l_amb_context_code
23614   , p_side                         => 'NA'
23615   );
23616 
23617 
23618    --
23619    --
23620    END IF;
23621 
23622        --
23623        -- Update the line information that should be overwritten
23624        --
23625        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23626                                          p_header_num   => 1);
23627        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23628 
23629        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23630 
23631        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23632           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23633        END IF;
23634 
23635       --
23636       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23637       --
23638       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23639           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23640       ELSE
23641           ---------------------------------------------------------------------------------------------------
23642           -- 4262811a Switch Sign
23643           ---------------------------------------------------------------------------------------------------
23644           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23645           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23646                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23647           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23648                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23649           -- 5132302
23650           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23651                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23652 
23653       END IF;
23654 
23655       -- 4955764
23659 
23656       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23657       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23658 
23660       XLA_AE_LINES_PKG.ValidateCurrentLine;
23661       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23662 
23663       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23664                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23665                ,p_balance_type_code => l_balance_type_code);
23666 
23667    END IF;
23668 
23669    -----------------------------------------------------------------------------------------
23670    -- 4262811 Multiperiod Accounting
23671    -----------------------------------------------------------------------------------------
23672      -- No MPA option is assigned.
23673 
23674 
23675 END IF;
23676 END IF;
23677 --
23678 
23679 --
23680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23681    trace
23682       (p_msg      => 'END of AcctLineType_43'
23683       ,p_level    => C_LEVEL_PROCEDURE
23684       ,p_module   => l_log_module);
23685 END IF;
23686 --
23687 EXCEPTION
23688   WHEN xla_exceptions_pkg.application_exception THEN
23689       RAISE;
23690   WHEN OTHERS THEN
23691        xla_exceptions_pkg.raise_message
23692            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_43');
23693 END AcctLineType_43;
23694 --
23695 
23696 ---------------------------------------
23697 --
23698 -- PRIVATE FUNCTION
23699 --         AcctLineType_44
23700 --
23701 ---------------------------------------
23702 PROCEDURE AcctLineType_44 (
23703   p_application_id        IN NUMBER
23704  ,p_event_id              IN NUMBER
23705  ,p_calculate_acctd_flag  IN VARCHAR2
23706  ,p_calculate_g_l_flag    IN VARCHAR2
23707  ,p_actual_flag           IN OUT VARCHAR2
23708  ,p_balance_type_code     OUT VARCHAR2
23709  ,p_gain_or_loss_ref      OUT VARCHAR2
23710  
23711 --Invoice Distribution Description
23712  , p_source_1            IN VARCHAR2
23713 --Invoice Distribution Account
23714  , p_source_11            IN NUMBER
23715 --Invoice Distribution Type
23716  , p_source_15            IN VARCHAR2
23717  , p_source_15_meaning    IN VARCHAR2
23718 --Purchasing Encumbrance Option
23719  , p_source_17            IN VARCHAR2
23720  , p_source_17_meaning    IN VARCHAR2
23721 --Accounting Reversal Indicator
23722  , p_source_19            IN VARCHAR2
23723 --Distribution Link Type
23724  , p_source_21            IN VARCHAR2
23725 --Allocation to Main Distribution Identifier
23726  , p_source_23            IN NUMBER
23727 --Invoice Identifier
23728  , p_source_24            IN NUMBER
23729 --Business Flow Accounts Payable Application Identifier
23730  , p_source_25            IN NUMBER
23731 --Business Flow Invoice Distribution Type
23732  , p_source_26            IN VARCHAR2
23733 --Business Flow Invoice Entity Code
23734  , p_source_27            IN VARCHAR2
23735 --Business Flow Invoice Distribution Identifier
23736  , p_source_28            IN NUMBER
23737 --Business Flow Invoice Identifier
23738  , p_source_29            IN NUMBER
23739 --Invoice Distribution Identifier
23740  , p_source_30            IN NUMBER
23741 --Payables Encumbrance Upgrade Credit Account
23742  , p_source_31            IN NUMBER
23743 --Payables Encumbrance Upgrade Credit Amount
23744  , p_source_32            IN NUMBER
23745 --Invoice Currency Code
23746  , p_source_33            IN VARCHAR2
23747 --Payables Encumbrance Upgrade Credit Base Amount
23748  , p_source_34            IN NUMBER
23749 --Payables Encumbrance Upgrade Debit Account
23750  , p_source_35            IN NUMBER
23751 --Payables Encumbrance Upgrade Debit Amount
23752  , p_source_36            IN NUMBER
23753 --Payables Encumbrance Upgrade Debit Base Amount
23754  , p_source_37            IN NUMBER
23755 --Payables Encumbrance Upgrade Option
23756  , p_source_38            IN VARCHAR2
23757 --Invoice Exchange Date
23758  , p_source_39            IN DATE
23759 --Invoice Exchange Rate
23760  , p_source_40            IN NUMBER
23761 --Invoice Exchange Rate Type
23762  , p_source_41            IN VARCHAR2
23763 --Deferred Accounting End Date
23764  , p_source_43            IN DATE
23765 --Deferred Accounting Option
23766  , p_source_44            IN VARCHAR2
23767 --Deferred Accounting Start Date
23768  , p_source_45            IN DATE
23769 --Override Accounted Amount Indicator
23770  , p_source_46            IN VARCHAR2
23771  , p_source_46_meaning    IN VARCHAR2
23772 --Invoice Supplier Identifier
23773  , p_source_47            IN NUMBER
23774 --Invoice Supplier Site Identifier
23775  , p_source_48            IN NUMBER
23776 --Third Party Type
23777  , p_source_49            IN VARCHAR2
23778 --Parent Reversal Identifier
23779  , p_source_50            IN NUMBER
23780 --Invoice Distribution Statistical Amount
23781  , p_source_51            IN NUMBER
23782 --Invoice Distribution Tax Line Identifier
23783  , p_source_52            IN NUMBER
23784 --Invoice Distribution Tax Distribution Identifier from Tax
23785  , p_source_53            IN NUMBER
23786 --Invoice Distribution Summary Tax Line Identifier
23787  , p_source_54            IN NUMBER
23788 --Payables Upgrade Credit Encumbrance Type Identifier
23789  , p_source_55            IN NUMBER
23790 --Payables Upgrade Debit Encumbrance Type Identifier
23791  , p_source_56            IN NUMBER
23795  , p_source_66            IN NUMBER
23792 --Invoice Distribution Encumbrance Amount
23793  , p_source_65            IN NUMBER
23794 --Invoice Distribution Encumbrance Ledger Amount
23796 )
23797 IS
23798 
23799 l_component_type              VARCHAR2(80);
23800 l_component_code              VARCHAR2(30);
23801 l_component_type_code         VARCHAR2(1);
23802 l_component_appl_id           INTEGER;
23803 l_amb_context_code            VARCHAR2(30);
23804 l_entity_code                 VARCHAR2(30);
23805 l_event_class_code            VARCHAR2(30);
23806 l_ae_header_id                NUMBER;
23807 l_event_type_code             VARCHAR2(30);
23808 l_line_definition_code        VARCHAR2(30);
23809 l_line_definition_owner_code  VARCHAR2(1);
23810 --
23811 -- adr variables
23812 l_segment                     VARCHAR2(30);
23813 l_ccid                        NUMBER;
23814 l_adr_transaction_coa_id      NUMBER;
23815 l_adr_accounting_coa_id       NUMBER;
23816 l_adr_flexfield_segment_code  VARCHAR2(30);
23817 l_adr_flex_value_set_id       NUMBER;
23818 l_adr_value_type_code         VARCHAR2(30);
23819 l_adr_value_combination_id    NUMBER;
23820 l_adr_value_segment_code      VARCHAR2(30);
23821 
23822 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23823 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23824 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23825 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23826 
23827 -- 4262811 Variables ------------------------------------------------------------------------------------------
23828 l_entered_amt_idx             NUMBER;
23829 l_accted_amt_idx              NUMBER;
23830 l_acc_rev_flag                VARCHAR2(1);
23831 l_accrual_line_num            NUMBER;
23832 l_tmp_amt                     NUMBER;
23833 l_acc_rev_natural_side_code   VARCHAR2(1);
23834 
23835 l_num_entries                 NUMBER;
23836 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23837 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23838 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23839 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23840 l_recog_line_1                NUMBER;
23841 l_recog_line_2                NUMBER;
23842 
23843 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23844 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23845 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23846 
23847 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23848 
23849 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23850 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23851 
23852 ---------------------------------------------------------------------------------------------------------------
23853 
23854 
23855 --
23856 -- bulk performance
23857 --
23858 l_balance_type_code           VARCHAR2(1);
23859 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23860 l_log_module                  VARCHAR2(240);
23861 
23862 --
23863 -- Upgrade strategy
23864 --
23865 l_actual_upg_option           VARCHAR2(1);
23866 l_enc_upg_option           VARCHAR2(1);
23867 
23868 --
23869 BEGIN
23870 --
23871 IF g_log_enabled THEN
23872       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
23873 END IF;
23874 --
23875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23876 
23877       trace
23878          (p_msg      => 'BEGIN of AcctLineType_44'
23879          ,p_level    => C_LEVEL_PROCEDURE
23880          ,p_module   => l_log_module);
23881 
23882 END IF;
23883 --
23884 l_component_type             := 'AMB_JLT';
23885 l_component_code             := 'AP_MISC_EXPENSE_PP_ENC_DR';
23886 l_component_type_code        := 'S';
23887 l_component_appl_id          :=  200;
23888 l_amb_context_code           := 'DEFAULT';
23889 l_entity_code                := 'AP_INVOICES';
23890 l_event_class_code           := 'PREPAYMENTS';
23891 l_event_type_code            := 'PREPAYMENTS_ALL';
23892 l_line_definition_owner_code := 'S';
23893 l_line_definition_code       := 'ENC_PREPAY_ALL';
23894 --
23895 l_balance_type_code          := 'E';
23896 l_segment                     := NULL;
23897 l_ccid                        := NULL;
23898 l_adr_transaction_coa_id      := NULL;
23899 l_adr_accounting_coa_id       := NULL;
23900 l_adr_flexfield_segment_code  := NULL;
23901 l_adr_flex_value_set_id       := NULL;
23902 l_adr_value_type_code         := NULL;
23903 l_adr_value_combination_id    := NULL;
23904 l_adr_value_segment_code      := NULL;
23905 
23906 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
23907 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
23908 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23909 l_budgetary_control_flag     := 'Y';
23910 
23911 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23912 l_bflow_applied_to_amt       := NULL; -- 5132302
23913 l_entered_amt_idx            := NULL;          -- 4262811
23914 l_accted_amt_idx             := NULL;          -- 4262811
23915 l_acc_rev_flag               := NULL;          -- 4262811
23916 l_accrual_line_num           := NULL;          -- 4262811
23917 l_tmp_amt                    := NULL;          -- 4262811
23918 --
23919  
23923 ') =  'MISCELLANEOUS' AND 
23920 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23921     l_balance_type_code <> 'B' THEN
23922 IF NVL(p_source_15,'
23924 NVL(p_source_17,'
23925 ') =  'Y'
23926  THEN 
23927 
23928    --
23929    XLA_AE_LINES_PKG.SetNewLine;
23930 
23931    p_balance_type_code          := l_balance_type_code;
23932    -- set the flag so later we will know whether the gain loss line needs to be created
23933    
23934    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23935      p_actual_flag :='A';
23936    END IF;
23937 
23938    --
23939    -- bulk performance
23940    --
23941    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23942                                       p_header_num   => 0); -- 4262811
23943    --
23944    -- set accounting line options
23945    --
23946    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23947            p_natural_side_code          => 'D'
23948          , p_gain_or_loss_flag          => 'N'
23949          , p_gl_transfer_mode_code      => 'S'
23950          , p_acct_entry_type_code       => 'E'
23951          , p_switch_side_flag           => 'Y'
23952          , p_merge_duplicate_code       => 'N'
23953          );
23954    --
23955    l_acc_rev_natural_side_code := 'C';  -- 4262811
23956    -- 
23957    --
23958    -- set accounting line type info
23959    --
23960    xla_ae_lines_pkg.SetAcctLineType
23961       (p_component_type             => l_component_type
23962       ,p_event_type_code            => l_event_type_code
23963       ,p_line_definition_owner_code => l_line_definition_owner_code
23964       ,p_line_definition_code       => l_line_definition_code
23965       ,p_accounting_line_code       => l_component_code
23966       ,p_accounting_line_type_code  => l_component_type_code
23967       ,p_accounting_line_appl_id    => l_component_appl_id
23968       ,p_amb_context_code           => l_amb_context_code
23969       ,p_entity_code                => l_entity_code
23970       ,p_event_class_code           => l_event_class_code);
23971    --
23972    -- set accounting class
23973    --
23974    xla_ae_lines_pkg.SetAcctClass(
23975            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
23976          , p_ae_header_id           => l_ae_header_id
23977          );
23978 
23979    --
23980    -- set rounding class
23981    --
23982    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23983                       'MISCELLANEOUS EXPENSE';
23984 
23985    --
23986    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23987    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23988    --
23989    -- bulk performance
23990    --
23991    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23992 
23993    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23994       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23995 
23996    -- 4955764
23997    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23998       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23999 
24000    -- 4458381 Public Sector Enh
24001       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
24002    --
24003    -- set accounting attributes for the line type
24004    --
24005    l_entered_amt_idx := 23;
24006    l_accted_amt_idx  := 28;
24007    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24008    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24009    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
24010    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24011    l_rec_acct_attrs.array_num_value(2)  := 
24012 xla_ae_sources_pkg.GetSystemSourceNum(
24013    p_source_code           => 'XLA_EVENT_APPL_ID'
24014  , p_source_type_code      => 'Y'
24015  , p_source_application_id =>  602
24016 );
24017    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24018    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
24019    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24020    l_rec_acct_attrs.array_char_value(4)  := 
24021 xla_ae_sources_pkg.GetSystemSourceChar(
24022    p_source_code           => 'XLA_ENTITY_CODE'
24023  , p_source_type_code      => 'Y'
24024  , p_source_application_id =>  602
24025 );
24026    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24027    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
24028    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24029    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
24030    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
24031    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
24032    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24033    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
24034    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
24035    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
24036    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
24040    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
24037    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
24038    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24039    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
24041    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
24042    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
24043    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
24044    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
24045    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
24046    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
24047    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
24048    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
24049    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
24050    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
24051    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
24052    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
24053    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
24054    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
24055    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
24056    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
24057    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
24058    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
24059    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
24060    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
24061    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
24062    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
24063    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
24064    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
24065    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
24066    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
24067    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
24068    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
24069    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
24070    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
24071    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
24072    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
24073    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
24074    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
24075    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
24076    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
24077    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
24078    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
24079    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
24080    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
24081    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
24082    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
24083    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
24084    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
24085    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
24086    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
24087    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
24088    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
24089    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
24090    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
24091    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
24092    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
24093    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
24094    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
24095    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
24096    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
24097    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
24098    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
24099    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
24100    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
24101    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
24102    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
24103    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
24104 
24105    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24106    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24107 
24108    ---------------------------------------------------------------------------------------------------------------
24109    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24110    ---------------------------------------------------------------------------------------------------------------
24111    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24112 
24113    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24114    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24115 
24116    IF xla_accounting_cache_pkg.GetValueChar
24117          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24121    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24118          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24119    AND l_bflow_method_code = 'PRIOR_ENTRY'
24120 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24122          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24123        )
24124    THEN
24125          xla_ae_lines_pkg.BflowUpgEntry
24126            (p_business_method_code    => l_bflow_method_code
24127            ,p_business_class_code     => l_bflow_class_code
24128            ,p_balance_type            => l_balance_type_code);
24129    ELSE
24130       NULL;
24131 -- No business flow processing for business flow method of NONE.
24132    END IF;
24133 
24134    --
24135    -- call analytical criteria
24136    --
24137    
24138    --
24139    -- call description
24140    --
24141    
24142 xla_ae_lines_pkg.SetLineDescription(
24143    p_ae_header_id => l_ae_header_id
24144   ,p_description  => Description_2 (
24145      p_application_id         => p_application_id
24146    , p_ae_header_id           => l_ae_header_id 
24147 , p_source_1 => p_source_1
24148    )
24149 );
24150 
24151 
24152    --
24153    -- call ADRs
24154    -- Bug 4922099
24155    --
24156    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24157         (NVL(l_actual_upg_option, 'N') = 'O') OR
24158         (NVL(l_enc_upg_option, 'N') = 'O')
24159       )
24160    THEN
24161    NULL;
24162    --
24163    --
24164    
24165   l_ccid := AcctDerRule_7(
24166            p_application_id           => p_application_id
24167          , p_ae_header_id             => l_ae_header_id 
24168 , p_source_11 => p_source_11
24169          , x_transaction_coa_id       => l_adr_transaction_coa_id
24170          , x_accounting_coa_id        => l_adr_accounting_coa_id
24171          , x_value_type_code          => l_adr_value_type_code
24172          , p_side                     => 'NA'
24173    );
24174 
24175    xla_ae_lines_pkg.set_ccid(
24176     p_code_combination_id          => l_ccid
24177   , p_value_type_code              => l_adr_value_type_code
24178   , p_transaction_coa_id           => l_adr_transaction_coa_id
24179   , p_accounting_coa_id            => l_adr_accounting_coa_id
24180   , p_adr_code                     => 'AP_INVOICE_DIST'
24181   , p_adr_type_code                => 'S'
24182   , p_component_type               => l_component_type
24183   , p_component_code               => l_component_code
24184   , p_component_type_code          => l_component_type_code
24185   , p_component_appl_id            => l_component_appl_id
24186   , p_amb_context_code             => l_amb_context_code
24187   , p_side                         => 'NA'
24188   );
24189 
24190 
24191    --
24192    --
24193    END IF;
24194    --
24195    -- Bug 4922099
24196    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24197           (NVL(l_enc_upg_option, 'N') = 'O')
24198         ) AND
24199         (l_bflow_method_code = 'PRIOR_ENTRY')
24200       )
24201    THEN
24202       IF
24203       --
24204       1 = 2
24205       --
24206       THEN
24207       xla_accounting_err_pkg.build_message
24208                                     (p_appli_s_name            => 'XLA'
24209                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24210                                     ,p_token_1                 => 'LINE_NUMBER'
24211                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24212                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24213                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24214                                                                              l_component_type
24215                                                                             ,l_component_code
24216                                                                             ,l_component_type_code
24217                                                                             ,l_component_appl_id
24218                                                                             ,l_amb_context_code
24219                                                                             ,l_entity_code
24220                                                                             ,l_event_class_code
24221                                                                            )
24222                                     ,p_token_3                 => 'OWNER'
24223                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24224                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24225                                                                           ,p_lookup_code    => l_component_type_code
24226                                                                          )
24227                                     ,p_token_4                 => 'PRODUCT_NAME'
24228                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24229                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24230                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24231                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24232                                     ,p_ae_header_id            =>  NULL
24236                  trace
24233                                        );
24234 
24235         IF (C_LEVEL_ERROR>= g_log_level) THEN
24237                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24238                       ,p_level    => C_LEVEL_ERROR
24239                       ,p_module   => l_log_module);
24240         END IF;
24241       END IF;
24242    END IF;
24243    --
24244    --
24245    ------------------------------------------------------------------------------------------------
24246    -- 4219869 Business Flow
24247    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24248    -- Prior Entry.  Currently, the following code is always generated.
24249    ------------------------------------------------------------------------------------------------
24250    XLA_AE_LINES_PKG.ValidateCurrentLine;
24251 
24252    ------------------------------------------------------------------------------------
24253    -- 4219869 Business Flow
24254    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24255    ------------------------------------------------------------------------------------
24256    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24257 
24258    ----------------------------------------------------------------------------------
24259    -- 4219869 Business Flow
24260    -- Update journal entry status -- Need to generate this within IF <condition>
24261    ----------------------------------------------------------------------------------
24262    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24263          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24264          ,p_balance_type_code => l_balance_type_code
24265          );
24266 
24267    -------------------------------------------------------------------------------------------
24268    -- 4262811 - Generate the Accrual Reversal lines
24269    -------------------------------------------------------------------------------------------
24270    BEGIN
24271       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24272                               (g_array_event(p_event_id).array_value_num('header_index'));
24273       IF l_acc_rev_flag IS NULL THEN
24274          l_acc_rev_flag := 'N';
24275       END IF;
24276    EXCEPTION
24277       WHEN OTHERS THEN
24278          l_acc_rev_flag := 'N';
24279    END;
24280    --
24281    IF (l_acc_rev_flag = 'Y') THEN
24282 
24283        -- 4645092  ------------------------------------------------------------------------------
24284        -- To allow MPA report to determine if it should generate report process
24285        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24286        ------------------------------------------------------------------------------------------
24287 
24288        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24289        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24290    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24291    -- call ADRs
24292    -- Bug 4922099
24293    --
24294    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24295         (NVL(l_actual_upg_option, 'N') = 'O') OR
24296         (NVL(l_enc_upg_option, 'N') = 'O')
24297       )
24298    THEN
24299    NULL;
24300    --
24301    --
24302    
24303   l_ccid := AcctDerRule_7(
24304            p_application_id           => p_application_id
24305          , p_ae_header_id             => l_ae_header_id 
24306 , p_source_11 => p_source_11
24307          , x_transaction_coa_id       => l_adr_transaction_coa_id
24308          , x_accounting_coa_id        => l_adr_accounting_coa_id
24309          , x_value_type_code          => l_adr_value_type_code
24310          , p_side                     => 'NA'
24311    );
24312 
24313    xla_ae_lines_pkg.set_ccid(
24314     p_code_combination_id          => l_ccid
24315   , p_value_type_code              => l_adr_value_type_code
24316   , p_transaction_coa_id           => l_adr_transaction_coa_id
24317   , p_accounting_coa_id            => l_adr_accounting_coa_id
24318   , p_adr_code                     => 'AP_INVOICE_DIST'
24319   , p_adr_type_code                => 'S'
24320   , p_component_type               => l_component_type
24321   , p_component_code               => l_component_code
24322   , p_component_type_code          => l_component_type_code
24323   , p_component_appl_id            => l_component_appl_id
24324   , p_amb_context_code             => l_amb_context_code
24325   , p_side                         => 'NA'
24326   );
24327 
24328 
24329    --
24330    --
24331    END IF;
24332 
24333        --
24334        -- Update the line information that should be overwritten
24335        --
24336        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24337                                          p_header_num   => 1);
24338        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24339 
24340        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24341 
24342        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24343           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24344        END IF;
24345 
24346       --
24347       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24348       --
24352           ---------------------------------------------------------------------------------------------------
24349       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24350           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24351       ELSE
24353           -- 4262811a Switch Sign
24354           ---------------------------------------------------------------------------------------------------
24355           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24356           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24357                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24358           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24359                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24360           -- 5132302
24361           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24362                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24363 
24364       END IF;
24365 
24366       -- 4955764
24367       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24368       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24369 
24370 
24371       XLA_AE_LINES_PKG.ValidateCurrentLine;
24372       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24373 
24374       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24375                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24376                ,p_balance_type_code => l_balance_type_code);
24377 
24378    END IF;
24379 
24380    -----------------------------------------------------------------------------------------
24381    -- 4262811 Multiperiod Accounting
24382    -----------------------------------------------------------------------------------------
24383      -- No MPA option is assigned.
24384 
24385 
24386 END IF;
24387 END IF;
24388 --
24389 
24390 --
24391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24392    trace
24393       (p_msg      => 'END of AcctLineType_44'
24394       ,p_level    => C_LEVEL_PROCEDURE
24395       ,p_module   => l_log_module);
24396 END IF;
24397 --
24398 EXCEPTION
24399   WHEN xla_exceptions_pkg.application_exception THEN
24400       RAISE;
24401   WHEN OTHERS THEN
24402        xla_exceptions_pkg.raise_message
24403            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_44');
24404 END AcctLineType_44;
24405 --
24406 
24407 ---------------------------------------
24408 --
24409 -- PRIVATE FUNCTION
24410 --         AcctLineType_45
24411 --
24412 ---------------------------------------
24413 PROCEDURE AcctLineType_45 (
24414   p_application_id        IN NUMBER
24415  ,p_event_id              IN NUMBER
24416  ,p_calculate_acctd_flag  IN VARCHAR2
24417  ,p_calculate_g_l_flag    IN VARCHAR2
24418  ,p_actual_flag           IN OUT VARCHAR2
24419  ,p_balance_type_code     OUT VARCHAR2
24420  ,p_gain_or_loss_ref      OUT VARCHAR2
24421  
24422 --Invoice Distribution Description
24423  , p_source_1            IN VARCHAR2
24424 --Invoice Distribution Account
24425  , p_source_11            IN NUMBER
24426 --Invoice Distribution Type
24427  , p_source_15            IN VARCHAR2
24428  , p_source_15_meaning    IN VARCHAR2
24429 --Purchasing Encumbrance Option
24430  , p_source_17            IN VARCHAR2
24431  , p_source_17_meaning    IN VARCHAR2
24432 --Accrue on Receipt Option
24433  , p_source_18            IN VARCHAR2
24434  , p_source_18_meaning    IN VARCHAR2
24435 --Accounting Reversal Indicator
24436  , p_source_19            IN VARCHAR2
24437 --Distribution Link Type
24438  , p_source_21            IN VARCHAR2
24439 --Allocation to Main Distribution Identifier
24440  , p_source_23            IN NUMBER
24441 --Invoice Identifier
24442  , p_source_24            IN NUMBER
24443 --Business Flow Accounts Payable Application Identifier
24444  , p_source_25            IN NUMBER
24445 --Business Flow Invoice Distribution Type
24446  , p_source_26            IN VARCHAR2
24447 --Business Flow Invoice Entity Code
24448  , p_source_27            IN VARCHAR2
24449 --Business Flow Invoice Distribution Identifier
24450  , p_source_28            IN NUMBER
24451 --Business Flow Invoice Identifier
24452  , p_source_29            IN NUMBER
24453 --Invoice Distribution Identifier
24454  , p_source_30            IN NUMBER
24455 --Payables Encumbrance Upgrade Credit Account
24456  , p_source_31            IN NUMBER
24457 --Payables Encumbrance Upgrade Credit Amount
24458  , p_source_32            IN NUMBER
24459 --Invoice Currency Code
24460  , p_source_33            IN VARCHAR2
24461 --Payables Encumbrance Upgrade Credit Base Amount
24462  , p_source_34            IN NUMBER
24463 --Payables Encumbrance Upgrade Debit Account
24464  , p_source_35            IN NUMBER
24465 --Payables Encumbrance Upgrade Debit Amount
24466  , p_source_36            IN NUMBER
24467 --Payables Encumbrance Upgrade Debit Base Amount
24468  , p_source_37            IN NUMBER
24469 --Payables Encumbrance Upgrade Option
24470  , p_source_38            IN VARCHAR2
24471 --Invoice Exchange Date
24472  , p_source_39            IN DATE
24473 --Invoice Exchange Rate
24474  , p_source_40            IN NUMBER
24475 --Invoice Exchange Rate Type
24479 --Deferred Accounting Option
24476  , p_source_41            IN VARCHAR2
24477 --Deferred Accounting End Date
24478  , p_source_43            IN DATE
24480  , p_source_44            IN VARCHAR2
24481 --Deferred Accounting Start Date
24482  , p_source_45            IN DATE
24483 --Override Accounted Amount Indicator
24484  , p_source_46            IN VARCHAR2
24485  , p_source_46_meaning    IN VARCHAR2
24486 --Invoice Supplier Identifier
24487  , p_source_47            IN NUMBER
24488 --Invoice Supplier Site Identifier
24489  , p_source_48            IN NUMBER
24490 --Third Party Type
24491  , p_source_49            IN VARCHAR2
24492 --Parent Reversal Identifier
24493  , p_source_50            IN NUMBER
24494 --Invoice Distribution Statistical Amount
24495  , p_source_51            IN NUMBER
24496 --Invoice Distribution Tax Line Identifier
24497  , p_source_52            IN NUMBER
24498 --Invoice Distribution Tax Distribution Identifier from Tax
24499  , p_source_53            IN NUMBER
24500 --Invoice Distribution Summary Tax Line Identifier
24501  , p_source_54            IN NUMBER
24502 --Payables Upgrade Credit Encumbrance Type Identifier
24503  , p_source_55            IN NUMBER
24504 --Payables Upgrade Debit Encumbrance Type Identifier
24505  , p_source_56            IN NUMBER
24506 --Self-Assessed Tax Flag
24507  , p_source_59            IN VARCHAR2
24508  , p_source_59_meaning    IN VARCHAR2
24509 --Invoice Distribution Encumbrance Amount
24510  , p_source_65            IN NUMBER
24511 --Invoice Distribution Encumbrance Ledger Amount
24512  , p_source_66            IN NUMBER
24513 )
24514 IS
24515 
24516 l_component_type              VARCHAR2(80);
24517 l_component_code              VARCHAR2(30);
24518 l_component_type_code         VARCHAR2(1);
24519 l_component_appl_id           INTEGER;
24520 l_amb_context_code            VARCHAR2(30);
24521 l_entity_code                 VARCHAR2(30);
24522 l_event_class_code            VARCHAR2(30);
24523 l_ae_header_id                NUMBER;
24524 l_event_type_code             VARCHAR2(30);
24525 l_line_definition_code        VARCHAR2(30);
24526 l_line_definition_owner_code  VARCHAR2(1);
24527 --
24528 -- adr variables
24529 l_segment                     VARCHAR2(30);
24530 l_ccid                        NUMBER;
24531 l_adr_transaction_coa_id      NUMBER;
24532 l_adr_accounting_coa_id       NUMBER;
24533 l_adr_flexfield_segment_code  VARCHAR2(30);
24534 l_adr_flex_value_set_id       NUMBER;
24535 l_adr_value_type_code         VARCHAR2(30);
24536 l_adr_value_combination_id    NUMBER;
24537 l_adr_value_segment_code      VARCHAR2(30);
24538 
24539 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24540 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24541 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24542 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24543 
24544 -- 4262811 Variables ------------------------------------------------------------------------------------------
24545 l_entered_amt_idx             NUMBER;
24546 l_accted_amt_idx              NUMBER;
24547 l_acc_rev_flag                VARCHAR2(1);
24548 l_accrual_line_num            NUMBER;
24549 l_tmp_amt                     NUMBER;
24550 l_acc_rev_natural_side_code   VARCHAR2(1);
24551 
24552 l_num_entries                 NUMBER;
24553 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24554 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24555 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24556 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24557 l_recog_line_1                NUMBER;
24558 l_recog_line_2                NUMBER;
24559 
24560 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24561 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24562 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24563 
24564 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24565 
24566 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24567 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24568 
24569 ---------------------------------------------------------------------------------------------------------------
24570 
24571 
24572 --
24573 -- bulk performance
24574 --
24575 l_balance_type_code           VARCHAR2(1);
24576 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24577 l_log_module                  VARCHAR2(240);
24578 
24579 --
24580 -- Upgrade strategy
24581 --
24582 l_actual_upg_option           VARCHAR2(1);
24583 l_enc_upg_option           VARCHAR2(1);
24584 
24585 --
24586 BEGIN
24587 --
24588 IF g_log_enabled THEN
24589       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
24590 END IF;
24591 --
24592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24593 
24594       trace
24595          (p_msg      => 'BEGIN of AcctLineType_45'
24596          ,p_level    => C_LEVEL_PROCEDURE
24597          ,p_module   => l_log_module);
24598 
24599 END IF;
24600 --
24601 l_component_type             := 'AMB_JLT';
24602 l_component_code             := 'AP_NON_RECOV_TAX_CM_ENC_DR';
24603 l_component_type_code        := 'S';
24604 l_component_appl_id          :=  200;
24608 l_event_type_code            := 'CREDIT MEMOS_ALL';
24605 l_amb_context_code           := 'DEFAULT';
24606 l_entity_code                := 'AP_INVOICES';
24607 l_event_class_code           := 'CREDIT MEMOS';
24609 l_line_definition_owner_code := 'S';
24610 l_line_definition_code       := 'ENC_CM_ALL';
24611 --
24612 l_balance_type_code          := 'E';
24613 l_segment                     := NULL;
24614 l_ccid                        := NULL;
24615 l_adr_transaction_coa_id      := NULL;
24616 l_adr_accounting_coa_id       := NULL;
24617 l_adr_flexfield_segment_code  := NULL;
24618 l_adr_flex_value_set_id       := NULL;
24619 l_adr_value_type_code         := NULL;
24620 l_adr_value_combination_id    := NULL;
24621 l_adr_value_segment_code      := NULL;
24622 
24623 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
24624 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
24625 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24626 l_budgetary_control_flag     := 'Y';
24627 
24628 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24629 l_bflow_applied_to_amt       := NULL; -- 5132302
24630 l_entered_amt_idx            := NULL;          -- 4262811
24631 l_accted_amt_idx             := NULL;          -- 4262811
24632 l_acc_rev_flag               := NULL;          -- 4262811
24633 l_accrual_line_num           := NULL;          -- 4262811
24634 l_tmp_amt                    := NULL;          -- 4262811
24635 --
24636  
24637 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24638     l_balance_type_code <> 'B' THEN
24639 IF NVL(p_source_15,'
24640 ') =  'NONREC_TAX' AND 
24641 NVL(p_source_59,'
24642 ') <>  'Y' AND 
24643 NVL(p_source_17,'
24644 ') =  'Y' AND 
24645 NVL(p_source_18,'
24646 ') <>  'Y'
24647  THEN 
24648 
24649    --
24650    XLA_AE_LINES_PKG.SetNewLine;
24651 
24652    p_balance_type_code          := l_balance_type_code;
24653    -- set the flag so later we will know whether the gain loss line needs to be created
24654    
24655    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24656      p_actual_flag :='A';
24657    END IF;
24658 
24659    --
24660    -- bulk performance
24661    --
24662    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24663                                       p_header_num   => 0); -- 4262811
24664    --
24665    -- set accounting line options
24666    --
24667    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24668            p_natural_side_code          => 'D'
24669          , p_gain_or_loss_flag          => 'N'
24670          , p_gl_transfer_mode_code      => 'S'
24671          , p_acct_entry_type_code       => 'E'
24672          , p_switch_side_flag           => 'Y'
24673          , p_merge_duplicate_code       => 'N'
24674          );
24675    --
24676    l_acc_rev_natural_side_code := 'C';  -- 4262811
24677    -- 
24678    --
24679    -- set accounting line type info
24680    --
24681    xla_ae_lines_pkg.SetAcctLineType
24682       (p_component_type             => l_component_type
24683       ,p_event_type_code            => l_event_type_code
24684       ,p_line_definition_owner_code => l_line_definition_owner_code
24685       ,p_line_definition_code       => l_line_definition_code
24686       ,p_accounting_line_code       => l_component_code
24687       ,p_accounting_line_type_code  => l_component_type_code
24688       ,p_accounting_line_appl_id    => l_component_appl_id
24689       ,p_amb_context_code           => l_amb_context_code
24690       ,p_entity_code                => l_entity_code
24691       ,p_event_class_code           => l_event_class_code);
24692    --
24693    -- set accounting class
24694    --
24695    xla_ae_lines_pkg.SetAcctClass(
24696            p_accounting_class_code  => 'NRTAX'
24697          , p_ae_header_id           => l_ae_header_id
24698          );
24699 
24700    --
24701    -- set rounding class
24702    --
24703    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24704                       'NRTAX';
24705 
24706    --
24707    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24708    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24709    --
24710    -- bulk performance
24711    --
24712    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24713 
24714    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24715       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24716 
24717    -- 4955764
24718    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24719       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24720 
24721    -- 4458381 Public Sector Enh
24722       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
24723    --
24724    -- set accounting attributes for the line type
24725    --
24726    l_entered_amt_idx := 23;
24727    l_accted_amt_idx  := 28;
24728    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24729    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24730    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
24734    p_source_code           => 'XLA_EVENT_APPL_ID'
24731    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24732    l_rec_acct_attrs.array_num_value(2)  := 
24733 xla_ae_sources_pkg.GetSystemSourceNum(
24735  , p_source_type_code      => 'Y'
24736  , p_source_application_id =>  602
24737 );
24738    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24739    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
24740    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24741    l_rec_acct_attrs.array_char_value(4)  := 
24742 xla_ae_sources_pkg.GetSystemSourceChar(
24743    p_source_code           => 'XLA_ENTITY_CODE'
24744  , p_source_type_code      => 'Y'
24745  , p_source_application_id =>  602
24746 );
24747    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24748    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
24749    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24750    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
24751    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
24752    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
24753    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24754    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
24755    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
24756    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
24757    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
24758    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
24759    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24760    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
24761    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
24762    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
24763    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
24764    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
24765    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
24766    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
24767    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
24768    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
24769    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
24770    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
24771    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
24772    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
24773    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
24774    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
24775    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
24776    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
24777    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
24778    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
24779    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
24780    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
24781    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
24782    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
24783    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
24784    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
24785    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
24786    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
24787    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
24788    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
24789    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
24790    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
24791    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
24792    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
24793    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
24794    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
24795    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
24796    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
24797    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
24798    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
24799    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
24800    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
24801    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
24802    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
24803    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
24804    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
24805    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
24806    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
24807    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
24808    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
24809    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
24810    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
24811    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
24812    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
24813    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
24814    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
24815    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
24816    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
24820    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
24817    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
24818    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
24819    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
24821    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
24822    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
24823    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
24824    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
24825 
24826    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24827    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24828 
24829    ---------------------------------------------------------------------------------------------------------------
24830    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24831    ---------------------------------------------------------------------------------------------------------------
24832    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24833 
24834    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24835    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24836 
24837    IF xla_accounting_cache_pkg.GetValueChar
24838          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24839          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24840    AND l_bflow_method_code = 'PRIOR_ENTRY'
24841 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24842    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24843          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24844        )
24845    THEN
24846          xla_ae_lines_pkg.BflowUpgEntry
24847            (p_business_method_code    => l_bflow_method_code
24848            ,p_business_class_code     => l_bflow_class_code
24849            ,p_balance_type            => l_balance_type_code);
24850    ELSE
24851       NULL;
24852 -- No business flow processing for business flow method of NONE.
24853    END IF;
24854 
24855    --
24856    -- call analytical criteria
24857    --
24858    
24859    --
24860    -- call description
24861    --
24862    
24863 xla_ae_lines_pkg.SetLineDescription(
24864    p_ae_header_id => l_ae_header_id
24865   ,p_description  => Description_2 (
24866      p_application_id         => p_application_id
24867    , p_ae_header_id           => l_ae_header_id 
24868 , p_source_1 => p_source_1
24869    )
24870 );
24871 
24872 
24873    --
24874    -- call ADRs
24875    -- Bug 4922099
24876    --
24877    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24878         (NVL(l_actual_upg_option, 'N') = 'O') OR
24879         (NVL(l_enc_upg_option, 'N') = 'O')
24880       )
24881    THEN
24882    NULL;
24883    --
24884    --
24885    
24886   l_ccid := AcctDerRule_7(
24887            p_application_id           => p_application_id
24888          , p_ae_header_id             => l_ae_header_id 
24889 , p_source_11 => p_source_11
24890          , x_transaction_coa_id       => l_adr_transaction_coa_id
24891          , x_accounting_coa_id        => l_adr_accounting_coa_id
24892          , x_value_type_code          => l_adr_value_type_code
24893          , p_side                     => 'NA'
24894    );
24895 
24896    xla_ae_lines_pkg.set_ccid(
24897     p_code_combination_id          => l_ccid
24898   , p_value_type_code              => l_adr_value_type_code
24899   , p_transaction_coa_id           => l_adr_transaction_coa_id
24900   , p_accounting_coa_id            => l_adr_accounting_coa_id
24901   , p_adr_code                     => 'AP_INVOICE_DIST'
24902   , p_adr_type_code                => 'S'
24903   , p_component_type               => l_component_type
24904   , p_component_code               => l_component_code
24905   , p_component_type_code          => l_component_type_code
24906   , p_component_appl_id            => l_component_appl_id
24907   , p_amb_context_code             => l_amb_context_code
24908   , p_side                         => 'NA'
24909   );
24910 
24911 
24912    --
24913    --
24914    END IF;
24915    --
24916    -- Bug 4922099
24917    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24918           (NVL(l_enc_upg_option, 'N') = 'O')
24919         ) AND
24920         (l_bflow_method_code = 'PRIOR_ENTRY')
24921       )
24922    THEN
24923       IF
24924       --
24925       1 = 2
24926       --
24927       THEN
24928       xla_accounting_err_pkg.build_message
24929                                     (p_appli_s_name            => 'XLA'
24930                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24931                                     ,p_token_1                 => 'LINE_NUMBER'
24932                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24933                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24934                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24935                                                                              l_component_type
24936                                                                             ,l_component_code
24937                                                                             ,l_component_type_code
24941                                                                             ,l_event_class_code
24938                                                                             ,l_component_appl_id
24939                                                                             ,l_amb_context_code
24940                                                                             ,l_entity_code
24942                                                                            )
24943                                     ,p_token_3                 => 'OWNER'
24944                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24945                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24946                                                                           ,p_lookup_code    => l_component_type_code
24947                                                                          )
24948                                     ,p_token_4                 => 'PRODUCT_NAME'
24949                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24950                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24951                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24952                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24953                                     ,p_ae_header_id            =>  NULL
24954                                        );
24955 
24956         IF (C_LEVEL_ERROR>= g_log_level) THEN
24957                  trace
24958                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24959                       ,p_level    => C_LEVEL_ERROR
24960                       ,p_module   => l_log_module);
24961         END IF;
24962       END IF;
24963    END IF;
24964    --
24965    --
24966    ------------------------------------------------------------------------------------------------
24967    -- 4219869 Business Flow
24968    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24969    -- Prior Entry.  Currently, the following code is always generated.
24970    ------------------------------------------------------------------------------------------------
24971    XLA_AE_LINES_PKG.ValidateCurrentLine;
24972 
24973    ------------------------------------------------------------------------------------
24974    -- 4219869 Business Flow
24975    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24976    ------------------------------------------------------------------------------------
24977    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24978 
24979    ----------------------------------------------------------------------------------
24980    -- 4219869 Business Flow
24981    -- Update journal entry status -- Need to generate this within IF <condition>
24982    ----------------------------------------------------------------------------------
24983    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24984          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24985          ,p_balance_type_code => l_balance_type_code
24986          );
24987 
24988    -------------------------------------------------------------------------------------------
24989    -- 4262811 - Generate the Accrual Reversal lines
24990    -------------------------------------------------------------------------------------------
24991    BEGIN
24992       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24993                               (g_array_event(p_event_id).array_value_num('header_index'));
24994       IF l_acc_rev_flag IS NULL THEN
24995          l_acc_rev_flag := 'N';
24996       END IF;
24997    EXCEPTION
24998       WHEN OTHERS THEN
24999          l_acc_rev_flag := 'N';
25000    END;
25001    --
25002    IF (l_acc_rev_flag = 'Y') THEN
25003 
25004        -- 4645092  ------------------------------------------------------------------------------
25005        -- To allow MPA report to determine if it should generate report process
25006        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25007        ------------------------------------------------------------------------------------------
25008 
25009        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25010        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25011    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25012    -- call ADRs
25013    -- Bug 4922099
25014    --
25015    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25016         (NVL(l_actual_upg_option, 'N') = 'O') OR
25017         (NVL(l_enc_upg_option, 'N') = 'O')
25018       )
25019    THEN
25020    NULL;
25021    --
25022    --
25023    
25024   l_ccid := AcctDerRule_7(
25025            p_application_id           => p_application_id
25026          , p_ae_header_id             => l_ae_header_id 
25027 , p_source_11 => p_source_11
25028          , x_transaction_coa_id       => l_adr_transaction_coa_id
25029          , x_accounting_coa_id        => l_adr_accounting_coa_id
25030          , x_value_type_code          => l_adr_value_type_code
25031          , p_side                     => 'NA'
25032    );
25033 
25034    xla_ae_lines_pkg.set_ccid(
25035     p_code_combination_id          => l_ccid
25036   , p_value_type_code              => l_adr_value_type_code
25040   , p_adr_type_code                => 'S'
25037   , p_transaction_coa_id           => l_adr_transaction_coa_id
25038   , p_accounting_coa_id            => l_adr_accounting_coa_id
25039   , p_adr_code                     => 'AP_INVOICE_DIST'
25041   , p_component_type               => l_component_type
25042   , p_component_code               => l_component_code
25043   , p_component_type_code          => l_component_type_code
25044   , p_component_appl_id            => l_component_appl_id
25045   , p_amb_context_code             => l_amb_context_code
25046   , p_side                         => 'NA'
25047   );
25048 
25049 
25050    --
25051    --
25052    END IF;
25053 
25054        --
25055        -- Update the line information that should be overwritten
25056        --
25057        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25058                                          p_header_num   => 1);
25059        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25060 
25061        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25062 
25063        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25064           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25065        END IF;
25066 
25067       --
25068       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25069       --
25070       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25071           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25072       ELSE
25073           ---------------------------------------------------------------------------------------------------
25074           -- 4262811a Switch Sign
25075           ---------------------------------------------------------------------------------------------------
25076           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25077           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25078                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25079           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25080                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25081           -- 5132302
25082           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25083                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25084 
25085       END IF;
25086 
25087       -- 4955764
25088       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25089       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25090 
25091 
25092       XLA_AE_LINES_PKG.ValidateCurrentLine;
25093       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25094 
25095       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25096                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25097                ,p_balance_type_code => l_balance_type_code);
25098 
25099    END IF;
25100 
25101    -----------------------------------------------------------------------------------------
25102    -- 4262811 Multiperiod Accounting
25103    -----------------------------------------------------------------------------------------
25104      -- No MPA option is assigned.
25105 
25106 
25107 END IF;
25108 END IF;
25109 --
25110 
25111 --
25112 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25113    trace
25114       (p_msg      => 'END of AcctLineType_45'
25115       ,p_level    => C_LEVEL_PROCEDURE
25116       ,p_module   => l_log_module);
25117 END IF;
25118 --
25119 EXCEPTION
25120   WHEN xla_exceptions_pkg.application_exception THEN
25121       RAISE;
25122   WHEN OTHERS THEN
25123        xla_exceptions_pkg.raise_message
25124            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_45');
25125 END AcctLineType_45;
25126 --
25127 
25128 ---------------------------------------
25129 --
25130 -- PRIVATE FUNCTION
25131 --         AcctLineType_46
25132 --
25133 ---------------------------------------
25134 PROCEDURE AcctLineType_46 (
25135   p_application_id        IN NUMBER
25136  ,p_event_id              IN NUMBER
25137  ,p_calculate_acctd_flag  IN VARCHAR2
25138  ,p_calculate_g_l_flag    IN VARCHAR2
25139  ,p_actual_flag           IN OUT VARCHAR2
25140  ,p_balance_type_code     OUT VARCHAR2
25141  ,p_gain_or_loss_ref      OUT VARCHAR2
25142  
25143 --Invoice Distribution Description
25144  , p_source_1            IN VARCHAR2
25145 --Invoice Distribution Account
25146  , p_source_11            IN NUMBER
25147 --Invoice Distribution Type
25148  , p_source_15            IN VARCHAR2
25149  , p_source_15_meaning    IN VARCHAR2
25150 --Purchasing Encumbrance Option
25151  , p_source_17            IN VARCHAR2
25152  , p_source_17_meaning    IN VARCHAR2
25153 --Accrue on Receipt Option
25154  , p_source_18            IN VARCHAR2
25155  , p_source_18_meaning    IN VARCHAR2
25156 --Accounting Reversal Indicator
25157  , p_source_19            IN VARCHAR2
25158 --Distribution Link Type
25159  , p_source_21            IN VARCHAR2
25160 --Allocation to Main Distribution Identifier
25161  , p_source_23            IN NUMBER
25165  , p_source_25            IN NUMBER
25162 --Invoice Identifier
25163  , p_source_24            IN NUMBER
25164 --Business Flow Accounts Payable Application Identifier
25166 --Business Flow Invoice Distribution Type
25167  , p_source_26            IN VARCHAR2
25168 --Business Flow Invoice Entity Code
25169  , p_source_27            IN VARCHAR2
25170 --Business Flow Invoice Distribution Identifier
25171  , p_source_28            IN NUMBER
25172 --Business Flow Invoice Identifier
25173  , p_source_29            IN NUMBER
25174 --Invoice Distribution Identifier
25175  , p_source_30            IN NUMBER
25176 --Payables Encumbrance Upgrade Credit Account
25177  , p_source_31            IN NUMBER
25178 --Payables Encumbrance Upgrade Credit Amount
25179  , p_source_32            IN NUMBER
25180 --Invoice Currency Code
25181  , p_source_33            IN VARCHAR2
25182 --Payables Encumbrance Upgrade Credit Base Amount
25183  , p_source_34            IN NUMBER
25184 --Payables Encumbrance Upgrade Debit Account
25185  , p_source_35            IN NUMBER
25186 --Payables Encumbrance Upgrade Debit Amount
25187  , p_source_36            IN NUMBER
25188 --Payables Encumbrance Upgrade Debit Base Amount
25189  , p_source_37            IN NUMBER
25190 --Payables Encumbrance Upgrade Option
25191  , p_source_38            IN VARCHAR2
25192 --Invoice Exchange Date
25193  , p_source_39            IN DATE
25194 --Invoice Exchange Rate
25195  , p_source_40            IN NUMBER
25196 --Invoice Exchange Rate Type
25197  , p_source_41            IN VARCHAR2
25198 --Deferred Accounting End Date
25199  , p_source_43            IN DATE
25200 --Deferred Accounting Option
25201  , p_source_44            IN VARCHAR2
25202 --Deferred Accounting Start Date
25203  , p_source_45            IN DATE
25204 --Override Accounted Amount Indicator
25205  , p_source_46            IN VARCHAR2
25206  , p_source_46_meaning    IN VARCHAR2
25207 --Invoice Supplier Identifier
25208  , p_source_47            IN NUMBER
25209 --Invoice Supplier Site Identifier
25210  , p_source_48            IN NUMBER
25211 --Third Party Type
25212  , p_source_49            IN VARCHAR2
25213 --Parent Reversal Identifier
25214  , p_source_50            IN NUMBER
25215 --Invoice Distribution Tax Line Identifier
25216  , p_source_52            IN NUMBER
25217 --Invoice Distribution Tax Distribution Identifier from Tax
25218  , p_source_53            IN NUMBER
25219 --Invoice Distribution Summary Tax Line Identifier
25220  , p_source_54            IN NUMBER
25221 --Payables Upgrade Credit Encumbrance Type Identifier
25222  , p_source_55            IN NUMBER
25223 --Payables Upgrade Debit Encumbrance Type Identifier
25224  , p_source_56            IN NUMBER
25225 --Self-Assessed Tax Flag
25226  , p_source_59            IN VARCHAR2
25227  , p_source_59_meaning    IN VARCHAR2
25228 --Invoice Distribution Encumbrance Amount
25229  , p_source_65            IN NUMBER
25230 --Invoice Distribution Encumbrance Ledger Amount
25231  , p_source_66            IN NUMBER
25232 )
25233 IS
25234 
25235 l_component_type              VARCHAR2(80);
25236 l_component_code              VARCHAR2(30);
25237 l_component_type_code         VARCHAR2(1);
25238 l_component_appl_id           INTEGER;
25239 l_amb_context_code            VARCHAR2(30);
25240 l_entity_code                 VARCHAR2(30);
25241 l_event_class_code            VARCHAR2(30);
25242 l_ae_header_id                NUMBER;
25243 l_event_type_code             VARCHAR2(30);
25244 l_line_definition_code        VARCHAR2(30);
25245 l_line_definition_owner_code  VARCHAR2(1);
25246 --
25247 -- adr variables
25248 l_segment                     VARCHAR2(30);
25249 l_ccid                        NUMBER;
25250 l_adr_transaction_coa_id      NUMBER;
25251 l_adr_accounting_coa_id       NUMBER;
25252 l_adr_flexfield_segment_code  VARCHAR2(30);
25253 l_adr_flex_value_set_id       NUMBER;
25254 l_adr_value_type_code         VARCHAR2(30);
25255 l_adr_value_combination_id    NUMBER;
25256 l_adr_value_segment_code      VARCHAR2(30);
25257 
25258 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25259 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25260 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25261 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25262 
25263 -- 4262811 Variables ------------------------------------------------------------------------------------------
25264 l_entered_amt_idx             NUMBER;
25265 l_accted_amt_idx              NUMBER;
25266 l_acc_rev_flag                VARCHAR2(1);
25267 l_accrual_line_num            NUMBER;
25268 l_tmp_amt                     NUMBER;
25269 l_acc_rev_natural_side_code   VARCHAR2(1);
25270 
25271 l_num_entries                 NUMBER;
25272 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25273 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25274 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25275 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25276 l_recog_line_1                NUMBER;
25277 l_recog_line_2                NUMBER;
25278 
25279 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25280 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25281 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25282 
25286 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25283 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25284 
25285 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25287 
25288 ---------------------------------------------------------------------------------------------------------------
25289 
25290 
25291 --
25292 -- bulk performance
25293 --
25294 l_balance_type_code           VARCHAR2(1);
25295 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25296 l_log_module                  VARCHAR2(240);
25297 
25298 --
25299 -- Upgrade strategy
25300 --
25301 l_actual_upg_option           VARCHAR2(1);
25302 l_enc_upg_option           VARCHAR2(1);
25303 
25304 --
25305 BEGIN
25306 --
25307 IF g_log_enabled THEN
25308       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
25309 END IF;
25310 --
25311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25312 
25313       trace
25314          (p_msg      => 'BEGIN of AcctLineType_46'
25315          ,p_level    => C_LEVEL_PROCEDURE
25316          ,p_module   => l_log_module);
25317 
25318 END IF;
25319 --
25320 l_component_type             := 'AMB_JLT';
25321 l_component_code             := 'AP_NON_RECOV_TAX_DM_ENC_DR';
25322 l_component_type_code        := 'S';
25323 l_component_appl_id          :=  200;
25324 l_amb_context_code           := 'DEFAULT';
25325 l_entity_code                := 'AP_INVOICES';
25326 l_event_class_code           := 'DEBIT MEMOS';
25327 l_event_type_code            := 'DEBIT MEMOS_ALL';
25328 l_line_definition_owner_code := 'S';
25329 l_line_definition_code       := 'ENC_DM_ALL';
25330 --
25331 l_balance_type_code          := 'E';
25332 l_segment                     := NULL;
25333 l_ccid                        := NULL;
25334 l_adr_transaction_coa_id      := NULL;
25335 l_adr_accounting_coa_id       := NULL;
25336 l_adr_flexfield_segment_code  := NULL;
25337 l_adr_flex_value_set_id       := NULL;
25338 l_adr_value_type_code         := NULL;
25339 l_adr_value_combination_id    := NULL;
25340 l_adr_value_segment_code      := NULL;
25341 
25342 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
25343 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
25344 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25345 l_budgetary_control_flag     := 'Y';
25346 
25347 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25348 l_bflow_applied_to_amt       := NULL; -- 5132302
25349 l_entered_amt_idx            := NULL;          -- 4262811
25350 l_accted_amt_idx             := NULL;          -- 4262811
25351 l_acc_rev_flag               := NULL;          -- 4262811
25352 l_accrual_line_num           := NULL;          -- 4262811
25353 l_tmp_amt                    := NULL;          -- 4262811
25354 --
25355  
25356 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25357     l_balance_type_code <> 'B' THEN
25358 IF NVL(p_source_15,'
25359 ') =  'NONREC_TAX' AND 
25360 NVL(p_source_59,'
25361 ') <>  'Y' AND 
25362 NVL(p_source_17,'
25363 ') =  'Y' AND 
25364 NVL(p_source_18,'
25365 ') <>  'Y'
25366  THEN 
25367 
25368    --
25369    XLA_AE_LINES_PKG.SetNewLine;
25370 
25371    p_balance_type_code          := l_balance_type_code;
25372    -- set the flag so later we will know whether the gain loss line needs to be created
25373    
25374    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25375      p_actual_flag :='A';
25376    END IF;
25377 
25378    --
25379    -- bulk performance
25380    --
25381    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25382                                       p_header_num   => 0); -- 4262811
25383    --
25384    -- set accounting line options
25385    --
25386    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25387            p_natural_side_code          => 'D'
25388          , p_gain_or_loss_flag          => 'N'
25389          , p_gl_transfer_mode_code      => 'S'
25390          , p_acct_entry_type_code       => 'E'
25391          , p_switch_side_flag           => 'Y'
25392          , p_merge_duplicate_code       => 'N'
25393          );
25394    --
25395    l_acc_rev_natural_side_code := 'C';  -- 4262811
25396    -- 
25397    --
25398    -- set accounting line type info
25399    --
25400    xla_ae_lines_pkg.SetAcctLineType
25401       (p_component_type             => l_component_type
25402       ,p_event_type_code            => l_event_type_code
25403       ,p_line_definition_owner_code => l_line_definition_owner_code
25404       ,p_line_definition_code       => l_line_definition_code
25405       ,p_accounting_line_code       => l_component_code
25406       ,p_accounting_line_type_code  => l_component_type_code
25407       ,p_accounting_line_appl_id    => l_component_appl_id
25408       ,p_amb_context_code           => l_amb_context_code
25409       ,p_entity_code                => l_entity_code
25410       ,p_event_class_code           => l_event_class_code);
25411    --
25412    -- set accounting class
25413    --
25414    xla_ae_lines_pkg.SetAcctClass(
25415            p_accounting_class_code  => 'NRTAX'
25416          , p_ae_header_id           => l_ae_header_id
25417          );
25418 
25419    --
25420    -- set rounding class
25424 
25421    --
25422    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25423                       'NRTAX';
25425    --
25426    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25427    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25428    --
25429    -- bulk performance
25430    --
25431    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25432 
25433    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25434       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25435 
25436    -- 4955764
25437    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25438       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25439 
25440    -- 4458381 Public Sector Enh
25441       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
25442    --
25443    -- set accounting attributes for the line type
25444    --
25445    l_entered_amt_idx := 23;
25446    l_accted_amt_idx  := 28;
25447    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
25448    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25449    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
25450    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
25451    l_rec_acct_attrs.array_num_value(2)  := 
25452 xla_ae_sources_pkg.GetSystemSourceNum(
25453    p_source_code           => 'XLA_EVENT_APPL_ID'
25454  , p_source_type_code      => 'Y'
25455  , p_source_application_id =>  602
25456 );
25457    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
25458    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
25459    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
25460    l_rec_acct_attrs.array_char_value(4)  := 
25461 xla_ae_sources_pkg.GetSystemSourceChar(
25462    p_source_code           => 'XLA_ENTITY_CODE'
25463  , p_source_type_code      => 'Y'
25464  , p_source_application_id =>  602
25465 );
25466    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
25467    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
25468    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
25469    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
25470    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
25471    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
25472    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25473    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
25474    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
25475    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
25476    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
25477    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
25478    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25479    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
25480    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
25481    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
25482    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
25483    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
25484    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
25485    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
25486    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
25487    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
25488    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
25489    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
25490    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
25491    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
25492    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
25493    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
25494    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
25495    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
25496    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
25497    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
25498    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
25499    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
25500    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
25501    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
25502    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
25503    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
25504    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
25505    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
25506    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
25507    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
25508    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
25509    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
25510    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
25511    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
25512    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
25513    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
25514    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
25518    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
25515    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
25516    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
25517    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
25519    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
25520    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
25521    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
25522    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
25523    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
25524    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
25525    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
25526    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
25527    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
25528    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
25529    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
25530    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
25531    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
25532    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
25533    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
25534    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
25535    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
25536    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
25537    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
25538    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
25539    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
25540    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
25541    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
25542 
25543    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25544    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25545 
25546    ---------------------------------------------------------------------------------------------------------------
25547    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25548    ---------------------------------------------------------------------------------------------------------------
25549    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25550 
25551    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25552    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25553 
25554    IF xla_accounting_cache_pkg.GetValueChar
25555          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25556          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25557    AND l_bflow_method_code = 'PRIOR_ENTRY'
25558 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25559    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25560          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25561        )
25562    THEN
25563          xla_ae_lines_pkg.BflowUpgEntry
25564            (p_business_method_code    => l_bflow_method_code
25565            ,p_business_class_code     => l_bflow_class_code
25566            ,p_balance_type            => l_balance_type_code);
25567    ELSE
25568       NULL;
25569 -- No business flow processing for business flow method of NONE.
25570    END IF;
25571 
25572    --
25573    -- call analytical criteria
25574    --
25575    
25576    --
25577    -- call description
25578    --
25579    
25580 xla_ae_lines_pkg.SetLineDescription(
25581    p_ae_header_id => l_ae_header_id
25582   ,p_description  => Description_2 (
25583      p_application_id         => p_application_id
25584    , p_ae_header_id           => l_ae_header_id 
25585 , p_source_1 => p_source_1
25586    )
25587 );
25588 
25589 
25590    --
25591    -- call ADRs
25592    -- Bug 4922099
25593    --
25594    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25595         (NVL(l_actual_upg_option, 'N') = 'O') OR
25596         (NVL(l_enc_upg_option, 'N') = 'O')
25597       )
25598    THEN
25599    NULL;
25600    --
25601    --
25602    
25603   l_ccid := AcctDerRule_7(
25604            p_application_id           => p_application_id
25605          , p_ae_header_id             => l_ae_header_id 
25606 , p_source_11 => p_source_11
25607          , x_transaction_coa_id       => l_adr_transaction_coa_id
25608          , x_accounting_coa_id        => l_adr_accounting_coa_id
25609          , x_value_type_code          => l_adr_value_type_code
25610          , p_side                     => 'NA'
25611    );
25612 
25613    xla_ae_lines_pkg.set_ccid(
25614     p_code_combination_id          => l_ccid
25615   , p_value_type_code              => l_adr_value_type_code
25616   , p_transaction_coa_id           => l_adr_transaction_coa_id
25617   , p_accounting_coa_id            => l_adr_accounting_coa_id
25618   , p_adr_code                     => 'AP_INVOICE_DIST'
25619   , p_adr_type_code                => 'S'
25620   , p_component_type               => l_component_type
25621   , p_component_code               => l_component_code
25622   , p_component_type_code          => l_component_type_code
25623   , p_component_appl_id            => l_component_appl_id
25624   , p_amb_context_code             => l_amb_context_code
25625   , p_side                         => 'NA'
25626   );
25627 
25628 
25629    --
25633    -- Bug 4922099
25630    --
25631    END IF;
25632    --
25634    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25635           (NVL(l_enc_upg_option, 'N') = 'O')
25636         ) AND
25637         (l_bflow_method_code = 'PRIOR_ENTRY')
25638       )
25639    THEN
25640       IF
25641       --
25642       1 = 2
25643       --
25644       THEN
25645       xla_accounting_err_pkg.build_message
25646                                     (p_appli_s_name            => 'XLA'
25647                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25648                                     ,p_token_1                 => 'LINE_NUMBER'
25649                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25650                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25651                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25652                                                                              l_component_type
25653                                                                             ,l_component_code
25654                                                                             ,l_component_type_code
25655                                                                             ,l_component_appl_id
25656                                                                             ,l_amb_context_code
25657                                                                             ,l_entity_code
25658                                                                             ,l_event_class_code
25659                                                                            )
25660                                     ,p_token_3                 => 'OWNER'
25661                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25662                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25663                                                                           ,p_lookup_code    => l_component_type_code
25664                                                                          )
25665                                     ,p_token_4                 => 'PRODUCT_NAME'
25666                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25667                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25668                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25669                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25670                                     ,p_ae_header_id            =>  NULL
25671                                        );
25672 
25673         IF (C_LEVEL_ERROR>= g_log_level) THEN
25674                  trace
25675                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25676                       ,p_level    => C_LEVEL_ERROR
25677                       ,p_module   => l_log_module);
25678         END IF;
25679       END IF;
25680    END IF;
25681    --
25682    --
25683    ------------------------------------------------------------------------------------------------
25684    -- 4219869 Business Flow
25685    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25686    -- Prior Entry.  Currently, the following code is always generated.
25687    ------------------------------------------------------------------------------------------------
25688    XLA_AE_LINES_PKG.ValidateCurrentLine;
25689 
25690    ------------------------------------------------------------------------------------
25691    -- 4219869 Business Flow
25692    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25693    ------------------------------------------------------------------------------------
25694    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25695 
25696    ----------------------------------------------------------------------------------
25697    -- 4219869 Business Flow
25698    -- Update journal entry status -- Need to generate this within IF <condition>
25699    ----------------------------------------------------------------------------------
25700    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25701          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25702          ,p_balance_type_code => l_balance_type_code
25703          );
25704 
25705    -------------------------------------------------------------------------------------------
25706    -- 4262811 - Generate the Accrual Reversal lines
25707    -------------------------------------------------------------------------------------------
25708    BEGIN
25709       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25710                               (g_array_event(p_event_id).array_value_num('header_index'));
25711       IF l_acc_rev_flag IS NULL THEN
25712          l_acc_rev_flag := 'N';
25713       END IF;
25714    EXCEPTION
25715       WHEN OTHERS THEN
25716          l_acc_rev_flag := 'N';
25717    END;
25718    --
25719    IF (l_acc_rev_flag = 'Y') THEN
25720 
25721        -- 4645092  ------------------------------------------------------------------------------
25722        -- To allow MPA report to determine if it should generate report process
25723        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25724        ------------------------------------------------------------------------------------------
25725 
25726        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25730    -- Bug 4922099
25727        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25728    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25729    -- call ADRs
25731    --
25732    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25733         (NVL(l_actual_upg_option, 'N') = 'O') OR
25734         (NVL(l_enc_upg_option, 'N') = 'O')
25735       )
25736    THEN
25737    NULL;
25738    --
25739    --
25740    
25741   l_ccid := AcctDerRule_7(
25742            p_application_id           => p_application_id
25743          , p_ae_header_id             => l_ae_header_id 
25744 , p_source_11 => p_source_11
25745          , x_transaction_coa_id       => l_adr_transaction_coa_id
25746          , x_accounting_coa_id        => l_adr_accounting_coa_id
25747          , x_value_type_code          => l_adr_value_type_code
25748          , p_side                     => 'NA'
25749    );
25750 
25751    xla_ae_lines_pkg.set_ccid(
25752     p_code_combination_id          => l_ccid
25753   , p_value_type_code              => l_adr_value_type_code
25754   , p_transaction_coa_id           => l_adr_transaction_coa_id
25755   , p_accounting_coa_id            => l_adr_accounting_coa_id
25756   , p_adr_code                     => 'AP_INVOICE_DIST'
25757   , p_adr_type_code                => 'S'
25758   , p_component_type               => l_component_type
25759   , p_component_code               => l_component_code
25760   , p_component_type_code          => l_component_type_code
25761   , p_component_appl_id            => l_component_appl_id
25762   , p_amb_context_code             => l_amb_context_code
25763   , p_side                         => 'NA'
25764   );
25765 
25766 
25767    --
25768    --
25769    END IF;
25770 
25771        --
25772        -- Update the line information that should be overwritten
25773        --
25774        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25775                                          p_header_num   => 1);
25776        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25777 
25778        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25779 
25780        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25781           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25782        END IF;
25783 
25784       --
25785       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25786       --
25787       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25788           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25789       ELSE
25790           ---------------------------------------------------------------------------------------------------
25791           -- 4262811a Switch Sign
25792           ---------------------------------------------------------------------------------------------------
25793           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25794           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25795                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25796           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25797                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25798           -- 5132302
25799           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25800                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25801 
25802       END IF;
25803 
25804       -- 4955764
25805       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25807 
25808 
25809       XLA_AE_LINES_PKG.ValidateCurrentLine;
25810       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25811 
25812       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25813                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25814                ,p_balance_type_code => l_balance_type_code);
25815 
25816    END IF;
25817 
25818    -----------------------------------------------------------------------------------------
25819    -- 4262811 Multiperiod Accounting
25820    -----------------------------------------------------------------------------------------
25821      -- No MPA option is assigned.
25822 
25823 
25824 END IF;
25825 END IF;
25826 --
25827 
25828 --
25829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25830    trace
25831       (p_msg      => 'END of AcctLineType_46'
25832       ,p_level    => C_LEVEL_PROCEDURE
25833       ,p_module   => l_log_module);
25834 END IF;
25835 --
25836 EXCEPTION
25837   WHEN xla_exceptions_pkg.application_exception THEN
25838       RAISE;
25839   WHEN OTHERS THEN
25840        xla_exceptions_pkg.raise_message
25841            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_46');
25842 END AcctLineType_46;
25843 --
25844 
25845 ---------------------------------------
25846 --
25847 -- PRIVATE FUNCTION
25851 PROCEDURE AcctLineType_47 (
25848 --         AcctLineType_47
25849 --
25850 ---------------------------------------
25852   p_application_id        IN NUMBER
25853  ,p_event_id              IN NUMBER
25854  ,p_calculate_acctd_flag  IN VARCHAR2
25855  ,p_calculate_g_l_flag    IN VARCHAR2
25856  ,p_actual_flag           IN OUT VARCHAR2
25857  ,p_balance_type_code     OUT VARCHAR2
25858  ,p_gain_or_loss_ref      OUT VARCHAR2
25859  
25860 --Invoice Distribution Description
25861  , p_source_1            IN VARCHAR2
25862 --Invoice Distribution Account
25863  , p_source_11            IN NUMBER
25864 --Invoice Distribution Type
25865  , p_source_15            IN VARCHAR2
25866  , p_source_15_meaning    IN VARCHAR2
25867 --Purchasing Encumbrance Option
25868  , p_source_17            IN VARCHAR2
25869  , p_source_17_meaning    IN VARCHAR2
25870 --Accrue on Receipt Option
25871  , p_source_18            IN VARCHAR2
25872  , p_source_18_meaning    IN VARCHAR2
25873 --Accounting Reversal Indicator
25874  , p_source_19            IN VARCHAR2
25875 --Distribution Link Type
25876  , p_source_21            IN VARCHAR2
25877 --Allocation to Main Distribution Identifier
25878  , p_source_23            IN NUMBER
25879 --Invoice Identifier
25880  , p_source_24            IN NUMBER
25881 --Business Flow Accounts Payable Application Identifier
25882  , p_source_25            IN NUMBER
25883 --Business Flow Invoice Distribution Type
25884  , p_source_26            IN VARCHAR2
25885 --Business Flow Invoice Entity Code
25886  , p_source_27            IN VARCHAR2
25887 --Business Flow Invoice Distribution Identifier
25888  , p_source_28            IN NUMBER
25889 --Business Flow Invoice Identifier
25890  , p_source_29            IN NUMBER
25891 --Invoice Distribution Identifier
25892  , p_source_30            IN NUMBER
25893 --Payables Encumbrance Upgrade Credit Account
25894  , p_source_31            IN NUMBER
25895 --Payables Encumbrance Upgrade Credit Amount
25896  , p_source_32            IN NUMBER
25897 --Invoice Currency Code
25898  , p_source_33            IN VARCHAR2
25899 --Payables Encumbrance Upgrade Credit Base Amount
25900  , p_source_34            IN NUMBER
25901 --Payables Encumbrance Upgrade Debit Account
25902  , p_source_35            IN NUMBER
25903 --Payables Encumbrance Upgrade Debit Amount
25904  , p_source_36            IN NUMBER
25905 --Payables Encumbrance Upgrade Debit Base Amount
25906  , p_source_37            IN NUMBER
25907 --Payables Encumbrance Upgrade Option
25908  , p_source_38            IN VARCHAR2
25909 --Invoice Exchange Date
25910  , p_source_39            IN DATE
25911 --Invoice Exchange Rate
25912  , p_source_40            IN NUMBER
25913 --Invoice Exchange Rate Type
25914  , p_source_41            IN VARCHAR2
25915 --Deferred Accounting End Date
25916  , p_source_43            IN DATE
25917 --Deferred Accounting Option
25918  , p_source_44            IN VARCHAR2
25919 --Deferred Accounting Start Date
25920  , p_source_45            IN DATE
25921 --Override Accounted Amount Indicator
25922  , p_source_46            IN VARCHAR2
25923  , p_source_46_meaning    IN VARCHAR2
25924 --Invoice Supplier Identifier
25925  , p_source_47            IN NUMBER
25926 --Invoice Supplier Site Identifier
25927  , p_source_48            IN NUMBER
25928 --Third Party Type
25929  , p_source_49            IN VARCHAR2
25930 --Parent Reversal Identifier
25931  , p_source_50            IN NUMBER
25932 --Invoice Distribution Statistical Amount
25933  , p_source_51            IN NUMBER
25934 --Invoice Distribution Tax Line Identifier
25935  , p_source_52            IN NUMBER
25936 --Invoice Distribution Tax Distribution Identifier from Tax
25937  , p_source_53            IN NUMBER
25938 --Invoice Distribution Summary Tax Line Identifier
25939  , p_source_54            IN NUMBER
25940 --Payables Upgrade Credit Encumbrance Type Identifier
25941  , p_source_55            IN NUMBER
25942 --Payables Upgrade Debit Encumbrance Type Identifier
25943  , p_source_56            IN NUMBER
25944 --Invoice Distribution Amount
25945  , p_source_57            IN NUMBER
25946 --Self-Assessed Tax Flag
25947  , p_source_59            IN VARCHAR2
25948  , p_source_59_meaning    IN VARCHAR2
25949 --Invoice Distribution Encumbrance Amount
25950  , p_source_65            IN NUMBER
25951 --Invoice Distribution Encumbrance Ledger Amount
25952  , p_source_66            IN NUMBER
25953 )
25954 IS
25955 
25956 l_component_type              VARCHAR2(80);
25957 l_component_code              VARCHAR2(30);
25958 l_component_type_code         VARCHAR2(1);
25959 l_component_appl_id           INTEGER;
25960 l_amb_context_code            VARCHAR2(30);
25961 l_entity_code                 VARCHAR2(30);
25962 l_event_class_code            VARCHAR2(30);
25963 l_ae_header_id                NUMBER;
25964 l_event_type_code             VARCHAR2(30);
25965 l_line_definition_code        VARCHAR2(30);
25966 l_line_definition_owner_code  VARCHAR2(1);
25967 --
25968 -- adr variables
25969 l_segment                     VARCHAR2(30);
25970 l_ccid                        NUMBER;
25971 l_adr_transaction_coa_id      NUMBER;
25972 l_adr_accounting_coa_id       NUMBER;
25973 l_adr_flexfield_segment_code  VARCHAR2(30);
25974 l_adr_flex_value_set_id       NUMBER;
25975 l_adr_value_type_code         VARCHAR2(30);
25976 l_adr_value_combination_id    NUMBER;
25977 l_adr_value_segment_code      VARCHAR2(30);
25978 
25982 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25979 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25980 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25981 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25983 
25984 -- 4262811 Variables ------------------------------------------------------------------------------------------
25985 l_entered_amt_idx             NUMBER;
25986 l_accted_amt_idx              NUMBER;
25987 l_acc_rev_flag                VARCHAR2(1);
25988 l_accrual_line_num            NUMBER;
25989 l_tmp_amt                     NUMBER;
25990 l_acc_rev_natural_side_code   VARCHAR2(1);
25991 
25992 l_num_entries                 NUMBER;
25993 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25994 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25995 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25996 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25997 l_recog_line_1                NUMBER;
25998 l_recog_line_2                NUMBER;
25999 
26000 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26001 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26002 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26003 
26004 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26005 
26006 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26007 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26008 
26009 ---------------------------------------------------------------------------------------------------------------
26010 
26011 
26012 --
26013 -- bulk performance
26014 --
26015 l_balance_type_code           VARCHAR2(1);
26016 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26017 l_log_module                  VARCHAR2(240);
26018 
26019 --
26020 -- Upgrade strategy
26021 --
26022 l_actual_upg_option           VARCHAR2(1);
26023 l_enc_upg_option           VARCHAR2(1);
26024 
26025 --
26026 BEGIN
26027 --
26028 IF g_log_enabled THEN
26029       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
26030 END IF;
26031 --
26032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26033 
26034       trace
26035          (p_msg      => 'BEGIN of AcctLineType_47'
26036          ,p_level    => C_LEVEL_PROCEDURE
26037          ,p_module   => l_log_module);
26038 
26039 END IF;
26040 --
26041 l_component_type             := 'AMB_JLT';
26042 l_component_code             := 'AP_NON_RECOV_TAX_INV_ENC_DR';
26043 l_component_type_code        := 'S';
26044 l_component_appl_id          :=  200;
26045 l_amb_context_code           := 'DEFAULT';
26046 l_entity_code                := 'AP_INVOICES';
26047 l_event_class_code           := 'INVOICES';
26048 l_event_type_code            := 'INVOICES_ALL';
26049 l_line_definition_owner_code := 'S';
26050 l_line_definition_code       := 'ENC_INVOICES_ALL';
26051 --
26052 l_balance_type_code          := 'E';
26053 l_segment                     := NULL;
26054 l_ccid                        := NULL;
26055 l_adr_transaction_coa_id      := NULL;
26056 l_adr_accounting_coa_id       := NULL;
26057 l_adr_flexfield_segment_code  := NULL;
26058 l_adr_flex_value_set_id       := NULL;
26059 l_adr_value_type_code         := NULL;
26060 l_adr_value_combination_id    := NULL;
26061 l_adr_value_segment_code      := NULL;
26062 
26063 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
26064 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
26065 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26066 l_budgetary_control_flag     := 'Y';
26067 
26068 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26069 l_bflow_applied_to_amt       := NULL; -- 5132302
26070 l_entered_amt_idx            := NULL;          -- 4262811
26071 l_accted_amt_idx             := NULL;          -- 4262811
26072 l_acc_rev_flag               := NULL;          -- 4262811
26073 l_accrual_line_num           := NULL;          -- 4262811
26074 l_tmp_amt                    := NULL;          -- 4262811
26075 --
26076  
26077 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26078     l_balance_type_code <> 'B' THEN
26079 IF NVL(p_source_15,'
26080 ') =  'NONREC_TAX' AND 
26081 NVL(p_source_59,'
26082 ') <>  'Y' AND 
26083 NVL(p_source_17,'
26084 ') =  'Y' AND 
26085 NVL(p_source_18,'
26086 ') <>  'Y'
26087  THEN 
26088 
26089    --
26090    XLA_AE_LINES_PKG.SetNewLine;
26091 
26092    p_balance_type_code          := l_balance_type_code;
26093    -- set the flag so later we will know whether the gain loss line needs to be created
26094    
26095    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26096      p_actual_flag :='A';
26097    END IF;
26098 
26099    --
26100    -- bulk performance
26101    --
26102    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26103                                       p_header_num   => 0); -- 4262811
26104    --
26105    -- set accounting line options
26106    --
26107    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26108            p_natural_side_code          => 'D'
26112          , p_switch_side_flag           => 'Y'
26109          , p_gain_or_loss_flag          => 'N'
26110          , p_gl_transfer_mode_code      => 'S'
26111          , p_acct_entry_type_code       => 'E'
26113          , p_merge_duplicate_code       => 'N'
26114          );
26115    --
26116    l_acc_rev_natural_side_code := 'C';  -- 4262811
26117    -- 
26118    --
26119    -- set accounting line type info
26120    --
26121    xla_ae_lines_pkg.SetAcctLineType
26122       (p_component_type             => l_component_type
26123       ,p_event_type_code            => l_event_type_code
26124       ,p_line_definition_owner_code => l_line_definition_owner_code
26125       ,p_line_definition_code       => l_line_definition_code
26126       ,p_accounting_line_code       => l_component_code
26127       ,p_accounting_line_type_code  => l_component_type_code
26128       ,p_accounting_line_appl_id    => l_component_appl_id
26129       ,p_amb_context_code           => l_amb_context_code
26130       ,p_entity_code                => l_entity_code
26131       ,p_event_class_code           => l_event_class_code);
26132    --
26133    -- set accounting class
26134    --
26135    xla_ae_lines_pkg.SetAcctClass(
26136            p_accounting_class_code  => 'NRTAX'
26137          , p_ae_header_id           => l_ae_header_id
26138          );
26139 
26140    --
26141    -- set rounding class
26142    --
26143    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26144                       'NRTAX';
26145 
26146    --
26147    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26148    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26149    --
26150    -- bulk performance
26151    --
26152    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26153 
26154    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26155       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26156 
26157    -- 4955764
26158    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26159       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26160 
26161    -- 4458381 Public Sector Enh
26162       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
26163    --
26164    -- set accounting attributes for the line type
26165    --
26166    l_entered_amt_idx := 24;
26167    l_accted_amt_idx  := 29;
26168    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
26169    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26170    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
26171    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26172    l_rec_acct_attrs.array_num_value(2)  := 
26173 xla_ae_sources_pkg.GetSystemSourceNum(
26174    p_source_code           => 'XLA_EVENT_APPL_ID'
26175  , p_source_type_code      => 'Y'
26176  , p_source_application_id =>  602
26177 );
26178    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26179    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
26180    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26181    l_rec_acct_attrs.array_char_value(4)  := 
26182 xla_ae_sources_pkg.GetSystemSourceChar(
26183    p_source_code           => 'XLA_ENTITY_CODE'
26184  , p_source_type_code      => 'Y'
26185  , p_source_application_id =>  602
26186 );
26187    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26188    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
26189    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26190    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
26191    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
26192    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
26193    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
26194    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
26195    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26196    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
26197    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
26198    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
26199    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
26200    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
26201    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26202    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
26203    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
26204    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
26205    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
26206    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
26207    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
26208    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
26209    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
26210    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
26211    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
26212    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
26213    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
26214    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
26215    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
26219    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
26216    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
26217    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
26218    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
26220    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
26221    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
26222    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
26223    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
26224    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
26225    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
26226    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
26227    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
26228    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
26229    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
26230    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
26231    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
26232    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
26233    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
26234    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
26235    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
26236    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
26237    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
26238    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
26239    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
26240    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
26241    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
26242    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
26243    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
26244    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
26245    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
26246    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
26247    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
26248    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
26249    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
26250    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
26251    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
26252    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
26253    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
26254    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
26255    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
26256    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
26257    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
26258    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
26259    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
26260    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
26261    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
26262    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
26263    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
26264    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
26265    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
26266    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
26267 
26268    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26269    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26270 
26271    ---------------------------------------------------------------------------------------------------------------
26272    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26273    ---------------------------------------------------------------------------------------------------------------
26274    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26275 
26276    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26277    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26278 
26279    IF xla_accounting_cache_pkg.GetValueChar
26280          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26281          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26282    AND l_bflow_method_code = 'PRIOR_ENTRY'
26283 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26284    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26285          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26286        )
26287    THEN
26288          xla_ae_lines_pkg.BflowUpgEntry
26289            (p_business_method_code    => l_bflow_method_code
26290            ,p_business_class_code     => l_bflow_class_code
26291            ,p_balance_type            => l_balance_type_code);
26292    ELSE
26293       NULL;
26294 -- No business flow processing for business flow method of NONE.
26295    END IF;
26296 
26297    --
26298    -- call analytical criteria
26299    --
26300    
26301    --
26302    -- call description
26303    --
26304    
26305 xla_ae_lines_pkg.SetLineDescription(
26306    p_ae_header_id => l_ae_header_id
26307   ,p_description  => Description_2 (
26308      p_application_id         => p_application_id
26309    , p_ae_header_id           => l_ae_header_id 
26310 , p_source_1 => p_source_1
26311    )
26312 );
26313 
26314 
26315    --
26319    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26316    -- call ADRs
26317    -- Bug 4922099
26318    --
26320         (NVL(l_actual_upg_option, 'N') = 'O') OR
26321         (NVL(l_enc_upg_option, 'N') = 'O')
26322       )
26323    THEN
26324    NULL;
26325    --
26326    --
26327    
26328   l_ccid := AcctDerRule_7(
26329            p_application_id           => p_application_id
26330          , p_ae_header_id             => l_ae_header_id 
26331 , p_source_11 => p_source_11
26332          , x_transaction_coa_id       => l_adr_transaction_coa_id
26333          , x_accounting_coa_id        => l_adr_accounting_coa_id
26334          , x_value_type_code          => l_adr_value_type_code
26335          , p_side                     => 'NA'
26336    );
26337 
26338    xla_ae_lines_pkg.set_ccid(
26339     p_code_combination_id          => l_ccid
26340   , p_value_type_code              => l_adr_value_type_code
26341   , p_transaction_coa_id           => l_adr_transaction_coa_id
26342   , p_accounting_coa_id            => l_adr_accounting_coa_id
26343   , p_adr_code                     => 'AP_INVOICE_DIST'
26344   , p_adr_type_code                => 'S'
26345   , p_component_type               => l_component_type
26346   , p_component_code               => l_component_code
26347   , p_component_type_code          => l_component_type_code
26348   , p_component_appl_id            => l_component_appl_id
26349   , p_amb_context_code             => l_amb_context_code
26350   , p_side                         => 'NA'
26351   );
26352 
26353 
26354    --
26355    --
26356    END IF;
26357    --
26358    -- Bug 4922099
26359    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26360           (NVL(l_enc_upg_option, 'N') = 'O')
26361         ) AND
26362         (l_bflow_method_code = 'PRIOR_ENTRY')
26363       )
26364    THEN
26365       IF
26366       --
26367       1 = 2
26368       --
26369       THEN
26370       xla_accounting_err_pkg.build_message
26371                                     (p_appli_s_name            => 'XLA'
26372                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26373                                     ,p_token_1                 => 'LINE_NUMBER'
26374                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26375                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26376                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26377                                                                              l_component_type
26378                                                                             ,l_component_code
26379                                                                             ,l_component_type_code
26380                                                                             ,l_component_appl_id
26381                                                                             ,l_amb_context_code
26382                                                                             ,l_entity_code
26383                                                                             ,l_event_class_code
26384                                                                            )
26385                                     ,p_token_3                 => 'OWNER'
26386                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26387                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26388                                                                           ,p_lookup_code    => l_component_type_code
26389                                                                          )
26390                                     ,p_token_4                 => 'PRODUCT_NAME'
26391                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26392                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26393                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26394                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26395                                     ,p_ae_header_id            =>  NULL
26396                                        );
26397 
26398         IF (C_LEVEL_ERROR>= g_log_level) THEN
26399                  trace
26400                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26401                       ,p_level    => C_LEVEL_ERROR
26402                       ,p_module   => l_log_module);
26403         END IF;
26404       END IF;
26405    END IF;
26406    --
26407    --
26408    ------------------------------------------------------------------------------------------------
26409    -- 4219869 Business Flow
26410    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26411    -- Prior Entry.  Currently, the following code is always generated.
26412    ------------------------------------------------------------------------------------------------
26413    XLA_AE_LINES_PKG.ValidateCurrentLine;
26414 
26415    ------------------------------------------------------------------------------------
26416    -- 4219869 Business Flow
26417    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26418    ------------------------------------------------------------------------------------
26419    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26420 
26424    ----------------------------------------------------------------------------------
26421    ----------------------------------------------------------------------------------
26422    -- 4219869 Business Flow
26423    -- Update journal entry status -- Need to generate this within IF <condition>
26425    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26426          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26427          ,p_balance_type_code => l_balance_type_code
26428          );
26429 
26430    -------------------------------------------------------------------------------------------
26431    -- 4262811 - Generate the Accrual Reversal lines
26432    -------------------------------------------------------------------------------------------
26433    BEGIN
26434       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26435                               (g_array_event(p_event_id).array_value_num('header_index'));
26436       IF l_acc_rev_flag IS NULL THEN
26437          l_acc_rev_flag := 'N';
26438       END IF;
26439    EXCEPTION
26440       WHEN OTHERS THEN
26441          l_acc_rev_flag := 'N';
26442    END;
26443    --
26444    IF (l_acc_rev_flag = 'Y') THEN
26445 
26446        -- 4645092  ------------------------------------------------------------------------------
26447        -- To allow MPA report to determine if it should generate report process
26448        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26449        ------------------------------------------------------------------------------------------
26450 
26451        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26452        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26453    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26454    -- call ADRs
26455    -- Bug 4922099
26456    --
26457    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26458         (NVL(l_actual_upg_option, 'N') = 'O') OR
26459         (NVL(l_enc_upg_option, 'N') = 'O')
26460       )
26461    THEN
26462    NULL;
26463    --
26464    --
26465    
26466   l_ccid := AcctDerRule_7(
26467            p_application_id           => p_application_id
26468          , p_ae_header_id             => l_ae_header_id 
26469 , p_source_11 => p_source_11
26470          , x_transaction_coa_id       => l_adr_transaction_coa_id
26471          , x_accounting_coa_id        => l_adr_accounting_coa_id
26472          , x_value_type_code          => l_adr_value_type_code
26473          , p_side                     => 'NA'
26474    );
26475 
26476    xla_ae_lines_pkg.set_ccid(
26477     p_code_combination_id          => l_ccid
26478   , p_value_type_code              => l_adr_value_type_code
26479   , p_transaction_coa_id           => l_adr_transaction_coa_id
26480   , p_accounting_coa_id            => l_adr_accounting_coa_id
26481   , p_adr_code                     => 'AP_INVOICE_DIST'
26482   , p_adr_type_code                => 'S'
26483   , p_component_type               => l_component_type
26484   , p_component_code               => l_component_code
26485   , p_component_type_code          => l_component_type_code
26486   , p_component_appl_id            => l_component_appl_id
26487   , p_amb_context_code             => l_amb_context_code
26488   , p_side                         => 'NA'
26489   );
26490 
26491 
26492    --
26493    --
26494    END IF;
26495 
26496        --
26497        -- Update the line information that should be overwritten
26498        --
26499        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26500                                          p_header_num   => 1);
26501        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26502 
26503        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26504 
26505        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26506           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26507        END IF;
26508 
26509       --
26510       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26511       --
26512       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26513           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26514       ELSE
26515           ---------------------------------------------------------------------------------------------------
26516           -- 4262811a Switch Sign
26517           ---------------------------------------------------------------------------------------------------
26518           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26519           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26520                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26521           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26522                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26523           -- 5132302
26524           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26528 
26525                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26526 
26527       END IF;
26529       -- 4955764
26530       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26531       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26532 
26533 
26534       XLA_AE_LINES_PKG.ValidateCurrentLine;
26535       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26536 
26537       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26538                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26539                ,p_balance_type_code => l_balance_type_code);
26540 
26541    END IF;
26542 
26543    -----------------------------------------------------------------------------------------
26544    -- 4262811 Multiperiod Accounting
26545    -----------------------------------------------------------------------------------------
26546      -- No MPA option is assigned.
26547 
26548 
26549 END IF;
26550 END IF;
26551 --
26552 
26553 --
26554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26555    trace
26556       (p_msg      => 'END of AcctLineType_47'
26557       ,p_level    => C_LEVEL_PROCEDURE
26558       ,p_module   => l_log_module);
26559 END IF;
26560 --
26561 EXCEPTION
26562   WHEN xla_exceptions_pkg.application_exception THEN
26563       RAISE;
26564   WHEN OTHERS THEN
26565        xla_exceptions_pkg.raise_message
26566            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_47');
26567 END AcctLineType_47;
26568 --
26569 
26570 ---------------------------------------
26571 --
26572 -- PRIVATE FUNCTION
26573 --         AcctLineType_48
26574 --
26575 ---------------------------------------
26576 PROCEDURE AcctLineType_48 (
26577   p_application_id        IN NUMBER
26578  ,p_event_id              IN NUMBER
26579  ,p_calculate_acctd_flag  IN VARCHAR2
26580  ,p_calculate_g_l_flag    IN VARCHAR2
26581  ,p_actual_flag           IN OUT VARCHAR2
26582  ,p_balance_type_code     OUT VARCHAR2
26583  ,p_gain_or_loss_ref      OUT VARCHAR2
26584  
26585 --Invoice Distribution Description
26586  , p_source_1            IN VARCHAR2
26587 --Invoice Distribution Account
26588  , p_source_11            IN NUMBER
26589 --Invoice Distribution Type
26590  , p_source_15            IN VARCHAR2
26591  , p_source_15_meaning    IN VARCHAR2
26592 --Purchasing Encumbrance Option
26593  , p_source_17            IN VARCHAR2
26594  , p_source_17_meaning    IN VARCHAR2
26595 --Accrue on Receipt Option
26596  , p_source_18            IN VARCHAR2
26597  , p_source_18_meaning    IN VARCHAR2
26598 --Accounting Reversal Indicator
26599  , p_source_19            IN VARCHAR2
26600 --Distribution Link Type
26601  , p_source_21            IN VARCHAR2
26602 --Allocation to Main Distribution Identifier
26603  , p_source_23            IN NUMBER
26604 --Invoice Identifier
26605  , p_source_24            IN NUMBER
26606 --Business Flow Accounts Payable Application Identifier
26607  , p_source_25            IN NUMBER
26608 --Business Flow Invoice Distribution Type
26609  , p_source_26            IN VARCHAR2
26610 --Business Flow Invoice Entity Code
26611  , p_source_27            IN VARCHAR2
26612 --Business Flow Invoice Distribution Identifier
26613  , p_source_28            IN NUMBER
26614 --Business Flow Invoice Identifier
26615  , p_source_29            IN NUMBER
26616 --Invoice Distribution Identifier
26617  , p_source_30            IN NUMBER
26618 --Payables Encumbrance Upgrade Credit Account
26619  , p_source_31            IN NUMBER
26620 --Payables Encumbrance Upgrade Credit Amount
26621  , p_source_32            IN NUMBER
26622 --Invoice Currency Code
26623  , p_source_33            IN VARCHAR2
26624 --Payables Encumbrance Upgrade Credit Base Amount
26625  , p_source_34            IN NUMBER
26626 --Payables Encumbrance Upgrade Debit Account
26627  , p_source_35            IN NUMBER
26628 --Payables Encumbrance Upgrade Debit Amount
26629  , p_source_36            IN NUMBER
26630 --Payables Encumbrance Upgrade Debit Base Amount
26631  , p_source_37            IN NUMBER
26632 --Payables Encumbrance Upgrade Option
26633  , p_source_38            IN VARCHAR2
26634 --Invoice Exchange Date
26635  , p_source_39            IN DATE
26636 --Invoice Exchange Rate
26637  , p_source_40            IN NUMBER
26638 --Invoice Exchange Rate Type
26639  , p_source_41            IN VARCHAR2
26640 --Deferred Accounting End Date
26641  , p_source_43            IN DATE
26642 --Deferred Accounting Option
26643  , p_source_44            IN VARCHAR2
26644 --Deferred Accounting Start Date
26645  , p_source_45            IN DATE
26646 --Override Accounted Amount Indicator
26647  , p_source_46            IN VARCHAR2
26648  , p_source_46_meaning    IN VARCHAR2
26649 --Invoice Supplier Identifier
26650  , p_source_47            IN NUMBER
26651 --Invoice Supplier Site Identifier
26652  , p_source_48            IN NUMBER
26653 --Third Party Type
26654  , p_source_49            IN VARCHAR2
26655 --Parent Reversal Identifier
26656  , p_source_50            IN NUMBER
26657 --Invoice Distribution Statistical Amount
26658  , p_source_51            IN NUMBER
26659 --Invoice Distribution Tax Line Identifier
26660  , p_source_52            IN NUMBER
26661 --Invoice Distribution Tax Distribution Identifier from Tax
26665 --Payables Upgrade Credit Encumbrance Type Identifier
26662  , p_source_53            IN NUMBER
26663 --Invoice Distribution Summary Tax Line Identifier
26664  , p_source_54            IN NUMBER
26666  , p_source_55            IN NUMBER
26667 --Payables Upgrade Debit Encumbrance Type Identifier
26668  , p_source_56            IN NUMBER
26669 --Self-Assessed Tax Flag
26670  , p_source_59            IN VARCHAR2
26671  , p_source_59_meaning    IN VARCHAR2
26672 --Invoice Distribution Encumbrance Amount
26673  , p_source_65            IN NUMBER
26674 --Invoice Distribution Encumbrance Ledger Amount
26675  , p_source_66            IN NUMBER
26676 )
26677 IS
26678 
26679 l_component_type              VARCHAR2(80);
26680 l_component_code              VARCHAR2(30);
26681 l_component_type_code         VARCHAR2(1);
26682 l_component_appl_id           INTEGER;
26683 l_amb_context_code            VARCHAR2(30);
26684 l_entity_code                 VARCHAR2(30);
26685 l_event_class_code            VARCHAR2(30);
26686 l_ae_header_id                NUMBER;
26687 l_event_type_code             VARCHAR2(30);
26688 l_line_definition_code        VARCHAR2(30);
26689 l_line_definition_owner_code  VARCHAR2(1);
26690 --
26691 -- adr variables
26692 l_segment                     VARCHAR2(30);
26693 l_ccid                        NUMBER;
26694 l_adr_transaction_coa_id      NUMBER;
26695 l_adr_accounting_coa_id       NUMBER;
26696 l_adr_flexfield_segment_code  VARCHAR2(30);
26697 l_adr_flex_value_set_id       NUMBER;
26698 l_adr_value_type_code         VARCHAR2(30);
26699 l_adr_value_combination_id    NUMBER;
26700 l_adr_value_segment_code      VARCHAR2(30);
26701 
26702 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26703 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26704 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26705 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26706 
26707 -- 4262811 Variables ------------------------------------------------------------------------------------------
26708 l_entered_amt_idx             NUMBER;
26709 l_accted_amt_idx              NUMBER;
26710 l_acc_rev_flag                VARCHAR2(1);
26711 l_accrual_line_num            NUMBER;
26712 l_tmp_amt                     NUMBER;
26713 l_acc_rev_natural_side_code   VARCHAR2(1);
26714 
26715 l_num_entries                 NUMBER;
26716 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26717 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26718 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26719 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26720 l_recog_line_1                NUMBER;
26721 l_recog_line_2                NUMBER;
26722 
26723 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26724 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26725 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26726 
26727 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26728 
26729 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26730 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26731 
26732 ---------------------------------------------------------------------------------------------------------------
26733 
26734 
26735 --
26736 -- bulk performance
26737 --
26738 l_balance_type_code           VARCHAR2(1);
26739 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26740 l_log_module                  VARCHAR2(240);
26741 
26742 --
26743 -- Upgrade strategy
26744 --
26745 l_actual_upg_option           VARCHAR2(1);
26746 l_enc_upg_option           VARCHAR2(1);
26747 
26748 --
26749 BEGIN
26750 --
26751 IF g_log_enabled THEN
26752       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
26753 END IF;
26754 --
26755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26756 
26757       trace
26758          (p_msg      => 'BEGIN of AcctLineType_48'
26759          ,p_level    => C_LEVEL_PROCEDURE
26760          ,p_module   => l_log_module);
26761 
26762 END IF;
26763 --
26764 l_component_type             := 'AMB_JLT';
26765 l_component_code             := 'AP_NON_RECOV_TAX_PP_ENC_DR';
26766 l_component_type_code        := 'S';
26767 l_component_appl_id          :=  200;
26768 l_amb_context_code           := 'DEFAULT';
26769 l_entity_code                := 'AP_INVOICES';
26770 l_event_class_code           := 'PREPAYMENTS';
26771 l_event_type_code            := 'PREPAYMENTS_ALL';
26772 l_line_definition_owner_code := 'S';
26773 l_line_definition_code       := 'ENC_PREPAY_ALL';
26774 --
26775 l_balance_type_code          := 'E';
26776 l_segment                     := NULL;
26777 l_ccid                        := NULL;
26778 l_adr_transaction_coa_id      := NULL;
26779 l_adr_accounting_coa_id       := NULL;
26780 l_adr_flexfield_segment_code  := NULL;
26781 l_adr_flex_value_set_id       := NULL;
26782 l_adr_value_type_code         := NULL;
26783 l_adr_value_combination_id    := NULL;
26784 l_adr_value_segment_code      := NULL;
26785 
26786 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
26787 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
26788 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26792 l_bflow_applied_to_amt       := NULL; -- 5132302
26789 l_budgetary_control_flag     := 'Y';
26790 
26791 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26793 l_entered_amt_idx            := NULL;          -- 4262811
26794 l_accted_amt_idx             := NULL;          -- 4262811
26795 l_acc_rev_flag               := NULL;          -- 4262811
26796 l_accrual_line_num           := NULL;          -- 4262811
26797 l_tmp_amt                    := NULL;          -- 4262811
26798 --
26799  
26800 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26801     l_balance_type_code <> 'B' THEN
26802 IF NVL(p_source_15,'
26803 ') =  'NONREC_TAX' AND 
26804 NVL(p_source_59,'
26805 ') <>  'Y' AND 
26806 NVL(p_source_17,'
26807 ') =  'Y' AND 
26808 NVL(p_source_18,'
26809 ') <>  'Y'
26810  THEN 
26811 
26812    --
26813    XLA_AE_LINES_PKG.SetNewLine;
26814 
26815    p_balance_type_code          := l_balance_type_code;
26816    -- set the flag so later we will know whether the gain loss line needs to be created
26817    
26818    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26819      p_actual_flag :='A';
26820    END IF;
26821 
26822    --
26823    -- bulk performance
26824    --
26825    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26826                                       p_header_num   => 0); -- 4262811
26827    --
26828    -- set accounting line options
26829    --
26830    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26831            p_natural_side_code          => 'D'
26832          , p_gain_or_loss_flag          => 'N'
26833          , p_gl_transfer_mode_code      => 'S'
26834          , p_acct_entry_type_code       => 'E'
26835          , p_switch_side_flag           => 'Y'
26836          , p_merge_duplicate_code       => 'N'
26837          );
26838    --
26839    l_acc_rev_natural_side_code := 'C';  -- 4262811
26840    -- 
26841    --
26842    -- set accounting line type info
26843    --
26844    xla_ae_lines_pkg.SetAcctLineType
26845       (p_component_type             => l_component_type
26846       ,p_event_type_code            => l_event_type_code
26847       ,p_line_definition_owner_code => l_line_definition_owner_code
26848       ,p_line_definition_code       => l_line_definition_code
26849       ,p_accounting_line_code       => l_component_code
26850       ,p_accounting_line_type_code  => l_component_type_code
26851       ,p_accounting_line_appl_id    => l_component_appl_id
26852       ,p_amb_context_code           => l_amb_context_code
26853       ,p_entity_code                => l_entity_code
26854       ,p_event_class_code           => l_event_class_code);
26855    --
26856    -- set accounting class
26857    --
26858    xla_ae_lines_pkg.SetAcctClass(
26859            p_accounting_class_code  => 'NRTAX'
26860          , p_ae_header_id           => l_ae_header_id
26861          );
26862 
26863    --
26864    -- set rounding class
26865    --
26866    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26867                       'NRTAX';
26868 
26869    --
26870    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26871    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26872    --
26873    -- bulk performance
26874    --
26875    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26876 
26877    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26878       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26879 
26880    -- 4955764
26881    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26882       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26883 
26884    -- 4458381 Public Sector Enh
26885       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
26886    --
26887    -- set accounting attributes for the line type
26888    --
26889    l_entered_amt_idx := 23;
26890    l_accted_amt_idx  := 28;
26891    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
26892    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26893    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
26894    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26895    l_rec_acct_attrs.array_num_value(2)  := 
26896 xla_ae_sources_pkg.GetSystemSourceNum(
26897    p_source_code           => 'XLA_EVENT_APPL_ID'
26898  , p_source_type_code      => 'Y'
26899  , p_source_application_id =>  602
26900 );
26901    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26902    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
26903    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26904    l_rec_acct_attrs.array_char_value(4)  := 
26905 xla_ae_sources_pkg.GetSystemSourceChar(
26906    p_source_code           => 'XLA_ENTITY_CODE'
26907  , p_source_type_code      => 'Y'
26908  , p_source_application_id =>  602
26909 );
26910    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26911    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
26912    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26913    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
26917    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
26914    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
26915    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
26916    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26918    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
26919    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
26920    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
26921    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
26922    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26923    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
26924    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
26925    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
26926    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
26927    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
26928    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
26929    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
26930    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
26931    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
26932    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
26933    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
26934    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
26935    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
26936    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
26937    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
26938    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
26939    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
26940    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
26941    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
26942    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
26943    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
26944    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
26945    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
26946    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
26947    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
26948    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
26949    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
26950    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
26951    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
26952    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
26953    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
26954    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
26955    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
26956    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
26957    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
26958    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
26959    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
26960    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
26961    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
26962    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
26963    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
26964    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
26965    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
26966    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
26967    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
26968    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
26969    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
26970    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
26971    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
26972    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
26973    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
26974    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
26975    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
26976    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
26977    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
26978    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
26979    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
26980    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
26981    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
26982    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
26983    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
26984    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
26985    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
26986    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
26987    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
26988 
26989    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26990    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26991 
26992    ---------------------------------------------------------------------------------------------------------------
26993    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26994    ---------------------------------------------------------------------------------------------------------------
26995    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26996 
27000    IF xla_accounting_cache_pkg.GetValueChar
26997    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26998    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26999 
27001          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27002          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27003    AND l_bflow_method_code = 'PRIOR_ENTRY'
27004 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27005    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27006          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27007        )
27008    THEN
27009          xla_ae_lines_pkg.BflowUpgEntry
27010            (p_business_method_code    => l_bflow_method_code
27011            ,p_business_class_code     => l_bflow_class_code
27012            ,p_balance_type            => l_balance_type_code);
27013    ELSE
27014       NULL;
27015 -- No business flow processing for business flow method of NONE.
27016    END IF;
27017 
27018    --
27019    -- call analytical criteria
27020    --
27021    
27022    --
27023    -- call description
27024    --
27025    
27026 xla_ae_lines_pkg.SetLineDescription(
27027    p_ae_header_id => l_ae_header_id
27028   ,p_description  => Description_2 (
27029      p_application_id         => p_application_id
27030    , p_ae_header_id           => l_ae_header_id 
27031 , p_source_1 => p_source_1
27032    )
27033 );
27034 
27035 
27036    --
27037    -- call ADRs
27038    -- Bug 4922099
27039    --
27040    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27041         (NVL(l_actual_upg_option, 'N') = 'O') OR
27042         (NVL(l_enc_upg_option, 'N') = 'O')
27043       )
27044    THEN
27045    NULL;
27046    --
27047    --
27048    
27049   l_ccid := AcctDerRule_7(
27050            p_application_id           => p_application_id
27051          , p_ae_header_id             => l_ae_header_id 
27052 , p_source_11 => p_source_11
27053          , x_transaction_coa_id       => l_adr_transaction_coa_id
27054          , x_accounting_coa_id        => l_adr_accounting_coa_id
27055          , x_value_type_code          => l_adr_value_type_code
27056          , p_side                     => 'NA'
27057    );
27058 
27059    xla_ae_lines_pkg.set_ccid(
27060     p_code_combination_id          => l_ccid
27061   , p_value_type_code              => l_adr_value_type_code
27062   , p_transaction_coa_id           => l_adr_transaction_coa_id
27063   , p_accounting_coa_id            => l_adr_accounting_coa_id
27064   , p_adr_code                     => 'AP_INVOICE_DIST'
27065   , p_adr_type_code                => 'S'
27066   , p_component_type               => l_component_type
27067   , p_component_code               => l_component_code
27068   , p_component_type_code          => l_component_type_code
27069   , p_component_appl_id            => l_component_appl_id
27070   , p_amb_context_code             => l_amb_context_code
27071   , p_side                         => 'NA'
27072   );
27073 
27074 
27075    --
27076    --
27077    END IF;
27078    --
27079    -- Bug 4922099
27080    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27081           (NVL(l_enc_upg_option, 'N') = 'O')
27082         ) AND
27083         (l_bflow_method_code = 'PRIOR_ENTRY')
27084       )
27085    THEN
27086       IF
27087       --
27088       1 = 2
27089       --
27090       THEN
27091       xla_accounting_err_pkg.build_message
27092                                     (p_appli_s_name            => 'XLA'
27093                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27094                                     ,p_token_1                 => 'LINE_NUMBER'
27095                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27096                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27097                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27098                                                                              l_component_type
27099                                                                             ,l_component_code
27100                                                                             ,l_component_type_code
27101                                                                             ,l_component_appl_id
27102                                                                             ,l_amb_context_code
27103                                                                             ,l_entity_code
27104                                                                             ,l_event_class_code
27105                                                                            )
27106                                     ,p_token_3                 => 'OWNER'
27107                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27108                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27109                                                                           ,p_lookup_code    => l_component_type_code
27110                                                                          )
27111                                     ,p_token_4                 => 'PRODUCT_NAME'
27115                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27112                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27113                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27114                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27116                                     ,p_ae_header_id            =>  NULL
27117                                        );
27118 
27119         IF (C_LEVEL_ERROR>= g_log_level) THEN
27120                  trace
27121                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27122                       ,p_level    => C_LEVEL_ERROR
27123                       ,p_module   => l_log_module);
27124         END IF;
27125       END IF;
27126    END IF;
27127    --
27128    --
27129    ------------------------------------------------------------------------------------------------
27130    -- 4219869 Business Flow
27131    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27132    -- Prior Entry.  Currently, the following code is always generated.
27133    ------------------------------------------------------------------------------------------------
27134    XLA_AE_LINES_PKG.ValidateCurrentLine;
27135 
27136    ------------------------------------------------------------------------------------
27137    -- 4219869 Business Flow
27138    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27139    ------------------------------------------------------------------------------------
27140    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27141 
27142    ----------------------------------------------------------------------------------
27143    -- 4219869 Business Flow
27144    -- Update journal entry status -- Need to generate this within IF <condition>
27145    ----------------------------------------------------------------------------------
27146    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27147          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27148          ,p_balance_type_code => l_balance_type_code
27149          );
27150 
27151    -------------------------------------------------------------------------------------------
27152    -- 4262811 - Generate the Accrual Reversal lines
27153    -------------------------------------------------------------------------------------------
27154    BEGIN
27155       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27156                               (g_array_event(p_event_id).array_value_num('header_index'));
27157       IF l_acc_rev_flag IS NULL THEN
27158          l_acc_rev_flag := 'N';
27159       END IF;
27160    EXCEPTION
27161       WHEN OTHERS THEN
27162          l_acc_rev_flag := 'N';
27163    END;
27164    --
27165    IF (l_acc_rev_flag = 'Y') THEN
27166 
27167        -- 4645092  ------------------------------------------------------------------------------
27168        -- To allow MPA report to determine if it should generate report process
27169        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27170        ------------------------------------------------------------------------------------------
27171 
27172        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27173        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27174    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27175    -- call ADRs
27176    -- Bug 4922099
27177    --
27178    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27179         (NVL(l_actual_upg_option, 'N') = 'O') OR
27180         (NVL(l_enc_upg_option, 'N') = 'O')
27181       )
27182    THEN
27183    NULL;
27184    --
27185    --
27186    
27187   l_ccid := AcctDerRule_7(
27188            p_application_id           => p_application_id
27189          , p_ae_header_id             => l_ae_header_id 
27190 , p_source_11 => p_source_11
27191          , x_transaction_coa_id       => l_adr_transaction_coa_id
27192          , x_accounting_coa_id        => l_adr_accounting_coa_id
27193          , x_value_type_code          => l_adr_value_type_code
27194          , p_side                     => 'NA'
27195    );
27196 
27197    xla_ae_lines_pkg.set_ccid(
27198     p_code_combination_id          => l_ccid
27199   , p_value_type_code              => l_adr_value_type_code
27200   , p_transaction_coa_id           => l_adr_transaction_coa_id
27201   , p_accounting_coa_id            => l_adr_accounting_coa_id
27202   , p_adr_code                     => 'AP_INVOICE_DIST'
27203   , p_adr_type_code                => 'S'
27204   , p_component_type               => l_component_type
27205   , p_component_code               => l_component_code
27206   , p_component_type_code          => l_component_type_code
27207   , p_component_appl_id            => l_component_appl_id
27208   , p_amb_context_code             => l_amb_context_code
27209   , p_side                         => 'NA'
27210   );
27211 
27212 
27213    --
27214    --
27215    END IF;
27216 
27217        --
27218        -- Update the line information that should be overwritten
27219        --
27220        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27221                                          p_header_num   => 1);
27225 
27222        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27223 
27224        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27226        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27227           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27228        END IF;
27229 
27230       --
27231       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27232       --
27233       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27234           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27235       ELSE
27236           ---------------------------------------------------------------------------------------------------
27237           -- 4262811a Switch Sign
27238           ---------------------------------------------------------------------------------------------------
27239           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27240           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27241                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27242           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27243                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27244           -- 5132302
27245           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27246                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27247 
27248       END IF;
27249 
27250       -- 4955764
27251       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27253 
27254 
27255       XLA_AE_LINES_PKG.ValidateCurrentLine;
27256       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27257 
27258       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27259                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27260                ,p_balance_type_code => l_balance_type_code);
27261 
27262    END IF;
27263 
27264    -----------------------------------------------------------------------------------------
27265    -- 4262811 Multiperiod Accounting
27266    -----------------------------------------------------------------------------------------
27267      -- No MPA option is assigned.
27268 
27269 
27270 END IF;
27271 END IF;
27272 --
27273 
27274 --
27275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27276    trace
27277       (p_msg      => 'END of AcctLineType_48'
27278       ,p_level    => C_LEVEL_PROCEDURE
27279       ,p_module   => l_log_module);
27280 END IF;
27281 --
27282 EXCEPTION
27283   WHEN xla_exceptions_pkg.application_exception THEN
27284       RAISE;
27285   WHEN OTHERS THEN
27286        xla_exceptions_pkg.raise_message
27287            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_48');
27288 END AcctLineType_48;
27289 --
27290 
27291 ---------------------------------------
27292 --
27293 -- PRIVATE FUNCTION
27294 --         AcctLineType_49
27295 --
27296 ---------------------------------------
27297 PROCEDURE AcctLineType_49 (
27298   p_application_id        IN NUMBER
27299  ,p_event_id              IN NUMBER
27300  ,p_calculate_acctd_flag  IN VARCHAR2
27301  ,p_calculate_g_l_flag    IN VARCHAR2
27302  ,p_actual_flag           IN OUT VARCHAR2
27303  ,p_balance_type_code     OUT VARCHAR2
27304  ,p_gain_or_loss_ref      OUT VARCHAR2
27305  
27306 --Invoice Distribution Type
27307  , p_source_15            IN VARCHAR2
27308  , p_source_15_meaning    IN VARCHAR2
27309 --Accrue on Receipt Option
27310  , p_source_18            IN VARCHAR2
27311  , p_source_18_meaning    IN VARCHAR2
27312 --Accounting Reversal Indicator
27313  , p_source_19            IN VARCHAR2
27314 --Distribution Link Type
27315  , p_source_21            IN VARCHAR2
27316 --Allocation to Main Distribution Identifier
27317  , p_source_23            IN NUMBER
27318 --Invoice Identifier
27319  , p_source_24            IN NUMBER
27320 --Invoice Distribution Identifier
27321  , p_source_30            IN NUMBER
27322 --Payables Encumbrance Upgrade Credit Account
27323  , p_source_31            IN NUMBER
27324 --Payables Encumbrance Upgrade Credit Amount
27325  , p_source_32            IN NUMBER
27326 --Invoice Currency Code
27327  , p_source_33            IN VARCHAR2
27328 --Payables Encumbrance Upgrade Credit Base Amount
27329  , p_source_34            IN NUMBER
27330 --Payables Encumbrance Upgrade Debit Account
27331  , p_source_35            IN NUMBER
27332 --Payables Encumbrance Upgrade Debit Amount
27333  , p_source_36            IN NUMBER
27334 --Payables Encumbrance Upgrade Debit Base Amount
27335  , p_source_37            IN NUMBER
27336 --Payables Encumbrance Upgrade Option
27337  , p_source_38            IN VARCHAR2
27338 --Deferred Accounting End Date
27339  , p_source_43            IN DATE
27340 --Deferred Accounting Option
27341  , p_source_44            IN VARCHAR2
27342 --Deferred Accounting Start Date
27346  , p_source_46_meaning    IN VARCHAR2
27343  , p_source_45            IN DATE
27344 --Override Accounted Amount Indicator
27345  , p_source_46            IN VARCHAR2
27347 --Third Party Type
27348  , p_source_49            IN VARCHAR2
27349 --Parent Reversal Identifier
27350  , p_source_50            IN NUMBER
27351 --Invoice Distribution Statistical Amount
27352  , p_source_51            IN NUMBER
27353 --Invoice Distribution Tax Line Identifier
27354  , p_source_52            IN NUMBER
27355 --Invoice Distribution Tax Distribution Identifier from Tax
27356  , p_source_53            IN NUMBER
27357 --Invoice Distribution Summary Tax Line Identifier
27358  , p_source_54            IN NUMBER
27359 --Payables Upgrade Credit Encumbrance Type Identifier
27360  , p_source_55            IN NUMBER
27361 --Payables Upgrade Debit Encumbrance Type Identifier
27362  , p_source_56            IN NUMBER
27363 --Purchase Order Distribution Identifier
27364  , p_source_58            IN NUMBER
27365 --Self-Assessed Tax Flag
27366  , p_source_59            IN VARCHAR2
27367  , p_source_59_meaning    IN VARCHAR2
27368 --Business Flow Purchasing Application Identifier
27369  , p_source_60            IN NUMBER
27370 --Business Flow Purchase Order Distribution Type
27371  , p_source_61            IN VARCHAR2
27372 --Business Flow Purchase Order Entity Code
27373  , p_source_62            IN VARCHAR2
27374 --Business Flow Purchase Order Distribution Identifier
27375  , p_source_63            IN NUMBER
27376 --Business Flow Purchasing Document Identifier
27377  , p_source_64            IN NUMBER
27378 --Invoice Distribution Encumbrance Amount
27379  , p_source_65            IN NUMBER
27380 --Invoice Distribution Encumbrance Ledger Amount
27381  , p_source_66            IN NUMBER
27382 )
27383 IS
27384 
27385 l_component_type              VARCHAR2(80);
27386 l_component_code              VARCHAR2(30);
27387 l_component_type_code         VARCHAR2(1);
27388 l_component_appl_id           INTEGER;
27389 l_amb_context_code            VARCHAR2(30);
27390 l_entity_code                 VARCHAR2(30);
27391 l_event_class_code            VARCHAR2(30);
27392 l_ae_header_id                NUMBER;
27393 l_event_type_code             VARCHAR2(30);
27394 l_line_definition_code        VARCHAR2(30);
27395 l_line_definition_owner_code  VARCHAR2(1);
27396 --
27397 -- adr variables
27398 l_segment                     VARCHAR2(30);
27399 l_ccid                        NUMBER;
27400 l_adr_transaction_coa_id      NUMBER;
27401 l_adr_accounting_coa_id       NUMBER;
27402 l_adr_flexfield_segment_code  VARCHAR2(30);
27403 l_adr_flex_value_set_id       NUMBER;
27404 l_adr_value_type_code         VARCHAR2(30);
27405 l_adr_value_combination_id    NUMBER;
27406 l_adr_value_segment_code      VARCHAR2(30);
27407 
27408 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27409 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27410 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27411 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27412 
27413 -- 4262811 Variables ------------------------------------------------------------------------------------------
27414 l_entered_amt_idx             NUMBER;
27415 l_accted_amt_idx              NUMBER;
27416 l_acc_rev_flag                VARCHAR2(1);
27417 l_accrual_line_num            NUMBER;
27418 l_tmp_amt                     NUMBER;
27419 l_acc_rev_natural_side_code   VARCHAR2(1);
27420 
27421 l_num_entries                 NUMBER;
27422 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27423 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27424 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27425 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27426 l_recog_line_1                NUMBER;
27427 l_recog_line_2                NUMBER;
27428 
27429 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27430 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27431 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27432 
27433 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27434 
27435 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27436 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27437 
27438 ---------------------------------------------------------------------------------------------------------------
27439 
27440 
27441 --
27442 -- bulk performance
27443 --
27444 l_balance_type_code           VARCHAR2(1);
27445 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27446 l_log_module                  VARCHAR2(240);
27447 
27448 --
27449 -- Upgrade strategy
27450 --
27451 l_actual_upg_option           VARCHAR2(1);
27452 l_enc_upg_option           VARCHAR2(1);
27453 
27454 --
27455 BEGIN
27456 --
27457 IF g_log_enabled THEN
27458       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
27459 END IF;
27460 --
27461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27462 
27463       trace
27464          (p_msg      => 'BEGIN of AcctLineType_49'
27465          ,p_level    => C_LEVEL_PROCEDURE
27466          ,p_module   => l_log_module);
27467 
27468 END IF;
27469 --
27470 l_component_type             := 'AMB_JLT';
27471 l_component_code             := 'AP_PP_NON_REC_TAX_PO_ENC';
27472 l_component_type_code        := 'S';
27476 l_event_class_code           := 'PREPAYMENTS';
27473 l_component_appl_id          :=  200;
27474 l_amb_context_code           := 'DEFAULT';
27475 l_entity_code                := 'AP_INVOICES';
27477 l_event_type_code            := 'PREPAYMENTS_ALL';
27478 l_line_definition_owner_code := 'S';
27479 l_line_definition_code       := 'ENC_PREPAY_ALL';
27480 --
27481 l_balance_type_code          := 'E';
27482 l_segment                     := NULL;
27483 l_ccid                        := NULL;
27484 l_adr_transaction_coa_id      := NULL;
27485 l_adr_accounting_coa_id       := NULL;
27486 l_adr_flexfield_segment_code  := NULL;
27487 l_adr_flex_value_set_id       := NULL;
27488 l_adr_value_type_code         := NULL;
27489 l_adr_value_combination_id    := NULL;
27490 l_adr_value_segment_code      := NULL;
27491 
27492 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
27493 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
27494 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
27495 l_budgetary_control_flag     := 'Y';
27496 
27497 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27498 l_bflow_applied_to_amt       := NULL; -- 5132302
27499 l_entered_amt_idx            := NULL;          -- 4262811
27500 l_accted_amt_idx             := NULL;          -- 4262811
27501 l_acc_rev_flag               := NULL;          -- 4262811
27502 l_accrual_line_num           := NULL;          -- 4262811
27503 l_tmp_amt                    := NULL;          -- 4262811
27504 --
27505  
27506 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27507     l_balance_type_code <> 'B' THEN
27508 IF p_source_58 IS NOT NULL AND 
27509 NVL(p_source_15,'
27510 ') =  'NONREC_TAX' AND 
27511 NVL(p_source_59,'
27512 ') <>  'Y' AND 
27513 NVL(p_source_18,'
27514 ') <>  'Y'
27515  THEN 
27516 
27517    --
27518    XLA_AE_LINES_PKG.SetNewLine;
27519 
27520    p_balance_type_code          := l_balance_type_code;
27521    -- set the flag so later we will know whether the gain loss line needs to be created
27522    
27523    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27524      p_actual_flag :='A';
27525    END IF;
27526 
27527    --
27528    -- bulk performance
27529    --
27530    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27531                                       p_header_num   => 0); -- 4262811
27532    --
27533    -- set accounting line options
27534    --
27535    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27536            p_natural_side_code          => 'C'
27537          , p_gain_or_loss_flag          => 'N'
27538          , p_gl_transfer_mode_code      => 'S'
27539          , p_acct_entry_type_code       => 'E'
27540          , p_switch_side_flag           => 'Y'
27541          , p_merge_duplicate_code       => 'N'
27542          );
27543    --
27544    l_acc_rev_natural_side_code := 'D';  -- 4262811
27545    -- 
27546    --
27547    -- set accounting line type info
27548    --
27549    xla_ae_lines_pkg.SetAcctLineType
27550       (p_component_type             => l_component_type
27551       ,p_event_type_code            => l_event_type_code
27552       ,p_line_definition_owner_code => l_line_definition_owner_code
27553       ,p_line_definition_code       => l_line_definition_code
27554       ,p_accounting_line_code       => l_component_code
27555       ,p_accounting_line_type_code  => l_component_type_code
27556       ,p_accounting_line_appl_id    => l_component_appl_id
27557       ,p_amb_context_code           => l_amb_context_code
27558       ,p_entity_code                => l_entity_code
27559       ,p_event_class_code           => l_event_class_code);
27560    --
27561    -- set accounting class
27562    --
27563    xla_ae_lines_pkg.SetAcctClass(
27564            p_accounting_class_code  => 'PURCHASE_ORDER'
27565          , p_ae_header_id           => l_ae_header_id
27566          );
27567 
27568    --
27569    -- set rounding class
27570    --
27571    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27572                       'PURCHASE_ORDER';
27573 
27574    --
27575    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27576    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27577    --
27578    -- bulk performance
27579    --
27580    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27581 
27582    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27583       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27584 
27585    -- 4955764
27586    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27587       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27588 
27589    -- 4458381 Public Sector Enh
27590    
27591    --
27592    -- set accounting attributes for the line type
27593    --
27594    l_entered_amt_idx := 23;
27595    l_accted_amt_idx  := 25;
27596    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
27597    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27598    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
27599    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
27603  , p_source_type_code      => 'Y'
27600    l_rec_acct_attrs.array_num_value(2)  := 
27601 xla_ae_sources_pkg.GetSystemSourceNum(
27602    p_source_code           => 'XLA_EVENT_APPL_ID'
27604  , p_source_application_id =>  602
27605 );
27606    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
27607    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
27608    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
27609    l_rec_acct_attrs.array_char_value(4)  := 
27610 xla_ae_sources_pkg.GetSystemSourceChar(
27611    p_source_code           => 'XLA_ENTITY_CODE'
27612  , p_source_type_code      => 'Y'
27613  , p_source_application_id =>  602
27614 );
27615    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
27616    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
27617    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
27618    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
27619    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
27620    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
27621    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27622    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
27623    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
27624    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
27625    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
27626    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
27627    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27628    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
27629    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
27630    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
27631    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
27632    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
27633    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
27634    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
27635    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
27636    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
27637    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
27638    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
27639    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
27640    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
27641    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
27642    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
27643    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
27644    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
27645    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
27646    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
27647    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
27648    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
27649    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
27650    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
27651    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
27652    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
27653    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
27654    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
27655    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
27656    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
27657    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
27658    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
27659    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
27660    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
27661    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
27662    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
27663    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
27664    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
27665    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
27666    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
27667    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
27668    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
27669    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
27670    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
27671    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
27672    l_rec_acct_attrs.array_num_value(33)  := p_source_51;
27673    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
27674    l_rec_acct_attrs.array_num_value(34)  := p_source_52;
27675    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
27676    l_rec_acct_attrs.array_num_value(35)  := p_source_53;
27677    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
27678    l_rec_acct_attrs.array_num_value(36)  := p_source_54;
27679    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
27680    l_rec_acct_attrs.array_num_value(37)  := p_source_55;
27681    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
27682    l_rec_acct_attrs.array_num_value(38)  := p_source_56;
27683 
27684    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27685    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27686 
27687    ---------------------------------------------------------------------------------------------------------------
27691 
27688    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27689    ---------------------------------------------------------------------------------------------------------------
27690    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27692    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27693    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27694 
27695    IF xla_accounting_cache_pkg.GetValueChar
27696          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27697          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27698    AND l_bflow_method_code = 'PRIOR_ENTRY'
27699 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27700    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27701          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27702        )
27703    THEN
27704          xla_ae_lines_pkg.BflowUpgEntry
27705            (p_business_method_code    => l_bflow_method_code
27706            ,p_business_class_code     => l_bflow_class_code
27707            ,p_balance_type            => l_balance_type_code);
27708    ELSE
27709       NULL;
27710 XLA_AE_LINES_PKG.business_flow_validation(
27711                                 p_business_method_code     => l_bflow_method_code
27712                                ,p_business_class_code      => l_bflow_class_code
27713                                ,p_inherit_description_flag => l_inherit_desc_flag);
27714    END IF;
27715 
27716    --
27717    -- call analytical criteria
27718    --
27719    -- Inherited Analytical Criteria for business flow method of Prior Entry.
27720    --
27721    -- call description
27722    --
27723    -- No description or it is inherited.
27724    --
27725    -- call ADRs
27726    -- Bug 4922099
27727    --
27728    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27729         (NVL(l_actual_upg_option, 'N') = 'O') OR
27730         (NVL(l_enc_upg_option, 'N') = 'O')
27731       )
27732    THEN
27733    NULL;
27734    --
27735    --
27736    
27737    --
27738    --
27739    END IF;
27740    --
27741    -- Bug 4922099
27742    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27743           (NVL(l_enc_upg_option, 'N') = 'O')
27744         ) AND
27745         (l_bflow_method_code = 'PRIOR_ENTRY')
27746       )
27747    THEN
27748       IF
27749       --
27750       1 = 1
27751       --
27752       THEN
27753       xla_accounting_err_pkg.build_message
27754                                     (p_appli_s_name            => 'XLA'
27755                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27756                                     ,p_token_1                 => 'LINE_NUMBER'
27757                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27758                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27759                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27760                                                                              l_component_type
27761                                                                             ,l_component_code
27762                                                                             ,l_component_type_code
27763                                                                             ,l_component_appl_id
27764                                                                             ,l_amb_context_code
27765                                                                             ,l_entity_code
27766                                                                             ,l_event_class_code
27767                                                                            )
27768                                     ,p_token_3                 => 'OWNER'
27769                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27770                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27771                                                                           ,p_lookup_code    => l_component_type_code
27772                                                                          )
27773                                     ,p_token_4                 => 'PRODUCT_NAME'
27774                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27775                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27776                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27777                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27778                                     ,p_ae_header_id            =>  NULL
27779                                        );
27780 
27781         IF (C_LEVEL_ERROR>= g_log_level) THEN
27782                  trace
27783                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27784                       ,p_level    => C_LEVEL_ERROR
27785                       ,p_module   => l_log_module);
27786         END IF;
27787       END IF;
27788    END IF;
27789    --
27790    --
27794    -- Prior Entry.  Currently, the following code is always generated.
27791    ------------------------------------------------------------------------------------------------
27792    -- 4219869 Business Flow
27793    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27795    ------------------------------------------------------------------------------------------------
27796    -- No ValidateCurrentLine for business flow method of Prior Entry
27797 
27798    ------------------------------------------------------------------------------------
27799    -- 4219869 Business Flow
27800    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27801    ------------------------------------------------------------------------------------
27802    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27803 
27804    ----------------------------------------------------------------------------------
27805    -- 4219869 Business Flow
27806    -- Update journal entry status -- Need to generate this within IF <condition>
27807    ----------------------------------------------------------------------------------
27808    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27809          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27810          ,p_balance_type_code => l_balance_type_code
27811          );
27812 
27813    -------------------------------------------------------------------------------------------
27814    -- 4262811 - Generate the Accrual Reversal lines
27815    -------------------------------------------------------------------------------------------
27816    BEGIN
27817       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27818                               (g_array_event(p_event_id).array_value_num('header_index'));
27819       IF l_acc_rev_flag IS NULL THEN
27820          l_acc_rev_flag := 'N';
27821       END IF;
27822    EXCEPTION
27823       WHEN OTHERS THEN
27824          l_acc_rev_flag := 'N';
27825    END;
27826    --
27827    IF (l_acc_rev_flag = 'Y') THEN
27828 
27829        -- 4645092  ------------------------------------------------------------------------------
27830        -- To allow MPA report to determine if it should generate report process
27831        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27832        ------------------------------------------------------------------------------------------
27833 
27834        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27835        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27836    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27837    -- call ADRs
27838    -- Bug 4922099
27839    --
27840    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27841         (NVL(l_actual_upg_option, 'N') = 'O') OR
27842         (NVL(l_enc_upg_option, 'N') = 'O')
27843       )
27844    THEN
27845    NULL;
27846    --
27847    --
27848    
27849    --
27850    --
27851    END IF;
27852 
27853        --
27854        -- Update the line information that should be overwritten
27855        --
27856        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27857                                          p_header_num   => 1);
27858        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27859 
27860        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27861 
27862        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27863           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27864        END IF;
27865 
27866       --
27867       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27868       --
27869       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27870           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27871       ELSE
27872           ---------------------------------------------------------------------------------------------------
27873           -- 4262811a Switch Sign
27874           ---------------------------------------------------------------------------------------------------
27875           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27876           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27877                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27878           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27879                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27880           -- 5132302
27881           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27882                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27883 
27884       END IF;
27885 
27886       -- 4955764
27887       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27888       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27889 
27890 
27891       XLA_AE_LINES_PKG.ValidateCurrentLine;
27892       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27893 
27894       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27898    END IF;
27895                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27896                ,p_balance_type_code => l_balance_type_code);
27897 
27899 
27900    -----------------------------------------------------------------------------------------
27901    -- 4262811 Multiperiod Accounting
27902    -----------------------------------------------------------------------------------------
27903      -- No MPA option is assigned.
27904 
27905 
27906 END IF;
27907 END IF;
27908 --
27909 
27910 --
27911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27912    trace
27913       (p_msg      => 'END of AcctLineType_49'
27914       ,p_level    => C_LEVEL_PROCEDURE
27915       ,p_module   => l_log_module);
27916 END IF;
27917 --
27918 EXCEPTION
27919   WHEN xla_exceptions_pkg.application_exception THEN
27920       RAISE;
27921   WHEN OTHERS THEN
27922        xla_exceptions_pkg.raise_message
27923            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_49');
27924 END AcctLineType_49;
27925 --
27926 
27927 ---------------------------------------
27928 --
27929 -- PRIVATE FUNCTION
27930 --         AcctLineType_50
27931 --
27932 ---------------------------------------
27933 PROCEDURE AcctLineType_50 (
27934   p_application_id        IN NUMBER
27935  ,p_event_id              IN NUMBER
27936  ,p_calculate_acctd_flag  IN VARCHAR2
27937  ,p_calculate_g_l_flag    IN VARCHAR2
27938  ,p_actual_flag           IN OUT VARCHAR2
27939  ,p_balance_type_code     OUT VARCHAR2
27940  ,p_gain_or_loss_ref      OUT VARCHAR2
27941  
27942 --Purchasing Encumbrance Option
27943  , p_source_17            IN VARCHAR2
27944  , p_source_17_meaning    IN VARCHAR2
27945 --Accounting Reversal Indicator
27946  , p_source_19            IN VARCHAR2
27947 --Distribution Link Type
27948  , p_source_21            IN VARCHAR2
27949 --Invoice Identifier
27950  , p_source_24            IN NUMBER
27951 --Business Flow Accounts Payable Application Identifier
27952  , p_source_25            IN NUMBER
27953 --Payables Encumbrance Upgrade Credit Account
27954  , p_source_31            IN NUMBER
27955 --Payables Encumbrance Upgrade Credit Amount
27956  , p_source_32            IN NUMBER
27957 --Invoice Currency Code
27958  , p_source_33            IN VARCHAR2
27959 --Payables Encumbrance Upgrade Credit Base Amount
27960  , p_source_34            IN NUMBER
27961 --Payables Encumbrance Upgrade Debit Account
27962  , p_source_35            IN NUMBER
27963 --Payables Encumbrance Upgrade Debit Amount
27964  , p_source_36            IN NUMBER
27965 --Payables Encumbrance Upgrade Debit Base Amount
27966  , p_source_37            IN NUMBER
27967 --Payables Encumbrance Upgrade Option
27968  , p_source_38            IN VARCHAR2
27969 --Deferred Accounting End Date
27970  , p_source_43            IN DATE
27971 --Deferred Accounting Option
27972  , p_source_44            IN VARCHAR2
27973 --Deferred Accounting Start Date
27974  , p_source_45            IN DATE
27975 --Override Accounted Amount Indicator
27976  , p_source_46            IN VARCHAR2
27977  , p_source_46_meaning    IN VARCHAR2
27978 --Third Party Type
27979  , p_source_49            IN VARCHAR2
27980 --Invoice Distribution Tax Line Identifier
27981  , p_source_52            IN NUMBER
27982 --Invoice Distribution Tax Distribution Identifier from Tax
27983  , p_source_53            IN NUMBER
27984 --Invoice Distribution Summary Tax Line Identifier
27985  , p_source_54            IN NUMBER
27986 --Payables Upgrade Credit Encumbrance Type Identifier
27987  , p_source_55            IN NUMBER
27988 --Payables Upgrade Debit Encumbrance Type Identifier
27989  , p_source_56            IN NUMBER
27990 --Prepayment Distribution Type
27991  , p_source_69            IN VARCHAR2
27992 --Prepayment Application Distribution Identifier
27993  , p_source_71            IN NUMBER
27994 --Business Flow Prepayment Invoice Distribution Type
27995  , p_source_72            IN VARCHAR2
27996 --Business Flow Prepayment Invoice Entity Code
27997  , p_source_73            IN VARCHAR2
27998 --Business Flow Prepayment Invoice Distribution Identifier
27999  , p_source_74            IN NUMBER
28000 --Business Flow Prepayment Invoice Identifier
28001  , p_source_75            IN NUMBER
28002 --Upgrade Encumbrance Credit Account Class
28003  , p_source_76            IN VARCHAR2
28004 --Upgrade Encumbrance Debit Account Class
28005  , p_source_77            IN VARCHAR2
28006 --Prepayment Distribution Amount
28007  , p_source_78            IN NUMBER
28008 --Prepayment Distribution (Invoice Rate) Ledger Amount
28009  , p_source_79            IN NUMBER
28010 --Identifier of the Prepayment Application Reversed
28011  , p_source_80            IN NUMBER
28012 )
28013 IS
28014 
28015 l_component_type              VARCHAR2(80);
28016 l_component_code              VARCHAR2(30);
28017 l_component_type_code         VARCHAR2(1);
28018 l_component_appl_id           INTEGER;
28019 l_amb_context_code            VARCHAR2(30);
28020 l_entity_code                 VARCHAR2(30);
28021 l_event_class_code            VARCHAR2(30);
28022 l_ae_header_id                NUMBER;
28023 l_event_type_code             VARCHAR2(30);
28024 l_line_definition_code        VARCHAR2(30);
28025 l_line_definition_owner_code  VARCHAR2(1);
28026 --
28027 -- adr variables
28028 l_segment                     VARCHAR2(30);
28029 l_ccid                        NUMBER;
28033 l_adr_flex_value_set_id       NUMBER;
28030 l_adr_transaction_coa_id      NUMBER;
28031 l_adr_accounting_coa_id       NUMBER;
28032 l_adr_flexfield_segment_code  VARCHAR2(30);
28034 l_adr_value_type_code         VARCHAR2(30);
28035 l_adr_value_combination_id    NUMBER;
28036 l_adr_value_segment_code      VARCHAR2(30);
28037 
28038 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28039 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28040 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28041 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28042 
28043 -- 4262811 Variables ------------------------------------------------------------------------------------------
28044 l_entered_amt_idx             NUMBER;
28045 l_accted_amt_idx              NUMBER;
28046 l_acc_rev_flag                VARCHAR2(1);
28047 l_accrual_line_num            NUMBER;
28048 l_tmp_amt                     NUMBER;
28049 l_acc_rev_natural_side_code   VARCHAR2(1);
28050 
28051 l_num_entries                 NUMBER;
28052 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28053 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28054 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28055 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28056 l_recog_line_1                NUMBER;
28057 l_recog_line_2                NUMBER;
28058 
28059 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28060 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28061 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28062 
28063 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28064 
28065 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28066 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28067 
28068 ---------------------------------------------------------------------------------------------------------------
28069 
28070 
28071 --
28072 -- bulk performance
28073 --
28074 l_balance_type_code           VARCHAR2(1);
28075 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28076 l_log_module                  VARCHAR2(240);
28077 
28078 --
28079 -- Upgrade strategy
28080 --
28081 l_actual_upg_option           VARCHAR2(1);
28082 l_enc_upg_option           VARCHAR2(1);
28083 
28084 --
28085 BEGIN
28086 --
28087 IF g_log_enabled THEN
28088       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
28089 END IF;
28090 --
28091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28092 
28093       trace
28094          (p_msg      => 'BEGIN of AcctLineType_50'
28095          ,p_level    => C_LEVEL_PROCEDURE
28096          ,p_module   => l_log_module);
28097 
28098 END IF;
28099 --
28100 l_component_type             := 'AMB_JLT';
28101 l_component_code             := 'AP_PREPAID_EXP_PREPAY_APP_E_CR';
28102 l_component_type_code        := 'S';
28103 l_component_appl_id          :=  200;
28104 l_amb_context_code           := 'DEFAULT';
28105 l_entity_code                := 'AP_INVOICES';
28106 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
28107 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
28108 l_line_definition_owner_code := 'S';
28109 l_line_definition_code       := 'ENC_PREPAY_APPL_ALL';
28110 --
28111 l_balance_type_code          := 'E';
28112 l_segment                     := NULL;
28113 l_ccid                        := NULL;
28114 l_adr_transaction_coa_id      := NULL;
28115 l_adr_accounting_coa_id       := NULL;
28116 l_adr_flexfield_segment_code  := NULL;
28117 l_adr_flex_value_set_id       := NULL;
28118 l_adr_value_type_code         := NULL;
28119 l_adr_value_combination_id    := NULL;
28120 l_adr_value_segment_code      := NULL;
28121 
28122 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
28123 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
28124 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
28125 l_budgetary_control_flag     := 'Y';
28126 
28127 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28128 l_bflow_applied_to_amt       := NULL; -- 5132302
28129 l_entered_amt_idx            := NULL;          -- 4262811
28130 l_accted_amt_idx             := NULL;          -- 4262811
28131 l_acc_rev_flag               := NULL;          -- 4262811
28132 l_accrual_line_num           := NULL;          -- 4262811
28133 l_tmp_amt                    := NULL;          -- 4262811
28134 --
28135  
28136 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28137     l_balance_type_code <> 'B' THEN
28138 IF (NVL(p_source_69,'
28139 ') =  'PREPAY APPL' OR 
28140 NVL(p_source_69,'
28141 ') =  'TAX DIFF' OR 
28142 NVL(p_source_69,'
28143 ') =  'FINAL APPLICATION ROUNDING' OR 
28144 NVL(p_source_69,'
28145 ') =  'PREPAY APPL REC TAX' OR 
28146 NVL(p_source_69,'
28147 ') =  'PREPAY APPL NONREC TAX') AND 
28148 NVL(p_source_17,'
28149 ') =  'Y' AND 
28150 NVL(
28151 xla_ae_sources_pkg.GetSystemSourceChar(
28152    p_source_code           => 'XLA_EVENT_TYPE_CODE'
28153  , p_source_type_code      => 'Y'
28154  , p_source_application_id =>  602
28155 ),'
28156 ') <>  'PREPAYMENT UNAPPLIED'
28157  THEN 
28158 
28159    --
28160    XLA_AE_LINES_PKG.SetNewLine;
28161 
28165    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28162    p_balance_type_code          := l_balance_type_code;
28163    -- set the flag so later we will know whether the gain loss line needs to be created
28164    
28166      p_actual_flag :='A';
28167    END IF;
28168 
28169    --
28170    -- bulk performance
28171    --
28172    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28173                                       p_header_num   => 0); -- 4262811
28174    --
28175    -- set accounting line options
28176    --
28177    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28178            p_natural_side_code          => 'D'
28179          , p_gain_or_loss_flag          => 'N'
28180          , p_gl_transfer_mode_code      => 'S'
28181          , p_acct_entry_type_code       => 'E'
28182          , p_switch_side_flag           => 'Y'
28183          , p_merge_duplicate_code       => 'N'
28184          );
28185    --
28186    l_acc_rev_natural_side_code := 'C';  -- 4262811
28187    -- 
28188    --
28189    -- set accounting line type info
28190    --
28191    xla_ae_lines_pkg.SetAcctLineType
28192       (p_component_type             => l_component_type
28193       ,p_event_type_code            => l_event_type_code
28194       ,p_line_definition_owner_code => l_line_definition_owner_code
28195       ,p_line_definition_code       => l_line_definition_code
28196       ,p_accounting_line_code       => l_component_code
28197       ,p_accounting_line_type_code  => l_component_type_code
28198       ,p_accounting_line_appl_id    => l_component_appl_id
28199       ,p_amb_context_code           => l_amb_context_code
28200       ,p_entity_code                => l_entity_code
28201       ,p_event_class_code           => l_event_class_code);
28202    --
28203    -- set accounting class
28204    --
28205    xla_ae_lines_pkg.SetAcctClass(
28206            p_accounting_class_code  => 'PREPAID_EXPENSE'
28207          , p_ae_header_id           => l_ae_header_id
28208          );
28209 
28210    --
28211    -- set rounding class
28212    --
28213    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28214                       'PREPAID_EXPENSE';
28215 
28216    --
28217    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28218    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28219    --
28220    -- bulk performance
28221    --
28222    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28223 
28224    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28225       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28226 
28227    -- 4955764
28228    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28229       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28230 
28231    -- 4458381 Public Sector Enh
28232    
28233    --
28234    -- set accounting attributes for the line type
28235    --
28236    l_entered_amt_idx := 25;
28237    l_accted_amt_idx  := 27;
28238    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
28239    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28240    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
28241    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28242    l_rec_acct_attrs.array_num_value(2)  := 
28243 xla_ae_sources_pkg.GetSystemSourceNum(
28244    p_source_code           => 'XLA_EVENT_APPL_ID'
28245  , p_source_type_code      => 'Y'
28246  , p_source_application_id =>  602
28247 );
28248    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28249    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
28250    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28251    l_rec_acct_attrs.array_char_value(4)  := 
28252 xla_ae_sources_pkg.GetSystemSourceChar(
28253    p_source_code           => 'XLA_ENTITY_CODE'
28254  , p_source_type_code      => 'Y'
28255  , p_source_application_id =>  602
28256 );
28257    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28258    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
28259    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28260    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
28261    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28262    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
28263    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28264    l_rec_acct_attrs.array_char_value(8)  := p_source_72;
28265    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28266    l_rec_acct_attrs.array_char_value(9)  := p_source_73;
28267    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28268    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_74);
28269    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28270    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_75);
28271    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
28272    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
28273    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
28274    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
28278    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
28275    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
28276    l_rec_acct_attrs.array_char_value(14)  := p_source_76;
28277    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
28279    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
28280    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
28281    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
28282    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
28283    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
28284    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
28285    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
28286    l_rec_acct_attrs.array_char_value(19)  := p_source_77;
28287    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
28288    l_rec_acct_attrs.array_num_value(20)  := p_source_35;
28289    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
28290    l_rec_acct_attrs.array_num_value(21)  := p_source_36;
28291    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
28292    l_rec_acct_attrs.array_char_value(22)  := p_source_33;
28293    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
28294    l_rec_acct_attrs.array_num_value(23)  := p_source_37;
28295    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
28296    l_rec_acct_attrs.array_char_value(24)  := p_source_38;
28297    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
28298    l_rec_acct_attrs.array_num_value(25)  := p_source_78;
28299    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
28300    l_rec_acct_attrs.array_char_value(26)  := p_source_33;
28301    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28302    l_rec_acct_attrs.array_num_value(27)  := p_source_79;
28303    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
28304    l_rec_acct_attrs.array_date_value(28)  := p_source_43;
28305    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
28306    l_rec_acct_attrs.array_char_value(29)  := p_source_44;
28307    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
28308    l_rec_acct_attrs.array_date_value(30)  := p_source_45;
28309    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
28310    l_rec_acct_attrs.array_char_value(31)  := p_source_46;
28311    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
28312    l_rec_acct_attrs.array_char_value(32)  := p_source_49;
28313    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
28314    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_80);
28315    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
28316    l_rec_acct_attrs.array_char_value(34)  := p_source_21;
28317    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
28318    l_rec_acct_attrs.array_num_value(35)  := p_source_52;
28319    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
28320    l_rec_acct_attrs.array_num_value(36)  := p_source_53;
28321    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
28322    l_rec_acct_attrs.array_num_value(37)  := p_source_54;
28323    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
28324    l_rec_acct_attrs.array_num_value(38)  := p_source_55;
28325    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
28326    l_rec_acct_attrs.array_num_value(39)  := p_source_56;
28327 
28328    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28329    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28330 
28331    ---------------------------------------------------------------------------------------------------------------
28332    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28333    ---------------------------------------------------------------------------------------------------------------
28334    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28335 
28336    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28337    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28338 
28339    IF xla_accounting_cache_pkg.GetValueChar
28340          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28341          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28342    AND l_bflow_method_code = 'PRIOR_ENTRY'
28343 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28344    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28345          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28346        )
28347    THEN
28348          xla_ae_lines_pkg.BflowUpgEntry
28349            (p_business_method_code    => l_bflow_method_code
28350            ,p_business_class_code     => l_bflow_class_code
28351            ,p_balance_type            => l_balance_type_code);
28352    ELSE
28353       NULL;
28354 XLA_AE_LINES_PKG.business_flow_validation(
28355                                 p_business_method_code     => l_bflow_method_code
28356                                ,p_business_class_code      => l_bflow_class_code
28357                                ,p_inherit_description_flag => l_inherit_desc_flag);
28358    END IF;
28359 
28360    --
28361    -- call analytical criteria
28362    --
28363    -- Inherited Analytical Criteria for business flow method of Prior Entry.
28364    --
28368    --
28365    -- call description
28366    --
28367    -- No description or it is inherited.
28369    -- call ADRs
28370    -- Bug 4922099
28371    --
28372    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28373         (NVL(l_actual_upg_option, 'N') = 'O') OR
28374         (NVL(l_enc_upg_option, 'N') = 'O')
28375       )
28376    THEN
28377    NULL;
28378    --
28379    --
28380    
28381    --
28382    --
28383    END IF;
28384    --
28385    -- Bug 4922099
28386    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28387           (NVL(l_enc_upg_option, 'N') = 'O')
28388         ) AND
28389         (l_bflow_method_code = 'PRIOR_ENTRY')
28390       )
28391    THEN
28392       IF
28393       --
28394       1 = 1
28395       --
28396       THEN
28397       xla_accounting_err_pkg.build_message
28398                                     (p_appli_s_name            => 'XLA'
28399                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28400                                     ,p_token_1                 => 'LINE_NUMBER'
28401                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28402                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28403                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28404                                                                              l_component_type
28405                                                                             ,l_component_code
28406                                                                             ,l_component_type_code
28407                                                                             ,l_component_appl_id
28408                                                                             ,l_amb_context_code
28409                                                                             ,l_entity_code
28410                                                                             ,l_event_class_code
28411                                                                            )
28412                                     ,p_token_3                 => 'OWNER'
28413                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28414                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28415                                                                           ,p_lookup_code    => l_component_type_code
28416                                                                          )
28417                                     ,p_token_4                 => 'PRODUCT_NAME'
28418                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28419                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28420                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28421                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28422                                     ,p_ae_header_id            =>  NULL
28423                                        );
28424 
28425         IF (C_LEVEL_ERROR>= g_log_level) THEN
28426                  trace
28427                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28428                       ,p_level    => C_LEVEL_ERROR
28429                       ,p_module   => l_log_module);
28430         END IF;
28431       END IF;
28432    END IF;
28433    --
28434    --
28435    ------------------------------------------------------------------------------------------------
28436    -- 4219869 Business Flow
28437    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28438    -- Prior Entry.  Currently, the following code is always generated.
28439    ------------------------------------------------------------------------------------------------
28440    -- No ValidateCurrentLine for business flow method of Prior Entry
28441 
28442    ------------------------------------------------------------------------------------
28443    -- 4219869 Business Flow
28444    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28445    ------------------------------------------------------------------------------------
28446    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28447 
28448    ----------------------------------------------------------------------------------
28449    -- 4219869 Business Flow
28450    -- Update journal entry status -- Need to generate this within IF <condition>
28451    ----------------------------------------------------------------------------------
28452    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28453          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28454          ,p_balance_type_code => l_balance_type_code
28455          );
28456 
28457    -------------------------------------------------------------------------------------------
28458    -- 4262811 - Generate the Accrual Reversal lines
28459    -------------------------------------------------------------------------------------------
28460    BEGIN
28461       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28462                               (g_array_event(p_event_id).array_value_num('header_index'));
28463       IF l_acc_rev_flag IS NULL THEN
28467       WHEN OTHERS THEN
28464          l_acc_rev_flag := 'N';
28465       END IF;
28466    EXCEPTION
28468          l_acc_rev_flag := 'N';
28469    END;
28470    --
28471    IF (l_acc_rev_flag = 'Y') THEN
28472 
28473        -- 4645092  ------------------------------------------------------------------------------
28474        -- To allow MPA report to determine if it should generate report process
28475        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28476        ------------------------------------------------------------------------------------------
28477 
28478        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28479        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28480    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28481    -- call ADRs
28482    -- Bug 4922099
28483    --
28484    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28485         (NVL(l_actual_upg_option, 'N') = 'O') OR
28486         (NVL(l_enc_upg_option, 'N') = 'O')
28487       )
28488    THEN
28489    NULL;
28490    --
28491    --
28492    
28493    --
28494    --
28495    END IF;
28496 
28497        --
28498        -- Update the line information that should be overwritten
28499        --
28500        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28501                                          p_header_num   => 1);
28502        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28503 
28504        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28505 
28506        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28507           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28508        END IF;
28509 
28510       --
28511       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28512       --
28513       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28514           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28515       ELSE
28516           ---------------------------------------------------------------------------------------------------
28517           -- 4262811a Switch Sign
28518           ---------------------------------------------------------------------------------------------------
28519           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28520           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28521                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28522           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28523                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28524           -- 5132302
28525           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28526                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28527 
28528       END IF;
28529 
28530       -- 4955764
28531       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28532       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28533 
28534 
28535       XLA_AE_LINES_PKG.ValidateCurrentLine;
28536       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28537 
28538       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28539                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28540                ,p_balance_type_code => l_balance_type_code);
28541 
28542    END IF;
28543 
28544    -----------------------------------------------------------------------------------------
28545    -- 4262811 Multiperiod Accounting
28546    -----------------------------------------------------------------------------------------
28547      -- No MPA option is assigned.
28548 
28549 
28550 END IF;
28551 END IF;
28552 --
28553 
28554 --
28555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28556    trace
28557       (p_msg      => 'END of AcctLineType_50'
28558       ,p_level    => C_LEVEL_PROCEDURE
28559       ,p_module   => l_log_module);
28560 END IF;
28561 --
28562 EXCEPTION
28563   WHEN xla_exceptions_pkg.application_exception THEN
28564       RAISE;
28565   WHEN OTHERS THEN
28566        xla_exceptions_pkg.raise_message
28567            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_50');
28568 END AcctLineType_50;
28569 --
28570 
28571 ---------------------------------------
28572 --
28573 -- PRIVATE FUNCTION
28574 --         AcctLineType_51
28575 --
28576 ---------------------------------------
28577 PROCEDURE AcctLineType_51 (
28578   p_application_id        IN NUMBER
28579  ,p_event_id              IN NUMBER
28580  ,p_calculate_acctd_flag  IN VARCHAR2
28581  ,p_calculate_g_l_flag    IN VARCHAR2
28582  ,p_actual_flag           IN OUT VARCHAR2
28583  ,p_balance_type_code     OUT VARCHAR2
28584  ,p_gain_or_loss_ref      OUT VARCHAR2
28585  
28586 --Accounting Reversal Indicator
28587  , p_source_19            IN VARCHAR2
28588 --Distribution Link Type
28592 --Payables Encumbrance Upgrade Credit Account
28589  , p_source_21            IN VARCHAR2
28590 --Invoice Identifier
28591  , p_source_24            IN NUMBER
28593  , p_source_31            IN NUMBER
28594 --Payables Encumbrance Upgrade Credit Amount
28595  , p_source_32            IN NUMBER
28596 --Invoice Currency Code
28597  , p_source_33            IN VARCHAR2
28598 --Payables Encumbrance Upgrade Credit Base Amount
28599  , p_source_34            IN NUMBER
28600 --Payables Encumbrance Upgrade Debit Account
28601  , p_source_35            IN NUMBER
28602 --Payables Encumbrance Upgrade Debit Amount
28603  , p_source_36            IN NUMBER
28604 --Payables Encumbrance Upgrade Debit Base Amount
28605  , p_source_37            IN NUMBER
28606 --Payables Encumbrance Upgrade Option
28607  , p_source_38            IN VARCHAR2
28608 --Deferred Accounting End Date
28609  , p_source_43            IN DATE
28610 --Deferred Accounting Option
28611  , p_source_44            IN VARCHAR2
28612 --Deferred Accounting Start Date
28613  , p_source_45            IN DATE
28614 --Override Accounted Amount Indicator
28615  , p_source_46            IN VARCHAR2
28616  , p_source_46_meaning    IN VARCHAR2
28617 --Third Party Type
28618  , p_source_49            IN VARCHAR2
28619 --Invoice Distribution Tax Line Identifier
28620  , p_source_52            IN NUMBER
28621 --Invoice Distribution Tax Distribution Identifier from Tax
28622  , p_source_53            IN NUMBER
28623 --Invoice Distribution Summary Tax Line Identifier
28624  , p_source_54            IN NUMBER
28625 --Payables Upgrade Credit Encumbrance Type Identifier
28626  , p_source_55            IN NUMBER
28627 --Payables Upgrade Debit Encumbrance Type Identifier
28628  , p_source_56            IN NUMBER
28629 --Purchase Order Distribution Identifier
28630  , p_source_58            IN NUMBER
28631 --Business Flow Purchasing Application Identifier
28632  , p_source_60            IN NUMBER
28633 --Business Flow Purchase Order Distribution Type
28634  , p_source_61            IN VARCHAR2
28635 --Business Flow Purchase Order Entity Code
28636  , p_source_62            IN VARCHAR2
28637 --Business Flow Purchasing Document Identifier
28638  , p_source_64            IN NUMBER
28639 --Prepayment Distribution Type
28640  , p_source_69            IN VARCHAR2
28641 --Prepayment Application Distribution Identifier
28642  , p_source_71            IN NUMBER
28643 --Upgrade Encumbrance Credit Account Class
28644  , p_source_76            IN VARCHAR2
28645 --Upgrade Encumbrance Debit Account Class
28646  , p_source_77            IN VARCHAR2
28647 --Prepayment Distribution Amount
28648  , p_source_78            IN NUMBER
28649 --Prepayment Distribution (Invoice Rate) Ledger Amount
28650  , p_source_79            IN NUMBER
28651 --Identifier of the Prepayment Application Reversed
28652  , p_source_80            IN NUMBER
28653 )
28654 IS
28655 
28656 l_component_type              VARCHAR2(80);
28657 l_component_code              VARCHAR2(30);
28658 l_component_type_code         VARCHAR2(1);
28659 l_component_appl_id           INTEGER;
28660 l_amb_context_code            VARCHAR2(30);
28661 l_entity_code                 VARCHAR2(30);
28662 l_event_class_code            VARCHAR2(30);
28663 l_ae_header_id                NUMBER;
28664 l_event_type_code             VARCHAR2(30);
28665 l_line_definition_code        VARCHAR2(30);
28666 l_line_definition_owner_code  VARCHAR2(1);
28667 --
28668 -- adr variables
28669 l_segment                     VARCHAR2(30);
28670 l_ccid                        NUMBER;
28671 l_adr_transaction_coa_id      NUMBER;
28672 l_adr_accounting_coa_id       NUMBER;
28673 l_adr_flexfield_segment_code  VARCHAR2(30);
28674 l_adr_flex_value_set_id       NUMBER;
28675 l_adr_value_type_code         VARCHAR2(30);
28676 l_adr_value_combination_id    NUMBER;
28677 l_adr_value_segment_code      VARCHAR2(30);
28678 
28679 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28680 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28681 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28682 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28683 
28684 -- 4262811 Variables ------------------------------------------------------------------------------------------
28685 l_entered_amt_idx             NUMBER;
28686 l_accted_amt_idx              NUMBER;
28687 l_acc_rev_flag                VARCHAR2(1);
28688 l_accrual_line_num            NUMBER;
28689 l_tmp_amt                     NUMBER;
28690 l_acc_rev_natural_side_code   VARCHAR2(1);
28691 
28692 l_num_entries                 NUMBER;
28693 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28694 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28695 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28696 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28697 l_recog_line_1                NUMBER;
28698 l_recog_line_2                NUMBER;
28699 
28700 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28701 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28702 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28703 
28704 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28705 
28706 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28707 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28708 
28712 --
28709 ---------------------------------------------------------------------------------------------------------------
28710 
28711 
28713 -- bulk performance
28714 --
28715 l_balance_type_code           VARCHAR2(1);
28716 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28717 l_log_module                  VARCHAR2(240);
28718 
28719 --
28720 -- Upgrade strategy
28721 --
28722 l_actual_upg_option           VARCHAR2(1);
28723 l_enc_upg_option           VARCHAR2(1);
28724 
28725 --
28726 BEGIN
28727 --
28728 IF g_log_enabled THEN
28729       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
28730 END IF;
28731 --
28732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28733 
28734       trace
28735          (p_msg      => 'BEGIN of AcctLineType_51'
28736          ,p_level    => C_LEVEL_PROCEDURE
28737          ,p_module   => l_log_module);
28738 
28739 END IF;
28740 --
28741 l_component_type             := 'AMB_JLT';
28742 l_component_code             := 'AP_PREPAY_APPL_PO_ENC';
28743 l_component_type_code        := 'S';
28744 l_component_appl_id          :=  200;
28745 l_amb_context_code           := 'DEFAULT';
28746 l_entity_code                := 'AP_INVOICES';
28747 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
28748 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
28749 l_line_definition_owner_code := 'S';
28750 l_line_definition_code       := 'ENC_PREPAY_APPL_ALL';
28751 --
28752 l_balance_type_code          := 'E';
28753 l_segment                     := NULL;
28754 l_ccid                        := NULL;
28755 l_adr_transaction_coa_id      := NULL;
28756 l_adr_accounting_coa_id       := NULL;
28757 l_adr_flexfield_segment_code  := NULL;
28758 l_adr_flex_value_set_id       := NULL;
28759 l_adr_value_type_code         := NULL;
28760 l_adr_value_combination_id    := NULL;
28761 l_adr_value_segment_code      := NULL;
28762 
28763 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
28764 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
28765 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
28766 l_budgetary_control_flag     := 'Y';
28767 
28768 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28769 l_bflow_applied_to_amt       := NULL; -- 5132302
28770 l_entered_amt_idx            := NULL;          -- 4262811
28771 l_accted_amt_idx             := NULL;          -- 4262811
28772 l_acc_rev_flag               := NULL;          -- 4262811
28773 l_accrual_line_num           := NULL;          -- 4262811
28774 l_tmp_amt                    := NULL;          -- 4262811
28775 --
28776  
28777 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28778     l_balance_type_code <> 'B' THEN
28779 IF p_source_58 IS NOT NULL AND 
28780 NVL(p_source_69,'
28781 ') =  'PREPAY APPL'
28782  THEN 
28783 
28784    --
28785    XLA_AE_LINES_PKG.SetNewLine;
28786 
28787    p_balance_type_code          := l_balance_type_code;
28788    -- set the flag so later we will know whether the gain loss line needs to be created
28789    
28790    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28791      p_actual_flag :='A';
28792    END IF;
28793 
28794    --
28795    -- bulk performance
28796    --
28797    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28798                                       p_header_num   => 0); -- 4262811
28799    --
28800    -- set accounting line options
28801    --
28802    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28803            p_natural_side_code          => 'C'
28804          , p_gain_or_loss_flag          => 'N'
28805          , p_gl_transfer_mode_code      => 'S'
28806          , p_acct_entry_type_code       => 'E'
28807          , p_switch_side_flag           => 'Y'
28808          , p_merge_duplicate_code       => 'N'
28809          );
28810    --
28811    l_acc_rev_natural_side_code := 'D';  -- 4262811
28812    -- 
28813    --
28814    -- set accounting line type info
28815    --
28816    xla_ae_lines_pkg.SetAcctLineType
28817       (p_component_type             => l_component_type
28818       ,p_event_type_code            => l_event_type_code
28819       ,p_line_definition_owner_code => l_line_definition_owner_code
28820       ,p_line_definition_code       => l_line_definition_code
28821       ,p_accounting_line_code       => l_component_code
28822       ,p_accounting_line_type_code  => l_component_type_code
28823       ,p_accounting_line_appl_id    => l_component_appl_id
28824       ,p_amb_context_code           => l_amb_context_code
28825       ,p_entity_code                => l_entity_code
28826       ,p_event_class_code           => l_event_class_code);
28827    --
28828    -- set accounting class
28829    --
28830    xla_ae_lines_pkg.SetAcctClass(
28831            p_accounting_class_code  => 'PURCHASE_ORDER'
28832          , p_ae_header_id           => l_ae_header_id
28833          );
28834 
28835    --
28836    -- set rounding class
28837    --
28838    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28839                       'PURCHASE_ORDER';
28840 
28841    --
28842    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28843    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28847    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28844    --
28845    -- bulk performance
28846    --
28848 
28849    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28850       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28851 
28852    -- 4955764
28853    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28854       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28855 
28856    -- 4458381 Public Sector Enh
28857    
28858    --
28859    -- set accounting attributes for the line type
28860    --
28861    l_entered_amt_idx := 25;
28862    l_accted_amt_idx  := 27;
28863    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
28864    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28865    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
28866    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28867    l_rec_acct_attrs.array_num_value(2)  := 
28868 xla_ae_sources_pkg.GetSystemSourceNum(
28869    p_source_code           => 'XLA_EVENT_APPL_ID'
28870  , p_source_type_code      => 'Y'
28871  , p_source_application_id =>  602
28872 );
28873    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28874    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
28875    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28876    l_rec_acct_attrs.array_char_value(4)  := 
28877 xla_ae_sources_pkg.GetSystemSourceChar(
28878    p_source_code           => 'XLA_ENTITY_CODE'
28879  , p_source_type_code      => 'Y'
28880  , p_source_application_id =>  602
28881 );
28882    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28883    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
28884    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28885    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
28886    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28887    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
28888    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28889    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
28890    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28891    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
28892    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28893    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_58);
28894    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28895    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
28896    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
28897    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
28898    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
28899    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
28900    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
28901    l_rec_acct_attrs.array_char_value(14)  := p_source_76;
28902    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
28903    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
28904    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
28905    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
28906    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
28907    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
28908    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
28909    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
28910    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
28911    l_rec_acct_attrs.array_char_value(19)  := p_source_77;
28912    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
28913    l_rec_acct_attrs.array_num_value(20)  := p_source_35;
28914    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
28915    l_rec_acct_attrs.array_num_value(21)  := p_source_36;
28916    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
28917    l_rec_acct_attrs.array_char_value(22)  := p_source_33;
28918    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
28919    l_rec_acct_attrs.array_num_value(23)  := p_source_37;
28920    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
28921    l_rec_acct_attrs.array_char_value(24)  := p_source_38;
28922    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
28923    l_rec_acct_attrs.array_num_value(25)  := p_source_78;
28924    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
28925    l_rec_acct_attrs.array_char_value(26)  := p_source_33;
28926    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28927    l_rec_acct_attrs.array_num_value(27)  := p_source_79;
28928    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
28929    l_rec_acct_attrs.array_date_value(28)  := p_source_43;
28930    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
28931    l_rec_acct_attrs.array_char_value(29)  := p_source_44;
28932    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
28933    l_rec_acct_attrs.array_date_value(30)  := p_source_45;
28934    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
28935    l_rec_acct_attrs.array_char_value(31)  := p_source_46;
28936    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
28937    l_rec_acct_attrs.array_char_value(32)  := p_source_49;
28938    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
28942    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
28939    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_80);
28940    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
28941    l_rec_acct_attrs.array_char_value(34)  := p_source_21;
28943    l_rec_acct_attrs.array_num_value(35)  := p_source_52;
28944    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
28945    l_rec_acct_attrs.array_num_value(36)  := p_source_53;
28946    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
28947    l_rec_acct_attrs.array_num_value(37)  := p_source_54;
28948    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
28949    l_rec_acct_attrs.array_num_value(38)  := p_source_55;
28950    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
28951    l_rec_acct_attrs.array_num_value(39)  := p_source_56;
28952 
28953    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28954    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28955 
28956    ---------------------------------------------------------------------------------------------------------------
28957    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28958    ---------------------------------------------------------------------------------------------------------------
28959    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28960 
28961    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28962    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28963 
28964    IF xla_accounting_cache_pkg.GetValueChar
28965          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28966          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28967    AND l_bflow_method_code = 'PRIOR_ENTRY'
28968 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28969    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28970          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28971        )
28972    THEN
28973          xla_ae_lines_pkg.BflowUpgEntry
28974            (p_business_method_code    => l_bflow_method_code
28975            ,p_business_class_code     => l_bflow_class_code
28976            ,p_balance_type            => l_balance_type_code);
28977    ELSE
28978       NULL;
28979 XLA_AE_LINES_PKG.business_flow_validation(
28980                                 p_business_method_code     => l_bflow_method_code
28981                                ,p_business_class_code      => l_bflow_class_code
28982                                ,p_inherit_description_flag => l_inherit_desc_flag);
28983    END IF;
28984 
28985    --
28986    -- call analytical criteria
28987    --
28988    -- Inherited Analytical Criteria for business flow method of Prior Entry.
28989    --
28990    -- call description
28991    --
28992    -- No description or it is inherited.
28993    --
28994    -- call ADRs
28995    -- Bug 4922099
28996    --
28997    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28998         (NVL(l_actual_upg_option, 'N') = 'O') OR
28999         (NVL(l_enc_upg_option, 'N') = 'O')
29000       )
29001    THEN
29002    NULL;
29003    --
29004    --
29005    
29006    --
29007    --
29008    END IF;
29009    --
29010    -- Bug 4922099
29011    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29012           (NVL(l_enc_upg_option, 'N') = 'O')
29013         ) AND
29014         (l_bflow_method_code = 'PRIOR_ENTRY')
29015       )
29016    THEN
29017       IF
29018       --
29019       1 = 1
29020       --
29021       THEN
29022       xla_accounting_err_pkg.build_message
29023                                     (p_appli_s_name            => 'XLA'
29024                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29025                                     ,p_token_1                 => 'LINE_NUMBER'
29026                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29027                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29028                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29029                                                                              l_component_type
29030                                                                             ,l_component_code
29031                                                                             ,l_component_type_code
29032                                                                             ,l_component_appl_id
29033                                                                             ,l_amb_context_code
29034                                                                             ,l_entity_code
29035                                                                             ,l_event_class_code
29036                                                                            )
29037                                     ,p_token_3                 => 'OWNER'
29038                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29039                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29040                                                                           ,p_lookup_code    => l_component_type_code
29044                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29041                                                                          )
29042                                     ,p_token_4                 => 'PRODUCT_NAME'
29043                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29045                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29046                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29047                                     ,p_ae_header_id            =>  NULL
29048                                        );
29049 
29050         IF (C_LEVEL_ERROR>= g_log_level) THEN
29051                  trace
29052                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29053                       ,p_level    => C_LEVEL_ERROR
29054                       ,p_module   => l_log_module);
29055         END IF;
29056       END IF;
29057    END IF;
29058    --
29059    --
29060    ------------------------------------------------------------------------------------------------
29061    -- 4219869 Business Flow
29062    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29063    -- Prior Entry.  Currently, the following code is always generated.
29064    ------------------------------------------------------------------------------------------------
29065    -- No ValidateCurrentLine for business flow method of Prior Entry
29066 
29067    ------------------------------------------------------------------------------------
29068    -- 4219869 Business Flow
29069    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29070    ------------------------------------------------------------------------------------
29071    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29072 
29073    ----------------------------------------------------------------------------------
29074    -- 4219869 Business Flow
29075    -- Update journal entry status -- Need to generate this within IF <condition>
29076    ----------------------------------------------------------------------------------
29077    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29078          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29079          ,p_balance_type_code => l_balance_type_code
29080          );
29081 
29082    -------------------------------------------------------------------------------------------
29083    -- 4262811 - Generate the Accrual Reversal lines
29084    -------------------------------------------------------------------------------------------
29085    BEGIN
29086       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29087                               (g_array_event(p_event_id).array_value_num('header_index'));
29088       IF l_acc_rev_flag IS NULL THEN
29089          l_acc_rev_flag := 'N';
29090       END IF;
29091    EXCEPTION
29092       WHEN OTHERS THEN
29093          l_acc_rev_flag := 'N';
29094    END;
29095    --
29096    IF (l_acc_rev_flag = 'Y') THEN
29097 
29098        -- 4645092  ------------------------------------------------------------------------------
29099        -- To allow MPA report to determine if it should generate report process
29100        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29101        ------------------------------------------------------------------------------------------
29102 
29103        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29104        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29105    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29106    -- call ADRs
29107    -- Bug 4922099
29108    --
29109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29110         (NVL(l_actual_upg_option, 'N') = 'O') OR
29111         (NVL(l_enc_upg_option, 'N') = 'O')
29112       )
29113    THEN
29114    NULL;
29115    --
29116    --
29117    
29118    --
29119    --
29120    END IF;
29121 
29122        --
29123        -- Update the line information that should be overwritten
29124        --
29125        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29126                                          p_header_num   => 1);
29127        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29128 
29129        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29130 
29131        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29132           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29133        END IF;
29134 
29135       --
29136       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29137       --
29138       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29139           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29140       ELSE
29141           ---------------------------------------------------------------------------------------------------
29142           -- 4262811a Switch Sign
29143           ---------------------------------------------------------------------------------------------------
29144           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29148                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29145           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29146                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29147           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29149           -- 5132302
29150           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29151                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29152 
29153       END IF;
29154 
29155       -- 4955764
29156       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29157       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29158 
29159 
29160       XLA_AE_LINES_PKG.ValidateCurrentLine;
29161       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29162 
29163       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29164                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29165                ,p_balance_type_code => l_balance_type_code);
29166 
29167    END IF;
29168 
29169    -----------------------------------------------------------------------------------------
29170    -- 4262811 Multiperiod Accounting
29171    -----------------------------------------------------------------------------------------
29172      -- No MPA option is assigned.
29173 
29174 
29175 END IF;
29176 END IF;
29177 --
29178 
29179 --
29180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29181    trace
29182       (p_msg      => 'END of AcctLineType_51'
29183       ,p_level    => C_LEVEL_PROCEDURE
29184       ,p_module   => l_log_module);
29185 END IF;
29186 --
29187 EXCEPTION
29188   WHEN xla_exceptions_pkg.application_exception THEN
29189       RAISE;
29190   WHEN OTHERS THEN
29191        xla_exceptions_pkg.raise_message
29192            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_51');
29193 END AcctLineType_51;
29194 --
29195 
29196 ---------------------------------------
29197 --
29198 -- PRIVATE FUNCTION
29199 --         AcctLineType_52
29200 --
29201 ---------------------------------------
29202 PROCEDURE AcctLineType_52 (
29203   p_application_id        IN NUMBER
29204  ,p_event_id              IN NUMBER
29205  ,p_calculate_acctd_flag  IN VARCHAR2
29206  ,p_calculate_g_l_flag    IN VARCHAR2
29207  ,p_actual_flag           IN OUT VARCHAR2
29208  ,p_balance_type_code     OUT VARCHAR2
29209  ,p_gain_or_loss_ref      OUT VARCHAR2
29210  
29211 --Invoice Distribution Type
29212  , p_source_15            IN VARCHAR2
29213  , p_source_15_meaning    IN VARCHAR2
29214 --Accrue on Receipt Option
29215  , p_source_18            IN VARCHAR2
29216  , p_source_18_meaning    IN VARCHAR2
29217 --Accounting Reversal Indicator
29218  , p_source_19            IN VARCHAR2
29219 --Distribution Link Type
29220  , p_source_21            IN VARCHAR2
29221 --Allocation to Main Distribution Identifier
29222  , p_source_23            IN NUMBER
29223 --Invoice Identifier
29224  , p_source_24            IN NUMBER
29225 --Invoice Distribution Identifier
29226  , p_source_30            IN NUMBER
29227 --Payables Encumbrance Upgrade Credit Account
29228  , p_source_31            IN NUMBER
29229 --Payables Encumbrance Upgrade Credit Amount
29230  , p_source_32            IN NUMBER
29231 --Invoice Currency Code
29232  , p_source_33            IN VARCHAR2
29233 --Payables Encumbrance Upgrade Credit Base Amount
29234  , p_source_34            IN NUMBER
29235 --Payables Encumbrance Upgrade Debit Account
29236  , p_source_35            IN NUMBER
29237 --Payables Encumbrance Upgrade Debit Amount
29238  , p_source_36            IN NUMBER
29239 --Payables Encumbrance Upgrade Debit Base Amount
29240  , p_source_37            IN NUMBER
29241 --Payables Encumbrance Upgrade Option
29242  , p_source_38            IN VARCHAR2
29243 --Deferred Accounting End Date
29244  , p_source_43            IN DATE
29245 --Deferred Accounting Option
29246  , p_source_44            IN VARCHAR2
29247 --Deferred Accounting Start Date
29248  , p_source_45            IN DATE
29249 --Override Accounted Amount Indicator
29250  , p_source_46            IN VARCHAR2
29251  , p_source_46_meaning    IN VARCHAR2
29252 --Third Party Type
29253  , p_source_49            IN VARCHAR2
29254 --Parent Reversal Identifier
29255  , p_source_50            IN NUMBER
29256 --Invoice Distribution Statistical Amount
29257  , p_source_51            IN NUMBER
29258 --Invoice Distribution Tax Line Identifier
29259  , p_source_52            IN NUMBER
29260 --Invoice Distribution Tax Distribution Identifier from Tax
29261  , p_source_53            IN NUMBER
29262 --Invoice Distribution Summary Tax Line Identifier
29263  , p_source_54            IN NUMBER
29264 --Payables Upgrade Credit Encumbrance Type Identifier
29265  , p_source_55            IN NUMBER
29266 --Payables Upgrade Debit Encumbrance Type Identifier
29267  , p_source_56            IN NUMBER
29268 --Purchase Order Distribution Identifier
29269  , p_source_58            IN NUMBER
29270 --Business Flow Purchasing Application Identifier
29271  , p_source_60            IN NUMBER
29272 --Business Flow Purchase Order Distribution Type
29276 --Business Flow Purchase Order Distribution Identifier
29273  , p_source_61            IN VARCHAR2
29274 --Business Flow Purchase Order Entity Code
29275  , p_source_62            IN VARCHAR2
29277  , p_source_63            IN NUMBER
29278 --Business Flow Purchasing Document Identifier
29279  , p_source_64            IN NUMBER
29280 --Invoice Distribution Encumbrance Amount
29281  , p_source_65            IN NUMBER
29282 --Invoice Distribution Encumbrance Ledger Amount
29283  , p_source_66            IN NUMBER
29284 )
29285 IS
29286 
29287 l_component_type              VARCHAR2(80);
29288 l_component_code              VARCHAR2(30);
29289 l_component_type_code         VARCHAR2(1);
29290 l_component_appl_id           INTEGER;
29291 l_amb_context_code            VARCHAR2(30);
29292 l_entity_code                 VARCHAR2(30);
29293 l_event_class_code            VARCHAR2(30);
29294 l_ae_header_id                NUMBER;
29295 l_event_type_code             VARCHAR2(30);
29296 l_line_definition_code        VARCHAR2(30);
29297 l_line_definition_owner_code  VARCHAR2(1);
29298 --
29299 -- adr variables
29300 l_segment                     VARCHAR2(30);
29301 l_ccid                        NUMBER;
29302 l_adr_transaction_coa_id      NUMBER;
29303 l_adr_accounting_coa_id       NUMBER;
29304 l_adr_flexfield_segment_code  VARCHAR2(30);
29305 l_adr_flex_value_set_id       NUMBER;
29306 l_adr_value_type_code         VARCHAR2(30);
29307 l_adr_value_combination_id    NUMBER;
29308 l_adr_value_segment_code      VARCHAR2(30);
29309 
29310 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29311 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29312 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29313 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29314 
29315 -- 4262811 Variables ------------------------------------------------------------------------------------------
29316 l_entered_amt_idx             NUMBER;
29317 l_accted_amt_idx              NUMBER;
29318 l_acc_rev_flag                VARCHAR2(1);
29319 l_accrual_line_num            NUMBER;
29320 l_tmp_amt                     NUMBER;
29321 l_acc_rev_natural_side_code   VARCHAR2(1);
29322 
29323 l_num_entries                 NUMBER;
29324 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29325 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29326 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29327 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29328 l_recog_line_1                NUMBER;
29329 l_recog_line_2                NUMBER;
29330 
29331 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29332 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29333 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29334 
29335 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29336 
29337 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29338 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29339 
29340 ---------------------------------------------------------------------------------------------------------------
29341 
29342 
29343 --
29344 -- bulk performance
29345 --
29346 l_balance_type_code           VARCHAR2(1);
29347 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29348 l_log_module                  VARCHAR2(240);
29349 
29350 --
29351 -- Upgrade strategy
29352 --
29353 l_actual_upg_option           VARCHAR2(1);
29354 l_enc_upg_option           VARCHAR2(1);
29355 
29356 --
29357 BEGIN
29358 --
29359 IF g_log_enabled THEN
29360       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
29361 END IF;
29362 --
29363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29364 
29365       trace
29366          (p_msg      => 'BEGIN of AcctLineType_52'
29367          ,p_level    => C_LEVEL_PROCEDURE
29368          ,p_module   => l_log_module);
29369 
29370 END IF;
29371 --
29372 l_component_type             := 'AMB_JLT';
29373 l_component_code             := 'AP_PREPAY_PO_ENC';
29374 l_component_type_code        := 'S';
29375 l_component_appl_id          :=  200;
29376 l_amb_context_code           := 'DEFAULT';
29377 l_entity_code                := 'AP_INVOICES';
29378 l_event_class_code           := 'PREPAYMENTS';
29379 l_event_type_code            := 'PREPAYMENTS_ALL';
29380 l_line_definition_owner_code := 'S';
29381 l_line_definition_code       := 'ENC_PREPAY_ALL';
29382 --
29383 l_balance_type_code          := 'E';
29384 l_segment                     := NULL;
29385 l_ccid                        := NULL;
29386 l_adr_transaction_coa_id      := NULL;
29387 l_adr_accounting_coa_id       := NULL;
29388 l_adr_flexfield_segment_code  := NULL;
29389 l_adr_flex_value_set_id       := NULL;
29390 l_adr_value_type_code         := NULL;
29391 l_adr_value_combination_id    := NULL;
29392 l_adr_value_segment_code      := NULL;
29393 
29394 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
29395 l_bflow_class_code           := 'PO_ENCUMBRANCE';    -- 4219869 Business Flow
29396 l_inherit_desc_flag          := 'Y';   -- 4219869 Business Flow
29397 l_budgetary_control_flag     := 'Y';
29398 
29399 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29400 l_bflow_applied_to_amt       := NULL; -- 5132302
29401 l_entered_amt_idx            := NULL;          -- 4262811
29405 l_tmp_amt                    := NULL;          -- 4262811
29402 l_accted_amt_idx             := NULL;          -- 4262811
29403 l_acc_rev_flag               := NULL;          -- 4262811
29404 l_accrual_line_num           := NULL;          -- 4262811
29406 --
29407  
29408 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29409     l_balance_type_code <> 'B' THEN
29410 IF p_source_58 IS NOT NULL AND 
29411 (NVL(p_source_15,'
29412 ') =  'ACCRUAL' OR 
29413 NVL(p_source_15,'
29414 ') =  'ITEM') AND 
29415 NVL(p_source_18,'
29416 ') <>  'Y'
29417  THEN 
29418 
29419    --
29420    XLA_AE_LINES_PKG.SetNewLine;
29421 
29422    p_balance_type_code          := l_balance_type_code;
29423    -- set the flag so later we will know whether the gain loss line needs to be created
29424    
29425    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29426      p_actual_flag :='A';
29427    END IF;
29428 
29429    --
29430    -- bulk performance
29431    --
29432    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29433                                       p_header_num   => 0); -- 4262811
29434    --
29435    -- set accounting line options
29436    --
29437    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29438            p_natural_side_code          => 'C'
29439          , p_gain_or_loss_flag          => 'N'
29440          , p_gl_transfer_mode_code      => 'S'
29441          , p_acct_entry_type_code       => 'E'
29442          , p_switch_side_flag           => 'Y'
29443          , p_merge_duplicate_code       => 'N'
29444          );
29445    --
29446    l_acc_rev_natural_side_code := 'D';  -- 4262811
29447    -- 
29448    --
29449    -- set accounting line type info
29450    --
29451    xla_ae_lines_pkg.SetAcctLineType
29452       (p_component_type             => l_component_type
29453       ,p_event_type_code            => l_event_type_code
29454       ,p_line_definition_owner_code => l_line_definition_owner_code
29455       ,p_line_definition_code       => l_line_definition_code
29456       ,p_accounting_line_code       => l_component_code
29457       ,p_accounting_line_type_code  => l_component_type_code
29458       ,p_accounting_line_appl_id    => l_component_appl_id
29459       ,p_amb_context_code           => l_amb_context_code
29460       ,p_entity_code                => l_entity_code
29461       ,p_event_class_code           => l_event_class_code);
29462    --
29463    -- set accounting class
29464    --
29465    xla_ae_lines_pkg.SetAcctClass(
29466            p_accounting_class_code  => 'PURCHASE_ORDER'
29467          , p_ae_header_id           => l_ae_header_id
29468          );
29469 
29470    --
29471    -- set rounding class
29472    --
29473    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29474                       'PURCHASE_ORDER';
29475 
29476    --
29477    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29478    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29479    --
29480    -- bulk performance
29481    --
29482    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29483 
29484    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29485       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29486 
29487    -- 4955764
29488    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29489       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29490 
29491    -- 4458381 Public Sector Enh
29492    
29493    --
29494    -- set accounting attributes for the line type
29495    --
29496    l_entered_amt_idx := 23;
29497    l_accted_amt_idx  := 25;
29498    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
29499    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29500    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
29501    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
29502    l_rec_acct_attrs.array_num_value(2)  := 
29503 xla_ae_sources_pkg.GetSystemSourceNum(
29504    p_source_code           => 'XLA_EVENT_APPL_ID'
29505  , p_source_type_code      => 'Y'
29506  , p_source_application_id =>  602
29507 );
29508    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
29509    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
29510    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
29511    l_rec_acct_attrs.array_char_value(4)  := 
29512 xla_ae_sources_pkg.GetSystemSourceChar(
29513    p_source_code           => 'XLA_ENTITY_CODE'
29514  , p_source_type_code      => 'Y'
29515  , p_source_application_id =>  602
29516 );
29517    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
29518    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
29519    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
29520    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
29521    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
29522    l_rec_acct_attrs.array_num_value(7)  := p_source_60;
29523    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29524    l_rec_acct_attrs.array_char_value(8)  := p_source_61;
29528    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_63);
29525    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
29526    l_rec_acct_attrs.array_char_value(9)  := p_source_62;
29527    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
29529    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29530    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_64);
29531    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
29532    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
29533    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
29534    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
29535    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
29536    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
29537    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
29538    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
29539    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
29540    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
29541    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
29542    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
29543    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
29544    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
29545    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
29546    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
29547    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
29548    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
29549    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
29550    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
29551    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
29552    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
29553    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
29554    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
29555    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
29556    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
29557    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
29558    l_rec_acct_attrs.array_num_value(25)  := p_source_66;
29559    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
29560    l_rec_acct_attrs.array_date_value(26)  := p_source_43;
29561    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
29562    l_rec_acct_attrs.array_char_value(27)  := p_source_44;
29563    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
29564    l_rec_acct_attrs.array_date_value(28)  := p_source_45;
29565    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
29566    l_rec_acct_attrs.array_char_value(29)  := p_source_46;
29567    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
29568    l_rec_acct_attrs.array_char_value(30)  := p_source_49;
29569    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
29570    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_50);
29571    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
29572    l_rec_acct_attrs.array_char_value(32)  := p_source_21;
29573    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
29574    l_rec_acct_attrs.array_num_value(33)  := p_source_51;
29575    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
29576    l_rec_acct_attrs.array_num_value(34)  := p_source_52;
29577    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
29578    l_rec_acct_attrs.array_num_value(35)  := p_source_53;
29579    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
29580    l_rec_acct_attrs.array_num_value(36)  := p_source_54;
29581    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
29582    l_rec_acct_attrs.array_num_value(37)  := p_source_55;
29583    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
29584    l_rec_acct_attrs.array_num_value(38)  := p_source_56;
29585 
29586    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29587    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29588 
29589    ---------------------------------------------------------------------------------------------------------------
29590    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29591    ---------------------------------------------------------------------------------------------------------------
29592    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29593 
29594    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29595    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29596 
29597    IF xla_accounting_cache_pkg.GetValueChar
29598          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29599          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29600    AND l_bflow_method_code = 'PRIOR_ENTRY'
29601 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29602    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29603          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29604        )
29605    THEN
29606          xla_ae_lines_pkg.BflowUpgEntry
29607            (p_business_method_code    => l_bflow_method_code
29608            ,p_business_class_code     => l_bflow_class_code
29609            ,p_balance_type            => l_balance_type_code);
29610    ELSE
29614                                ,p_business_class_code      => l_bflow_class_code
29611       NULL;
29612 XLA_AE_LINES_PKG.business_flow_validation(
29613                                 p_business_method_code     => l_bflow_method_code
29615                                ,p_inherit_description_flag => l_inherit_desc_flag);
29616    END IF;
29617 
29618    --
29619    -- call analytical criteria
29620    --
29621    -- Inherited Analytical Criteria for business flow method of Prior Entry.
29622    --
29623    -- call description
29624    --
29625    -- No description or it is inherited.
29626    --
29627    -- call ADRs
29628    -- Bug 4922099
29629    --
29630    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29631         (NVL(l_actual_upg_option, 'N') = 'O') OR
29632         (NVL(l_enc_upg_option, 'N') = 'O')
29633       )
29634    THEN
29635    NULL;
29636    --
29637    --
29638    
29639    --
29640    --
29641    END IF;
29642    --
29643    -- Bug 4922099
29644    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29645           (NVL(l_enc_upg_option, 'N') = 'O')
29646         ) AND
29647         (l_bflow_method_code = 'PRIOR_ENTRY')
29648       )
29649    THEN
29650       IF
29651       --
29652       1 = 1
29653       --
29654       THEN
29655       xla_accounting_err_pkg.build_message
29656                                     (p_appli_s_name            => 'XLA'
29657                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29658                                     ,p_token_1                 => 'LINE_NUMBER'
29659                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29660                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29661                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29662                                                                              l_component_type
29663                                                                             ,l_component_code
29664                                                                             ,l_component_type_code
29665                                                                             ,l_component_appl_id
29666                                                                             ,l_amb_context_code
29667                                                                             ,l_entity_code
29668                                                                             ,l_event_class_code
29669                                                                            )
29670                                     ,p_token_3                 => 'OWNER'
29671                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29672                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29673                                                                           ,p_lookup_code    => l_component_type_code
29674                                                                          )
29675                                     ,p_token_4                 => 'PRODUCT_NAME'
29676                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29677                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29678                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29679                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29680                                     ,p_ae_header_id            =>  NULL
29681                                        );
29682 
29683         IF (C_LEVEL_ERROR>= g_log_level) THEN
29684                  trace
29685                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29686                       ,p_level    => C_LEVEL_ERROR
29687                       ,p_module   => l_log_module);
29688         END IF;
29689       END IF;
29690    END IF;
29691    --
29692    --
29693    ------------------------------------------------------------------------------------------------
29694    -- 4219869 Business Flow
29695    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29696    -- Prior Entry.  Currently, the following code is always generated.
29697    ------------------------------------------------------------------------------------------------
29698    -- No ValidateCurrentLine for business flow method of Prior Entry
29699 
29700    ------------------------------------------------------------------------------------
29701    -- 4219869 Business Flow
29702    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29703    ------------------------------------------------------------------------------------
29704    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29705 
29706    ----------------------------------------------------------------------------------
29707    -- 4219869 Business Flow
29708    -- Update journal entry status -- Need to generate this within IF <condition>
29709    ----------------------------------------------------------------------------------
29710    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29711          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29712          ,p_balance_type_code => l_balance_type_code
29713          );
29714 
29718    BEGIN
29715    -------------------------------------------------------------------------------------------
29716    -- 4262811 - Generate the Accrual Reversal lines
29717    -------------------------------------------------------------------------------------------
29719       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29720                               (g_array_event(p_event_id).array_value_num('header_index'));
29721       IF l_acc_rev_flag IS NULL THEN
29722          l_acc_rev_flag := 'N';
29723       END IF;
29724    EXCEPTION
29725       WHEN OTHERS THEN
29726          l_acc_rev_flag := 'N';
29727    END;
29728    --
29729    IF (l_acc_rev_flag = 'Y') THEN
29730 
29731        -- 4645092  ------------------------------------------------------------------------------
29732        -- To allow MPA report to determine if it should generate report process
29733        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29734        ------------------------------------------------------------------------------------------
29735 
29736        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29737        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29738    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29739    -- call ADRs
29740    -- Bug 4922099
29741    --
29742    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29743         (NVL(l_actual_upg_option, 'N') = 'O') OR
29744         (NVL(l_enc_upg_option, 'N') = 'O')
29745       )
29746    THEN
29747    NULL;
29748    --
29749    --
29750    
29751    --
29752    --
29753    END IF;
29754 
29755        --
29756        -- Update the line information that should be overwritten
29757        --
29758        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29759                                          p_header_num   => 1);
29760        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29761 
29762        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29763 
29764        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29765           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29766        END IF;
29767 
29768       --
29769       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29770       --
29771       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29772           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29773       ELSE
29774           ---------------------------------------------------------------------------------------------------
29775           -- 4262811a Switch Sign
29776           ---------------------------------------------------------------------------------------------------
29777           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29778           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29779                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29780           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29781                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29782           -- 5132302
29783           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29784                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29785 
29786       END IF;
29787 
29788       -- 4955764
29789       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29790       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29791 
29792 
29793       XLA_AE_LINES_PKG.ValidateCurrentLine;
29794       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29795 
29796       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29797                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29798                ,p_balance_type_code => l_balance_type_code);
29799 
29800    END IF;
29801 
29802    -----------------------------------------------------------------------------------------
29803    -- 4262811 Multiperiod Accounting
29804    -----------------------------------------------------------------------------------------
29805      -- No MPA option is assigned.
29806 
29807 
29808 END IF;
29809 END IF;
29810 --
29811 
29812 --
29813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29814    trace
29815       (p_msg      => 'END of AcctLineType_52'
29816       ,p_level    => C_LEVEL_PROCEDURE
29817       ,p_module   => l_log_module);
29818 END IF;
29819 --
29820 EXCEPTION
29821   WHEN xla_exceptions_pkg.application_exception THEN
29822       RAISE;
29823   WHEN OTHERS THEN
29824        xla_exceptions_pkg.raise_message
29825            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_52');
29826 END AcctLineType_52;
29827 --
29828 
29829 ---------------------------------------
29830 --
29831 -- PRIVATE FUNCTION
29832 --         AcctLineType_53
29833 --
29834 ---------------------------------------
29835 PROCEDURE AcctLineType_53 (
29839  ,p_calculate_g_l_flag    IN VARCHAR2
29836   p_application_id        IN NUMBER
29837  ,p_event_id              IN NUMBER
29838  ,p_calculate_acctd_flag  IN VARCHAR2
29840  ,p_actual_flag           IN OUT VARCHAR2
29841  ,p_balance_type_code     OUT VARCHAR2
29842  ,p_gain_or_loss_ref      OUT VARCHAR2
29843  
29844 --Invoice Distribution Description
29845  , p_source_1            IN VARCHAR2
29846 --Invoice Distribution Account
29847  , p_source_11            IN NUMBER
29848 --Invoice Distribution Type
29849  , p_source_15            IN VARCHAR2
29850  , p_source_15_meaning    IN VARCHAR2
29851 --Purchasing Encumbrance Option
29852  , p_source_17            IN VARCHAR2
29853  , p_source_17_meaning    IN VARCHAR2
29854 --Accrue on Receipt Option
29855  , p_source_18            IN VARCHAR2
29856  , p_source_18_meaning    IN VARCHAR2
29857 --Accounting Reversal Indicator
29858  , p_source_19            IN VARCHAR2
29859 --Distribution Link Type
29860  , p_source_21            IN VARCHAR2
29861 --Allocation to Main Distribution Identifier
29862  , p_source_23            IN NUMBER
29863 --Invoice Identifier
29864  , p_source_24            IN NUMBER
29865 --Business Flow Accounts Payable Application Identifier
29866  , p_source_25            IN NUMBER
29867 --Business Flow Invoice Distribution Type
29868  , p_source_26            IN VARCHAR2
29869 --Business Flow Invoice Entity Code
29870  , p_source_27            IN VARCHAR2
29871 --Business Flow Invoice Distribution Identifier
29872  , p_source_28            IN NUMBER
29873 --Business Flow Invoice Identifier
29874  , p_source_29            IN NUMBER
29875 --Invoice Distribution Identifier
29876  , p_source_30            IN NUMBER
29877 --Payables Encumbrance Upgrade Credit Account
29878  , p_source_31            IN NUMBER
29879 --Payables Encumbrance Upgrade Credit Amount
29880  , p_source_32            IN NUMBER
29881 --Invoice Currency Code
29882  , p_source_33            IN VARCHAR2
29883 --Payables Encumbrance Upgrade Credit Base Amount
29884  , p_source_34            IN NUMBER
29885 --Payables Encumbrance Upgrade Debit Account
29886  , p_source_35            IN NUMBER
29887 --Payables Encumbrance Upgrade Debit Amount
29888  , p_source_36            IN NUMBER
29889 --Payables Encumbrance Upgrade Debit Base Amount
29890  , p_source_37            IN NUMBER
29891 --Payables Encumbrance Upgrade Option
29892  , p_source_38            IN VARCHAR2
29893 --Invoice Exchange Date
29894  , p_source_39            IN DATE
29895 --Invoice Exchange Rate
29896  , p_source_40            IN NUMBER
29897 --Invoice Exchange Rate Type
29898  , p_source_41            IN VARCHAR2
29899 --Deferred Accounting End Date
29900  , p_source_43            IN DATE
29901 --Deferred Accounting Option
29902  , p_source_44            IN VARCHAR2
29903 --Deferred Accounting Start Date
29904  , p_source_45            IN DATE
29905 --Override Accounted Amount Indicator
29906  , p_source_46            IN VARCHAR2
29907  , p_source_46_meaning    IN VARCHAR2
29908 --Invoice Supplier Identifier
29909  , p_source_47            IN NUMBER
29910 --Invoice Supplier Site Identifier
29911  , p_source_48            IN NUMBER
29912 --Third Party Type
29913  , p_source_49            IN VARCHAR2
29914 --Parent Reversal Identifier
29915  , p_source_50            IN NUMBER
29916 --Invoice Distribution Statistical Amount
29917  , p_source_51            IN NUMBER
29918 --Invoice Distribution Tax Line Identifier
29919  , p_source_52            IN NUMBER
29920 --Invoice Distribution Tax Distribution Identifier from Tax
29921  , p_source_53            IN NUMBER
29922 --Invoice Distribution Summary Tax Line Identifier
29923  , p_source_54            IN NUMBER
29924 --Payables Upgrade Credit Encumbrance Type Identifier
29925  , p_source_55            IN NUMBER
29926 --Payables Upgrade Debit Encumbrance Type Identifier
29927  , p_source_56            IN NUMBER
29928 --Invoice Distribution Amount
29929  , p_source_57            IN NUMBER
29930 --Quantity Variance Amount
29931  , p_source_81            IN NUMBER
29932 --Quantity Variance Amount in Ledger Currency
29933  , p_source_82            IN NUMBER
29934 )
29935 IS
29936 
29937 l_component_type              VARCHAR2(80);
29938 l_component_code              VARCHAR2(30);
29939 l_component_type_code         VARCHAR2(1);
29940 l_component_appl_id           INTEGER;
29941 l_amb_context_code            VARCHAR2(30);
29942 l_entity_code                 VARCHAR2(30);
29943 l_event_class_code            VARCHAR2(30);
29944 l_ae_header_id                NUMBER;
29945 l_event_type_code             VARCHAR2(30);
29946 l_line_definition_code        VARCHAR2(30);
29947 l_line_definition_owner_code  VARCHAR2(1);
29948 --
29949 -- adr variables
29950 l_segment                     VARCHAR2(30);
29951 l_ccid                        NUMBER;
29952 l_adr_transaction_coa_id      NUMBER;
29953 l_adr_accounting_coa_id       NUMBER;
29954 l_adr_flexfield_segment_code  VARCHAR2(30);
29955 l_adr_flex_value_set_id       NUMBER;
29956 l_adr_value_type_code         VARCHAR2(30);
29957 l_adr_value_combination_id    NUMBER;
29958 l_adr_value_segment_code      VARCHAR2(30);
29959 
29960 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29961 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29962 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29966 l_entered_amt_idx             NUMBER;
29963 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29964 
29965 -- 4262811 Variables ------------------------------------------------------------------------------------------
29967 l_accted_amt_idx              NUMBER;
29968 l_acc_rev_flag                VARCHAR2(1);
29969 l_accrual_line_num            NUMBER;
29970 l_tmp_amt                     NUMBER;
29971 l_acc_rev_natural_side_code   VARCHAR2(1);
29972 
29973 l_num_entries                 NUMBER;
29974 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29975 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29976 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29977 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29978 l_recog_line_1                NUMBER;
29979 l_recog_line_2                NUMBER;
29980 
29981 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29982 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29983 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29984 
29985 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29986 
29987 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29988 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29989 
29990 ---------------------------------------------------------------------------------------------------------------
29991 
29992 
29993 --
29994 -- bulk performance
29995 --
29996 l_balance_type_code           VARCHAR2(1);
29997 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29998 l_log_module                  VARCHAR2(240);
29999 
30000 --
30001 -- Upgrade strategy
30002 --
30003 l_actual_upg_option           VARCHAR2(1);
30004 l_enc_upg_option           VARCHAR2(1);
30005 
30006 --
30007 BEGIN
30008 --
30009 IF g_log_enabled THEN
30010       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
30011 END IF;
30012 --
30013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30014 
30015       trace
30016          (p_msg      => 'BEGIN of AcctLineType_53'
30017          ,p_level    => C_LEVEL_PROCEDURE
30018          ,p_module   => l_log_module);
30019 
30020 END IF;
30021 --
30022 l_component_type             := 'AMB_JLT';
30023 l_component_code             := 'AP_QTY_VARIANCE_INV_ENC_DR';
30024 l_component_type_code        := 'S';
30025 l_component_appl_id          :=  200;
30026 l_amb_context_code           := 'DEFAULT';
30027 l_entity_code                := 'AP_INVOICES';
30028 l_event_class_code           := 'INVOICES';
30029 l_event_type_code            := 'INVOICES_ALL';
30030 l_line_definition_owner_code := 'S';
30031 l_line_definition_code       := 'ENC_INVOICES_ALL';
30032 --
30033 l_balance_type_code          := 'E';
30034 l_segment                     := NULL;
30035 l_ccid                        := NULL;
30036 l_adr_transaction_coa_id      := NULL;
30037 l_adr_accounting_coa_id       := NULL;
30038 l_adr_flexfield_segment_code  := NULL;
30039 l_adr_flex_value_set_id       := NULL;
30040 l_adr_value_type_code         := NULL;
30041 l_adr_value_combination_id    := NULL;
30042 l_adr_value_segment_code      := NULL;
30043 
30044 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30045 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
30046 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30047 l_budgetary_control_flag     := 'Y';
30048 
30049 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30050 l_bflow_applied_to_amt       := NULL; -- 5132302
30051 l_entered_amt_idx            := NULL;          -- 4262811
30052 l_accted_amt_idx             := NULL;          -- 4262811
30053 l_acc_rev_flag               := NULL;          -- 4262811
30054 l_accrual_line_num           := NULL;          -- 4262811
30055 l_tmp_amt                    := NULL;          -- 4262811
30056 --
30057  
30058 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30059     l_balance_type_code <> 'B' THEN
30060 IF NVL(p_source_15,'
30061 ') =  'ITEM' AND 
30062 p_source_81 IS NOT NULL AND 
30063 NVL(p_source_17,'
30064 ') =  'Y' AND 
30065 NVL(p_source_18,'
30066 ') <>  'Y'
30067  THEN 
30068 
30069    --
30070    XLA_AE_LINES_PKG.SetNewLine;
30071 
30072    p_balance_type_code          := l_balance_type_code;
30073    -- set the flag so later we will know whether the gain loss line needs to be created
30074    
30075    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30076      p_actual_flag :='A';
30077    END IF;
30078 
30079    --
30080    -- bulk performance
30081    --
30082    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30083                                       p_header_num   => 0); -- 4262811
30084    --
30085    -- set accounting line options
30086    --
30087    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30088            p_natural_side_code          => 'D'
30089          , p_gain_or_loss_flag          => 'N'
30090          , p_gl_transfer_mode_code      => 'S'
30091          , p_acct_entry_type_code       => 'E'
30092          , p_switch_side_flag           => 'Y'
30093          , p_merge_duplicate_code       => 'N'
30094          );
30095    --
30096    l_acc_rev_natural_side_code := 'C';  -- 4262811
30097    -- 
30098    --
30102       (p_component_type             => l_component_type
30099    -- set accounting line type info
30100    --
30101    xla_ae_lines_pkg.SetAcctLineType
30103       ,p_event_type_code            => l_event_type_code
30104       ,p_line_definition_owner_code => l_line_definition_owner_code
30105       ,p_line_definition_code       => l_line_definition_code
30106       ,p_accounting_line_code       => l_component_code
30107       ,p_accounting_line_type_code  => l_component_type_code
30108       ,p_accounting_line_appl_id    => l_component_appl_id
30109       ,p_amb_context_code           => l_amb_context_code
30110       ,p_entity_code                => l_entity_code
30111       ,p_event_class_code           => l_event_class_code);
30112    --
30113    -- set accounting class
30114    --
30115    xla_ae_lines_pkg.SetAcctClass(
30116            p_accounting_class_code  => 'QV'
30117          , p_ae_header_id           => l_ae_header_id
30118          );
30119 
30120    --
30121    -- set rounding class
30122    --
30123    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30124                       'QV';
30125 
30126    --
30127    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30128    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30129    --
30130    -- bulk performance
30131    --
30132    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30133 
30134    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30135       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30136 
30137    -- 4955764
30138    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30139       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30140 
30141    -- 4458381 Public Sector Enh
30142       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
30143    --
30144    -- set accounting attributes for the line type
30145    --
30146    l_entered_amt_idx := 24;
30147    l_accted_amt_idx  := 29;
30148    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
30149    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30150    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
30151    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30152    l_rec_acct_attrs.array_num_value(2)  := 
30153 xla_ae_sources_pkg.GetSystemSourceNum(
30154    p_source_code           => 'XLA_EVENT_APPL_ID'
30155  , p_source_type_code      => 'Y'
30156  , p_source_application_id =>  602
30157 );
30158    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30159    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
30160    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30161    l_rec_acct_attrs.array_char_value(4)  := 
30162 xla_ae_sources_pkg.GetSystemSourceChar(
30163    p_source_code           => 'XLA_ENTITY_CODE'
30164  , p_source_type_code      => 'Y'
30165  , p_source_application_id =>  602
30166 );
30167    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30168    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
30169    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30170    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
30171    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
30172    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
30173    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
30174    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
30175    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30176    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
30177    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
30178    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
30179    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
30180    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
30181    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30182    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
30183    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
30184    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
30185    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
30186    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
30187    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
30188    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
30189    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
30190    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
30191    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
30192    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
30193    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
30194    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
30195    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
30196    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
30197    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
30198    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
30199    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
30203    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
30200    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
30201    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
30202    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
30204    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
30205    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
30206    l_rec_acct_attrs.array_num_value(24)  := p_source_81;
30207    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
30208    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
30209    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
30210    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
30211    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
30212    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
30213    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
30214    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
30215    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
30216    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
30217    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
30218    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
30219    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
30220    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
30221    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
30222    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
30223    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
30224    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
30225    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
30226    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
30227    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
30228    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
30229    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
30230    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
30231    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
30232    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
30233    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
30234    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
30235    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
30236    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
30237    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
30238    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
30239    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
30240    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
30241    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
30242    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
30243    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
30244    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
30245    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
30246    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
30247 
30248    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30249    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30250 
30251    ---------------------------------------------------------------------------------------------------------------
30252    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30253    ---------------------------------------------------------------------------------------------------------------
30254    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30255 
30256    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30257    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30258 
30259    IF xla_accounting_cache_pkg.GetValueChar
30260          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30261          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30262    AND l_bflow_method_code = 'PRIOR_ENTRY'
30263 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30264    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30265          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30266        )
30267    THEN
30268          xla_ae_lines_pkg.BflowUpgEntry
30269            (p_business_method_code    => l_bflow_method_code
30270            ,p_business_class_code     => l_bflow_class_code
30271            ,p_balance_type            => l_balance_type_code);
30272    ELSE
30273       NULL;
30274 -- No business flow processing for business flow method of NONE.
30275    END IF;
30276 
30277    --
30278    -- call analytical criteria
30279    --
30280    
30281    --
30282    -- call description
30283    --
30284    
30285 xla_ae_lines_pkg.SetLineDescription(
30286    p_ae_header_id => l_ae_header_id
30287   ,p_description  => Description_2 (
30288      p_application_id         => p_application_id
30289    , p_ae_header_id           => l_ae_header_id 
30290 , p_source_1 => p_source_1
30291    )
30292 );
30293 
30294 
30295    --
30296    -- call ADRs
30297    -- Bug 4922099
30298    --
30299    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30300         (NVL(l_actual_upg_option, 'N') = 'O') OR
30301         (NVL(l_enc_upg_option, 'N') = 'O')
30302       )
30303    THEN
30304    NULL;
30305    --
30306    --
30307    
30311 , p_source_11 => p_source_11
30308   l_ccid := AcctDerRule_7(
30309            p_application_id           => p_application_id
30310          , p_ae_header_id             => l_ae_header_id 
30312          , x_transaction_coa_id       => l_adr_transaction_coa_id
30313          , x_accounting_coa_id        => l_adr_accounting_coa_id
30314          , x_value_type_code          => l_adr_value_type_code
30315          , p_side                     => 'NA'
30316    );
30317 
30318    xla_ae_lines_pkg.set_ccid(
30319     p_code_combination_id          => l_ccid
30320   , p_value_type_code              => l_adr_value_type_code
30321   , p_transaction_coa_id           => l_adr_transaction_coa_id
30322   , p_accounting_coa_id            => l_adr_accounting_coa_id
30323   , p_adr_code                     => 'AP_INVOICE_DIST'
30324   , p_adr_type_code                => 'S'
30325   , p_component_type               => l_component_type
30326   , p_component_code               => l_component_code
30327   , p_component_type_code          => l_component_type_code
30328   , p_component_appl_id            => l_component_appl_id
30329   , p_amb_context_code             => l_amb_context_code
30330   , p_side                         => 'NA'
30331   );
30332 
30333 
30334    --
30335    --
30336    END IF;
30337    --
30338    -- Bug 4922099
30339    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30340           (NVL(l_enc_upg_option, 'N') = 'O')
30341         ) AND
30342         (l_bflow_method_code = 'PRIOR_ENTRY')
30343       )
30344    THEN
30345       IF
30346       --
30347       1 = 2
30348       --
30349       THEN
30350       xla_accounting_err_pkg.build_message
30351                                     (p_appli_s_name            => 'XLA'
30352                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30353                                     ,p_token_1                 => 'LINE_NUMBER'
30354                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30355                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30356                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30357                                                                              l_component_type
30358                                                                             ,l_component_code
30359                                                                             ,l_component_type_code
30360                                                                             ,l_component_appl_id
30361                                                                             ,l_amb_context_code
30362                                                                             ,l_entity_code
30363                                                                             ,l_event_class_code
30364                                                                            )
30365                                     ,p_token_3                 => 'OWNER'
30366                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30367                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30368                                                                           ,p_lookup_code    => l_component_type_code
30369                                                                          )
30370                                     ,p_token_4                 => 'PRODUCT_NAME'
30371                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30372                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30373                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30374                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30375                                     ,p_ae_header_id            =>  NULL
30376                                        );
30377 
30378         IF (C_LEVEL_ERROR>= g_log_level) THEN
30379                  trace
30380                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30381                       ,p_level    => C_LEVEL_ERROR
30382                       ,p_module   => l_log_module);
30383         END IF;
30384       END IF;
30385    END IF;
30386    --
30387    --
30388    ------------------------------------------------------------------------------------------------
30389    -- 4219869 Business Flow
30390    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30391    -- Prior Entry.  Currently, the following code is always generated.
30392    ------------------------------------------------------------------------------------------------
30393    XLA_AE_LINES_PKG.ValidateCurrentLine;
30394 
30395    ------------------------------------------------------------------------------------
30396    -- 4219869 Business Flow
30397    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30398    ------------------------------------------------------------------------------------
30399    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30400 
30401    ----------------------------------------------------------------------------------
30402    -- 4219869 Business Flow
30403    -- Update journal entry status -- Need to generate this within IF <condition>
30404    ----------------------------------------------------------------------------------
30408          );
30405    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30406          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30407          ,p_balance_type_code => l_balance_type_code
30409 
30410    -------------------------------------------------------------------------------------------
30411    -- 4262811 - Generate the Accrual Reversal lines
30412    -------------------------------------------------------------------------------------------
30413    BEGIN
30414       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30415                               (g_array_event(p_event_id).array_value_num('header_index'));
30416       IF l_acc_rev_flag IS NULL THEN
30417          l_acc_rev_flag := 'N';
30418       END IF;
30419    EXCEPTION
30420       WHEN OTHERS THEN
30421          l_acc_rev_flag := 'N';
30422    END;
30423    --
30424    IF (l_acc_rev_flag = 'Y') THEN
30425 
30426        -- 4645092  ------------------------------------------------------------------------------
30427        -- To allow MPA report to determine if it should generate report process
30428        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30429        ------------------------------------------------------------------------------------------
30430 
30431        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30432        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30433    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30434    -- call ADRs
30435    -- Bug 4922099
30436    --
30437    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30438         (NVL(l_actual_upg_option, 'N') = 'O') OR
30439         (NVL(l_enc_upg_option, 'N') = 'O')
30440       )
30441    THEN
30442    NULL;
30443    --
30444    --
30445    
30446   l_ccid := AcctDerRule_7(
30447            p_application_id           => p_application_id
30448          , p_ae_header_id             => l_ae_header_id 
30449 , p_source_11 => p_source_11
30450          , x_transaction_coa_id       => l_adr_transaction_coa_id
30451          , x_accounting_coa_id        => l_adr_accounting_coa_id
30452          , x_value_type_code          => l_adr_value_type_code
30453          , p_side                     => 'NA'
30454    );
30455 
30456    xla_ae_lines_pkg.set_ccid(
30457     p_code_combination_id          => l_ccid
30458   , p_value_type_code              => l_adr_value_type_code
30459   , p_transaction_coa_id           => l_adr_transaction_coa_id
30460   , p_accounting_coa_id            => l_adr_accounting_coa_id
30461   , p_adr_code                     => 'AP_INVOICE_DIST'
30462   , p_adr_type_code                => 'S'
30463   , p_component_type               => l_component_type
30464   , p_component_code               => l_component_code
30465   , p_component_type_code          => l_component_type_code
30466   , p_component_appl_id            => l_component_appl_id
30467   , p_amb_context_code             => l_amb_context_code
30468   , p_side                         => 'NA'
30469   );
30470 
30471 
30472    --
30473    --
30474    END IF;
30475 
30476        --
30477        -- Update the line information that should be overwritten
30478        --
30479        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30480                                          p_header_num   => 1);
30481        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30482 
30483        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30484 
30485        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30486           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30487        END IF;
30488 
30489       --
30490       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30491       --
30492       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30493           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30494       ELSE
30495           ---------------------------------------------------------------------------------------------------
30496           -- 4262811a Switch Sign
30497           ---------------------------------------------------------------------------------------------------
30498           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30499           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30500                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30501           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30502                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30503           -- 5132302
30504           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30505                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30506 
30507       END IF;
30508 
30509       -- 4955764
30510       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30511       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30512 
30513 
30514       XLA_AE_LINES_PKG.ValidateCurrentLine;
30518                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30515       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30516 
30517       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30519                ,p_balance_type_code => l_balance_type_code);
30520 
30521    END IF;
30522 
30523    -----------------------------------------------------------------------------------------
30524    -- 4262811 Multiperiod Accounting
30525    -----------------------------------------------------------------------------------------
30526      -- No MPA option is assigned.
30527 
30528 
30529 END IF;
30530 END IF;
30531 --
30532 
30533 --
30534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30535    trace
30536       (p_msg      => 'END of AcctLineType_53'
30537       ,p_level    => C_LEVEL_PROCEDURE
30538       ,p_module   => l_log_module);
30539 END IF;
30540 --
30541 EXCEPTION
30542   WHEN xla_exceptions_pkg.application_exception THEN
30543       RAISE;
30544   WHEN OTHERS THEN
30545        xla_exceptions_pkg.raise_message
30546            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_53');
30547 END AcctLineType_53;
30548 --
30549 
30550 ---------------------------------------
30551 --
30552 -- PRIVATE FUNCTION
30553 --         AcctLineType_54
30554 --
30555 ---------------------------------------
30556 PROCEDURE AcctLineType_54 (
30557   p_application_id        IN NUMBER
30558  ,p_event_id              IN NUMBER
30559  ,p_calculate_acctd_flag  IN VARCHAR2
30560  ,p_calculate_g_l_flag    IN VARCHAR2
30561  ,p_actual_flag           IN OUT VARCHAR2
30562  ,p_balance_type_code     OUT VARCHAR2
30563  ,p_gain_or_loss_ref      OUT VARCHAR2
30564  
30565 --Invoice Distribution Description
30566  , p_source_1            IN VARCHAR2
30567 --Invoice Distribution Account
30568  , p_source_11            IN NUMBER
30569 --Invoice Distribution Type
30570  , p_source_15            IN VARCHAR2
30571  , p_source_15_meaning    IN VARCHAR2
30572 --Purchasing Encumbrance Option
30573  , p_source_17            IN VARCHAR2
30574  , p_source_17_meaning    IN VARCHAR2
30575 --Accrue on Receipt Option
30576  , p_source_18            IN VARCHAR2
30577  , p_source_18_meaning    IN VARCHAR2
30578 --Accounting Reversal Indicator
30579  , p_source_19            IN VARCHAR2
30580 --Distribution Link Type
30581  , p_source_21            IN VARCHAR2
30582 --Allocation to Main Distribution Identifier
30583  , p_source_23            IN NUMBER
30584 --Invoice Identifier
30585  , p_source_24            IN NUMBER
30586 --Business Flow Accounts Payable Application Identifier
30587  , p_source_25            IN NUMBER
30588 --Business Flow Invoice Distribution Type
30589  , p_source_26            IN VARCHAR2
30590 --Business Flow Invoice Entity Code
30591  , p_source_27            IN VARCHAR2
30592 --Business Flow Invoice Distribution Identifier
30593  , p_source_28            IN NUMBER
30594 --Business Flow Invoice Identifier
30595  , p_source_29            IN NUMBER
30596 --Invoice Distribution Identifier
30597  , p_source_30            IN NUMBER
30598 --Payables Encumbrance Upgrade Credit Account
30599  , p_source_31            IN NUMBER
30600 --Payables Encumbrance Upgrade Credit Amount
30601  , p_source_32            IN NUMBER
30602 --Invoice Currency Code
30603  , p_source_33            IN VARCHAR2
30604 --Payables Encumbrance Upgrade Credit Base Amount
30605  , p_source_34            IN NUMBER
30606 --Payables Encumbrance Upgrade Debit Account
30607  , p_source_35            IN NUMBER
30608 --Payables Encumbrance Upgrade Debit Amount
30609  , p_source_36            IN NUMBER
30610 --Payables Encumbrance Upgrade Debit Base Amount
30611  , p_source_37            IN NUMBER
30612 --Payables Encumbrance Upgrade Option
30613  , p_source_38            IN VARCHAR2
30614 --Invoice Exchange Date
30615  , p_source_39            IN DATE
30616 --Invoice Exchange Rate
30617  , p_source_40            IN NUMBER
30618 --Invoice Exchange Rate Type
30619  , p_source_41            IN VARCHAR2
30620 --Deferred Accounting End Date
30621  , p_source_43            IN DATE
30622 --Deferred Accounting Option
30623  , p_source_44            IN VARCHAR2
30624 --Deferred Accounting Start Date
30625  , p_source_45            IN DATE
30626 --Override Accounted Amount Indicator
30627  , p_source_46            IN VARCHAR2
30628  , p_source_46_meaning    IN VARCHAR2
30629 --Invoice Supplier Identifier
30630  , p_source_47            IN NUMBER
30631 --Invoice Supplier Site Identifier
30632  , p_source_48            IN NUMBER
30633 --Third Party Type
30634  , p_source_49            IN VARCHAR2
30635 --Parent Reversal Identifier
30636  , p_source_50            IN NUMBER
30637 --Invoice Distribution Statistical Amount
30638  , p_source_51            IN NUMBER
30639 --Invoice Distribution Tax Line Identifier
30640  , p_source_52            IN NUMBER
30641 --Invoice Distribution Tax Distribution Identifier from Tax
30642  , p_source_53            IN NUMBER
30643 --Invoice Distribution Summary Tax Line Identifier
30644  , p_source_54            IN NUMBER
30645 --Payables Upgrade Credit Encumbrance Type Identifier
30646  , p_source_55            IN NUMBER
30647 --Payables Upgrade Debit Encumbrance Type Identifier
30648  , p_source_56            IN NUMBER
30649 --Quantity Variance Amount
30650  , p_source_81            IN NUMBER
30654 IS
30651 --Quantity Variance Amount in Ledger Currency
30652  , p_source_82            IN NUMBER
30653 )
30655 
30656 l_component_type              VARCHAR2(80);
30657 l_component_code              VARCHAR2(30);
30658 l_component_type_code         VARCHAR2(1);
30659 l_component_appl_id           INTEGER;
30660 l_amb_context_code            VARCHAR2(30);
30661 l_entity_code                 VARCHAR2(30);
30662 l_event_class_code            VARCHAR2(30);
30663 l_ae_header_id                NUMBER;
30664 l_event_type_code             VARCHAR2(30);
30665 l_line_definition_code        VARCHAR2(30);
30666 l_line_definition_owner_code  VARCHAR2(1);
30667 --
30668 -- adr variables
30669 l_segment                     VARCHAR2(30);
30670 l_ccid                        NUMBER;
30671 l_adr_transaction_coa_id      NUMBER;
30672 l_adr_accounting_coa_id       NUMBER;
30673 l_adr_flexfield_segment_code  VARCHAR2(30);
30674 l_adr_flex_value_set_id       NUMBER;
30675 l_adr_value_type_code         VARCHAR2(30);
30676 l_adr_value_combination_id    NUMBER;
30677 l_adr_value_segment_code      VARCHAR2(30);
30678 
30679 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30680 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30681 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30682 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30683 
30684 -- 4262811 Variables ------------------------------------------------------------------------------------------
30685 l_entered_amt_idx             NUMBER;
30686 l_accted_amt_idx              NUMBER;
30687 l_acc_rev_flag                VARCHAR2(1);
30688 l_accrual_line_num            NUMBER;
30689 l_tmp_amt                     NUMBER;
30690 l_acc_rev_natural_side_code   VARCHAR2(1);
30691 
30692 l_num_entries                 NUMBER;
30693 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30694 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30695 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30696 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30697 l_recog_line_1                NUMBER;
30698 l_recog_line_2                NUMBER;
30699 
30700 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30701 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30702 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30703 
30704 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30705 
30706 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30707 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30708 
30709 ---------------------------------------------------------------------------------------------------------------
30710 
30711 
30712 --
30713 -- bulk performance
30714 --
30715 l_balance_type_code           VARCHAR2(1);
30716 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30717 l_log_module                  VARCHAR2(240);
30718 
30719 --
30720 -- Upgrade strategy
30721 --
30722 l_actual_upg_option           VARCHAR2(1);
30723 l_enc_upg_option           VARCHAR2(1);
30724 
30725 --
30726 BEGIN
30727 --
30728 IF g_log_enabled THEN
30729       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
30730 END IF;
30731 --
30732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30733 
30734       trace
30735          (p_msg      => 'BEGIN of AcctLineType_54'
30736          ,p_level    => C_LEVEL_PROCEDURE
30737          ,p_module   => l_log_module);
30738 
30739 END IF;
30740 --
30741 l_component_type             := 'AMB_JLT';
30742 l_component_code             := 'AP_QUANTITY_VARIANCE_CM_ENC_DR';
30743 l_component_type_code        := 'S';
30744 l_component_appl_id          :=  200;
30745 l_amb_context_code           := 'DEFAULT';
30746 l_entity_code                := 'AP_INVOICES';
30747 l_event_class_code           := 'CREDIT MEMOS';
30748 l_event_type_code            := 'CREDIT MEMOS_ALL';
30749 l_line_definition_owner_code := 'S';
30750 l_line_definition_code       := 'ENC_CM_ALL';
30751 --
30752 l_balance_type_code          := 'E';
30753 l_segment                     := NULL;
30754 l_ccid                        := NULL;
30755 l_adr_transaction_coa_id      := NULL;
30756 l_adr_accounting_coa_id       := NULL;
30757 l_adr_flexfield_segment_code  := NULL;
30758 l_adr_flex_value_set_id       := NULL;
30759 l_adr_value_type_code         := NULL;
30760 l_adr_value_combination_id    := NULL;
30761 l_adr_value_segment_code      := NULL;
30762 
30763 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30764 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
30765 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30766 l_budgetary_control_flag     := 'Y';
30767 
30768 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30769 l_bflow_applied_to_amt       := NULL; -- 5132302
30770 l_entered_amt_idx            := NULL;          -- 4262811
30771 l_accted_amt_idx             := NULL;          -- 4262811
30772 l_acc_rev_flag               := NULL;          -- 4262811
30773 l_accrual_line_num           := NULL;          -- 4262811
30774 l_tmp_amt                    := NULL;          -- 4262811
30775 --
30776  
30777 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30778     l_balance_type_code <> 'B' THEN
30782 NVL(p_source_17,'
30779 IF NVL(p_source_15,'
30780 ') <>  'ACCRUAL' AND 
30781 p_source_81 IS NOT NULL AND 
30783 ') =  'Y' AND 
30784 NVL(p_source_18,'
30785 ') <>  'Y'
30786  THEN 
30787 
30788    --
30789    XLA_AE_LINES_PKG.SetNewLine;
30790 
30791    p_balance_type_code          := l_balance_type_code;
30792    -- set the flag so later we will know whether the gain loss line needs to be created
30793    
30794    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30795      p_actual_flag :='A';
30796    END IF;
30797 
30798    --
30799    -- bulk performance
30800    --
30801    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30802                                       p_header_num   => 0); -- 4262811
30803    --
30804    -- set accounting line options
30805    --
30806    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30807            p_natural_side_code          => 'D'
30808          , p_gain_or_loss_flag          => 'N'
30809          , p_gl_transfer_mode_code      => 'S'
30810          , p_acct_entry_type_code       => 'E'
30811          , p_switch_side_flag           => 'Y'
30812          , p_merge_duplicate_code       => 'N'
30813          );
30814    --
30815    l_acc_rev_natural_side_code := 'C';  -- 4262811
30816    -- 
30817    --
30818    -- set accounting line type info
30819    --
30820    xla_ae_lines_pkg.SetAcctLineType
30821       (p_component_type             => l_component_type
30822       ,p_event_type_code            => l_event_type_code
30823       ,p_line_definition_owner_code => l_line_definition_owner_code
30824       ,p_line_definition_code       => l_line_definition_code
30825       ,p_accounting_line_code       => l_component_code
30826       ,p_accounting_line_type_code  => l_component_type_code
30827       ,p_accounting_line_appl_id    => l_component_appl_id
30828       ,p_amb_context_code           => l_amb_context_code
30829       ,p_entity_code                => l_entity_code
30830       ,p_event_class_code           => l_event_class_code);
30831    --
30832    -- set accounting class
30833    --
30834    xla_ae_lines_pkg.SetAcctClass(
30835            p_accounting_class_code  => 'QV'
30836          , p_ae_header_id           => l_ae_header_id
30837          );
30838 
30839    --
30840    -- set rounding class
30841    --
30842    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30843                       'QV';
30844 
30845    --
30846    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30847    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30848    --
30849    -- bulk performance
30850    --
30851    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30852 
30853    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30854       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30855 
30856    -- 4955764
30857    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30858       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30859 
30860    -- 4458381 Public Sector Enh
30861       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
30862    --
30863    -- set accounting attributes for the line type
30864    --
30865    l_entered_amt_idx := 23;
30866    l_accted_amt_idx  := 28;
30867    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30868    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30869    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
30870    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30871    l_rec_acct_attrs.array_num_value(2)  := 
30872 xla_ae_sources_pkg.GetSystemSourceNum(
30873    p_source_code           => 'XLA_EVENT_APPL_ID'
30874  , p_source_type_code      => 'Y'
30875  , p_source_application_id =>  602
30876 );
30877    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30878    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
30879    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30880    l_rec_acct_attrs.array_char_value(4)  := 
30881 xla_ae_sources_pkg.GetSystemSourceChar(
30882    p_source_code           => 'XLA_ENTITY_CODE'
30883  , p_source_type_code      => 'Y'
30884  , p_source_application_id =>  602
30885 );
30886    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30887    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
30888    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30889    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
30890    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
30891    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
30892    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30893    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
30894    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
30895    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
30896    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
30897    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
30898    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30902    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
30899    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
30900    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
30901    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
30903    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
30904    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
30905    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
30906    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
30907    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
30908    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
30909    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
30910    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
30911    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
30912    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
30913    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
30914    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
30915    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
30916    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
30917    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
30918    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
30919    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
30920    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
30921    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
30922    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
30923    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
30924    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
30925    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
30926    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
30927    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
30928    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
30929    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
30930    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
30931    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
30932    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
30933    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
30934    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
30935    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
30936    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
30937    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
30938    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
30939    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
30940    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
30941    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
30942    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
30943    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
30944    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
30945    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
30946    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
30947    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
30948    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
30949    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
30950    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
30951    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
30952    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
30953    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
30954    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
30955    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
30956    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
30957    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
30958    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
30959    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
30960    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
30961    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
30962    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
30963    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
30964 
30965    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30966    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30967 
30968    ---------------------------------------------------------------------------------------------------------------
30969    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30970    ---------------------------------------------------------------------------------------------------------------
30971    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30972 
30973    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30974    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30975 
30976    IF xla_accounting_cache_pkg.GetValueChar
30977          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30978          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30979    AND l_bflow_method_code = 'PRIOR_ENTRY'
30980 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30981    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30982          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30983        )
30984    THEN
30988            ,p_balance_type            => l_balance_type_code);
30985          xla_ae_lines_pkg.BflowUpgEntry
30986            (p_business_method_code    => l_bflow_method_code
30987            ,p_business_class_code     => l_bflow_class_code
30989    ELSE
30990       NULL;
30991 -- No business flow processing for business flow method of NONE.
30992    END IF;
30993 
30994    --
30995    -- call analytical criteria
30996    --
30997    
30998    --
30999    -- call description
31000    --
31001    
31002 xla_ae_lines_pkg.SetLineDescription(
31003    p_ae_header_id => l_ae_header_id
31004   ,p_description  => Description_2 (
31005      p_application_id         => p_application_id
31006    , p_ae_header_id           => l_ae_header_id 
31007 , p_source_1 => p_source_1
31008    )
31009 );
31010 
31011 
31012    --
31013    -- call ADRs
31014    -- Bug 4922099
31015    --
31016    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31017         (NVL(l_actual_upg_option, 'N') = 'O') OR
31018         (NVL(l_enc_upg_option, 'N') = 'O')
31019       )
31020    THEN
31021    NULL;
31022    --
31023    --
31024    
31025   l_ccid := AcctDerRule_7(
31026            p_application_id           => p_application_id
31027          , p_ae_header_id             => l_ae_header_id 
31028 , p_source_11 => p_source_11
31029          , x_transaction_coa_id       => l_adr_transaction_coa_id
31030          , x_accounting_coa_id        => l_adr_accounting_coa_id
31031          , x_value_type_code          => l_adr_value_type_code
31032          , p_side                     => 'NA'
31033    );
31034 
31035    xla_ae_lines_pkg.set_ccid(
31036     p_code_combination_id          => l_ccid
31037   , p_value_type_code              => l_adr_value_type_code
31038   , p_transaction_coa_id           => l_adr_transaction_coa_id
31039   , p_accounting_coa_id            => l_adr_accounting_coa_id
31040   , p_adr_code                     => 'AP_INVOICE_DIST'
31041   , p_adr_type_code                => 'S'
31042   , p_component_type               => l_component_type
31043   , p_component_code               => l_component_code
31044   , p_component_type_code          => l_component_type_code
31045   , p_component_appl_id            => l_component_appl_id
31046   , p_amb_context_code             => l_amb_context_code
31047   , p_side                         => 'NA'
31048   );
31049 
31050 
31051    --
31052    --
31053    END IF;
31054    --
31055    -- Bug 4922099
31056    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31057           (NVL(l_enc_upg_option, 'N') = 'O')
31058         ) AND
31059         (l_bflow_method_code = 'PRIOR_ENTRY')
31060       )
31061    THEN
31062       IF
31063       --
31064       1 = 2
31065       --
31066       THEN
31067       xla_accounting_err_pkg.build_message
31068                                     (p_appli_s_name            => 'XLA'
31069                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31070                                     ,p_token_1                 => 'LINE_NUMBER'
31071                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31072                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31073                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31074                                                                              l_component_type
31075                                                                             ,l_component_code
31076                                                                             ,l_component_type_code
31077                                                                             ,l_component_appl_id
31078                                                                             ,l_amb_context_code
31079                                                                             ,l_entity_code
31080                                                                             ,l_event_class_code
31081                                                                            )
31082                                     ,p_token_3                 => 'OWNER'
31083                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31084                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31085                                                                           ,p_lookup_code    => l_component_type_code
31086                                                                          )
31087                                     ,p_token_4                 => 'PRODUCT_NAME'
31088                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31089                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31090                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31091                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31092                                     ,p_ae_header_id            =>  NULL
31093                                        );
31094 
31095         IF (C_LEVEL_ERROR>= g_log_level) THEN
31096                  trace
31097                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31101       END IF;
31098                       ,p_level    => C_LEVEL_ERROR
31099                       ,p_module   => l_log_module);
31100         END IF;
31102    END IF;
31103    --
31104    --
31105    ------------------------------------------------------------------------------------------------
31106    -- 4219869 Business Flow
31107    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31108    -- Prior Entry.  Currently, the following code is always generated.
31109    ------------------------------------------------------------------------------------------------
31110    XLA_AE_LINES_PKG.ValidateCurrentLine;
31111 
31112    ------------------------------------------------------------------------------------
31113    -- 4219869 Business Flow
31114    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31115    ------------------------------------------------------------------------------------
31116    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31117 
31118    ----------------------------------------------------------------------------------
31119    -- 4219869 Business Flow
31120    -- Update journal entry status -- Need to generate this within IF <condition>
31121    ----------------------------------------------------------------------------------
31122    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31123          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31124          ,p_balance_type_code => l_balance_type_code
31125          );
31126 
31127    -------------------------------------------------------------------------------------------
31128    -- 4262811 - Generate the Accrual Reversal lines
31129    -------------------------------------------------------------------------------------------
31130    BEGIN
31131       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31132                               (g_array_event(p_event_id).array_value_num('header_index'));
31133       IF l_acc_rev_flag IS NULL THEN
31134          l_acc_rev_flag := 'N';
31135       END IF;
31136    EXCEPTION
31137       WHEN OTHERS THEN
31138          l_acc_rev_flag := 'N';
31139    END;
31140    --
31141    IF (l_acc_rev_flag = 'Y') THEN
31142 
31143        -- 4645092  ------------------------------------------------------------------------------
31144        -- To allow MPA report to determine if it should generate report process
31145        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31146        ------------------------------------------------------------------------------------------
31147 
31148        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31149        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31150    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31151    -- call ADRs
31152    -- Bug 4922099
31153    --
31154    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31155         (NVL(l_actual_upg_option, 'N') = 'O') OR
31156         (NVL(l_enc_upg_option, 'N') = 'O')
31157       )
31158    THEN
31159    NULL;
31160    --
31161    --
31162    
31163   l_ccid := AcctDerRule_7(
31164            p_application_id           => p_application_id
31165          , p_ae_header_id             => l_ae_header_id 
31166 , p_source_11 => p_source_11
31167          , x_transaction_coa_id       => l_adr_transaction_coa_id
31168          , x_accounting_coa_id        => l_adr_accounting_coa_id
31169          , x_value_type_code          => l_adr_value_type_code
31170          , p_side                     => 'NA'
31171    );
31172 
31173    xla_ae_lines_pkg.set_ccid(
31174     p_code_combination_id          => l_ccid
31175   , p_value_type_code              => l_adr_value_type_code
31176   , p_transaction_coa_id           => l_adr_transaction_coa_id
31177   , p_accounting_coa_id            => l_adr_accounting_coa_id
31178   , p_adr_code                     => 'AP_INVOICE_DIST'
31179   , p_adr_type_code                => 'S'
31180   , p_component_type               => l_component_type
31181   , p_component_code               => l_component_code
31182   , p_component_type_code          => l_component_type_code
31183   , p_component_appl_id            => l_component_appl_id
31184   , p_amb_context_code             => l_amb_context_code
31185   , p_side                         => 'NA'
31186   );
31187 
31188 
31189    --
31190    --
31191    END IF;
31192 
31193        --
31194        -- Update the line information that should be overwritten
31195        --
31196        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31197                                          p_header_num   => 1);
31198        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31199 
31200        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31201 
31202        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31203           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31204        END IF;
31205 
31206       --
31207       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31208       --
31209       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31210           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31211       ELSE
31215           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31212           ---------------------------------------------------------------------------------------------------
31213           -- 4262811a Switch Sign
31214           ---------------------------------------------------------------------------------------------------
31216           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31217                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31218           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31219                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31220           -- 5132302
31221           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31222                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31223 
31224       END IF;
31225 
31226       -- 4955764
31227       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31228       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31229 
31230 
31231       XLA_AE_LINES_PKG.ValidateCurrentLine;
31232       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31233 
31234       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31235                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31236                ,p_balance_type_code => l_balance_type_code);
31237 
31238    END IF;
31239 
31240    -----------------------------------------------------------------------------------------
31241    -- 4262811 Multiperiod Accounting
31242    -----------------------------------------------------------------------------------------
31243      -- No MPA option is assigned.
31244 
31245 
31246 END IF;
31247 END IF;
31248 --
31249 
31250 --
31251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31252    trace
31253       (p_msg      => 'END of AcctLineType_54'
31254       ,p_level    => C_LEVEL_PROCEDURE
31255       ,p_module   => l_log_module);
31256 END IF;
31257 --
31258 EXCEPTION
31259   WHEN xla_exceptions_pkg.application_exception THEN
31260       RAISE;
31261   WHEN OTHERS THEN
31262        xla_exceptions_pkg.raise_message
31263            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_54');
31264 END AcctLineType_54;
31265 --
31266 
31267 ---------------------------------------
31268 --
31269 -- PRIVATE FUNCTION
31270 --         AcctLineType_55
31271 --
31272 ---------------------------------------
31273 PROCEDURE AcctLineType_55 (
31274   p_application_id        IN NUMBER
31275  ,p_event_id              IN NUMBER
31276  ,p_calculate_acctd_flag  IN VARCHAR2
31277  ,p_calculate_g_l_flag    IN VARCHAR2
31278  ,p_actual_flag           IN OUT VARCHAR2
31279  ,p_balance_type_code     OUT VARCHAR2
31280  ,p_gain_or_loss_ref      OUT VARCHAR2
31281  
31282 --Invoice Distribution Description
31283  , p_source_1            IN VARCHAR2
31284 --Invoice Distribution Account
31285  , p_source_11            IN NUMBER
31286 --Invoice Distribution Type
31287  , p_source_15            IN VARCHAR2
31288  , p_source_15_meaning    IN VARCHAR2
31289 --Amount for Variance Amount
31290  , p_source_16            IN NUMBER
31291 --Purchasing Encumbrance Option
31292  , p_source_17            IN VARCHAR2
31293  , p_source_17_meaning    IN VARCHAR2
31294 --Accrue on Receipt Option
31295  , p_source_18            IN VARCHAR2
31296  , p_source_18_meaning    IN VARCHAR2
31297 --Accounting Reversal Indicator
31298  , p_source_19            IN VARCHAR2
31299 --Distribution Link Type
31300  , p_source_21            IN VARCHAR2
31301 --Allocation to Main Distribution Identifier
31302  , p_source_23            IN NUMBER
31303 --Invoice Identifier
31304  , p_source_24            IN NUMBER
31305 --Business Flow Accounts Payable Application Identifier
31306  , p_source_25            IN NUMBER
31307 --Business Flow Invoice Distribution Type
31308  , p_source_26            IN VARCHAR2
31309 --Business Flow Invoice Entity Code
31310  , p_source_27            IN VARCHAR2
31311 --Business Flow Invoice Distribution Identifier
31312  , p_source_28            IN NUMBER
31313 --Business Flow Invoice Identifier
31314  , p_source_29            IN NUMBER
31315 --Invoice Distribution Identifier
31316  , p_source_30            IN NUMBER
31317 --Payables Encumbrance Upgrade Credit Account
31318  , p_source_31            IN NUMBER
31319 --Payables Encumbrance Upgrade Credit Amount
31320  , p_source_32            IN NUMBER
31321 --Invoice Currency Code
31322  , p_source_33            IN VARCHAR2
31323 --Payables Encumbrance Upgrade Credit Base Amount
31324  , p_source_34            IN NUMBER
31325 --Payables Encumbrance Upgrade Debit Account
31326  , p_source_35            IN NUMBER
31327 --Payables Encumbrance Upgrade Debit Amount
31328  , p_source_36            IN NUMBER
31329 --Payables Encumbrance Upgrade Debit Base Amount
31330  , p_source_37            IN NUMBER
31331 --Payables Encumbrance Upgrade Option
31332  , p_source_38            IN VARCHAR2
31333 --Invoice Exchange Date
31334  , p_source_39            IN DATE
31335 --Invoice Exchange Rate
31336  , p_source_40            IN NUMBER
31337 --Invoice Exchange Rate Type
31341 --Deferred Accounting Option
31338  , p_source_41            IN VARCHAR2
31339 --Deferred Accounting End Date
31340  , p_source_43            IN DATE
31342  , p_source_44            IN VARCHAR2
31343 --Deferred Accounting Start Date
31344  , p_source_45            IN DATE
31345 --Override Accounted Amount Indicator
31346  , p_source_46            IN VARCHAR2
31347  , p_source_46_meaning    IN VARCHAR2
31348 --Invoice Supplier Identifier
31349  , p_source_47            IN NUMBER
31350 --Invoice Supplier Site Identifier
31351  , p_source_48            IN NUMBER
31352 --Third Party Type
31353  , p_source_49            IN VARCHAR2
31354 --Parent Reversal Identifier
31355  , p_source_50            IN NUMBER
31356 --Invoice Distribution Tax Line Identifier
31357  , p_source_52            IN NUMBER
31358 --Invoice Distribution Tax Distribution Identifier from Tax
31359  , p_source_53            IN NUMBER
31360 --Invoice Distribution Summary Tax Line Identifier
31361  , p_source_54            IN NUMBER
31362 --Payables Upgrade Credit Encumbrance Type Identifier
31363  , p_source_55            IN NUMBER
31364 --Payables Upgrade Debit Encumbrance Type Identifier
31365  , p_source_56            IN NUMBER
31366 --Quantity Variance Amount
31367  , p_source_81            IN NUMBER
31368 --Quantity Variance Amount in Ledger Currency
31369  , p_source_82            IN NUMBER
31370 )
31371 IS
31372 
31373 l_component_type              VARCHAR2(80);
31374 l_component_code              VARCHAR2(30);
31375 l_component_type_code         VARCHAR2(1);
31376 l_component_appl_id           INTEGER;
31377 l_amb_context_code            VARCHAR2(30);
31378 l_entity_code                 VARCHAR2(30);
31379 l_event_class_code            VARCHAR2(30);
31380 l_ae_header_id                NUMBER;
31381 l_event_type_code             VARCHAR2(30);
31382 l_line_definition_code        VARCHAR2(30);
31383 l_line_definition_owner_code  VARCHAR2(1);
31384 --
31385 -- adr variables
31386 l_segment                     VARCHAR2(30);
31387 l_ccid                        NUMBER;
31388 l_adr_transaction_coa_id      NUMBER;
31389 l_adr_accounting_coa_id       NUMBER;
31390 l_adr_flexfield_segment_code  VARCHAR2(30);
31391 l_adr_flex_value_set_id       NUMBER;
31392 l_adr_value_type_code         VARCHAR2(30);
31393 l_adr_value_combination_id    NUMBER;
31394 l_adr_value_segment_code      VARCHAR2(30);
31395 
31396 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31397 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31398 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31399 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31400 
31401 -- 4262811 Variables ------------------------------------------------------------------------------------------
31402 l_entered_amt_idx             NUMBER;
31403 l_accted_amt_idx              NUMBER;
31404 l_acc_rev_flag                VARCHAR2(1);
31405 l_accrual_line_num            NUMBER;
31406 l_tmp_amt                     NUMBER;
31407 l_acc_rev_natural_side_code   VARCHAR2(1);
31408 
31409 l_num_entries                 NUMBER;
31410 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31411 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31412 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31413 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31414 l_recog_line_1                NUMBER;
31415 l_recog_line_2                NUMBER;
31416 
31417 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31418 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31419 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31420 
31421 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31422 
31423 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31424 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31425 
31426 ---------------------------------------------------------------------------------------------------------------
31427 
31428 
31429 --
31430 -- bulk performance
31431 --
31432 l_balance_type_code           VARCHAR2(1);
31433 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31434 l_log_module                  VARCHAR2(240);
31435 
31436 --
31437 -- Upgrade strategy
31438 --
31439 l_actual_upg_option           VARCHAR2(1);
31440 l_enc_upg_option           VARCHAR2(1);
31441 
31442 --
31443 BEGIN
31444 --
31445 IF g_log_enabled THEN
31446       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
31447 END IF;
31448 --
31449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31450 
31451       trace
31452          (p_msg      => 'BEGIN of AcctLineType_55'
31453          ,p_level    => C_LEVEL_PROCEDURE
31454          ,p_module   => l_log_module);
31455 
31456 END IF;
31457 --
31458 l_component_type             := 'AMB_JLT';
31459 l_component_code             := 'AP_QUANTITY_VARIANCE_DM_ENC_DR';
31460 l_component_type_code        := 'S';
31461 l_component_appl_id          :=  200;
31462 l_amb_context_code           := 'DEFAULT';
31463 l_entity_code                := 'AP_INVOICES';
31464 l_event_class_code           := 'DEBIT MEMOS';
31465 l_event_type_code            := 'DEBIT MEMOS_ALL';
31466 l_line_definition_owner_code := 'S';
31467 l_line_definition_code       := 'ENC_DM_ALL';
31468 --
31472 l_adr_transaction_coa_id      := NULL;
31469 l_balance_type_code          := 'E';
31470 l_segment                     := NULL;
31471 l_ccid                        := NULL;
31473 l_adr_accounting_coa_id       := NULL;
31474 l_adr_flexfield_segment_code  := NULL;
31475 l_adr_flex_value_set_id       := NULL;
31476 l_adr_value_type_code         := NULL;
31477 l_adr_value_combination_id    := NULL;
31478 l_adr_value_segment_code      := NULL;
31479 
31480 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
31481 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
31482 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31483 l_budgetary_control_flag     := 'Y';
31484 
31485 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31486 l_bflow_applied_to_amt       := NULL; -- 5132302
31487 l_entered_amt_idx            := NULL;          -- 4262811
31488 l_accted_amt_idx             := NULL;          -- 4262811
31489 l_acc_rev_flag               := NULL;          -- 4262811
31490 l_accrual_line_num           := NULL;          -- 4262811
31491 l_tmp_amt                    := NULL;          -- 4262811
31492 --
31493  
31494 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31495     l_balance_type_code <> 'B' THEN
31496 IF NVL(p_source_15,'
31497 ') =  'ITEM' AND 
31498 p_source_16 IS NOT NULL AND 
31499 NVL(p_source_17,'
31500 ') =  'Y' AND 
31501 NVL(p_source_18,'
31502 ') <>  'Y'
31503  THEN 
31504 
31505    --
31506    XLA_AE_LINES_PKG.SetNewLine;
31507 
31508    p_balance_type_code          := l_balance_type_code;
31509    -- set the flag so later we will know whether the gain loss line needs to be created
31510    
31511    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31512      p_actual_flag :='A';
31513    END IF;
31514 
31515    --
31516    -- bulk performance
31517    --
31518    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31519                                       p_header_num   => 0); -- 4262811
31520    --
31521    -- set accounting line options
31522    --
31523    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31524            p_natural_side_code          => 'D'
31525          , p_gain_or_loss_flag          => 'N'
31526          , p_gl_transfer_mode_code      => 'S'
31527          , p_acct_entry_type_code       => 'E'
31528          , p_switch_side_flag           => 'Y'
31529          , p_merge_duplicate_code       => 'N'
31530          );
31531    --
31532    l_acc_rev_natural_side_code := 'C';  -- 4262811
31533    -- 
31534    --
31535    -- set accounting line type info
31536    --
31537    xla_ae_lines_pkg.SetAcctLineType
31538       (p_component_type             => l_component_type
31539       ,p_event_type_code            => l_event_type_code
31540       ,p_line_definition_owner_code => l_line_definition_owner_code
31541       ,p_line_definition_code       => l_line_definition_code
31542       ,p_accounting_line_code       => l_component_code
31543       ,p_accounting_line_type_code  => l_component_type_code
31544       ,p_accounting_line_appl_id    => l_component_appl_id
31545       ,p_amb_context_code           => l_amb_context_code
31546       ,p_entity_code                => l_entity_code
31547       ,p_event_class_code           => l_event_class_code);
31548    --
31549    -- set accounting class
31550    --
31551    xla_ae_lines_pkg.SetAcctClass(
31552            p_accounting_class_code  => 'QV'
31553          , p_ae_header_id           => l_ae_header_id
31554          );
31555 
31556    --
31557    -- set rounding class
31558    --
31559    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31560                       'QV';
31561 
31562    --
31563    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31564    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31565    --
31566    -- bulk performance
31567    --
31568    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31569 
31570    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31571       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31572 
31573    -- 4955764
31574    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31576 
31577    -- 4458381 Public Sector Enh
31578       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
31579    --
31580    -- set accounting attributes for the line type
31581    --
31582    l_entered_amt_idx := 23;
31583    l_accted_amt_idx  := 28;
31584    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31585    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31586    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
31587    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31588    l_rec_acct_attrs.array_num_value(2)  := 
31589 xla_ae_sources_pkg.GetSystemSourceNum(
31590    p_source_code           => 'XLA_EVENT_APPL_ID'
31591  , p_source_type_code      => 'Y'
31592  , p_source_application_id =>  602
31593 );
31594    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31598 xla_ae_sources_pkg.GetSystemSourceChar(
31595    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
31596    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31597    l_rec_acct_attrs.array_char_value(4)  := 
31599    p_source_code           => 'XLA_ENTITY_CODE'
31600  , p_source_type_code      => 'Y'
31601  , p_source_application_id =>  602
31602 );
31603    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
31604    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
31605    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
31606    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
31607    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
31608    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
31609    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31610    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
31611    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
31612    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
31613    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
31614    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
31615    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31616    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
31617    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
31618    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
31619    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
31620    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
31621    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
31622    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
31623    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
31624    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
31625    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
31626    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
31627    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
31628    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
31629    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
31630    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
31631    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
31632    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
31633    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
31634    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
31635    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
31636    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
31637    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
31638    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
31639    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
31640    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
31641    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
31642    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
31643    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
31644    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
31645    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
31646    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
31647    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
31648    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
31649    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
31650    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
31651    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
31652    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
31653    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
31654    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
31655    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
31656    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
31657    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
31658    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
31659    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
31660    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
31661    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
31662    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
31663    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
31664    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
31665    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
31666    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
31667    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
31668    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
31669    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
31670    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
31671    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
31672    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
31673    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
31674    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
31675    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
31676    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
31677    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
31678    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
31679 
31680    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31684    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31681    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31682 
31683    ---------------------------------------------------------------------------------------------------------------
31685    ---------------------------------------------------------------------------------------------------------------
31686    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31687 
31688    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31689    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31690 
31691    IF xla_accounting_cache_pkg.GetValueChar
31692          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31693          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31694    AND l_bflow_method_code = 'PRIOR_ENTRY'
31695 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31696    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31697          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31698        )
31699    THEN
31700          xla_ae_lines_pkg.BflowUpgEntry
31701            (p_business_method_code    => l_bflow_method_code
31702            ,p_business_class_code     => l_bflow_class_code
31703            ,p_balance_type            => l_balance_type_code);
31704    ELSE
31705       NULL;
31706 -- No business flow processing for business flow method of NONE.
31707    END IF;
31708 
31709    --
31710    -- call analytical criteria
31711    --
31712    
31713    --
31714    -- call description
31715    --
31716    
31717 xla_ae_lines_pkg.SetLineDescription(
31718    p_ae_header_id => l_ae_header_id
31719   ,p_description  => Description_2 (
31720      p_application_id         => p_application_id
31721    , p_ae_header_id           => l_ae_header_id 
31722 , p_source_1 => p_source_1
31723    )
31724 );
31725 
31726 
31727    --
31728    -- call ADRs
31729    -- Bug 4922099
31730    --
31731    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31732         (NVL(l_actual_upg_option, 'N') = 'O') OR
31733         (NVL(l_enc_upg_option, 'N') = 'O')
31734       )
31735    THEN
31736    NULL;
31737    --
31738    --
31739    
31740   l_ccid := AcctDerRule_7(
31741            p_application_id           => p_application_id
31742          , p_ae_header_id             => l_ae_header_id 
31743 , p_source_11 => p_source_11
31744          , x_transaction_coa_id       => l_adr_transaction_coa_id
31745          , x_accounting_coa_id        => l_adr_accounting_coa_id
31746          , x_value_type_code          => l_adr_value_type_code
31747          , p_side                     => 'NA'
31748    );
31749 
31750    xla_ae_lines_pkg.set_ccid(
31751     p_code_combination_id          => l_ccid
31752   , p_value_type_code              => l_adr_value_type_code
31753   , p_transaction_coa_id           => l_adr_transaction_coa_id
31754   , p_accounting_coa_id            => l_adr_accounting_coa_id
31755   , p_adr_code                     => 'AP_INVOICE_DIST'
31756   , p_adr_type_code                => 'S'
31757   , p_component_type               => l_component_type
31758   , p_component_code               => l_component_code
31759   , p_component_type_code          => l_component_type_code
31760   , p_component_appl_id            => l_component_appl_id
31761   , p_amb_context_code             => l_amb_context_code
31762   , p_side                         => 'NA'
31763   );
31764 
31765 
31766    --
31767    --
31768    END IF;
31769    --
31770    -- Bug 4922099
31771    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31772           (NVL(l_enc_upg_option, 'N') = 'O')
31773         ) AND
31774         (l_bflow_method_code = 'PRIOR_ENTRY')
31775       )
31776    THEN
31777       IF
31778       --
31779       1 = 2
31780       --
31781       THEN
31782       xla_accounting_err_pkg.build_message
31783                                     (p_appli_s_name            => 'XLA'
31784                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31785                                     ,p_token_1                 => 'LINE_NUMBER'
31786                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31787                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31788                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31789                                                                              l_component_type
31790                                                                             ,l_component_code
31791                                                                             ,l_component_type_code
31792                                                                             ,l_component_appl_id
31793                                                                             ,l_amb_context_code
31794                                                                             ,l_entity_code
31795                                                                             ,l_event_class_code
31796                                                                            )
31800                                                                           ,p_lookup_code    => l_component_type_code
31797                                     ,p_token_3                 => 'OWNER'
31798                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31799                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31801                                                                          )
31802                                     ,p_token_4                 => 'PRODUCT_NAME'
31803                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31804                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31805                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31806                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31807                                     ,p_ae_header_id            =>  NULL
31808                                        );
31809 
31810         IF (C_LEVEL_ERROR>= g_log_level) THEN
31811                  trace
31812                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31813                       ,p_level    => C_LEVEL_ERROR
31814                       ,p_module   => l_log_module);
31815         END IF;
31816       END IF;
31817    END IF;
31818    --
31819    --
31820    ------------------------------------------------------------------------------------------------
31821    -- 4219869 Business Flow
31822    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31823    -- Prior Entry.  Currently, the following code is always generated.
31824    ------------------------------------------------------------------------------------------------
31825    XLA_AE_LINES_PKG.ValidateCurrentLine;
31826 
31827    ------------------------------------------------------------------------------------
31828    -- 4219869 Business Flow
31829    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31830    ------------------------------------------------------------------------------------
31831    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31832 
31833    ----------------------------------------------------------------------------------
31834    -- 4219869 Business Flow
31835    -- Update journal entry status -- Need to generate this within IF <condition>
31836    ----------------------------------------------------------------------------------
31837    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31838          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31839          ,p_balance_type_code => l_balance_type_code
31840          );
31841 
31842    -------------------------------------------------------------------------------------------
31843    -- 4262811 - Generate the Accrual Reversal lines
31844    -------------------------------------------------------------------------------------------
31845    BEGIN
31846       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31847                               (g_array_event(p_event_id).array_value_num('header_index'));
31848       IF l_acc_rev_flag IS NULL THEN
31849          l_acc_rev_flag := 'N';
31850       END IF;
31851    EXCEPTION
31852       WHEN OTHERS THEN
31853          l_acc_rev_flag := 'N';
31854    END;
31855    --
31856    IF (l_acc_rev_flag = 'Y') THEN
31857 
31858        -- 4645092  ------------------------------------------------------------------------------
31859        -- To allow MPA report to determine if it should generate report process
31860        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31861        ------------------------------------------------------------------------------------------
31862 
31863        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31864        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31865    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31866    -- call ADRs
31867    -- Bug 4922099
31868    --
31869    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31870         (NVL(l_actual_upg_option, 'N') = 'O') OR
31871         (NVL(l_enc_upg_option, 'N') = 'O')
31872       )
31873    THEN
31874    NULL;
31875    --
31876    --
31877    
31878   l_ccid := AcctDerRule_7(
31879            p_application_id           => p_application_id
31880          , p_ae_header_id             => l_ae_header_id 
31881 , p_source_11 => p_source_11
31882          , x_transaction_coa_id       => l_adr_transaction_coa_id
31883          , x_accounting_coa_id        => l_adr_accounting_coa_id
31884          , x_value_type_code          => l_adr_value_type_code
31885          , p_side                     => 'NA'
31886    );
31887 
31888    xla_ae_lines_pkg.set_ccid(
31889     p_code_combination_id          => l_ccid
31890   , p_value_type_code              => l_adr_value_type_code
31891   , p_transaction_coa_id           => l_adr_transaction_coa_id
31892   , p_accounting_coa_id            => l_adr_accounting_coa_id
31893   , p_adr_code                     => 'AP_INVOICE_DIST'
31894   , p_adr_type_code                => 'S'
31895   , p_component_type               => l_component_type
31896   , p_component_code               => l_component_code
31897   , p_component_type_code          => l_component_type_code
31901   );
31898   , p_component_appl_id            => l_component_appl_id
31899   , p_amb_context_code             => l_amb_context_code
31900   , p_side                         => 'NA'
31902 
31903 
31904    --
31905    --
31906    END IF;
31907 
31908        --
31909        -- Update the line information that should be overwritten
31910        --
31911        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31912                                          p_header_num   => 1);
31913        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31914 
31915        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31916 
31917        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31918           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31919        END IF;
31920 
31921       --
31922       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31923       --
31924       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31925           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31926       ELSE
31927           ---------------------------------------------------------------------------------------------------
31928           -- 4262811a Switch Sign
31929           ---------------------------------------------------------------------------------------------------
31930           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31931           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31932                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31933           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31934                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31935           -- 5132302
31936           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31937                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31938 
31939       END IF;
31940 
31941       -- 4955764
31942       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31943       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31944 
31945 
31946       XLA_AE_LINES_PKG.ValidateCurrentLine;
31947       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31948 
31949       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31950                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31951                ,p_balance_type_code => l_balance_type_code);
31952 
31953    END IF;
31954 
31955    -----------------------------------------------------------------------------------------
31956    -- 4262811 Multiperiod Accounting
31957    -----------------------------------------------------------------------------------------
31958      -- No MPA option is assigned.
31959 
31960 
31961 END IF;
31962 END IF;
31963 --
31964 
31965 --
31966 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31967    trace
31968       (p_msg      => 'END of AcctLineType_55'
31969       ,p_level    => C_LEVEL_PROCEDURE
31970       ,p_module   => l_log_module);
31971 END IF;
31972 --
31973 EXCEPTION
31974   WHEN xla_exceptions_pkg.application_exception THEN
31975       RAISE;
31976   WHEN OTHERS THEN
31977        xla_exceptions_pkg.raise_message
31978            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_55');
31979 END AcctLineType_55;
31980 --
31981 
31982 ---------------------------------------
31983 --
31984 -- PRIVATE FUNCTION
31985 --         AcctLineType_56
31986 --
31987 ---------------------------------------
31988 PROCEDURE AcctLineType_56 (
31989   p_application_id        IN NUMBER
31990  ,p_event_id              IN NUMBER
31991  ,p_calculate_acctd_flag  IN VARCHAR2
31992  ,p_calculate_g_l_flag    IN VARCHAR2
31993  ,p_actual_flag           IN OUT VARCHAR2
31994  ,p_balance_type_code     OUT VARCHAR2
31995  ,p_gain_or_loss_ref      OUT VARCHAR2
31996  
31997 --Invoice Distribution Description
31998  , p_source_1            IN VARCHAR2
31999 --Invoice Distribution Account
32000  , p_source_11            IN NUMBER
32001 --Invoice Distribution Type
32002  , p_source_15            IN VARCHAR2
32003  , p_source_15_meaning    IN VARCHAR2
32004 --Amount for Variance Amount
32005  , p_source_16            IN NUMBER
32006 --Purchasing Encumbrance Option
32007  , p_source_17            IN VARCHAR2
32008  , p_source_17_meaning    IN VARCHAR2
32009 --Accrue on Receipt Option
32010  , p_source_18            IN VARCHAR2
32011  , p_source_18_meaning    IN VARCHAR2
32012 --Accounting Reversal Indicator
32013  , p_source_19            IN VARCHAR2
32014 --Distribution Link Type
32015  , p_source_21            IN VARCHAR2
32016 --Allocation to Main Distribution Identifier
32017  , p_source_23            IN NUMBER
32018 --Invoice Identifier
32019  , p_source_24            IN NUMBER
32020 --Business Flow Accounts Payable Application Identifier
32021  , p_source_25            IN NUMBER
32022 --Business Flow Invoice Distribution Type
32026 --Business Flow Invoice Distribution Identifier
32023  , p_source_26            IN VARCHAR2
32024 --Business Flow Invoice Entity Code
32025  , p_source_27            IN VARCHAR2
32027  , p_source_28            IN NUMBER
32028 --Business Flow Invoice Identifier
32029  , p_source_29            IN NUMBER
32030 --Invoice Distribution Identifier
32031  , p_source_30            IN NUMBER
32032 --Payables Encumbrance Upgrade Credit Account
32033  , p_source_31            IN NUMBER
32034 --Payables Encumbrance Upgrade Credit Amount
32035  , p_source_32            IN NUMBER
32036 --Invoice Currency Code
32037  , p_source_33            IN VARCHAR2
32038 --Payables Encumbrance Upgrade Credit Base Amount
32039  , p_source_34            IN NUMBER
32040 --Payables Encumbrance Upgrade Debit Account
32041  , p_source_35            IN NUMBER
32042 --Payables Encumbrance Upgrade Debit Amount
32043  , p_source_36            IN NUMBER
32044 --Payables Encumbrance Upgrade Debit Base Amount
32045  , p_source_37            IN NUMBER
32046 --Payables Encumbrance Upgrade Option
32047  , p_source_38            IN VARCHAR2
32048 --Invoice Exchange Date
32049  , p_source_39            IN DATE
32050 --Invoice Exchange Rate
32051  , p_source_40            IN NUMBER
32052 --Invoice Exchange Rate Type
32053  , p_source_41            IN VARCHAR2
32054 --Deferred Accounting End Date
32055  , p_source_43            IN DATE
32056 --Deferred Accounting Option
32057  , p_source_44            IN VARCHAR2
32058 --Deferred Accounting Start Date
32059  , p_source_45            IN DATE
32060 --Override Accounted Amount Indicator
32061  , p_source_46            IN VARCHAR2
32062  , p_source_46_meaning    IN VARCHAR2
32063 --Invoice Supplier Identifier
32064  , p_source_47            IN NUMBER
32065 --Invoice Supplier Site Identifier
32066  , p_source_48            IN NUMBER
32067 --Third Party Type
32068  , p_source_49            IN VARCHAR2
32069 --Parent Reversal Identifier
32070  , p_source_50            IN NUMBER
32071 --Invoice Distribution Statistical Amount
32072  , p_source_51            IN NUMBER
32073 --Invoice Distribution Tax Line Identifier
32074  , p_source_52            IN NUMBER
32075 --Invoice Distribution Tax Distribution Identifier from Tax
32076  , p_source_53            IN NUMBER
32077 --Invoice Distribution Summary Tax Line Identifier
32078  , p_source_54            IN NUMBER
32079 --Payables Upgrade Credit Encumbrance Type Identifier
32080  , p_source_55            IN NUMBER
32081 --Payables Upgrade Debit Encumbrance Type Identifier
32082  , p_source_56            IN NUMBER
32083 --Quantity Variance Amount
32084  , p_source_81            IN NUMBER
32085 --Quantity Variance Amount in Ledger Currency
32086  , p_source_82            IN NUMBER
32087 )
32088 IS
32089 
32090 l_component_type              VARCHAR2(80);
32091 l_component_code              VARCHAR2(30);
32092 l_component_type_code         VARCHAR2(1);
32093 l_component_appl_id           INTEGER;
32094 l_amb_context_code            VARCHAR2(30);
32095 l_entity_code                 VARCHAR2(30);
32096 l_event_class_code            VARCHAR2(30);
32097 l_ae_header_id                NUMBER;
32098 l_event_type_code             VARCHAR2(30);
32099 l_line_definition_code        VARCHAR2(30);
32100 l_line_definition_owner_code  VARCHAR2(1);
32101 --
32102 -- adr variables
32103 l_segment                     VARCHAR2(30);
32104 l_ccid                        NUMBER;
32105 l_adr_transaction_coa_id      NUMBER;
32106 l_adr_accounting_coa_id       NUMBER;
32107 l_adr_flexfield_segment_code  VARCHAR2(30);
32108 l_adr_flex_value_set_id       NUMBER;
32109 l_adr_value_type_code         VARCHAR2(30);
32110 l_adr_value_combination_id    NUMBER;
32111 l_adr_value_segment_code      VARCHAR2(30);
32112 
32113 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32114 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32115 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32116 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32117 
32118 -- 4262811 Variables ------------------------------------------------------------------------------------------
32119 l_entered_amt_idx             NUMBER;
32120 l_accted_amt_idx              NUMBER;
32121 l_acc_rev_flag                VARCHAR2(1);
32122 l_accrual_line_num            NUMBER;
32123 l_tmp_amt                     NUMBER;
32124 l_acc_rev_natural_side_code   VARCHAR2(1);
32125 
32126 l_num_entries                 NUMBER;
32127 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32128 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32129 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32130 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32131 l_recog_line_1                NUMBER;
32132 l_recog_line_2                NUMBER;
32133 
32134 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32135 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32136 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32137 
32138 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32139 
32140 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32141 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32142 
32143 ---------------------------------------------------------------------------------------------------------------
32144 
32145 
32146 --
32150 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32147 -- bulk performance
32148 --
32149 l_balance_type_code           VARCHAR2(1);
32151 l_log_module                  VARCHAR2(240);
32152 
32153 --
32154 -- Upgrade strategy
32155 --
32156 l_actual_upg_option           VARCHAR2(1);
32157 l_enc_upg_option           VARCHAR2(1);
32158 
32159 --
32160 BEGIN
32161 --
32162 IF g_log_enabled THEN
32163       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
32164 END IF;
32165 --
32166 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32167 
32168       trace
32169          (p_msg      => 'BEGIN of AcctLineType_56'
32170          ,p_level    => C_LEVEL_PROCEDURE
32171          ,p_module   => l_log_module);
32172 
32173 END IF;
32174 --
32175 l_component_type             := 'AMB_JLT';
32176 l_component_code             := 'AP_QUANTITY_VARIANCE_PP_ENC_DR';
32177 l_component_type_code        := 'S';
32178 l_component_appl_id          :=  200;
32179 l_amb_context_code           := 'DEFAULT';
32180 l_entity_code                := 'AP_INVOICES';
32181 l_event_class_code           := 'PREPAYMENTS';
32182 l_event_type_code            := 'PREPAYMENTS_ALL';
32183 l_line_definition_owner_code := 'S';
32184 l_line_definition_code       := 'ENC_PREPAY_ALL';
32185 --
32186 l_balance_type_code          := 'E';
32187 l_segment                     := NULL;
32188 l_ccid                        := NULL;
32189 l_adr_transaction_coa_id      := NULL;
32190 l_adr_accounting_coa_id       := NULL;
32191 l_adr_flexfield_segment_code  := NULL;
32192 l_adr_flex_value_set_id       := NULL;
32193 l_adr_value_type_code         := NULL;
32194 l_adr_value_combination_id    := NULL;
32195 l_adr_value_segment_code      := NULL;
32196 
32197 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
32198 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
32199 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32200 l_budgetary_control_flag     := 'Y';
32201 
32202 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32203 l_bflow_applied_to_amt       := NULL; -- 5132302
32204 l_entered_amt_idx            := NULL;          -- 4262811
32205 l_accted_amt_idx             := NULL;          -- 4262811
32206 l_acc_rev_flag               := NULL;          -- 4262811
32207 l_accrual_line_num           := NULL;          -- 4262811
32208 l_tmp_amt                    := NULL;          -- 4262811
32209 --
32210  
32211 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32212     l_balance_type_code <> 'B' THEN
32213 IF NVL(p_source_15,'
32214 ') =  'ITEM' AND 
32215 p_source_16 IS NOT NULL AND 
32216 NVL(p_source_17,'
32217 ') =  'Y' AND 
32218 NVL(p_source_18,'
32219 ') <>  'Y'
32220  THEN 
32221 
32222    --
32223    XLA_AE_LINES_PKG.SetNewLine;
32224 
32225    p_balance_type_code          := l_balance_type_code;
32226    -- set the flag so later we will know whether the gain loss line needs to be created
32227    
32228    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32229      p_actual_flag :='A';
32230    END IF;
32231 
32232    --
32233    -- bulk performance
32234    --
32235    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32236                                       p_header_num   => 0); -- 4262811
32237    --
32238    -- set accounting line options
32239    --
32240    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32241            p_natural_side_code          => 'D'
32242          , p_gain_or_loss_flag          => 'N'
32243          , p_gl_transfer_mode_code      => 'S'
32244          , p_acct_entry_type_code       => 'E'
32245          , p_switch_side_flag           => 'Y'
32246          , p_merge_duplicate_code       => 'N'
32247          );
32248    --
32249    l_acc_rev_natural_side_code := 'C';  -- 4262811
32250    -- 
32251    --
32252    -- set accounting line type info
32253    --
32254    xla_ae_lines_pkg.SetAcctLineType
32255       (p_component_type             => l_component_type
32256       ,p_event_type_code            => l_event_type_code
32257       ,p_line_definition_owner_code => l_line_definition_owner_code
32258       ,p_line_definition_code       => l_line_definition_code
32259       ,p_accounting_line_code       => l_component_code
32260       ,p_accounting_line_type_code  => l_component_type_code
32261       ,p_accounting_line_appl_id    => l_component_appl_id
32262       ,p_amb_context_code           => l_amb_context_code
32263       ,p_entity_code                => l_entity_code
32264       ,p_event_class_code           => l_event_class_code);
32265    --
32266    -- set accounting class
32267    --
32268    xla_ae_lines_pkg.SetAcctClass(
32269            p_accounting_class_code  => 'QV'
32270          , p_ae_header_id           => l_ae_header_id
32271          );
32272 
32273    --
32274    -- set rounding class
32275    --
32276    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32277                       'QV';
32278 
32279    --
32280    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32281    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32282    --
32283    -- bulk performance
32284    --
32288       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32285    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32286 
32287    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32289 
32290    -- 4955764
32291    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32292       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32293 
32294    -- 4458381 Public Sector Enh
32295       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
32296    --
32297    -- set accounting attributes for the line type
32298    --
32299    l_entered_amt_idx := 23;
32300    l_accted_amt_idx  := 28;
32301    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32302    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32303    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
32304    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
32305    l_rec_acct_attrs.array_num_value(2)  := 
32306 xla_ae_sources_pkg.GetSystemSourceNum(
32307    p_source_code           => 'XLA_EVENT_APPL_ID'
32308  , p_source_type_code      => 'Y'
32309  , p_source_application_id =>  602
32310 );
32311    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
32312    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
32313    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
32314    l_rec_acct_attrs.array_char_value(4)  := 
32315 xla_ae_sources_pkg.GetSystemSourceChar(
32316    p_source_code           => 'XLA_ENTITY_CODE'
32317  , p_source_type_code      => 'Y'
32318  , p_source_application_id =>  602
32319 );
32320    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32321    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
32322    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32323    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
32324    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
32325    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
32326    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32327    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
32328    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
32329    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
32330    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
32331    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
32332    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32333    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
32334    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
32335    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
32336    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
32337    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
32338    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
32339    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
32340    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
32341    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
32342    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
32343    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
32344    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
32345    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
32346    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
32347    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
32348    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
32349    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
32350    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
32351    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
32352    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
32353    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
32354    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
32355    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
32356    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
32357    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
32358    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
32359    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
32360    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
32361    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
32362    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
32363    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
32364    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
32365    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
32366    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
32367    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
32368    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
32369    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
32370    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
32371    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
32372    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
32373    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
32374    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
32375    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
32379    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
32376    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
32377    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
32378    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
32380    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
32381    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
32382    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
32383    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
32384    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
32385    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
32386    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
32387    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
32388    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
32389    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
32390    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
32391    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
32392    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
32393    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
32394    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
32395    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
32396    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
32397    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
32398 
32399    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32400    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32401 
32402    ---------------------------------------------------------------------------------------------------------------
32403    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32404    ---------------------------------------------------------------------------------------------------------------
32405    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32406 
32407    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32408    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32409 
32410    IF xla_accounting_cache_pkg.GetValueChar
32411          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32412          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32413    AND l_bflow_method_code = 'PRIOR_ENTRY'
32414 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32415    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32416          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32417        )
32418    THEN
32419          xla_ae_lines_pkg.BflowUpgEntry
32420            (p_business_method_code    => l_bflow_method_code
32421            ,p_business_class_code     => l_bflow_class_code
32422            ,p_balance_type            => l_balance_type_code);
32423    ELSE
32424       NULL;
32425 -- No business flow processing for business flow method of NONE.
32426    END IF;
32427 
32428    --
32429    -- call analytical criteria
32430    --
32431    
32432    --
32433    -- call description
32434    --
32435    
32436 xla_ae_lines_pkg.SetLineDescription(
32437    p_ae_header_id => l_ae_header_id
32438   ,p_description  => Description_2 (
32439      p_application_id         => p_application_id
32440    , p_ae_header_id           => l_ae_header_id 
32441 , p_source_1 => p_source_1
32442    )
32443 );
32444 
32445 
32446    --
32447    -- call ADRs
32448    -- Bug 4922099
32449    --
32450    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32451         (NVL(l_actual_upg_option, 'N') = 'O') OR
32452         (NVL(l_enc_upg_option, 'N') = 'O')
32453       )
32454    THEN
32455    NULL;
32456    --
32457    --
32458    
32459   l_ccid := AcctDerRule_7(
32460            p_application_id           => p_application_id
32461          , p_ae_header_id             => l_ae_header_id 
32462 , p_source_11 => p_source_11
32463          , x_transaction_coa_id       => l_adr_transaction_coa_id
32464          , x_accounting_coa_id        => l_adr_accounting_coa_id
32465          , x_value_type_code          => l_adr_value_type_code
32466          , p_side                     => 'NA'
32467    );
32468 
32469    xla_ae_lines_pkg.set_ccid(
32470     p_code_combination_id          => l_ccid
32471   , p_value_type_code              => l_adr_value_type_code
32472   , p_transaction_coa_id           => l_adr_transaction_coa_id
32473   , p_accounting_coa_id            => l_adr_accounting_coa_id
32474   , p_adr_code                     => 'AP_INVOICE_DIST'
32475   , p_adr_type_code                => 'S'
32476   , p_component_type               => l_component_type
32477   , p_component_code               => l_component_code
32478   , p_component_type_code          => l_component_type_code
32479   , p_component_appl_id            => l_component_appl_id
32480   , p_amb_context_code             => l_amb_context_code
32481   , p_side                         => 'NA'
32482   );
32483 
32484 
32485    --
32486    --
32487    END IF;
32488    --
32489    -- Bug 4922099
32490    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32491           (NVL(l_enc_upg_option, 'N') = 'O')
32492         ) AND
32496       IF
32493         (l_bflow_method_code = 'PRIOR_ENTRY')
32494       )
32495    THEN
32497       --
32498       1 = 2
32499       --
32500       THEN
32501       xla_accounting_err_pkg.build_message
32502                                     (p_appli_s_name            => 'XLA'
32503                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32504                                     ,p_token_1                 => 'LINE_NUMBER'
32505                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32506                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32507                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32508                                                                              l_component_type
32509                                                                             ,l_component_code
32510                                                                             ,l_component_type_code
32511                                                                             ,l_component_appl_id
32512                                                                             ,l_amb_context_code
32513                                                                             ,l_entity_code
32514                                                                             ,l_event_class_code
32515                                                                            )
32516                                     ,p_token_3                 => 'OWNER'
32517                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32518                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32519                                                                           ,p_lookup_code    => l_component_type_code
32520                                                                          )
32521                                     ,p_token_4                 => 'PRODUCT_NAME'
32522                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32523                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32524                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32525                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32526                                     ,p_ae_header_id            =>  NULL
32527                                        );
32528 
32529         IF (C_LEVEL_ERROR>= g_log_level) THEN
32530                  trace
32531                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32532                       ,p_level    => C_LEVEL_ERROR
32533                       ,p_module   => l_log_module);
32534         END IF;
32535       END IF;
32536    END IF;
32537    --
32538    --
32539    ------------------------------------------------------------------------------------------------
32540    -- 4219869 Business Flow
32541    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32542    -- Prior Entry.  Currently, the following code is always generated.
32543    ------------------------------------------------------------------------------------------------
32544    XLA_AE_LINES_PKG.ValidateCurrentLine;
32545 
32546    ------------------------------------------------------------------------------------
32547    -- 4219869 Business Flow
32548    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32549    ------------------------------------------------------------------------------------
32550    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32551 
32552    ----------------------------------------------------------------------------------
32553    -- 4219869 Business Flow
32554    -- Update journal entry status -- Need to generate this within IF <condition>
32555    ----------------------------------------------------------------------------------
32556    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32557          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32558          ,p_balance_type_code => l_balance_type_code
32559          );
32560 
32561    -------------------------------------------------------------------------------------------
32562    -- 4262811 - Generate the Accrual Reversal lines
32563    -------------------------------------------------------------------------------------------
32564    BEGIN
32565       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32566                               (g_array_event(p_event_id).array_value_num('header_index'));
32567       IF l_acc_rev_flag IS NULL THEN
32568          l_acc_rev_flag := 'N';
32569       END IF;
32570    EXCEPTION
32571       WHEN OTHERS THEN
32572          l_acc_rev_flag := 'N';
32573    END;
32574    --
32575    IF (l_acc_rev_flag = 'Y') THEN
32576 
32577        -- 4645092  ------------------------------------------------------------------------------
32578        -- To allow MPA report to determine if it should generate report process
32579        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32580        ------------------------------------------------------------------------------------------
32581 
32582        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32583        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32587    --
32584    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32585    -- call ADRs
32586    -- Bug 4922099
32588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32589         (NVL(l_actual_upg_option, 'N') = 'O') OR
32590         (NVL(l_enc_upg_option, 'N') = 'O')
32591       )
32592    THEN
32593    NULL;
32594    --
32595    --
32596    
32597   l_ccid := AcctDerRule_7(
32598            p_application_id           => p_application_id
32599          , p_ae_header_id             => l_ae_header_id 
32600 , p_source_11 => p_source_11
32601          , x_transaction_coa_id       => l_adr_transaction_coa_id
32602          , x_accounting_coa_id        => l_adr_accounting_coa_id
32603          , x_value_type_code          => l_adr_value_type_code
32604          , p_side                     => 'NA'
32605    );
32606 
32607    xla_ae_lines_pkg.set_ccid(
32608     p_code_combination_id          => l_ccid
32609   , p_value_type_code              => l_adr_value_type_code
32610   , p_transaction_coa_id           => l_adr_transaction_coa_id
32611   , p_accounting_coa_id            => l_adr_accounting_coa_id
32612   , p_adr_code                     => 'AP_INVOICE_DIST'
32613   , p_adr_type_code                => 'S'
32614   , p_component_type               => l_component_type
32615   , p_component_code               => l_component_code
32616   , p_component_type_code          => l_component_type_code
32617   , p_component_appl_id            => l_component_appl_id
32618   , p_amb_context_code             => l_amb_context_code
32619   , p_side                         => 'NA'
32620   );
32621 
32622 
32623    --
32624    --
32625    END IF;
32626 
32627        --
32628        -- Update the line information that should be overwritten
32629        --
32630        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32631                                          p_header_num   => 1);
32632        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32633 
32634        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32635 
32636        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32637           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32638        END IF;
32639 
32640       --
32641       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32642       --
32643       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32644           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32645       ELSE
32646           ---------------------------------------------------------------------------------------------------
32647           -- 4262811a Switch Sign
32648           ---------------------------------------------------------------------------------------------------
32649           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32650           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32651                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32652           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32653                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32654           -- 5132302
32655           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32656                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32657 
32658       END IF;
32659 
32660       -- 4955764
32661       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32662       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32663 
32664 
32665       XLA_AE_LINES_PKG.ValidateCurrentLine;
32666       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32667 
32668       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32669                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32670                ,p_balance_type_code => l_balance_type_code);
32671 
32672    END IF;
32673 
32674    -----------------------------------------------------------------------------------------
32675    -- 4262811 Multiperiod Accounting
32676    -----------------------------------------------------------------------------------------
32677      -- No MPA option is assigned.
32678 
32679 
32680 END IF;
32681 END IF;
32682 --
32683 
32684 --
32685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32686    trace
32687       (p_msg      => 'END of AcctLineType_56'
32688       ,p_level    => C_LEVEL_PROCEDURE
32689       ,p_module   => l_log_module);
32690 END IF;
32691 --
32692 EXCEPTION
32693   WHEN xla_exceptions_pkg.application_exception THEN
32694       RAISE;
32695   WHEN OTHERS THEN
32696        xla_exceptions_pkg.raise_message
32697            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_56');
32698 END AcctLineType_56;
32699 --
32700 
32701 ---------------------------------------
32702 --
32703 -- PRIVATE FUNCTION
32704 --         AcctLineType_57
32705 --
32706 ---------------------------------------
32710  ,p_calculate_acctd_flag  IN VARCHAR2
32707 PROCEDURE AcctLineType_57 (
32708   p_application_id        IN NUMBER
32709  ,p_event_id              IN NUMBER
32711  ,p_calculate_g_l_flag    IN VARCHAR2
32712  ,p_actual_flag           IN OUT VARCHAR2
32713  ,p_balance_type_code     OUT VARCHAR2
32714  ,p_gain_or_loss_ref      OUT VARCHAR2
32715  
32716 --Invoice Distribution Description
32717  , p_source_1            IN VARCHAR2
32718 --Invoice Distribution Account
32719  , p_source_11            IN NUMBER
32720 --Invoice Distribution Type
32721  , p_source_15            IN VARCHAR2
32722  , p_source_15_meaning    IN VARCHAR2
32723 --Purchasing Encumbrance Option
32724  , p_source_17            IN VARCHAR2
32725  , p_source_17_meaning    IN VARCHAR2
32726 --Accounting Reversal Indicator
32727  , p_source_19            IN VARCHAR2
32728 --Distribution Link Type
32729  , p_source_21            IN VARCHAR2
32730 --Allocation to Main Distribution Identifier
32731  , p_source_23            IN NUMBER
32732 --Invoice Identifier
32733  , p_source_24            IN NUMBER
32734 --Business Flow Accounts Payable Application Identifier
32735  , p_source_25            IN NUMBER
32736 --Business Flow Invoice Distribution Type
32737  , p_source_26            IN VARCHAR2
32738 --Business Flow Invoice Entity Code
32739  , p_source_27            IN VARCHAR2
32740 --Business Flow Invoice Distribution Identifier
32741  , p_source_28            IN NUMBER
32742 --Business Flow Invoice Identifier
32743  , p_source_29            IN NUMBER
32744 --Invoice Distribution Identifier
32745  , p_source_30            IN NUMBER
32746 --Payables Encumbrance Upgrade Credit Account
32747  , p_source_31            IN NUMBER
32748 --Payables Encumbrance Upgrade Credit Amount
32749  , p_source_32            IN NUMBER
32750 --Invoice Currency Code
32751  , p_source_33            IN VARCHAR2
32752 --Payables Encumbrance Upgrade Credit Base Amount
32753  , p_source_34            IN NUMBER
32754 --Payables Encumbrance Upgrade Debit Account
32755  , p_source_35            IN NUMBER
32756 --Payables Encumbrance Upgrade Debit Amount
32757  , p_source_36            IN NUMBER
32758 --Payables Encumbrance Upgrade Debit Base Amount
32759  , p_source_37            IN NUMBER
32760 --Payables Encumbrance Upgrade Option
32761  , p_source_38            IN VARCHAR2
32762 --Invoice Exchange Date
32763  , p_source_39            IN DATE
32764 --Invoice Exchange Rate
32765  , p_source_40            IN NUMBER
32766 --Invoice Exchange Rate Type
32767  , p_source_41            IN VARCHAR2
32768 --Deferred Accounting End Date
32769  , p_source_43            IN DATE
32770 --Deferred Accounting Option
32771  , p_source_44            IN VARCHAR2
32772 --Deferred Accounting Start Date
32773  , p_source_45            IN DATE
32774 --Override Accounted Amount Indicator
32775  , p_source_46            IN VARCHAR2
32776  , p_source_46_meaning    IN VARCHAR2
32777 --Invoice Supplier Identifier
32778  , p_source_47            IN NUMBER
32779 --Invoice Supplier Site Identifier
32780  , p_source_48            IN NUMBER
32781 --Third Party Type
32782  , p_source_49            IN VARCHAR2
32783 --Parent Reversal Identifier
32784  , p_source_50            IN NUMBER
32785 --Invoice Distribution Statistical Amount
32786  , p_source_51            IN NUMBER
32787 --Invoice Distribution Tax Line Identifier
32788  , p_source_52            IN NUMBER
32789 --Invoice Distribution Tax Distribution Identifier from Tax
32790  , p_source_53            IN NUMBER
32791 --Invoice Distribution Summary Tax Line Identifier
32792  , p_source_54            IN NUMBER
32793 --Payables Upgrade Credit Encumbrance Type Identifier
32794  , p_source_55            IN NUMBER
32795 --Payables Upgrade Debit Encumbrance Type Identifier
32796  , p_source_56            IN NUMBER
32797 --Self-Assessed Tax Flag
32798  , p_source_59            IN VARCHAR2
32799  , p_source_59_meaning    IN VARCHAR2
32800 --Invoice Distribution Encumbrance Amount
32801  , p_source_65            IN NUMBER
32802 --Invoice Distribution Encumbrance Ledger Amount
32803  , p_source_66            IN NUMBER
32804 )
32805 IS
32806 
32807 l_component_type              VARCHAR2(80);
32808 l_component_code              VARCHAR2(30);
32809 l_component_type_code         VARCHAR2(1);
32810 l_component_appl_id           INTEGER;
32811 l_amb_context_code            VARCHAR2(30);
32812 l_entity_code                 VARCHAR2(30);
32813 l_event_class_code            VARCHAR2(30);
32814 l_ae_header_id                NUMBER;
32815 l_event_type_code             VARCHAR2(30);
32816 l_line_definition_code        VARCHAR2(30);
32817 l_line_definition_owner_code  VARCHAR2(1);
32818 --
32819 -- adr variables
32820 l_segment                     VARCHAR2(30);
32821 l_ccid                        NUMBER;
32822 l_adr_transaction_coa_id      NUMBER;
32823 l_adr_accounting_coa_id       NUMBER;
32824 l_adr_flexfield_segment_code  VARCHAR2(30);
32825 l_adr_flex_value_set_id       NUMBER;
32826 l_adr_value_type_code         VARCHAR2(30);
32827 l_adr_value_combination_id    NUMBER;
32828 l_adr_value_segment_code      VARCHAR2(30);
32829 
32830 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32831 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32832 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32833 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32834 
32838 l_acc_rev_flag                VARCHAR2(1);
32835 -- 4262811 Variables ------------------------------------------------------------------------------------------
32836 l_entered_amt_idx             NUMBER;
32837 l_accted_amt_idx              NUMBER;
32839 l_accrual_line_num            NUMBER;
32840 l_tmp_amt                     NUMBER;
32841 l_acc_rev_natural_side_code   VARCHAR2(1);
32842 
32843 l_num_entries                 NUMBER;
32844 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32845 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32846 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32847 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32848 l_recog_line_1                NUMBER;
32849 l_recog_line_2                NUMBER;
32850 
32851 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32852 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32853 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32854 
32855 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32856 
32857 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32858 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32859 
32860 ---------------------------------------------------------------------------------------------------------------
32861 
32862 
32863 --
32864 -- bulk performance
32865 --
32866 l_balance_type_code           VARCHAR2(1);
32867 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32868 l_log_module                  VARCHAR2(240);
32869 
32870 --
32871 -- Upgrade strategy
32872 --
32873 l_actual_upg_option           VARCHAR2(1);
32874 l_enc_upg_option           VARCHAR2(1);
32875 
32876 --
32877 BEGIN
32878 --
32879 IF g_log_enabled THEN
32880       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
32881 END IF;
32882 --
32883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32884 
32885       trace
32886          (p_msg      => 'BEGIN of AcctLineType_57'
32887          ,p_level    => C_LEVEL_PROCEDURE
32888          ,p_module   => l_log_module);
32889 
32890 END IF;
32891 --
32892 l_component_type             := 'AMB_JLT';
32893 l_component_code             := 'AP_RECOV_TAX_CM_ENC_DR';
32894 l_component_type_code        := 'S';
32895 l_component_appl_id          :=  200;
32896 l_amb_context_code           := 'DEFAULT';
32897 l_entity_code                := 'AP_INVOICES';
32898 l_event_class_code           := 'CREDIT MEMOS';
32899 l_event_type_code            := 'CREDIT MEMOS_ALL';
32900 l_line_definition_owner_code := 'S';
32901 l_line_definition_code       := 'ENC_CM_ALL';
32902 --
32903 l_balance_type_code          := 'E';
32904 l_segment                     := NULL;
32905 l_ccid                        := NULL;
32906 l_adr_transaction_coa_id      := NULL;
32907 l_adr_accounting_coa_id       := NULL;
32908 l_adr_flexfield_segment_code  := NULL;
32909 l_adr_flex_value_set_id       := NULL;
32910 l_adr_value_type_code         := NULL;
32911 l_adr_value_combination_id    := NULL;
32912 l_adr_value_segment_code      := NULL;
32913 
32914 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
32915 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
32916 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32917 l_budgetary_control_flag     := 'Y';
32918 
32919 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32920 l_bflow_applied_to_amt       := NULL; -- 5132302
32921 l_entered_amt_idx            := NULL;          -- 4262811
32922 l_accted_amt_idx             := NULL;          -- 4262811
32923 l_acc_rev_flag               := NULL;          -- 4262811
32924 l_accrual_line_num           := NULL;          -- 4262811
32925 l_tmp_amt                    := NULL;          -- 4262811
32926 --
32927  
32928 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32929     l_balance_type_code <> 'B' THEN
32930 IF NVL(p_source_15,'
32931 ') =  'REC_TAX' AND 
32932 NVL(p_source_59,'
32933 ') <>  'Y' AND 
32934 NVL(p_source_17,'
32935 ') =  'Y'
32936  THEN 
32937 
32938    --
32939    XLA_AE_LINES_PKG.SetNewLine;
32940 
32941    p_balance_type_code          := l_balance_type_code;
32942    -- set the flag so later we will know whether the gain loss line needs to be created
32943    
32944    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32945      p_actual_flag :='A';
32946    END IF;
32947 
32948    --
32949    -- bulk performance
32950    --
32951    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32952                                       p_header_num   => 0); -- 4262811
32953    --
32954    -- set accounting line options
32955    --
32956    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32957            p_natural_side_code          => 'D'
32958          , p_gain_or_loss_flag          => 'N'
32959          , p_gl_transfer_mode_code      => 'S'
32960          , p_acct_entry_type_code       => 'E'
32961          , p_switch_side_flag           => 'Y'
32962          , p_merge_duplicate_code       => 'N'
32963          );
32964    --
32965    l_acc_rev_natural_side_code := 'C';  -- 4262811
32966    -- 
32967    --
32968    -- set accounting line type info
32969    --
32973       ,p_line_definition_owner_code => l_line_definition_owner_code
32970    xla_ae_lines_pkg.SetAcctLineType
32971       (p_component_type             => l_component_type
32972       ,p_event_type_code            => l_event_type_code
32974       ,p_line_definition_code       => l_line_definition_code
32975       ,p_accounting_line_code       => l_component_code
32976       ,p_accounting_line_type_code  => l_component_type_code
32977       ,p_accounting_line_appl_id    => l_component_appl_id
32978       ,p_amb_context_code           => l_amb_context_code
32979       ,p_entity_code                => l_entity_code
32980       ,p_event_class_code           => l_event_class_code);
32981    --
32982    -- set accounting class
32983    --
32984    xla_ae_lines_pkg.SetAcctClass(
32985            p_accounting_class_code  => 'RTAX'
32986          , p_ae_header_id           => l_ae_header_id
32987          );
32988 
32989    --
32990    -- set rounding class
32991    --
32992    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32993                       'RTAX';
32994 
32995    --
32996    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32997    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32998    --
32999    -- bulk performance
33000    --
33001    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33002 
33003    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33004       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33005 
33006    -- 4955764
33007    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33008       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33009 
33010    -- 4458381 Public Sector Enh
33011       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
33012    --
33013    -- set accounting attributes for the line type
33014    --
33015    l_entered_amt_idx := 23;
33016    l_accted_amt_idx  := 28;
33017    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33018    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33019    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
33020    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33021    l_rec_acct_attrs.array_num_value(2)  := 
33022 xla_ae_sources_pkg.GetSystemSourceNum(
33023    p_source_code           => 'XLA_EVENT_APPL_ID'
33024  , p_source_type_code      => 'Y'
33025  , p_source_application_id =>  602
33026 );
33027    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33028    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
33029    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33030    l_rec_acct_attrs.array_char_value(4)  := 
33031 xla_ae_sources_pkg.GetSystemSourceChar(
33032    p_source_code           => 'XLA_ENTITY_CODE'
33033  , p_source_type_code      => 'Y'
33034  , p_source_application_id =>  602
33035 );
33036    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33037    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
33038    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33039    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
33040    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
33041    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
33042    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33043    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
33044    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
33045    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
33046    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
33047    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
33048    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33049    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
33050    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
33051    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
33052    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
33053    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
33054    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
33055    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
33056    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
33057    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
33058    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
33059    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
33060    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
33061    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
33062    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
33063    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
33064    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
33065    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
33066    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
33067    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
33068    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
33069    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
33073    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
33070    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
33071    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
33072    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
33074    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
33075    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
33076    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
33077    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
33078    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
33079    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
33080    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
33081    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
33082    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
33083    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
33084    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
33085    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
33086    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
33087    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
33088    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
33089    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
33090    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
33091    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
33092    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
33093    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
33094    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
33095    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
33096    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
33097    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
33098    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
33099    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
33100    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
33101    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
33102    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
33103    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
33104    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
33105    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
33106    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
33107    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
33108    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
33109    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
33110    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
33111    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
33112    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
33113    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
33114 
33115    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33116    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33117 
33118    ---------------------------------------------------------------------------------------------------------------
33119    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33120    ---------------------------------------------------------------------------------------------------------------
33121    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33122 
33123    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33124    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33125 
33126    IF xla_accounting_cache_pkg.GetValueChar
33127          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33128          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33129    AND l_bflow_method_code = 'PRIOR_ENTRY'
33130 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33131    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33132          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33133        )
33134    THEN
33135          xla_ae_lines_pkg.BflowUpgEntry
33136            (p_business_method_code    => l_bflow_method_code
33137            ,p_business_class_code     => l_bflow_class_code
33138            ,p_balance_type            => l_balance_type_code);
33139    ELSE
33140       NULL;
33141 -- No business flow processing for business flow method of NONE.
33142    END IF;
33143 
33144    --
33145    -- call analytical criteria
33146    --
33147    
33148    --
33149    -- call description
33150    --
33151    
33152 xla_ae_lines_pkg.SetLineDescription(
33153    p_ae_header_id => l_ae_header_id
33154   ,p_description  => Description_2 (
33155      p_application_id         => p_application_id
33156    , p_ae_header_id           => l_ae_header_id 
33157 , p_source_1 => p_source_1
33158    )
33159 );
33160 
33161 
33162    --
33163    -- call ADRs
33164    -- Bug 4922099
33165    --
33166    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33167         (NVL(l_actual_upg_option, 'N') = 'O') OR
33168         (NVL(l_enc_upg_option, 'N') = 'O')
33169       )
33170    THEN
33171    NULL;
33172    --
33173    --
33174    
33175   l_ccid := AcctDerRule_7(
33179          , x_transaction_coa_id       => l_adr_transaction_coa_id
33176            p_application_id           => p_application_id
33177          , p_ae_header_id             => l_ae_header_id 
33178 , p_source_11 => p_source_11
33180          , x_accounting_coa_id        => l_adr_accounting_coa_id
33181          , x_value_type_code          => l_adr_value_type_code
33182          , p_side                     => 'NA'
33183    );
33184 
33185    xla_ae_lines_pkg.set_ccid(
33186     p_code_combination_id          => l_ccid
33187   , p_value_type_code              => l_adr_value_type_code
33188   , p_transaction_coa_id           => l_adr_transaction_coa_id
33189   , p_accounting_coa_id            => l_adr_accounting_coa_id
33190   , p_adr_code                     => 'AP_INVOICE_DIST'
33191   , p_adr_type_code                => 'S'
33192   , p_component_type               => l_component_type
33193   , p_component_code               => l_component_code
33194   , p_component_type_code          => l_component_type_code
33195   , p_component_appl_id            => l_component_appl_id
33196   , p_amb_context_code             => l_amb_context_code
33197   , p_side                         => 'NA'
33198   );
33199 
33200 
33201    --
33202    --
33203    END IF;
33204    --
33205    -- Bug 4922099
33206    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33207           (NVL(l_enc_upg_option, 'N') = 'O')
33208         ) AND
33209         (l_bflow_method_code = 'PRIOR_ENTRY')
33210       )
33211    THEN
33212       IF
33213       --
33214       1 = 2
33215       --
33216       THEN
33217       xla_accounting_err_pkg.build_message
33218                                     (p_appli_s_name            => 'XLA'
33219                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33220                                     ,p_token_1                 => 'LINE_NUMBER'
33221                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33222                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33223                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33224                                                                              l_component_type
33225                                                                             ,l_component_code
33226                                                                             ,l_component_type_code
33227                                                                             ,l_component_appl_id
33228                                                                             ,l_amb_context_code
33229                                                                             ,l_entity_code
33230                                                                             ,l_event_class_code
33231                                                                            )
33232                                     ,p_token_3                 => 'OWNER'
33233                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33234                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33235                                                                           ,p_lookup_code    => l_component_type_code
33236                                                                          )
33237                                     ,p_token_4                 => 'PRODUCT_NAME'
33238                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33239                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33240                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33241                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33242                                     ,p_ae_header_id            =>  NULL
33243                                        );
33244 
33245         IF (C_LEVEL_ERROR>= g_log_level) THEN
33246                  trace
33247                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33248                       ,p_level    => C_LEVEL_ERROR
33249                       ,p_module   => l_log_module);
33250         END IF;
33251       END IF;
33252    END IF;
33253    --
33254    --
33255    ------------------------------------------------------------------------------------------------
33256    -- 4219869 Business Flow
33257    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33258    -- Prior Entry.  Currently, the following code is always generated.
33259    ------------------------------------------------------------------------------------------------
33260    XLA_AE_LINES_PKG.ValidateCurrentLine;
33261 
33262    ------------------------------------------------------------------------------------
33263    -- 4219869 Business Flow
33264    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33265    ------------------------------------------------------------------------------------
33266    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33267 
33268    ----------------------------------------------------------------------------------
33269    -- 4219869 Business Flow
33270    -- Update journal entry status -- Need to generate this within IF <condition>
33274          ,p_balance_type_code => l_balance_type_code
33271    ----------------------------------------------------------------------------------
33272    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33273          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33275          );
33276 
33277    -------------------------------------------------------------------------------------------
33278    -- 4262811 - Generate the Accrual Reversal lines
33279    -------------------------------------------------------------------------------------------
33280    BEGIN
33281       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33282                               (g_array_event(p_event_id).array_value_num('header_index'));
33283       IF l_acc_rev_flag IS NULL THEN
33284          l_acc_rev_flag := 'N';
33285       END IF;
33286    EXCEPTION
33287       WHEN OTHERS THEN
33288          l_acc_rev_flag := 'N';
33289    END;
33290    --
33291    IF (l_acc_rev_flag = 'Y') THEN
33292 
33293        -- 4645092  ------------------------------------------------------------------------------
33294        -- To allow MPA report to determine if it should generate report process
33295        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33296        ------------------------------------------------------------------------------------------
33297 
33298        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33299        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33300    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33301    -- call ADRs
33302    -- Bug 4922099
33303    --
33304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33305         (NVL(l_actual_upg_option, 'N') = 'O') OR
33306         (NVL(l_enc_upg_option, 'N') = 'O')
33307       )
33308    THEN
33309    NULL;
33310    --
33311    --
33312    
33313   l_ccid := AcctDerRule_7(
33314            p_application_id           => p_application_id
33315          , p_ae_header_id             => l_ae_header_id 
33316 , p_source_11 => p_source_11
33317          , x_transaction_coa_id       => l_adr_transaction_coa_id
33318          , x_accounting_coa_id        => l_adr_accounting_coa_id
33319          , x_value_type_code          => l_adr_value_type_code
33320          , p_side                     => 'NA'
33321    );
33322 
33323    xla_ae_lines_pkg.set_ccid(
33324     p_code_combination_id          => l_ccid
33325   , p_value_type_code              => l_adr_value_type_code
33326   , p_transaction_coa_id           => l_adr_transaction_coa_id
33327   , p_accounting_coa_id            => l_adr_accounting_coa_id
33328   , p_adr_code                     => 'AP_INVOICE_DIST'
33329   , p_adr_type_code                => 'S'
33330   , p_component_type               => l_component_type
33331   , p_component_code               => l_component_code
33332   , p_component_type_code          => l_component_type_code
33333   , p_component_appl_id            => l_component_appl_id
33334   , p_amb_context_code             => l_amb_context_code
33335   , p_side                         => 'NA'
33336   );
33337 
33338 
33339    --
33340    --
33341    END IF;
33342 
33343        --
33344        -- Update the line information that should be overwritten
33345        --
33346        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33347                                          p_header_num   => 1);
33348        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33349 
33350        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33351 
33352        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33353           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33354        END IF;
33355 
33356       --
33357       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33358       --
33359       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33360           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33361       ELSE
33362           ---------------------------------------------------------------------------------------------------
33363           -- 4262811a Switch Sign
33364           ---------------------------------------------------------------------------------------------------
33365           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33366           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33367                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33368           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33369                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33370           -- 5132302
33371           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33372                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33373 
33374       END IF;
33375 
33376       -- 4955764
33377       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33378       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33379 
33380 
33381       XLA_AE_LINES_PKG.ValidateCurrentLine;
33385                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33382       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33383 
33384       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33386                ,p_balance_type_code => l_balance_type_code);
33387 
33388    END IF;
33389 
33390    -----------------------------------------------------------------------------------------
33391    -- 4262811 Multiperiod Accounting
33392    -----------------------------------------------------------------------------------------
33393      -- No MPA option is assigned.
33394 
33395 
33396 END IF;
33397 END IF;
33398 --
33399 
33400 --
33401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33402    trace
33403       (p_msg      => 'END of AcctLineType_57'
33404       ,p_level    => C_LEVEL_PROCEDURE
33405       ,p_module   => l_log_module);
33406 END IF;
33407 --
33408 EXCEPTION
33409   WHEN xla_exceptions_pkg.application_exception THEN
33410       RAISE;
33411   WHEN OTHERS THEN
33412        xla_exceptions_pkg.raise_message
33413            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_57');
33414 END AcctLineType_57;
33415 --
33416 
33417 ---------------------------------------
33418 --
33419 -- PRIVATE FUNCTION
33420 --         AcctLineType_58
33421 --
33422 ---------------------------------------
33423 PROCEDURE AcctLineType_58 (
33424   p_application_id        IN NUMBER
33425  ,p_event_id              IN NUMBER
33426  ,p_calculate_acctd_flag  IN VARCHAR2
33427  ,p_calculate_g_l_flag    IN VARCHAR2
33428  ,p_actual_flag           IN OUT VARCHAR2
33429  ,p_balance_type_code     OUT VARCHAR2
33430  ,p_gain_or_loss_ref      OUT VARCHAR2
33431  
33432 --Invoice Distribution Description
33433  , p_source_1            IN VARCHAR2
33434 --Invoice Distribution Account
33435  , p_source_11            IN NUMBER
33436 --Invoice Distribution Type
33437  , p_source_15            IN VARCHAR2
33438  , p_source_15_meaning    IN VARCHAR2
33439 --Purchasing Encumbrance Option
33440  , p_source_17            IN VARCHAR2
33441  , p_source_17_meaning    IN VARCHAR2
33442 --Accounting Reversal Indicator
33443  , p_source_19            IN VARCHAR2
33444 --Distribution Link Type
33445  , p_source_21            IN VARCHAR2
33446 --Allocation to Main Distribution Identifier
33447  , p_source_23            IN NUMBER
33448 --Invoice Identifier
33449  , p_source_24            IN NUMBER
33450 --Business Flow Accounts Payable Application Identifier
33451  , p_source_25            IN NUMBER
33452 --Business Flow Invoice Distribution Type
33453  , p_source_26            IN VARCHAR2
33454 --Business Flow Invoice Entity Code
33455  , p_source_27            IN VARCHAR2
33456 --Business Flow Invoice Distribution Identifier
33457  , p_source_28            IN NUMBER
33458 --Business Flow Invoice Identifier
33459  , p_source_29            IN NUMBER
33460 --Invoice Distribution Identifier
33461  , p_source_30            IN NUMBER
33462 --Payables Encumbrance Upgrade Credit Account
33463  , p_source_31            IN NUMBER
33464 --Payables Encumbrance Upgrade Credit Amount
33465  , p_source_32            IN NUMBER
33466 --Invoice Currency Code
33467  , p_source_33            IN VARCHAR2
33468 --Payables Encumbrance Upgrade Credit Base Amount
33469  , p_source_34            IN NUMBER
33470 --Payables Encumbrance Upgrade Debit Account
33471  , p_source_35            IN NUMBER
33472 --Payables Encumbrance Upgrade Debit Amount
33473  , p_source_36            IN NUMBER
33474 --Payables Encumbrance Upgrade Debit Base Amount
33475  , p_source_37            IN NUMBER
33476 --Payables Encumbrance Upgrade Option
33477  , p_source_38            IN VARCHAR2
33478 --Invoice Exchange Date
33479  , p_source_39            IN DATE
33480 --Invoice Exchange Rate
33481  , p_source_40            IN NUMBER
33482 --Invoice Exchange Rate Type
33483  , p_source_41            IN VARCHAR2
33484 --Deferred Accounting End Date
33485  , p_source_43            IN DATE
33486 --Deferred Accounting Option
33487  , p_source_44            IN VARCHAR2
33488 --Deferred Accounting Start Date
33489  , p_source_45            IN DATE
33490 --Override Accounted Amount Indicator
33491  , p_source_46            IN VARCHAR2
33492  , p_source_46_meaning    IN VARCHAR2
33493 --Invoice Supplier Identifier
33494  , p_source_47            IN NUMBER
33495 --Invoice Supplier Site Identifier
33496  , p_source_48            IN NUMBER
33497 --Third Party Type
33498  , p_source_49            IN VARCHAR2
33499 --Parent Reversal Identifier
33500  , p_source_50            IN NUMBER
33501 --Invoice Distribution Tax Line Identifier
33502  , p_source_52            IN NUMBER
33503 --Invoice Distribution Tax Distribution Identifier from Tax
33504  , p_source_53            IN NUMBER
33505 --Invoice Distribution Summary Tax Line Identifier
33506  , p_source_54            IN NUMBER
33507 --Payables Upgrade Credit Encumbrance Type Identifier
33508  , p_source_55            IN NUMBER
33509 --Payables Upgrade Debit Encumbrance Type Identifier
33510  , p_source_56            IN NUMBER
33511 --Self-Assessed Tax Flag
33512  , p_source_59            IN VARCHAR2
33513  , p_source_59_meaning    IN VARCHAR2
33514 --Invoice Distribution Encumbrance Amount
33515  , p_source_65            IN NUMBER
33516 --Invoice Distribution Encumbrance Ledger Amount
33517  , p_source_66            IN NUMBER
33518 )
33519 IS
33523 l_component_type_code         VARCHAR2(1);
33520 
33521 l_component_type              VARCHAR2(80);
33522 l_component_code              VARCHAR2(30);
33524 l_component_appl_id           INTEGER;
33525 l_amb_context_code            VARCHAR2(30);
33526 l_entity_code                 VARCHAR2(30);
33527 l_event_class_code            VARCHAR2(30);
33528 l_ae_header_id                NUMBER;
33529 l_event_type_code             VARCHAR2(30);
33530 l_line_definition_code        VARCHAR2(30);
33531 l_line_definition_owner_code  VARCHAR2(1);
33532 --
33533 -- adr variables
33534 l_segment                     VARCHAR2(30);
33535 l_ccid                        NUMBER;
33536 l_adr_transaction_coa_id      NUMBER;
33537 l_adr_accounting_coa_id       NUMBER;
33538 l_adr_flexfield_segment_code  VARCHAR2(30);
33539 l_adr_flex_value_set_id       NUMBER;
33540 l_adr_value_type_code         VARCHAR2(30);
33541 l_adr_value_combination_id    NUMBER;
33542 l_adr_value_segment_code      VARCHAR2(30);
33543 
33544 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33545 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33546 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33547 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33548 
33549 -- 4262811 Variables ------------------------------------------------------------------------------------------
33550 l_entered_amt_idx             NUMBER;
33551 l_accted_amt_idx              NUMBER;
33552 l_acc_rev_flag                VARCHAR2(1);
33553 l_accrual_line_num            NUMBER;
33554 l_tmp_amt                     NUMBER;
33555 l_acc_rev_natural_side_code   VARCHAR2(1);
33556 
33557 l_num_entries                 NUMBER;
33558 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33559 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33560 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33561 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33562 l_recog_line_1                NUMBER;
33563 l_recog_line_2                NUMBER;
33564 
33565 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33566 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33567 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33568 
33569 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33570 
33571 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33572 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33573 
33574 ---------------------------------------------------------------------------------------------------------------
33575 
33576 
33577 --
33578 -- bulk performance
33579 --
33580 l_balance_type_code           VARCHAR2(1);
33581 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33582 l_log_module                  VARCHAR2(240);
33583 
33584 --
33585 -- Upgrade strategy
33586 --
33587 l_actual_upg_option           VARCHAR2(1);
33588 l_enc_upg_option           VARCHAR2(1);
33589 
33590 --
33591 BEGIN
33592 --
33593 IF g_log_enabled THEN
33594       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
33595 END IF;
33596 --
33597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33598 
33599       trace
33600          (p_msg      => 'BEGIN of AcctLineType_58'
33601          ,p_level    => C_LEVEL_PROCEDURE
33602          ,p_module   => l_log_module);
33603 
33604 END IF;
33605 --
33606 l_component_type             := 'AMB_JLT';
33607 l_component_code             := 'AP_RECOV_TAX_DM_ENC_DR';
33608 l_component_type_code        := 'S';
33609 l_component_appl_id          :=  200;
33610 l_amb_context_code           := 'DEFAULT';
33611 l_entity_code                := 'AP_INVOICES';
33612 l_event_class_code           := 'DEBIT MEMOS';
33613 l_event_type_code            := 'DEBIT MEMOS_ALL';
33614 l_line_definition_owner_code := 'S';
33615 l_line_definition_code       := 'ENC_DM_ALL';
33616 --
33617 l_balance_type_code          := 'E';
33618 l_segment                     := NULL;
33619 l_ccid                        := NULL;
33620 l_adr_transaction_coa_id      := NULL;
33621 l_adr_accounting_coa_id       := NULL;
33622 l_adr_flexfield_segment_code  := NULL;
33623 l_adr_flex_value_set_id       := NULL;
33624 l_adr_value_type_code         := NULL;
33625 l_adr_value_combination_id    := NULL;
33626 l_adr_value_segment_code      := NULL;
33627 
33628 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
33629 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
33630 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33631 l_budgetary_control_flag     := 'Y';
33632 
33633 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33634 l_bflow_applied_to_amt       := NULL; -- 5132302
33635 l_entered_amt_idx            := NULL;          -- 4262811
33636 l_accted_amt_idx             := NULL;          -- 4262811
33637 l_acc_rev_flag               := NULL;          -- 4262811
33638 l_accrual_line_num           := NULL;          -- 4262811
33639 l_tmp_amt                    := NULL;          -- 4262811
33640 --
33641  
33642 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33643     l_balance_type_code <> 'B' THEN
33644 IF NVL(p_source_15,'
33645 ') =  'REC_TAX' AND 
33646 NVL(p_source_59,'
33647 ') <>  'Y' AND 
33648 NVL(p_source_17,'
33649 ') =  'Y'
33653    XLA_AE_LINES_PKG.SetNewLine;
33650  THEN 
33651 
33652    --
33654 
33655    p_balance_type_code          := l_balance_type_code;
33656    -- set the flag so later we will know whether the gain loss line needs to be created
33657    
33658    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33659      p_actual_flag :='A';
33660    END IF;
33661 
33662    --
33663    -- bulk performance
33664    --
33665    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33666                                       p_header_num   => 0); -- 4262811
33667    --
33668    -- set accounting line options
33669    --
33670    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33671            p_natural_side_code          => 'D'
33672          , p_gain_or_loss_flag          => 'N'
33673          , p_gl_transfer_mode_code      => 'S'
33674          , p_acct_entry_type_code       => 'E'
33675          , p_switch_side_flag           => 'Y'
33676          , p_merge_duplicate_code       => 'N'
33677          );
33678    --
33679    l_acc_rev_natural_side_code := 'C';  -- 4262811
33680    -- 
33681    --
33682    -- set accounting line type info
33683    --
33684    xla_ae_lines_pkg.SetAcctLineType
33685       (p_component_type             => l_component_type
33686       ,p_event_type_code            => l_event_type_code
33687       ,p_line_definition_owner_code => l_line_definition_owner_code
33688       ,p_line_definition_code       => l_line_definition_code
33689       ,p_accounting_line_code       => l_component_code
33690       ,p_accounting_line_type_code  => l_component_type_code
33691       ,p_accounting_line_appl_id    => l_component_appl_id
33692       ,p_amb_context_code           => l_amb_context_code
33693       ,p_entity_code                => l_entity_code
33694       ,p_event_class_code           => l_event_class_code);
33695    --
33696    -- set accounting class
33697    --
33698    xla_ae_lines_pkg.SetAcctClass(
33699            p_accounting_class_code  => 'RTAX'
33700          , p_ae_header_id           => l_ae_header_id
33701          );
33702 
33703    --
33704    -- set rounding class
33705    --
33706    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33707                       'RTAX';
33708 
33709    --
33710    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33711    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33712    --
33713    -- bulk performance
33714    --
33715    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33716 
33717    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33718       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33719 
33720    -- 4955764
33721    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33722       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33723 
33724    -- 4458381 Public Sector Enh
33725       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
33726    --
33727    -- set accounting attributes for the line type
33728    --
33729    l_entered_amt_idx := 23;
33730    l_accted_amt_idx  := 28;
33731    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33732    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33733    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
33734    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33735    l_rec_acct_attrs.array_num_value(2)  := 
33736 xla_ae_sources_pkg.GetSystemSourceNum(
33737    p_source_code           => 'XLA_EVENT_APPL_ID'
33738  , p_source_type_code      => 'Y'
33739  , p_source_application_id =>  602
33740 );
33741    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33742    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
33743    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33744    l_rec_acct_attrs.array_char_value(4)  := 
33745 xla_ae_sources_pkg.GetSystemSourceChar(
33746    p_source_code           => 'XLA_ENTITY_CODE'
33747  , p_source_type_code      => 'Y'
33748  , p_source_application_id =>  602
33749 );
33750    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33751    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
33752    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33753    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
33754    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
33755    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
33756    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33757    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
33758    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
33759    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
33760    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
33761    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
33762    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33763    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
33764    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
33765    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
33769    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
33766    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
33767    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
33768    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
33770    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
33771    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
33772    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
33773    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
33774    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
33775    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
33776    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
33777    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
33778    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
33779    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
33780    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
33781    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
33782    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
33783    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
33784    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
33785    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
33786    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
33787    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
33788    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
33789    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
33790    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
33791    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
33792    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
33793    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
33794    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
33795    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
33796    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
33797    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
33798    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
33799    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
33800    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
33801    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
33802    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
33803    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
33804    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
33805    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
33806    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
33807    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
33808    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
33809    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
33810    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
33811    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
33812    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
33813    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
33814    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
33815    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
33816    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
33817    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
33818    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
33819    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
33820    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
33821    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
33822    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
33823    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
33824    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
33825    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
33826 
33827    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33828    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33829 
33830    ---------------------------------------------------------------------------------------------------------------
33831    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33832    ---------------------------------------------------------------------------------------------------------------
33833    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33834 
33835    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33836    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33837 
33838    IF xla_accounting_cache_pkg.GetValueChar
33839          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33840          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33841    AND l_bflow_method_code = 'PRIOR_ENTRY'
33842 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33843    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33844          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33845        )
33846    THEN
33847          xla_ae_lines_pkg.BflowUpgEntry
33848            (p_business_method_code    => l_bflow_method_code
33849            ,p_business_class_code     => l_bflow_class_code
33853 -- No business flow processing for business flow method of NONE.
33850            ,p_balance_type            => l_balance_type_code);
33851    ELSE
33852       NULL;
33854    END IF;
33855 
33856    --
33857    -- call analytical criteria
33858    --
33859    
33860    --
33861    -- call description
33862    --
33863    
33864 xla_ae_lines_pkg.SetLineDescription(
33865    p_ae_header_id => l_ae_header_id
33866   ,p_description  => Description_2 (
33867      p_application_id         => p_application_id
33868    , p_ae_header_id           => l_ae_header_id 
33869 , p_source_1 => p_source_1
33870    )
33871 );
33872 
33873 
33874    --
33875    -- call ADRs
33876    -- Bug 4922099
33877    --
33878    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33879         (NVL(l_actual_upg_option, 'N') = 'O') OR
33880         (NVL(l_enc_upg_option, 'N') = 'O')
33881       )
33882    THEN
33883    NULL;
33884    --
33885    --
33886    
33887   l_ccid := AcctDerRule_7(
33888            p_application_id           => p_application_id
33889          , p_ae_header_id             => l_ae_header_id 
33890 , p_source_11 => p_source_11
33891          , x_transaction_coa_id       => l_adr_transaction_coa_id
33892          , x_accounting_coa_id        => l_adr_accounting_coa_id
33893          , x_value_type_code          => l_adr_value_type_code
33894          , p_side                     => 'NA'
33895    );
33896 
33897    xla_ae_lines_pkg.set_ccid(
33898     p_code_combination_id          => l_ccid
33899   , p_value_type_code              => l_adr_value_type_code
33900   , p_transaction_coa_id           => l_adr_transaction_coa_id
33901   , p_accounting_coa_id            => l_adr_accounting_coa_id
33902   , p_adr_code                     => 'AP_INVOICE_DIST'
33903   , p_adr_type_code                => 'S'
33904   , p_component_type               => l_component_type
33905   , p_component_code               => l_component_code
33906   , p_component_type_code          => l_component_type_code
33907   , p_component_appl_id            => l_component_appl_id
33908   , p_amb_context_code             => l_amb_context_code
33909   , p_side                         => 'NA'
33910   );
33911 
33912 
33913    --
33914    --
33915    END IF;
33916    --
33917    -- Bug 4922099
33918    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33919           (NVL(l_enc_upg_option, 'N') = 'O')
33920         ) AND
33921         (l_bflow_method_code = 'PRIOR_ENTRY')
33922       )
33923    THEN
33924       IF
33925       --
33926       1 = 2
33927       --
33928       THEN
33929       xla_accounting_err_pkg.build_message
33930                                     (p_appli_s_name            => 'XLA'
33931                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33932                                     ,p_token_1                 => 'LINE_NUMBER'
33933                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33934                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33935                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33936                                                                              l_component_type
33937                                                                             ,l_component_code
33938                                                                             ,l_component_type_code
33939                                                                             ,l_component_appl_id
33940                                                                             ,l_amb_context_code
33941                                                                             ,l_entity_code
33942                                                                             ,l_event_class_code
33943                                                                            )
33944                                     ,p_token_3                 => 'OWNER'
33945                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33946                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33947                                                                           ,p_lookup_code    => l_component_type_code
33948                                                                          )
33949                                     ,p_token_4                 => 'PRODUCT_NAME'
33950                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33951                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33952                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33953                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33954                                     ,p_ae_header_id            =>  NULL
33955                                        );
33956 
33957         IF (C_LEVEL_ERROR>= g_log_level) THEN
33958                  trace
33959                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33960                       ,p_level    => C_LEVEL_ERROR
33961                       ,p_module   => l_log_module);
33962         END IF;
33963       END IF;
33964    END IF;
33965    --
33969    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33966    --
33967    ------------------------------------------------------------------------------------------------
33968    -- 4219869 Business Flow
33970    -- Prior Entry.  Currently, the following code is always generated.
33971    ------------------------------------------------------------------------------------------------
33972    XLA_AE_LINES_PKG.ValidateCurrentLine;
33973 
33974    ------------------------------------------------------------------------------------
33975    -- 4219869 Business Flow
33976    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33977    ------------------------------------------------------------------------------------
33978    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33979 
33980    ----------------------------------------------------------------------------------
33981    -- 4219869 Business Flow
33982    -- Update journal entry status -- Need to generate this within IF <condition>
33983    ----------------------------------------------------------------------------------
33984    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33985          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33986          ,p_balance_type_code => l_balance_type_code
33987          );
33988 
33989    -------------------------------------------------------------------------------------------
33990    -- 4262811 - Generate the Accrual Reversal lines
33991    -------------------------------------------------------------------------------------------
33992    BEGIN
33993       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33994                               (g_array_event(p_event_id).array_value_num('header_index'));
33995       IF l_acc_rev_flag IS NULL THEN
33996          l_acc_rev_flag := 'N';
33997       END IF;
33998    EXCEPTION
33999       WHEN OTHERS THEN
34000          l_acc_rev_flag := 'N';
34001    END;
34002    --
34003    IF (l_acc_rev_flag = 'Y') THEN
34004 
34005        -- 4645092  ------------------------------------------------------------------------------
34006        -- To allow MPA report to determine if it should generate report process
34007        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34008        ------------------------------------------------------------------------------------------
34009 
34010        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34011        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34012    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34013    -- call ADRs
34014    -- Bug 4922099
34015    --
34016    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34017         (NVL(l_actual_upg_option, 'N') = 'O') OR
34018         (NVL(l_enc_upg_option, 'N') = 'O')
34019       )
34020    THEN
34021    NULL;
34022    --
34023    --
34024    
34025   l_ccid := AcctDerRule_7(
34026            p_application_id           => p_application_id
34027          , p_ae_header_id             => l_ae_header_id 
34028 , p_source_11 => p_source_11
34029          , x_transaction_coa_id       => l_adr_transaction_coa_id
34030          , x_accounting_coa_id        => l_adr_accounting_coa_id
34031          , x_value_type_code          => l_adr_value_type_code
34032          , p_side                     => 'NA'
34033    );
34034 
34035    xla_ae_lines_pkg.set_ccid(
34036     p_code_combination_id          => l_ccid
34037   , p_value_type_code              => l_adr_value_type_code
34038   , p_transaction_coa_id           => l_adr_transaction_coa_id
34039   , p_accounting_coa_id            => l_adr_accounting_coa_id
34040   , p_adr_code                     => 'AP_INVOICE_DIST'
34041   , p_adr_type_code                => 'S'
34042   , p_component_type               => l_component_type
34043   , p_component_code               => l_component_code
34044   , p_component_type_code          => l_component_type_code
34045   , p_component_appl_id            => l_component_appl_id
34046   , p_amb_context_code             => l_amb_context_code
34047   , p_side                         => 'NA'
34048   );
34049 
34050 
34051    --
34052    --
34053    END IF;
34054 
34055        --
34056        -- Update the line information that should be overwritten
34057        --
34058        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34059                                          p_header_num   => 1);
34060        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34061 
34062        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34063 
34064        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34065           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34066        END IF;
34067 
34068       --
34069       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34070       --
34071       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34072           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34073       ELSE
34074           ---------------------------------------------------------------------------------------------------
34075           -- 4262811a Switch Sign
34076           ---------------------------------------------------------------------------------------------------
34080           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34077           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34078           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34079                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34081                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34082           -- 5132302
34083           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34084                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34085 
34086       END IF;
34087 
34088       -- 4955764
34089       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34090       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34091 
34092 
34093       XLA_AE_LINES_PKG.ValidateCurrentLine;
34094       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34095 
34096       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34097                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34098                ,p_balance_type_code => l_balance_type_code);
34099 
34100    END IF;
34101 
34102    -----------------------------------------------------------------------------------------
34103    -- 4262811 Multiperiod Accounting
34104    -----------------------------------------------------------------------------------------
34105      -- No MPA option is assigned.
34106 
34107 
34108 END IF;
34109 END IF;
34110 --
34111 
34112 --
34113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34114    trace
34115       (p_msg      => 'END of AcctLineType_58'
34116       ,p_level    => C_LEVEL_PROCEDURE
34117       ,p_module   => l_log_module);
34118 END IF;
34119 --
34120 EXCEPTION
34121   WHEN xla_exceptions_pkg.application_exception THEN
34122       RAISE;
34123   WHEN OTHERS THEN
34124        xla_exceptions_pkg.raise_message
34125            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_58');
34126 END AcctLineType_58;
34127 --
34128 
34129 ---------------------------------------
34130 --
34131 -- PRIVATE FUNCTION
34132 --         AcctLineType_59
34133 --
34134 ---------------------------------------
34135 PROCEDURE AcctLineType_59 (
34136   p_application_id        IN NUMBER
34137  ,p_event_id              IN NUMBER
34138  ,p_calculate_acctd_flag  IN VARCHAR2
34139  ,p_calculate_g_l_flag    IN VARCHAR2
34140  ,p_actual_flag           IN OUT VARCHAR2
34141  ,p_balance_type_code     OUT VARCHAR2
34142  ,p_gain_or_loss_ref      OUT VARCHAR2
34143  
34144 --Invoice Distribution Description
34145  , p_source_1            IN VARCHAR2
34146 --Invoice Distribution Account
34147  , p_source_11            IN NUMBER
34148 --Invoice Distribution Type
34149  , p_source_15            IN VARCHAR2
34150  , p_source_15_meaning    IN VARCHAR2
34151 --Purchasing Encumbrance Option
34152  , p_source_17            IN VARCHAR2
34153  , p_source_17_meaning    IN VARCHAR2
34154 --Accounting Reversal Indicator
34155  , p_source_19            IN VARCHAR2
34156 --Distribution Link Type
34157  , p_source_21            IN VARCHAR2
34158 --Allocation to Main Distribution Identifier
34159  , p_source_23            IN NUMBER
34160 --Invoice Identifier
34161  , p_source_24            IN NUMBER
34162 --Business Flow Accounts Payable Application Identifier
34163  , p_source_25            IN NUMBER
34164 --Business Flow Invoice Distribution Type
34165  , p_source_26            IN VARCHAR2
34166 --Business Flow Invoice Entity Code
34167  , p_source_27            IN VARCHAR2
34168 --Business Flow Invoice Distribution Identifier
34169  , p_source_28            IN NUMBER
34170 --Business Flow Invoice Identifier
34171  , p_source_29            IN NUMBER
34172 --Invoice Distribution Identifier
34173  , p_source_30            IN NUMBER
34174 --Payables Encumbrance Upgrade Credit Account
34175  , p_source_31            IN NUMBER
34176 --Payables Encumbrance Upgrade Credit Amount
34177  , p_source_32            IN NUMBER
34178 --Invoice Currency Code
34179  , p_source_33            IN VARCHAR2
34180 --Payables Encumbrance Upgrade Credit Base Amount
34181  , p_source_34            IN NUMBER
34182 --Payables Encumbrance Upgrade Debit Account
34183  , p_source_35            IN NUMBER
34184 --Payables Encumbrance Upgrade Debit Amount
34185  , p_source_36            IN NUMBER
34186 --Payables Encumbrance Upgrade Debit Base Amount
34187  , p_source_37            IN NUMBER
34188 --Payables Encumbrance Upgrade Option
34189  , p_source_38            IN VARCHAR2
34190 --Invoice Exchange Date
34191  , p_source_39            IN DATE
34192 --Invoice Exchange Rate
34193  , p_source_40            IN NUMBER
34194 --Invoice Exchange Rate Type
34195  , p_source_41            IN VARCHAR2
34196 --Deferred Accounting End Date
34197  , p_source_43            IN DATE
34198 --Deferred Accounting Option
34199  , p_source_44            IN VARCHAR2
34200 --Deferred Accounting Start Date
34201  , p_source_45            IN DATE
34202 --Override Accounted Amount Indicator
34203  , p_source_46            IN VARCHAR2
34204  , p_source_46_meaning    IN VARCHAR2
34205 --Invoice Supplier Identifier
34209 --Third Party Type
34206  , p_source_47            IN NUMBER
34207 --Invoice Supplier Site Identifier
34208  , p_source_48            IN NUMBER
34210  , p_source_49            IN VARCHAR2
34211 --Parent Reversal Identifier
34212  , p_source_50            IN NUMBER
34213 --Invoice Distribution Statistical Amount
34214  , p_source_51            IN NUMBER
34215 --Invoice Distribution Tax Line Identifier
34216  , p_source_52            IN NUMBER
34217 --Invoice Distribution Tax Distribution Identifier from Tax
34218  , p_source_53            IN NUMBER
34219 --Invoice Distribution Summary Tax Line Identifier
34220  , p_source_54            IN NUMBER
34221 --Payables Upgrade Credit Encumbrance Type Identifier
34222  , p_source_55            IN NUMBER
34223 --Payables Upgrade Debit Encumbrance Type Identifier
34224  , p_source_56            IN NUMBER
34225 --Invoice Distribution Amount
34226  , p_source_57            IN NUMBER
34227 --Self-Assessed Tax Flag
34228  , p_source_59            IN VARCHAR2
34229  , p_source_59_meaning    IN VARCHAR2
34230 --Invoice Distribution Encumbrance Amount
34231  , p_source_65            IN NUMBER
34232 --Invoice Distribution Encumbrance Ledger Amount
34233  , p_source_66            IN NUMBER
34234 )
34235 IS
34236 
34237 l_component_type              VARCHAR2(80);
34238 l_component_code              VARCHAR2(30);
34239 l_component_type_code         VARCHAR2(1);
34240 l_component_appl_id           INTEGER;
34241 l_amb_context_code            VARCHAR2(30);
34242 l_entity_code                 VARCHAR2(30);
34243 l_event_class_code            VARCHAR2(30);
34244 l_ae_header_id                NUMBER;
34245 l_event_type_code             VARCHAR2(30);
34246 l_line_definition_code        VARCHAR2(30);
34247 l_line_definition_owner_code  VARCHAR2(1);
34248 --
34249 -- adr variables
34250 l_segment                     VARCHAR2(30);
34251 l_ccid                        NUMBER;
34252 l_adr_transaction_coa_id      NUMBER;
34253 l_adr_accounting_coa_id       NUMBER;
34254 l_adr_flexfield_segment_code  VARCHAR2(30);
34255 l_adr_flex_value_set_id       NUMBER;
34256 l_adr_value_type_code         VARCHAR2(30);
34257 l_adr_value_combination_id    NUMBER;
34258 l_adr_value_segment_code      VARCHAR2(30);
34259 
34260 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34261 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34262 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34263 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34264 
34265 -- 4262811 Variables ------------------------------------------------------------------------------------------
34266 l_entered_amt_idx             NUMBER;
34267 l_accted_amt_idx              NUMBER;
34268 l_acc_rev_flag                VARCHAR2(1);
34269 l_accrual_line_num            NUMBER;
34270 l_tmp_amt                     NUMBER;
34271 l_acc_rev_natural_side_code   VARCHAR2(1);
34272 
34273 l_num_entries                 NUMBER;
34274 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34275 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34276 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34277 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34278 l_recog_line_1                NUMBER;
34279 l_recog_line_2                NUMBER;
34280 
34281 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34282 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34283 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34284 
34285 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34286 
34287 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34288 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34289 
34290 ---------------------------------------------------------------------------------------------------------------
34291 
34292 
34293 --
34294 -- bulk performance
34295 --
34296 l_balance_type_code           VARCHAR2(1);
34297 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34298 l_log_module                  VARCHAR2(240);
34299 
34300 --
34301 -- Upgrade strategy
34302 --
34303 l_actual_upg_option           VARCHAR2(1);
34304 l_enc_upg_option           VARCHAR2(1);
34305 
34306 --
34307 BEGIN
34308 --
34309 IF g_log_enabled THEN
34310       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
34311 END IF;
34312 --
34313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34314 
34315       trace
34316          (p_msg      => 'BEGIN of AcctLineType_59'
34317          ,p_level    => C_LEVEL_PROCEDURE
34318          ,p_module   => l_log_module);
34319 
34320 END IF;
34321 --
34322 l_component_type             := 'AMB_JLT';
34323 l_component_code             := 'AP_RECOV_TAX_INV_ENC_DR';
34324 l_component_type_code        := 'S';
34325 l_component_appl_id          :=  200;
34326 l_amb_context_code           := 'DEFAULT';
34327 l_entity_code                := 'AP_INVOICES';
34328 l_event_class_code           := 'INVOICES';
34329 l_event_type_code            := 'INVOICES_ALL';
34330 l_line_definition_owner_code := 'S';
34331 l_line_definition_code       := 'ENC_INVOICES_ALL';
34332 --
34333 l_balance_type_code          := 'E';
34334 l_segment                     := NULL;
34335 l_ccid                        := NULL;
34336 l_adr_transaction_coa_id      := NULL;
34337 l_adr_accounting_coa_id       := NULL;
34341 l_adr_value_combination_id    := NULL;
34338 l_adr_flexfield_segment_code  := NULL;
34339 l_adr_flex_value_set_id       := NULL;
34340 l_adr_value_type_code         := NULL;
34342 l_adr_value_segment_code      := NULL;
34343 
34344 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
34345 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
34346 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34347 l_budgetary_control_flag     := 'Y';
34348 
34349 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34350 l_bflow_applied_to_amt       := NULL; -- 5132302
34351 l_entered_amt_idx            := NULL;          -- 4262811
34352 l_accted_amt_idx             := NULL;          -- 4262811
34353 l_acc_rev_flag               := NULL;          -- 4262811
34354 l_accrual_line_num           := NULL;          -- 4262811
34355 l_tmp_amt                    := NULL;          -- 4262811
34356 --
34357  
34358 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34359     l_balance_type_code <> 'B' THEN
34360 IF NVL(p_source_15,'
34361 ') =  'REC_TAX' AND 
34362 NVL(p_source_59,'
34363 ') <>  'Y' AND 
34364 NVL(p_source_17,'
34365 ') =  'Y'
34366  THEN 
34367 
34368    --
34369    XLA_AE_LINES_PKG.SetNewLine;
34370 
34371    p_balance_type_code          := l_balance_type_code;
34372    -- set the flag so later we will know whether the gain loss line needs to be created
34373    
34374    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34375      p_actual_flag :='A';
34376    END IF;
34377 
34378    --
34379    -- bulk performance
34380    --
34381    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34382                                       p_header_num   => 0); -- 4262811
34383    --
34384    -- set accounting line options
34385    --
34386    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34387            p_natural_side_code          => 'D'
34388          , p_gain_or_loss_flag          => 'N'
34389          , p_gl_transfer_mode_code      => 'S'
34390          , p_acct_entry_type_code       => 'E'
34391          , p_switch_side_flag           => 'Y'
34392          , p_merge_duplicate_code       => 'N'
34393          );
34394    --
34395    l_acc_rev_natural_side_code := 'C';  -- 4262811
34396    -- 
34397    --
34398    -- set accounting line type info
34399    --
34400    xla_ae_lines_pkg.SetAcctLineType
34401       (p_component_type             => l_component_type
34402       ,p_event_type_code            => l_event_type_code
34403       ,p_line_definition_owner_code => l_line_definition_owner_code
34404       ,p_line_definition_code       => l_line_definition_code
34405       ,p_accounting_line_code       => l_component_code
34406       ,p_accounting_line_type_code  => l_component_type_code
34407       ,p_accounting_line_appl_id    => l_component_appl_id
34408       ,p_amb_context_code           => l_amb_context_code
34409       ,p_entity_code                => l_entity_code
34410       ,p_event_class_code           => l_event_class_code);
34411    --
34412    -- set accounting class
34413    --
34414    xla_ae_lines_pkg.SetAcctClass(
34415            p_accounting_class_code  => 'RTAX'
34416          , p_ae_header_id           => l_ae_header_id
34417          );
34418 
34419    --
34420    -- set rounding class
34421    --
34422    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34423                       'RTAX';
34424 
34425    --
34426    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34427    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34428    --
34429    -- bulk performance
34430    --
34431    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34432 
34433    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34434       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34435 
34436    -- 4955764
34437    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34438       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34439 
34440    -- 4458381 Public Sector Enh
34441       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
34442    --
34443    -- set accounting attributes for the line type
34444    --
34445    l_entered_amt_idx := 24;
34446    l_accted_amt_idx  := 29;
34447    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
34448    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34449    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
34450    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
34451    l_rec_acct_attrs.array_num_value(2)  := 
34452 xla_ae_sources_pkg.GetSystemSourceNum(
34453    p_source_code           => 'XLA_EVENT_APPL_ID'
34454  , p_source_type_code      => 'Y'
34455  , p_source_application_id =>  602
34456 );
34457    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
34458    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
34459    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
34460    l_rec_acct_attrs.array_char_value(4)  := 
34461 xla_ae_sources_pkg.GetSystemSourceChar(
34465 );
34462    p_source_code           => 'XLA_ENTITY_CODE'
34463  , p_source_type_code      => 'Y'
34464  , p_source_application_id =>  602
34466    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
34467    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
34468    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
34469    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
34470    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
34471    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
34472    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
34473    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
34474    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34475    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
34476    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
34477    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
34478    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
34479    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
34480    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34481    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
34482    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
34483    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
34484    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
34485    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
34486    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
34487    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
34488    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
34489    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
34490    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
34491    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
34492    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
34493    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
34494    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
34495    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
34496    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
34497    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
34498    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
34499    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
34500    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
34501    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
34502    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
34503    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
34504    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
34505    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
34506    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
34507    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
34508    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
34509    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
34510    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
34511    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
34512    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
34513    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
34514    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
34515    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
34516    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
34517    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
34518    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
34519    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
34520    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
34521    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
34522    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
34523    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
34524    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
34525    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
34526    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
34527    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
34528    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
34529    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
34530    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
34531    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
34532    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
34533    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
34534    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
34535    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
34536    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
34537    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
34538    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
34539    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
34540    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
34541    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
34542    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
34543    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
34544    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
34545    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
34546 
34550    ---------------------------------------------------------------------------------------------------------------
34547    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34548    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34549 
34551    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34552    ---------------------------------------------------------------------------------------------------------------
34553    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34554 
34555    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34556    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34557 
34558    IF xla_accounting_cache_pkg.GetValueChar
34559          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34560          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34561    AND l_bflow_method_code = 'PRIOR_ENTRY'
34562 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34563    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34564          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34565        )
34566    THEN
34567          xla_ae_lines_pkg.BflowUpgEntry
34568            (p_business_method_code    => l_bflow_method_code
34569            ,p_business_class_code     => l_bflow_class_code
34570            ,p_balance_type            => l_balance_type_code);
34571    ELSE
34572       NULL;
34573 -- No business flow processing for business flow method of NONE.
34574    END IF;
34575 
34576    --
34577    -- call analytical criteria
34578    --
34579    
34580    --
34581    -- call description
34582    --
34583    
34584 xla_ae_lines_pkg.SetLineDescription(
34585    p_ae_header_id => l_ae_header_id
34586   ,p_description  => Description_2 (
34587      p_application_id         => p_application_id
34588    , p_ae_header_id           => l_ae_header_id 
34589 , p_source_1 => p_source_1
34590    )
34591 );
34592 
34593 
34594    --
34595    -- call ADRs
34596    -- Bug 4922099
34597    --
34598    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34599         (NVL(l_actual_upg_option, 'N') = 'O') OR
34600         (NVL(l_enc_upg_option, 'N') = 'O')
34601       )
34602    THEN
34603    NULL;
34604    --
34605    --
34606    
34607   l_ccid := AcctDerRule_7(
34608            p_application_id           => p_application_id
34609          , p_ae_header_id             => l_ae_header_id 
34610 , p_source_11 => p_source_11
34611          , x_transaction_coa_id       => l_adr_transaction_coa_id
34612          , x_accounting_coa_id        => l_adr_accounting_coa_id
34613          , x_value_type_code          => l_adr_value_type_code
34614          , p_side                     => 'NA'
34615    );
34616 
34617    xla_ae_lines_pkg.set_ccid(
34618     p_code_combination_id          => l_ccid
34619   , p_value_type_code              => l_adr_value_type_code
34620   , p_transaction_coa_id           => l_adr_transaction_coa_id
34621   , p_accounting_coa_id            => l_adr_accounting_coa_id
34622   , p_adr_code                     => 'AP_INVOICE_DIST'
34623   , p_adr_type_code                => 'S'
34624   , p_component_type               => l_component_type
34625   , p_component_code               => l_component_code
34626   , p_component_type_code          => l_component_type_code
34627   , p_component_appl_id            => l_component_appl_id
34628   , p_amb_context_code             => l_amb_context_code
34629   , p_side                         => 'NA'
34630   );
34631 
34632 
34633    --
34634    --
34635    END IF;
34636    --
34637    -- Bug 4922099
34638    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34639           (NVL(l_enc_upg_option, 'N') = 'O')
34640         ) AND
34641         (l_bflow_method_code = 'PRIOR_ENTRY')
34642       )
34643    THEN
34644       IF
34645       --
34646       1 = 2
34647       --
34648       THEN
34649       xla_accounting_err_pkg.build_message
34650                                     (p_appli_s_name            => 'XLA'
34651                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34652                                     ,p_token_1                 => 'LINE_NUMBER'
34653                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34654                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34655                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34656                                                                              l_component_type
34657                                                                             ,l_component_code
34658                                                                             ,l_component_type_code
34659                                                                             ,l_component_appl_id
34660                                                                             ,l_amb_context_code
34661                                                                             ,l_entity_code
34662                                                                             ,l_event_class_code
34663                                                                            )
34667                                                                           ,p_lookup_code    => l_component_type_code
34664                                     ,p_token_3                 => 'OWNER'
34665                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34666                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34668                                                                          )
34669                                     ,p_token_4                 => 'PRODUCT_NAME'
34670                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34671                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34672                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34673                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34674                                     ,p_ae_header_id            =>  NULL
34675                                        );
34676 
34677         IF (C_LEVEL_ERROR>= g_log_level) THEN
34678                  trace
34679                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34680                       ,p_level    => C_LEVEL_ERROR
34681                       ,p_module   => l_log_module);
34682         END IF;
34683       END IF;
34684    END IF;
34685    --
34686    --
34687    ------------------------------------------------------------------------------------------------
34688    -- 4219869 Business Flow
34689    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34690    -- Prior Entry.  Currently, the following code is always generated.
34691    ------------------------------------------------------------------------------------------------
34692    XLA_AE_LINES_PKG.ValidateCurrentLine;
34693 
34694    ------------------------------------------------------------------------------------
34695    -- 4219869 Business Flow
34696    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34697    ------------------------------------------------------------------------------------
34698    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34699 
34700    ----------------------------------------------------------------------------------
34701    -- 4219869 Business Flow
34702    -- Update journal entry status -- Need to generate this within IF <condition>
34703    ----------------------------------------------------------------------------------
34704    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34705          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34706          ,p_balance_type_code => l_balance_type_code
34707          );
34708 
34709    -------------------------------------------------------------------------------------------
34710    -- 4262811 - Generate the Accrual Reversal lines
34711    -------------------------------------------------------------------------------------------
34712    BEGIN
34713       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34714                               (g_array_event(p_event_id).array_value_num('header_index'));
34715       IF l_acc_rev_flag IS NULL THEN
34716          l_acc_rev_flag := 'N';
34717       END IF;
34718    EXCEPTION
34719       WHEN OTHERS THEN
34720          l_acc_rev_flag := 'N';
34721    END;
34722    --
34723    IF (l_acc_rev_flag = 'Y') THEN
34724 
34725        -- 4645092  ------------------------------------------------------------------------------
34726        -- To allow MPA report to determine if it should generate report process
34727        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34728        ------------------------------------------------------------------------------------------
34729 
34730        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34731        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34732    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34733    -- call ADRs
34734    -- Bug 4922099
34735    --
34736    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34737         (NVL(l_actual_upg_option, 'N') = 'O') OR
34738         (NVL(l_enc_upg_option, 'N') = 'O')
34739       )
34740    THEN
34741    NULL;
34742    --
34743    --
34744    
34745   l_ccid := AcctDerRule_7(
34746            p_application_id           => p_application_id
34747          , p_ae_header_id             => l_ae_header_id 
34748 , p_source_11 => p_source_11
34749          , x_transaction_coa_id       => l_adr_transaction_coa_id
34750          , x_accounting_coa_id        => l_adr_accounting_coa_id
34751          , x_value_type_code          => l_adr_value_type_code
34752          , p_side                     => 'NA'
34753    );
34754 
34755    xla_ae_lines_pkg.set_ccid(
34756     p_code_combination_id          => l_ccid
34757   , p_value_type_code              => l_adr_value_type_code
34758   , p_transaction_coa_id           => l_adr_transaction_coa_id
34759   , p_accounting_coa_id            => l_adr_accounting_coa_id
34760   , p_adr_code                     => 'AP_INVOICE_DIST'
34761   , p_adr_type_code                => 'S'
34762   , p_component_type               => l_component_type
34763   , p_component_code               => l_component_code
34764   , p_component_type_code          => l_component_type_code
34765   , p_component_appl_id            => l_component_appl_id
34766   , p_amb_context_code             => l_amb_context_code
34770 
34767   , p_side                         => 'NA'
34768   );
34769 
34771    --
34772    --
34773    END IF;
34774 
34775        --
34776        -- Update the line information that should be overwritten
34777        --
34778        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34779                                          p_header_num   => 1);
34780        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34781 
34782        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34783 
34784        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34785           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34786        END IF;
34787 
34788       --
34789       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34790       --
34791       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34792           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34793       ELSE
34794           ---------------------------------------------------------------------------------------------------
34795           -- 4262811a Switch Sign
34796           ---------------------------------------------------------------------------------------------------
34797           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34798           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34799                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34800           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34801                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34802           -- 5132302
34803           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34804                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34805 
34806       END IF;
34807 
34808       -- 4955764
34809       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34810       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34811 
34812 
34813       XLA_AE_LINES_PKG.ValidateCurrentLine;
34814       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34815 
34816       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34817                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34818                ,p_balance_type_code => l_balance_type_code);
34819 
34820    END IF;
34821 
34822    -----------------------------------------------------------------------------------------
34823    -- 4262811 Multiperiod Accounting
34824    -----------------------------------------------------------------------------------------
34825      -- No MPA option is assigned.
34826 
34827 
34828 END IF;
34829 END IF;
34830 --
34831 
34832 --
34833 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34834    trace
34835       (p_msg      => 'END of AcctLineType_59'
34836       ,p_level    => C_LEVEL_PROCEDURE
34837       ,p_module   => l_log_module);
34838 END IF;
34839 --
34840 EXCEPTION
34841   WHEN xla_exceptions_pkg.application_exception THEN
34842       RAISE;
34843   WHEN OTHERS THEN
34844        xla_exceptions_pkg.raise_message
34845            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_59');
34846 END AcctLineType_59;
34847 --
34848 
34849 ---------------------------------------
34850 --
34851 -- PRIVATE FUNCTION
34852 --         AcctLineType_60
34853 --
34854 ---------------------------------------
34855 PROCEDURE AcctLineType_60 (
34856   p_application_id        IN NUMBER
34857  ,p_event_id              IN NUMBER
34858  ,p_calculate_acctd_flag  IN VARCHAR2
34859  ,p_calculate_g_l_flag    IN VARCHAR2
34860  ,p_actual_flag           IN OUT VARCHAR2
34861  ,p_balance_type_code     OUT VARCHAR2
34862  ,p_gain_or_loss_ref      OUT VARCHAR2
34863  
34864 --Invoice Distribution Description
34865  , p_source_1            IN VARCHAR2
34866 --Invoice Distribution Account
34867  , p_source_11            IN NUMBER
34868 --Invoice Distribution Type
34869  , p_source_15            IN VARCHAR2
34870  , p_source_15_meaning    IN VARCHAR2
34871 --Purchasing Encumbrance Option
34872  , p_source_17            IN VARCHAR2
34873  , p_source_17_meaning    IN VARCHAR2
34874 --Accounting Reversal Indicator
34875  , p_source_19            IN VARCHAR2
34876 --Distribution Link Type
34877  , p_source_21            IN VARCHAR2
34878 --Allocation to Main Distribution Identifier
34879  , p_source_23            IN NUMBER
34880 --Invoice Identifier
34881  , p_source_24            IN NUMBER
34882 --Business Flow Accounts Payable Application Identifier
34883  , p_source_25            IN NUMBER
34884 --Business Flow Invoice Distribution Type
34885  , p_source_26            IN VARCHAR2
34886 --Business Flow Invoice Entity Code
34887  , p_source_27            IN VARCHAR2
34888 --Business Flow Invoice Distribution Identifier
34889  , p_source_28            IN NUMBER
34890 --Business Flow Invoice Identifier
34891  , p_source_29            IN NUMBER
34895  , p_source_31            IN NUMBER
34892 --Invoice Distribution Identifier
34893  , p_source_30            IN NUMBER
34894 --Payables Encumbrance Upgrade Credit Account
34896 --Payables Encumbrance Upgrade Credit Amount
34897  , p_source_32            IN NUMBER
34898 --Invoice Currency Code
34899  , p_source_33            IN VARCHAR2
34900 --Payables Encumbrance Upgrade Credit Base Amount
34901  , p_source_34            IN NUMBER
34902 --Payables Encumbrance Upgrade Debit Account
34903  , p_source_35            IN NUMBER
34904 --Payables Encumbrance Upgrade Debit Amount
34905  , p_source_36            IN NUMBER
34906 --Payables Encumbrance Upgrade Debit Base Amount
34907  , p_source_37            IN NUMBER
34908 --Payables Encumbrance Upgrade Option
34909  , p_source_38            IN VARCHAR2
34910 --Invoice Exchange Date
34911  , p_source_39            IN DATE
34912 --Invoice Exchange Rate
34913  , p_source_40            IN NUMBER
34914 --Invoice Exchange Rate Type
34915  , p_source_41            IN VARCHAR2
34916 --Deferred Accounting End Date
34917  , p_source_43            IN DATE
34918 --Deferred Accounting Option
34919  , p_source_44            IN VARCHAR2
34920 --Deferred Accounting Start Date
34921  , p_source_45            IN DATE
34922 --Override Accounted Amount Indicator
34923  , p_source_46            IN VARCHAR2
34924  , p_source_46_meaning    IN VARCHAR2
34925 --Invoice Supplier Identifier
34926  , p_source_47            IN NUMBER
34927 --Invoice Supplier Site Identifier
34928  , p_source_48            IN NUMBER
34929 --Third Party Type
34930  , p_source_49            IN VARCHAR2
34931 --Parent Reversal Identifier
34932  , p_source_50            IN NUMBER
34933 --Invoice Distribution Statistical Amount
34934  , p_source_51            IN NUMBER
34935 --Invoice Distribution Tax Line Identifier
34936  , p_source_52            IN NUMBER
34937 --Invoice Distribution Tax Distribution Identifier from Tax
34938  , p_source_53            IN NUMBER
34939 --Invoice Distribution Summary Tax Line Identifier
34940  , p_source_54            IN NUMBER
34941 --Payables Upgrade Credit Encumbrance Type Identifier
34942  , p_source_55            IN NUMBER
34943 --Payables Upgrade Debit Encumbrance Type Identifier
34944  , p_source_56            IN NUMBER
34945 --Self-Assessed Tax Flag
34946  , p_source_59            IN VARCHAR2
34947  , p_source_59_meaning    IN VARCHAR2
34948 --Invoice Distribution Encumbrance Amount
34949  , p_source_65            IN NUMBER
34950 --Invoice Distribution Encumbrance Ledger Amount
34951  , p_source_66            IN NUMBER
34952 )
34953 IS
34954 
34955 l_component_type              VARCHAR2(80);
34956 l_component_code              VARCHAR2(30);
34957 l_component_type_code         VARCHAR2(1);
34958 l_component_appl_id           INTEGER;
34959 l_amb_context_code            VARCHAR2(30);
34960 l_entity_code                 VARCHAR2(30);
34961 l_event_class_code            VARCHAR2(30);
34962 l_ae_header_id                NUMBER;
34963 l_event_type_code             VARCHAR2(30);
34964 l_line_definition_code        VARCHAR2(30);
34965 l_line_definition_owner_code  VARCHAR2(1);
34966 --
34967 -- adr variables
34968 l_segment                     VARCHAR2(30);
34969 l_ccid                        NUMBER;
34970 l_adr_transaction_coa_id      NUMBER;
34971 l_adr_accounting_coa_id       NUMBER;
34972 l_adr_flexfield_segment_code  VARCHAR2(30);
34973 l_adr_flex_value_set_id       NUMBER;
34974 l_adr_value_type_code         VARCHAR2(30);
34975 l_adr_value_combination_id    NUMBER;
34976 l_adr_value_segment_code      VARCHAR2(30);
34977 
34978 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34979 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34980 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34981 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34982 
34983 -- 4262811 Variables ------------------------------------------------------------------------------------------
34984 l_entered_amt_idx             NUMBER;
34985 l_accted_amt_idx              NUMBER;
34986 l_acc_rev_flag                VARCHAR2(1);
34987 l_accrual_line_num            NUMBER;
34988 l_tmp_amt                     NUMBER;
34989 l_acc_rev_natural_side_code   VARCHAR2(1);
34990 
34991 l_num_entries                 NUMBER;
34992 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34993 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34994 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34995 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34996 l_recog_line_1                NUMBER;
34997 l_recog_line_2                NUMBER;
34998 
34999 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35000 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35001 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35002 
35003 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35004 
35005 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35006 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35007 
35008 ---------------------------------------------------------------------------------------------------------------
35009 
35010 
35011 --
35012 -- bulk performance
35013 --
35014 l_balance_type_code           VARCHAR2(1);
35015 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35016 l_log_module                  VARCHAR2(240);
35020 --
35017 
35018 --
35019 -- Upgrade strategy
35021 l_actual_upg_option           VARCHAR2(1);
35022 l_enc_upg_option           VARCHAR2(1);
35023 
35024 --
35025 BEGIN
35026 --
35027 IF g_log_enabled THEN
35028       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
35029 END IF;
35030 --
35031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35032 
35033       trace
35034          (p_msg      => 'BEGIN of AcctLineType_60'
35035          ,p_level    => C_LEVEL_PROCEDURE
35036          ,p_module   => l_log_module);
35037 
35038 END IF;
35039 --
35040 l_component_type             := 'AMB_JLT';
35041 l_component_code             := 'AP_RECOV_TAX_PP_ENC_DR';
35042 l_component_type_code        := 'S';
35043 l_component_appl_id          :=  200;
35044 l_amb_context_code           := 'DEFAULT';
35045 l_entity_code                := 'AP_INVOICES';
35046 l_event_class_code           := 'PREPAYMENTS';
35047 l_event_type_code            := 'PREPAYMENTS_ALL';
35048 l_line_definition_owner_code := 'S';
35049 l_line_definition_code       := 'ENC_PREPAY_ALL';
35050 --
35051 l_balance_type_code          := 'E';
35052 l_segment                     := NULL;
35053 l_ccid                        := NULL;
35054 l_adr_transaction_coa_id      := NULL;
35055 l_adr_accounting_coa_id       := NULL;
35056 l_adr_flexfield_segment_code  := NULL;
35057 l_adr_flex_value_set_id       := NULL;
35058 l_adr_value_type_code         := NULL;
35059 l_adr_value_combination_id    := NULL;
35060 l_adr_value_segment_code      := NULL;
35061 
35062 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35063 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
35064 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35065 l_budgetary_control_flag     := 'Y';
35066 
35067 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35068 l_bflow_applied_to_amt       := NULL; -- 5132302
35069 l_entered_amt_idx            := NULL;          -- 4262811
35070 l_accted_amt_idx             := NULL;          -- 4262811
35071 l_acc_rev_flag               := NULL;          -- 4262811
35072 l_accrual_line_num           := NULL;          -- 4262811
35073 l_tmp_amt                    := NULL;          -- 4262811
35074 --
35075  
35076 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35077     l_balance_type_code <> 'B' THEN
35078 IF NVL(p_source_15,'
35079 ') =  'REC_TAX' AND 
35080 NVL(p_source_59,'
35081 ') <>  'Y' AND 
35082 NVL(p_source_17,'
35083 ') =  'Y'
35084  THEN 
35085 
35086    --
35087    XLA_AE_LINES_PKG.SetNewLine;
35088 
35089    p_balance_type_code          := l_balance_type_code;
35090    -- set the flag so later we will know whether the gain loss line needs to be created
35091    
35092    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35093      p_actual_flag :='A';
35094    END IF;
35095 
35096    --
35097    -- bulk performance
35098    --
35099    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35100                                       p_header_num   => 0); -- 4262811
35101    --
35102    -- set accounting line options
35103    --
35104    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35105            p_natural_side_code          => 'D'
35106          , p_gain_or_loss_flag          => 'N'
35107          , p_gl_transfer_mode_code      => 'S'
35108          , p_acct_entry_type_code       => 'E'
35109          , p_switch_side_flag           => 'Y'
35110          , p_merge_duplicate_code       => 'N'
35111          );
35112    --
35113    l_acc_rev_natural_side_code := 'C';  -- 4262811
35114    -- 
35115    --
35116    -- set accounting line type info
35117    --
35118    xla_ae_lines_pkg.SetAcctLineType
35119       (p_component_type             => l_component_type
35120       ,p_event_type_code            => l_event_type_code
35121       ,p_line_definition_owner_code => l_line_definition_owner_code
35122       ,p_line_definition_code       => l_line_definition_code
35123       ,p_accounting_line_code       => l_component_code
35124       ,p_accounting_line_type_code  => l_component_type_code
35125       ,p_accounting_line_appl_id    => l_component_appl_id
35126       ,p_amb_context_code           => l_amb_context_code
35127       ,p_entity_code                => l_entity_code
35128       ,p_event_class_code           => l_event_class_code);
35129    --
35130    -- set accounting class
35131    --
35132    xla_ae_lines_pkg.SetAcctClass(
35133            p_accounting_class_code  => 'RTAX'
35134          , p_ae_header_id           => l_ae_header_id
35135          );
35136 
35137    --
35138    -- set rounding class
35139    --
35140    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35141                       'RTAX';
35142 
35143    --
35144    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35145    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35146    --
35147    -- bulk performance
35148    --
35149    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35150 
35151    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35152       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35156       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35153 
35154    -- 4955764
35155    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35157 
35158    -- 4458381 Public Sector Enh
35159       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
35160    --
35161    -- set accounting attributes for the line type
35162    --
35163    l_entered_amt_idx := 23;
35164    l_accted_amt_idx  := 28;
35165    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35166    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35167    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
35168    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35169    l_rec_acct_attrs.array_num_value(2)  := 
35170 xla_ae_sources_pkg.GetSystemSourceNum(
35171    p_source_code           => 'XLA_EVENT_APPL_ID'
35172  , p_source_type_code      => 'Y'
35173  , p_source_application_id =>  602
35174 );
35175    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35176    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
35177    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35178    l_rec_acct_attrs.array_char_value(4)  := 
35179 xla_ae_sources_pkg.GetSystemSourceChar(
35180    p_source_code           => 'XLA_ENTITY_CODE'
35181  , p_source_type_code      => 'Y'
35182  , p_source_application_id =>  602
35183 );
35184    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35185    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
35186    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35187    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
35188    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35189    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
35190    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35191    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
35192    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35193    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
35194    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35195    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
35196    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35197    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
35198    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35199    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
35200    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35201    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
35202    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35203    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
35204    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35205    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
35206    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35207    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
35208    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35209    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
35210    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35211    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
35212    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35213    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
35214    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35215    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
35216    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35217    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
35218    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35219    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
35220    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35221    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
35222    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35223    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
35224    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35225    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
35226    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35227    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
35228    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35229    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
35230    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35231    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
35232    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
35233    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
35234    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
35235    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
35236    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
35237    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
35238    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
35239    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
35240    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
35241    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
35242    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
35243    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
35247    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
35244    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
35245    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
35246    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
35248    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
35249    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
35250    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
35251    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
35252    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
35253    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
35254    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
35255    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
35256    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
35257    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
35258    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
35259    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
35260    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
35261    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
35262 
35263    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35264    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35265 
35266    ---------------------------------------------------------------------------------------------------------------
35267    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35268    ---------------------------------------------------------------------------------------------------------------
35269    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35270 
35271    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35272    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35273 
35274    IF xla_accounting_cache_pkg.GetValueChar
35275          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35276          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35277    AND l_bflow_method_code = 'PRIOR_ENTRY'
35278 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35279    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35280          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35281        )
35282    THEN
35283          xla_ae_lines_pkg.BflowUpgEntry
35284            (p_business_method_code    => l_bflow_method_code
35285            ,p_business_class_code     => l_bflow_class_code
35286            ,p_balance_type            => l_balance_type_code);
35287    ELSE
35288       NULL;
35289 -- No business flow processing for business flow method of NONE.
35290    END IF;
35291 
35292    --
35293    -- call analytical criteria
35294    --
35295    
35296    --
35297    -- call description
35298    --
35299    
35300 xla_ae_lines_pkg.SetLineDescription(
35301    p_ae_header_id => l_ae_header_id
35302   ,p_description  => Description_2 (
35303      p_application_id         => p_application_id
35304    , p_ae_header_id           => l_ae_header_id 
35305 , p_source_1 => p_source_1
35306    )
35307 );
35308 
35309 
35310    --
35311    -- call ADRs
35312    -- Bug 4922099
35313    --
35314    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35315         (NVL(l_actual_upg_option, 'N') = 'O') OR
35316         (NVL(l_enc_upg_option, 'N') = 'O')
35317       )
35318    THEN
35319    NULL;
35320    --
35321    --
35322    
35323   l_ccid := AcctDerRule_7(
35324            p_application_id           => p_application_id
35325          , p_ae_header_id             => l_ae_header_id 
35326 , p_source_11 => p_source_11
35327          , x_transaction_coa_id       => l_adr_transaction_coa_id
35328          , x_accounting_coa_id        => l_adr_accounting_coa_id
35329          , x_value_type_code          => l_adr_value_type_code
35330          , p_side                     => 'NA'
35331    );
35332 
35333    xla_ae_lines_pkg.set_ccid(
35334     p_code_combination_id          => l_ccid
35335   , p_value_type_code              => l_adr_value_type_code
35336   , p_transaction_coa_id           => l_adr_transaction_coa_id
35337   , p_accounting_coa_id            => l_adr_accounting_coa_id
35338   , p_adr_code                     => 'AP_INVOICE_DIST'
35339   , p_adr_type_code                => 'S'
35340   , p_component_type               => l_component_type
35341   , p_component_code               => l_component_code
35342   , p_component_type_code          => l_component_type_code
35343   , p_component_appl_id            => l_component_appl_id
35344   , p_amb_context_code             => l_amb_context_code
35345   , p_side                         => 'NA'
35346   );
35347 
35348 
35349    --
35350    --
35351    END IF;
35352    --
35353    -- Bug 4922099
35354    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35355           (NVL(l_enc_upg_option, 'N') = 'O')
35356         ) AND
35357         (l_bflow_method_code = 'PRIOR_ENTRY')
35358       )
35359    THEN
35360       IF
35361       --
35362       1 = 2
35363       --
35364       THEN
35365       xla_accounting_err_pkg.build_message
35369                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35366                                     (p_appli_s_name            => 'XLA'
35367                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35368                                     ,p_token_1                 => 'LINE_NUMBER'
35370                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35371                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35372                                                                              l_component_type
35373                                                                             ,l_component_code
35374                                                                             ,l_component_type_code
35375                                                                             ,l_component_appl_id
35376                                                                             ,l_amb_context_code
35377                                                                             ,l_entity_code
35378                                                                             ,l_event_class_code
35379                                                                            )
35380                                     ,p_token_3                 => 'OWNER'
35381                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35382                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35383                                                                           ,p_lookup_code    => l_component_type_code
35384                                                                          )
35385                                     ,p_token_4                 => 'PRODUCT_NAME'
35386                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35387                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35388                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35389                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35390                                     ,p_ae_header_id            =>  NULL
35391                                        );
35392 
35393         IF (C_LEVEL_ERROR>= g_log_level) THEN
35394                  trace
35395                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35396                       ,p_level    => C_LEVEL_ERROR
35397                       ,p_module   => l_log_module);
35398         END IF;
35399       END IF;
35400    END IF;
35401    --
35402    --
35403    ------------------------------------------------------------------------------------------------
35404    -- 4219869 Business Flow
35405    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35406    -- Prior Entry.  Currently, the following code is always generated.
35407    ------------------------------------------------------------------------------------------------
35408    XLA_AE_LINES_PKG.ValidateCurrentLine;
35409 
35410    ------------------------------------------------------------------------------------
35411    -- 4219869 Business Flow
35412    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35413    ------------------------------------------------------------------------------------
35414    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35415 
35416    ----------------------------------------------------------------------------------
35417    -- 4219869 Business Flow
35418    -- Update journal entry status -- Need to generate this within IF <condition>
35419    ----------------------------------------------------------------------------------
35420    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35421          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35422          ,p_balance_type_code => l_balance_type_code
35423          );
35424 
35425    -------------------------------------------------------------------------------------------
35426    -- 4262811 - Generate the Accrual Reversal lines
35427    -------------------------------------------------------------------------------------------
35428    BEGIN
35429       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35430                               (g_array_event(p_event_id).array_value_num('header_index'));
35431       IF l_acc_rev_flag IS NULL THEN
35432          l_acc_rev_flag := 'N';
35433       END IF;
35434    EXCEPTION
35435       WHEN OTHERS THEN
35436          l_acc_rev_flag := 'N';
35437    END;
35438    --
35439    IF (l_acc_rev_flag = 'Y') THEN
35440 
35441        -- 4645092  ------------------------------------------------------------------------------
35442        -- To allow MPA report to determine if it should generate report process
35443        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35444        ------------------------------------------------------------------------------------------
35445 
35446        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35447        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35448    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35449    -- call ADRs
35450    -- Bug 4922099
35451    --
35452    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35453         (NVL(l_actual_upg_option, 'N') = 'O') OR
35454         (NVL(l_enc_upg_option, 'N') = 'O')
35455       )
35456    THEN
35460    
35457    NULL;
35458    --
35459    --
35461   l_ccid := AcctDerRule_7(
35462            p_application_id           => p_application_id
35463          , p_ae_header_id             => l_ae_header_id 
35464 , p_source_11 => p_source_11
35465          , x_transaction_coa_id       => l_adr_transaction_coa_id
35466          , x_accounting_coa_id        => l_adr_accounting_coa_id
35467          , x_value_type_code          => l_adr_value_type_code
35468          , p_side                     => 'NA'
35469    );
35470 
35471    xla_ae_lines_pkg.set_ccid(
35472     p_code_combination_id          => l_ccid
35473   , p_value_type_code              => l_adr_value_type_code
35474   , p_transaction_coa_id           => l_adr_transaction_coa_id
35475   , p_accounting_coa_id            => l_adr_accounting_coa_id
35476   , p_adr_code                     => 'AP_INVOICE_DIST'
35477   , p_adr_type_code                => 'S'
35478   , p_component_type               => l_component_type
35479   , p_component_code               => l_component_code
35480   , p_component_type_code          => l_component_type_code
35481   , p_component_appl_id            => l_component_appl_id
35482   , p_amb_context_code             => l_amb_context_code
35483   , p_side                         => 'NA'
35484   );
35485 
35486 
35487    --
35488    --
35489    END IF;
35490 
35491        --
35492        -- Update the line information that should be overwritten
35493        --
35494        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35495                                          p_header_num   => 1);
35496        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35497 
35498        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35499 
35500        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35501           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35502        END IF;
35503 
35504       --
35505       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35506       --
35507       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35508           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35509       ELSE
35510           ---------------------------------------------------------------------------------------------------
35511           -- 4262811a Switch Sign
35512           ---------------------------------------------------------------------------------------------------
35513           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35514           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35515                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35516           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35517                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35518           -- 5132302
35519           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35520                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35521 
35522       END IF;
35523 
35524       -- 4955764
35525       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35526       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35527 
35528 
35529       XLA_AE_LINES_PKG.ValidateCurrentLine;
35530       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35531 
35532       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35533                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35534                ,p_balance_type_code => l_balance_type_code);
35535 
35536    END IF;
35537 
35538    -----------------------------------------------------------------------------------------
35539    -- 4262811 Multiperiod Accounting
35540    -----------------------------------------------------------------------------------------
35541      -- No MPA option is assigned.
35542 
35543 
35544 END IF;
35545 END IF;
35546 --
35547 
35548 --
35549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35550    trace
35551       (p_msg      => 'END of AcctLineType_60'
35552       ,p_level    => C_LEVEL_PROCEDURE
35553       ,p_module   => l_log_module);
35554 END IF;
35555 --
35556 EXCEPTION
35557   WHEN xla_exceptions_pkg.application_exception THEN
35558       RAISE;
35559   WHEN OTHERS THEN
35560        xla_exceptions_pkg.raise_message
35561            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_60');
35562 END AcctLineType_60;
35563 --
35564 
35565 ---------------------------------------
35566 --
35567 -- PRIVATE FUNCTION
35568 --         AcctLineType_61
35569 --
35570 ---------------------------------------
35571 PROCEDURE AcctLineType_61 (
35572   p_application_id        IN NUMBER
35573  ,p_event_id              IN NUMBER
35574  ,p_calculate_acctd_flag  IN VARCHAR2
35575  ,p_calculate_g_l_flag    IN VARCHAR2
35576  ,p_actual_flag           IN OUT VARCHAR2
35577  ,p_balance_type_code     OUT VARCHAR2
35578  ,p_gain_or_loss_ref      OUT VARCHAR2
35579  
35583  , p_source_13            IN NUMBER
35580 --Invoice Distribution Description
35581  , p_source_1            IN VARCHAR2
35582 --Self-Assessed Tax Account
35584 --Invoice Distribution Type
35585  , p_source_15            IN VARCHAR2
35586  , p_source_15_meaning    IN VARCHAR2
35587 --Purchasing Encumbrance Option
35588  , p_source_17            IN VARCHAR2
35589  , p_source_17_meaning    IN VARCHAR2
35590 --Accounting Reversal Indicator
35591  , p_source_19            IN VARCHAR2
35592 --Distribution Link Type
35593  , p_source_21            IN VARCHAR2
35594 --Allocation to Main Distribution Identifier
35595  , p_source_23            IN NUMBER
35596 --Invoice Identifier
35597  , p_source_24            IN NUMBER
35598 --Business Flow Accounts Payable Application Identifier
35599  , p_source_25            IN NUMBER
35600 --Business Flow Invoice Distribution Type
35601  , p_source_26            IN VARCHAR2
35602 --Business Flow Invoice Entity Code
35603  , p_source_27            IN VARCHAR2
35604 --Business Flow Invoice Distribution Identifier
35605  , p_source_28            IN NUMBER
35606 --Business Flow Invoice Identifier
35607  , p_source_29            IN NUMBER
35608 --Invoice Distribution Identifier
35609  , p_source_30            IN NUMBER
35610 --Payables Encumbrance Upgrade Credit Account
35611  , p_source_31            IN NUMBER
35612 --Payables Encumbrance Upgrade Credit Amount
35613  , p_source_32            IN NUMBER
35614 --Invoice Currency Code
35615  , p_source_33            IN VARCHAR2
35616 --Payables Encumbrance Upgrade Credit Base Amount
35617  , p_source_34            IN NUMBER
35618 --Payables Encumbrance Upgrade Debit Account
35619  , p_source_35            IN NUMBER
35620 --Payables Encumbrance Upgrade Debit Amount
35621  , p_source_36            IN NUMBER
35622 --Payables Encumbrance Upgrade Debit Base Amount
35623  , p_source_37            IN NUMBER
35624 --Payables Encumbrance Upgrade Option
35625  , p_source_38            IN VARCHAR2
35626 --Invoice Exchange Date
35627  , p_source_39            IN DATE
35628 --Invoice Exchange Rate
35629  , p_source_40            IN NUMBER
35630 --Invoice Exchange Rate Type
35631  , p_source_41            IN VARCHAR2
35632 --Deferred Accounting End Date
35633  , p_source_43            IN DATE
35634 --Deferred Accounting Option
35635  , p_source_44            IN VARCHAR2
35636 --Deferred Accounting Start Date
35637  , p_source_45            IN DATE
35638 --Override Accounted Amount Indicator
35639  , p_source_46            IN VARCHAR2
35640  , p_source_46_meaning    IN VARCHAR2
35641 --Invoice Supplier Identifier
35642  , p_source_47            IN NUMBER
35643 --Invoice Supplier Site Identifier
35644  , p_source_48            IN NUMBER
35645 --Third Party Type
35646  , p_source_49            IN VARCHAR2
35647 --Parent Reversal Identifier
35648  , p_source_50            IN NUMBER
35649 --Invoice Distribution Statistical Amount
35650  , p_source_51            IN NUMBER
35651 --Invoice Distribution Tax Line Identifier
35652  , p_source_52            IN NUMBER
35653 --Invoice Distribution Tax Distribution Identifier from Tax
35654  , p_source_53            IN NUMBER
35655 --Invoice Distribution Summary Tax Line Identifier
35656  , p_source_54            IN NUMBER
35657 --Payables Upgrade Credit Encumbrance Type Identifier
35658  , p_source_55            IN NUMBER
35659 --Payables Upgrade Debit Encumbrance Type Identifier
35660  , p_source_56            IN NUMBER
35661 --Self-Assessed Tax Flag
35662  , p_source_59            IN VARCHAR2
35663  , p_source_59_meaning    IN VARCHAR2
35664 --Invoice Distribution Encumbrance Amount
35665  , p_source_65            IN NUMBER
35666 --Invoice Distribution Encumbrance Ledger Amount
35667  , p_source_66            IN NUMBER
35668 )
35669 IS
35670 
35671 l_component_type              VARCHAR2(80);
35672 l_component_code              VARCHAR2(30);
35673 l_component_type_code         VARCHAR2(1);
35674 l_component_appl_id           INTEGER;
35675 l_amb_context_code            VARCHAR2(30);
35676 l_entity_code                 VARCHAR2(30);
35677 l_event_class_code            VARCHAR2(30);
35678 l_ae_header_id                NUMBER;
35679 l_event_type_code             VARCHAR2(30);
35680 l_line_definition_code        VARCHAR2(30);
35681 l_line_definition_owner_code  VARCHAR2(1);
35682 --
35683 -- adr variables
35684 l_segment                     VARCHAR2(30);
35685 l_ccid                        NUMBER;
35686 l_adr_transaction_coa_id      NUMBER;
35687 l_adr_accounting_coa_id       NUMBER;
35688 l_adr_flexfield_segment_code  VARCHAR2(30);
35689 l_adr_flex_value_set_id       NUMBER;
35690 l_adr_value_type_code         VARCHAR2(30);
35691 l_adr_value_combination_id    NUMBER;
35692 l_adr_value_segment_code      VARCHAR2(30);
35693 
35694 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35695 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35696 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35697 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35698 
35699 -- 4262811 Variables ------------------------------------------------------------------------------------------
35700 l_entered_amt_idx             NUMBER;
35701 l_accted_amt_idx              NUMBER;
35702 l_acc_rev_flag                VARCHAR2(1);
35703 l_accrual_line_num            NUMBER;
35704 l_tmp_amt                     NUMBER;
35705 l_acc_rev_natural_side_code   VARCHAR2(1);
35706 
35707 l_num_entries                 NUMBER;
35708 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35712 l_recog_line_1                NUMBER;
35709 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35710 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35711 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35713 l_recog_line_2                NUMBER;
35714 
35715 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35716 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35717 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35718 
35719 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35720 
35721 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35722 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35723 
35724 ---------------------------------------------------------------------------------------------------------------
35725 
35726 
35727 --
35728 -- bulk performance
35729 --
35730 l_balance_type_code           VARCHAR2(1);
35731 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35732 l_log_module                  VARCHAR2(240);
35733 
35734 --
35735 -- Upgrade strategy
35736 --
35737 l_actual_upg_option           VARCHAR2(1);
35738 l_enc_upg_option           VARCHAR2(1);
35739 
35740 --
35741 BEGIN
35742 --
35743 IF g_log_enabled THEN
35744       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
35745 END IF;
35746 --
35747 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35748 
35749       trace
35750          (p_msg      => 'BEGIN of AcctLineType_61'
35751          ,p_level    => C_LEVEL_PROCEDURE
35752          ,p_module   => l_log_module);
35753 
35754 END IF;
35755 --
35756 l_component_type             := 'AMB_JLT';
35757 l_component_code             := 'AP_SELFASSDNREC_TAX_CM_ENC_DR';
35758 l_component_type_code        := 'S';
35759 l_component_appl_id          :=  200;
35760 l_amb_context_code           := 'DEFAULT';
35761 l_entity_code                := 'AP_INVOICES';
35762 l_event_class_code           := 'CREDIT MEMOS';
35763 l_event_type_code            := 'CREDIT MEMOS_ALL';
35764 l_line_definition_owner_code := 'S';
35765 l_line_definition_code       := 'ENC_CM_ALL';
35766 --
35767 l_balance_type_code          := 'E';
35768 l_segment                     := NULL;
35769 l_ccid                        := NULL;
35770 l_adr_transaction_coa_id      := NULL;
35771 l_adr_accounting_coa_id       := NULL;
35772 l_adr_flexfield_segment_code  := NULL;
35773 l_adr_flex_value_set_id       := NULL;
35774 l_adr_value_type_code         := NULL;
35775 l_adr_value_combination_id    := NULL;
35776 l_adr_value_segment_code      := NULL;
35777 
35778 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35779 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
35780 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35781 l_budgetary_control_flag     := 'Y';
35782 
35783 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35784 l_bflow_applied_to_amt       := NULL; -- 5132302
35785 l_entered_amt_idx            := NULL;          -- 4262811
35786 l_accted_amt_idx             := NULL;          -- 4262811
35787 l_acc_rev_flag               := NULL;          -- 4262811
35788 l_accrual_line_num           := NULL;          -- 4262811
35789 l_tmp_amt                    := NULL;          -- 4262811
35790 --
35791  
35792 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35793     l_balance_type_code <> 'B' THEN
35794 IF NVL(p_source_15,'
35795 ') =  'NONREC_TAX' AND 
35796 NVL(p_source_59,'
35797 ') =  'Y' AND 
35798 NVL(p_source_17,'
35799 ') =  'Y'
35800  THEN 
35801 
35802    --
35803    XLA_AE_LINES_PKG.SetNewLine;
35804 
35805    p_balance_type_code          := l_balance_type_code;
35806    -- set the flag so later we will know whether the gain loss line needs to be created
35807    
35808    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35809      p_actual_flag :='A';
35810    END IF;
35811 
35812    --
35813    -- bulk performance
35814    --
35815    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35816                                       p_header_num   => 0); -- 4262811
35817    --
35818    -- set accounting line options
35819    --
35820    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35821            p_natural_side_code          => 'D'
35822          , p_gain_or_loss_flag          => 'N'
35823          , p_gl_transfer_mode_code      => 'S'
35824          , p_acct_entry_type_code       => 'E'
35825          , p_switch_side_flag           => 'Y'
35826          , p_merge_duplicate_code       => 'N'
35827          );
35828    --
35829    l_acc_rev_natural_side_code := 'C';  -- 4262811
35830    -- 
35831    --
35832    -- set accounting line type info
35833    --
35834    xla_ae_lines_pkg.SetAcctLineType
35835       (p_component_type             => l_component_type
35836       ,p_event_type_code            => l_event_type_code
35837       ,p_line_definition_owner_code => l_line_definition_owner_code
35838       ,p_line_definition_code       => l_line_definition_code
35839       ,p_accounting_line_code       => l_component_code
35840       ,p_accounting_line_type_code  => l_component_type_code
35844       ,p_event_class_code           => l_event_class_code);
35841       ,p_accounting_line_appl_id    => l_component_appl_id
35842       ,p_amb_context_code           => l_amb_context_code
35843       ,p_entity_code                => l_entity_code
35845    --
35846    -- set accounting class
35847    --
35848    xla_ae_lines_pkg.SetAcctClass(
35849            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
35850          , p_ae_header_id           => l_ae_header_id
35851          );
35852 
35853    --
35854    -- set rounding class
35855    --
35856    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35857                       'SELF_ASSESSED_TAX';
35858 
35859    --
35860    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35861    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35862    --
35863    -- bulk performance
35864    --
35865    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35866 
35867    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35868       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35869 
35870    -- 4955764
35871    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35872       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35873 
35874    -- 4458381 Public Sector Enh
35875       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
35876    --
35877    -- set accounting attributes for the line type
35878    --
35879    l_entered_amt_idx := 23;
35880    l_accted_amt_idx  := 28;
35881    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35882    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35883    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
35884    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35885    l_rec_acct_attrs.array_num_value(2)  := 
35886 xla_ae_sources_pkg.GetSystemSourceNum(
35887    p_source_code           => 'XLA_EVENT_APPL_ID'
35888  , p_source_type_code      => 'Y'
35889  , p_source_application_id =>  602
35890 );
35891    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35892    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
35893    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35894    l_rec_acct_attrs.array_char_value(4)  := 
35895 xla_ae_sources_pkg.GetSystemSourceChar(
35896    p_source_code           => 'XLA_ENTITY_CODE'
35897  , p_source_type_code      => 'Y'
35898  , p_source_application_id =>  602
35899 );
35900    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35901    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
35902    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35903    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
35904    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35905    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
35906    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35907    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
35908    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35909    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
35910    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35911    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
35912    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35913    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
35914    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35915    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
35916    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35917    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
35918    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35919    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
35920    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35921    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
35922    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35923    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
35924    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35925    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
35926    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35927    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
35928    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35929    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
35930    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35931    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
35932    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35933    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
35934    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35935    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
35936    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35937    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
35938    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35939    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
35943    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
35940    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35941    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
35942    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35944    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35945    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
35946    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35947    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
35948    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
35949    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
35950    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
35951    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
35952    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
35953    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
35954    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
35955    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
35956    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
35957    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
35958    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
35959    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
35960    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
35961    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
35962    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
35963    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
35964    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
35965    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
35966    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
35967    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
35968    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
35969    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
35970    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
35971    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
35972    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
35973    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
35974    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
35975    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
35976    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
35977    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
35978 
35979    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35980    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35981 
35982    ---------------------------------------------------------------------------------------------------------------
35983    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35984    ---------------------------------------------------------------------------------------------------------------
35985    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35986 
35987    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35988    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35989 
35990    IF xla_accounting_cache_pkg.GetValueChar
35991          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35992          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35993    AND l_bflow_method_code = 'PRIOR_ENTRY'
35994 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35995    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35996          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35997        )
35998    THEN
35999          xla_ae_lines_pkg.BflowUpgEntry
36000            (p_business_method_code    => l_bflow_method_code
36001            ,p_business_class_code     => l_bflow_class_code
36002            ,p_balance_type            => l_balance_type_code);
36003    ELSE
36004       NULL;
36005 -- No business flow processing for business flow method of NONE.
36006    END IF;
36007 
36008    --
36009    -- call analytical criteria
36010    --
36011    
36012    --
36013    -- call description
36014    --
36015    
36016 xla_ae_lines_pkg.SetLineDescription(
36017    p_ae_header_id => l_ae_header_id
36018   ,p_description  => Description_2 (
36019      p_application_id         => p_application_id
36020    , p_ae_header_id           => l_ae_header_id 
36021 , p_source_1 => p_source_1
36022    )
36023 );
36024 
36025 
36026    --
36027    -- call ADRs
36028    -- Bug 4922099
36029    --
36030    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36031         (NVL(l_actual_upg_option, 'N') = 'O') OR
36032         (NVL(l_enc_upg_option, 'N') = 'O')
36033       )
36034    THEN
36035    NULL;
36036    --
36037    --
36038    
36039   l_ccid := AcctDerRule_8(
36040            p_application_id           => p_application_id
36041          , p_ae_header_id             => l_ae_header_id 
36042 , p_source_13 => p_source_13
36043          , x_transaction_coa_id       => l_adr_transaction_coa_id
36044          , x_accounting_coa_id        => l_adr_accounting_coa_id
36045          , x_value_type_code          => l_adr_value_type_code
36046          , p_side                     => 'NA'
36047    );
36051   , p_value_type_code              => l_adr_value_type_code
36048 
36049    xla_ae_lines_pkg.set_ccid(
36050     p_code_combination_id          => l_ccid
36052   , p_transaction_coa_id           => l_adr_transaction_coa_id
36053   , p_accounting_coa_id            => l_adr_accounting_coa_id
36054   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
36055   , p_adr_type_code                => 'S'
36056   , p_component_type               => l_component_type
36057   , p_component_code               => l_component_code
36058   , p_component_type_code          => l_component_type_code
36059   , p_component_appl_id            => l_component_appl_id
36060   , p_amb_context_code             => l_amb_context_code
36061   , p_side                         => 'NA'
36062   );
36063 
36064 
36065    --
36066    --
36067    END IF;
36068    --
36069    -- Bug 4922099
36070    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36071           (NVL(l_enc_upg_option, 'N') = 'O')
36072         ) AND
36073         (l_bflow_method_code = 'PRIOR_ENTRY')
36074       )
36075    THEN
36076       IF
36077       --
36078       1 = 2
36079       --
36080       THEN
36081       xla_accounting_err_pkg.build_message
36082                                     (p_appli_s_name            => 'XLA'
36083                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36084                                     ,p_token_1                 => 'LINE_NUMBER'
36085                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36086                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36087                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36088                                                                              l_component_type
36089                                                                             ,l_component_code
36090                                                                             ,l_component_type_code
36091                                                                             ,l_component_appl_id
36092                                                                             ,l_amb_context_code
36093                                                                             ,l_entity_code
36094                                                                             ,l_event_class_code
36095                                                                            )
36096                                     ,p_token_3                 => 'OWNER'
36097                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36098                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36099                                                                           ,p_lookup_code    => l_component_type_code
36100                                                                          )
36101                                     ,p_token_4                 => 'PRODUCT_NAME'
36102                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36103                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36104                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36105                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36106                                     ,p_ae_header_id            =>  NULL
36107                                        );
36108 
36109         IF (C_LEVEL_ERROR>= g_log_level) THEN
36110                  trace
36111                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36112                       ,p_level    => C_LEVEL_ERROR
36113                       ,p_module   => l_log_module);
36114         END IF;
36115       END IF;
36116    END IF;
36117    --
36118    --
36119    ------------------------------------------------------------------------------------------------
36120    -- 4219869 Business Flow
36121    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36122    -- Prior Entry.  Currently, the following code is always generated.
36123    ------------------------------------------------------------------------------------------------
36124    XLA_AE_LINES_PKG.ValidateCurrentLine;
36125 
36126    ------------------------------------------------------------------------------------
36127    -- 4219869 Business Flow
36128    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36129    ------------------------------------------------------------------------------------
36130    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36131 
36132    ----------------------------------------------------------------------------------
36133    -- 4219869 Business Flow
36134    -- Update journal entry status -- Need to generate this within IF <condition>
36135    ----------------------------------------------------------------------------------
36136    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36137          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36138          ,p_balance_type_code => l_balance_type_code
36139          );
36140 
36141    -------------------------------------------------------------------------------------------
36142    -- 4262811 - Generate the Accrual Reversal lines
36143    -------------------------------------------------------------------------------------------
36144    BEGIN
36148          l_acc_rev_flag := 'N';
36145       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36146                               (g_array_event(p_event_id).array_value_num('header_index'));
36147       IF l_acc_rev_flag IS NULL THEN
36149       END IF;
36150    EXCEPTION
36151       WHEN OTHERS THEN
36152          l_acc_rev_flag := 'N';
36153    END;
36154    --
36155    IF (l_acc_rev_flag = 'Y') THEN
36156 
36157        -- 4645092  ------------------------------------------------------------------------------
36158        -- To allow MPA report to determine if it should generate report process
36159        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36160        ------------------------------------------------------------------------------------------
36161 
36162        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36163        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36164    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36165    -- call ADRs
36166    -- Bug 4922099
36167    --
36168    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36169         (NVL(l_actual_upg_option, 'N') = 'O') OR
36170         (NVL(l_enc_upg_option, 'N') = 'O')
36171       )
36172    THEN
36173    NULL;
36174    --
36175    --
36176    
36177   l_ccid := AcctDerRule_8(
36178            p_application_id           => p_application_id
36179          , p_ae_header_id             => l_ae_header_id 
36180 , p_source_13 => p_source_13
36181          , x_transaction_coa_id       => l_adr_transaction_coa_id
36182          , x_accounting_coa_id        => l_adr_accounting_coa_id
36183          , x_value_type_code          => l_adr_value_type_code
36184          , p_side                     => 'NA'
36185    );
36186 
36187    xla_ae_lines_pkg.set_ccid(
36188     p_code_combination_id          => l_ccid
36189   , p_value_type_code              => l_adr_value_type_code
36190   , p_transaction_coa_id           => l_adr_transaction_coa_id
36191   , p_accounting_coa_id            => l_adr_accounting_coa_id
36192   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
36193   , p_adr_type_code                => 'S'
36194   , p_component_type               => l_component_type
36195   , p_component_code               => l_component_code
36196   , p_component_type_code          => l_component_type_code
36197   , p_component_appl_id            => l_component_appl_id
36198   , p_amb_context_code             => l_amb_context_code
36199   , p_side                         => 'NA'
36200   );
36201 
36202 
36203    --
36204    --
36205    END IF;
36206 
36207        --
36208        -- Update the line information that should be overwritten
36209        --
36210        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36211                                          p_header_num   => 1);
36212        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36213 
36214        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36215 
36216        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36217           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36218        END IF;
36219 
36220       --
36221       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36222       --
36223       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36224           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36225       ELSE
36226           ---------------------------------------------------------------------------------------------------
36227           -- 4262811a Switch Sign
36228           ---------------------------------------------------------------------------------------------------
36229           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36230           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36231                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36232           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36233                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36234           -- 5132302
36235           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36236                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36237 
36238       END IF;
36239 
36240       -- 4955764
36241       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36242       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36243 
36244 
36245       XLA_AE_LINES_PKG.ValidateCurrentLine;
36246       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36247 
36248       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36249                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36250                ,p_balance_type_code => l_balance_type_code);
36251 
36252    END IF;
36253 
36254    -----------------------------------------------------------------------------------------
36255    -- 4262811 Multiperiod Accounting
36259 
36256    -----------------------------------------------------------------------------------------
36257      -- No MPA option is assigned.
36258 
36260 END IF;
36261 END IF;
36262 --
36263 
36264 --
36265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36266    trace
36267       (p_msg      => 'END of AcctLineType_61'
36268       ,p_level    => C_LEVEL_PROCEDURE
36269       ,p_module   => l_log_module);
36270 END IF;
36271 --
36272 EXCEPTION
36273   WHEN xla_exceptions_pkg.application_exception THEN
36274       RAISE;
36275   WHEN OTHERS THEN
36276        xla_exceptions_pkg.raise_message
36277            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_61');
36278 END AcctLineType_61;
36279 --
36280 
36281 ---------------------------------------
36282 --
36283 -- PRIVATE FUNCTION
36284 --         AcctLineType_62
36285 --
36286 ---------------------------------------
36287 PROCEDURE AcctLineType_62 (
36288   p_application_id        IN NUMBER
36289  ,p_event_id              IN NUMBER
36290  ,p_calculate_acctd_flag  IN VARCHAR2
36291  ,p_calculate_g_l_flag    IN VARCHAR2
36292  ,p_actual_flag           IN OUT VARCHAR2
36293  ,p_balance_type_code     OUT VARCHAR2
36294  ,p_gain_or_loss_ref      OUT VARCHAR2
36295  
36296 --Invoice Distribution Description
36297  , p_source_1            IN VARCHAR2
36298 --Self-Assessed Tax Account
36299  , p_source_13            IN NUMBER
36300 --Invoice Distribution Type
36301  , p_source_15            IN VARCHAR2
36302  , p_source_15_meaning    IN VARCHAR2
36303 --Purchasing Encumbrance Option
36304  , p_source_17            IN VARCHAR2
36305  , p_source_17_meaning    IN VARCHAR2
36306 --Accounting Reversal Indicator
36307  , p_source_19            IN VARCHAR2
36308 --Distribution Link Type
36309  , p_source_21            IN VARCHAR2
36310 --Allocation to Main Distribution Identifier
36311  , p_source_23            IN NUMBER
36312 --Invoice Identifier
36313  , p_source_24            IN NUMBER
36314 --Business Flow Accounts Payable Application Identifier
36315  , p_source_25            IN NUMBER
36316 --Business Flow Invoice Distribution Type
36317  , p_source_26            IN VARCHAR2
36318 --Business Flow Invoice Entity Code
36319  , p_source_27            IN VARCHAR2
36320 --Business Flow Invoice Distribution Identifier
36321  , p_source_28            IN NUMBER
36322 --Business Flow Invoice Identifier
36323  , p_source_29            IN NUMBER
36324 --Invoice Distribution Identifier
36325  , p_source_30            IN NUMBER
36326 --Payables Encumbrance Upgrade Credit Account
36327  , p_source_31            IN NUMBER
36328 --Payables Encumbrance Upgrade Credit Amount
36329  , p_source_32            IN NUMBER
36330 --Invoice Currency Code
36331  , p_source_33            IN VARCHAR2
36332 --Payables Encumbrance Upgrade Credit Base Amount
36333  , p_source_34            IN NUMBER
36334 --Payables Encumbrance Upgrade Debit Account
36335  , p_source_35            IN NUMBER
36336 --Payables Encumbrance Upgrade Debit Amount
36337  , p_source_36            IN NUMBER
36338 --Payables Encumbrance Upgrade Debit Base Amount
36339  , p_source_37            IN NUMBER
36340 --Payables Encumbrance Upgrade Option
36341  , p_source_38            IN VARCHAR2
36342 --Invoice Exchange Date
36343  , p_source_39            IN DATE
36344 --Invoice Exchange Rate
36345  , p_source_40            IN NUMBER
36346 --Invoice Exchange Rate Type
36347  , p_source_41            IN VARCHAR2
36348 --Deferred Accounting End Date
36349  , p_source_43            IN DATE
36350 --Deferred Accounting Option
36351  , p_source_44            IN VARCHAR2
36352 --Deferred Accounting Start Date
36353  , p_source_45            IN DATE
36354 --Override Accounted Amount Indicator
36355  , p_source_46            IN VARCHAR2
36356  , p_source_46_meaning    IN VARCHAR2
36357 --Invoice Supplier Identifier
36358  , p_source_47            IN NUMBER
36359 --Invoice Supplier Site Identifier
36360  , p_source_48            IN NUMBER
36361 --Third Party Type
36362  , p_source_49            IN VARCHAR2
36363 --Parent Reversal Identifier
36364  , p_source_50            IN NUMBER
36365 --Invoice Distribution Statistical Amount
36366  , p_source_51            IN NUMBER
36367 --Invoice Distribution Tax Line Identifier
36368  , p_source_52            IN NUMBER
36369 --Invoice Distribution Tax Distribution Identifier from Tax
36370  , p_source_53            IN NUMBER
36371 --Invoice Distribution Summary Tax Line Identifier
36372  , p_source_54            IN NUMBER
36373 --Payables Upgrade Credit Encumbrance Type Identifier
36374  , p_source_55            IN NUMBER
36375 --Payables Upgrade Debit Encumbrance Type Identifier
36376  , p_source_56            IN NUMBER
36377 --Invoice Distribution Amount
36378  , p_source_57            IN NUMBER
36379 --Self-Assessed Tax Flag
36380  , p_source_59            IN VARCHAR2
36381  , p_source_59_meaning    IN VARCHAR2
36382 --Invoice Distribution Encumbrance Amount
36383  , p_source_65            IN NUMBER
36384 --Invoice Distribution Encumbrance Ledger Amount
36385  , p_source_66            IN NUMBER
36386 )
36387 IS
36388 
36389 l_component_type              VARCHAR2(80);
36390 l_component_code              VARCHAR2(30);
36391 l_component_type_code         VARCHAR2(1);
36392 l_component_appl_id           INTEGER;
36393 l_amb_context_code            VARCHAR2(30);
36394 l_entity_code                 VARCHAR2(30);
36395 l_event_class_code            VARCHAR2(30);
36399 l_line_definition_owner_code  VARCHAR2(1);
36396 l_ae_header_id                NUMBER;
36397 l_event_type_code             VARCHAR2(30);
36398 l_line_definition_code        VARCHAR2(30);
36400 --
36401 -- adr variables
36402 l_segment                     VARCHAR2(30);
36403 l_ccid                        NUMBER;
36404 l_adr_transaction_coa_id      NUMBER;
36405 l_adr_accounting_coa_id       NUMBER;
36406 l_adr_flexfield_segment_code  VARCHAR2(30);
36407 l_adr_flex_value_set_id       NUMBER;
36408 l_adr_value_type_code         VARCHAR2(30);
36409 l_adr_value_combination_id    NUMBER;
36410 l_adr_value_segment_code      VARCHAR2(30);
36411 
36412 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36413 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36414 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36415 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36416 
36417 -- 4262811 Variables ------------------------------------------------------------------------------------------
36418 l_entered_amt_idx             NUMBER;
36419 l_accted_amt_idx              NUMBER;
36420 l_acc_rev_flag                VARCHAR2(1);
36421 l_accrual_line_num            NUMBER;
36422 l_tmp_amt                     NUMBER;
36423 l_acc_rev_natural_side_code   VARCHAR2(1);
36424 
36425 l_num_entries                 NUMBER;
36426 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36427 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36428 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36429 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36430 l_recog_line_1                NUMBER;
36431 l_recog_line_2                NUMBER;
36432 
36433 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36434 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36435 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36436 
36437 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36438 
36439 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36440 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36441 
36442 ---------------------------------------------------------------------------------------------------------------
36443 
36444 
36445 --
36446 -- bulk performance
36447 --
36448 l_balance_type_code           VARCHAR2(1);
36449 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36450 l_log_module                  VARCHAR2(240);
36451 
36452 --
36453 -- Upgrade strategy
36454 --
36455 l_actual_upg_option           VARCHAR2(1);
36456 l_enc_upg_option           VARCHAR2(1);
36457 
36458 --
36459 BEGIN
36460 --
36461 IF g_log_enabled THEN
36462       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
36463 END IF;
36464 --
36465 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36466 
36467       trace
36468          (p_msg      => 'BEGIN of AcctLineType_62'
36469          ,p_level    => C_LEVEL_PROCEDURE
36470          ,p_module   => l_log_module);
36471 
36472 END IF;
36473 --
36474 l_component_type             := 'AMB_JLT';
36475 l_component_code             := 'AP_SELFASSDNREC_TAX_INV_ENC_DR';
36476 l_component_type_code        := 'S';
36477 l_component_appl_id          :=  200;
36478 l_amb_context_code           := 'DEFAULT';
36479 l_entity_code                := 'AP_INVOICES';
36480 l_event_class_code           := 'INVOICES';
36481 l_event_type_code            := 'INVOICES_ALL';
36482 l_line_definition_owner_code := 'S';
36483 l_line_definition_code       := 'ENC_INVOICES_ALL';
36484 --
36485 l_balance_type_code          := 'E';
36486 l_segment                     := NULL;
36487 l_ccid                        := NULL;
36488 l_adr_transaction_coa_id      := NULL;
36489 l_adr_accounting_coa_id       := NULL;
36490 l_adr_flexfield_segment_code  := NULL;
36491 l_adr_flex_value_set_id       := NULL;
36492 l_adr_value_type_code         := NULL;
36493 l_adr_value_combination_id    := NULL;
36494 l_adr_value_segment_code      := NULL;
36495 
36496 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
36497 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
36498 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36499 l_budgetary_control_flag     := 'Y';
36500 
36501 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36502 l_bflow_applied_to_amt       := NULL; -- 5132302
36503 l_entered_amt_idx            := NULL;          -- 4262811
36504 l_accted_amt_idx             := NULL;          -- 4262811
36505 l_acc_rev_flag               := NULL;          -- 4262811
36506 l_accrual_line_num           := NULL;          -- 4262811
36507 l_tmp_amt                    := NULL;          -- 4262811
36508 --
36509  
36510 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36511     l_balance_type_code <> 'B' THEN
36512 IF NVL(p_source_15,'
36513 ') =  'NONREC_TAX' AND 
36514 NVL(p_source_59,'
36515 ') =  'Y' AND 
36516 NVL(p_source_17,'
36517 ') =  'Y'
36518  THEN 
36519 
36520    --
36521    XLA_AE_LINES_PKG.SetNewLine;
36522 
36523    p_balance_type_code          := l_balance_type_code;
36527      p_actual_flag :='A';
36524    -- set the flag so later we will know whether the gain loss line needs to be created
36525    
36526    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36528    END IF;
36529 
36530    --
36531    -- bulk performance
36532    --
36533    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36534                                       p_header_num   => 0); -- 4262811
36535    --
36536    -- set accounting line options
36537    --
36538    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36539            p_natural_side_code          => 'D'
36540          , p_gain_or_loss_flag          => 'N'
36541          , p_gl_transfer_mode_code      => 'S'
36542          , p_acct_entry_type_code       => 'E'
36543          , p_switch_side_flag           => 'Y'
36544          , p_merge_duplicate_code       => 'N'
36545          );
36546    --
36547    l_acc_rev_natural_side_code := 'C';  -- 4262811
36548    -- 
36549    --
36550    -- set accounting line type info
36551    --
36552    xla_ae_lines_pkg.SetAcctLineType
36553       (p_component_type             => l_component_type
36554       ,p_event_type_code            => l_event_type_code
36555       ,p_line_definition_owner_code => l_line_definition_owner_code
36556       ,p_line_definition_code       => l_line_definition_code
36557       ,p_accounting_line_code       => l_component_code
36558       ,p_accounting_line_type_code  => l_component_type_code
36559       ,p_accounting_line_appl_id    => l_component_appl_id
36560       ,p_amb_context_code           => l_amb_context_code
36561       ,p_entity_code                => l_entity_code
36562       ,p_event_class_code           => l_event_class_code);
36563    --
36564    -- set accounting class
36565    --
36566    xla_ae_lines_pkg.SetAcctClass(
36567            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
36568          , p_ae_header_id           => l_ae_header_id
36569          );
36570 
36571    --
36572    -- set rounding class
36573    --
36574    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36575                       'SELF_ASSESSED_TAX';
36576 
36577    --
36578    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36579    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36580    --
36581    -- bulk performance
36582    --
36583    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36584 
36585    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36586       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36587 
36588    -- 4955764
36589    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36590       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36591 
36592    -- 4458381 Public Sector Enh
36593       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
36594    --
36595    -- set accounting attributes for the line type
36596    --
36597    l_entered_amt_idx := 24;
36598    l_accted_amt_idx  := 29;
36599    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
36600    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36601    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
36602    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
36603    l_rec_acct_attrs.array_num_value(2)  := 
36604 xla_ae_sources_pkg.GetSystemSourceNum(
36605    p_source_code           => 'XLA_EVENT_APPL_ID'
36606  , p_source_type_code      => 'Y'
36607  , p_source_application_id =>  602
36608 );
36609    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
36610    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
36611    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
36612    l_rec_acct_attrs.array_char_value(4)  := 
36613 xla_ae_sources_pkg.GetSystemSourceChar(
36614    p_source_code           => 'XLA_ENTITY_CODE'
36615  , p_source_type_code      => 'Y'
36616  , p_source_application_id =>  602
36617 );
36618    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
36619    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
36620    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
36621    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
36622    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
36623    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
36624    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
36625    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
36626    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36627    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
36628    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
36629    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
36630    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
36631    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
36632    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36633    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
36634    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
36638    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
36635    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
36636    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
36637    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
36639    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
36640    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
36641    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
36642    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
36643    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
36644    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
36645    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
36646    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
36647    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
36648    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
36649    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
36650    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
36651    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
36652    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
36653    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
36654    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
36655    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
36656    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
36657    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
36658    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
36659    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
36660    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
36661    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
36662    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
36663    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
36664    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
36665    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
36666    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
36667    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
36668    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
36669    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
36670    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
36671    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
36672    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
36673    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
36674    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
36675    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
36676    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
36677    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
36678    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
36679    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
36680    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
36681    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
36682    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
36683    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
36684    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
36685    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
36686    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
36687    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
36688    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
36689    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
36690    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
36691    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
36692    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
36693    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
36694    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
36695    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
36696    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
36697    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
36698 
36699    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36700    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36701 
36702    ---------------------------------------------------------------------------------------------------------------
36703    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36704    ---------------------------------------------------------------------------------------------------------------
36705    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36706 
36707    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36708    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36709 
36710    IF xla_accounting_cache_pkg.GetValueChar
36711          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36712          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36713    AND l_bflow_method_code = 'PRIOR_ENTRY'
36714 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36715    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36716          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36717        )
36718    THEN
36722            ,p_balance_type            => l_balance_type_code);
36719          xla_ae_lines_pkg.BflowUpgEntry
36720            (p_business_method_code    => l_bflow_method_code
36721            ,p_business_class_code     => l_bflow_class_code
36723    ELSE
36724       NULL;
36725 -- No business flow processing for business flow method of NONE.
36726    END IF;
36727 
36728    --
36729    -- call analytical criteria
36730    --
36731    
36732    --
36733    -- call description
36734    --
36735    
36736 xla_ae_lines_pkg.SetLineDescription(
36737    p_ae_header_id => l_ae_header_id
36738   ,p_description  => Description_2 (
36739      p_application_id         => p_application_id
36740    , p_ae_header_id           => l_ae_header_id 
36741 , p_source_1 => p_source_1
36742    )
36743 );
36744 
36745 
36746    --
36747    -- call ADRs
36748    -- Bug 4922099
36749    --
36750    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36751         (NVL(l_actual_upg_option, 'N') = 'O') OR
36752         (NVL(l_enc_upg_option, 'N') = 'O')
36753       )
36754    THEN
36755    NULL;
36756    --
36757    --
36758    
36759   l_ccid := AcctDerRule_8(
36760            p_application_id           => p_application_id
36761          , p_ae_header_id             => l_ae_header_id 
36762 , p_source_13 => p_source_13
36763          , x_transaction_coa_id       => l_adr_transaction_coa_id
36764          , x_accounting_coa_id        => l_adr_accounting_coa_id
36765          , x_value_type_code          => l_adr_value_type_code
36766          , p_side                     => 'NA'
36767    );
36768 
36769    xla_ae_lines_pkg.set_ccid(
36770     p_code_combination_id          => l_ccid
36771   , p_value_type_code              => l_adr_value_type_code
36772   , p_transaction_coa_id           => l_adr_transaction_coa_id
36773   , p_accounting_coa_id            => l_adr_accounting_coa_id
36774   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
36775   , p_adr_type_code                => 'S'
36776   , p_component_type               => l_component_type
36777   , p_component_code               => l_component_code
36778   , p_component_type_code          => l_component_type_code
36779   , p_component_appl_id            => l_component_appl_id
36780   , p_amb_context_code             => l_amb_context_code
36781   , p_side                         => 'NA'
36782   );
36783 
36784 
36785    --
36786    --
36787    END IF;
36788    --
36789    -- Bug 4922099
36790    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36791           (NVL(l_enc_upg_option, 'N') = 'O')
36792         ) AND
36793         (l_bflow_method_code = 'PRIOR_ENTRY')
36794       )
36795    THEN
36796       IF
36797       --
36798       1 = 2
36799       --
36800       THEN
36801       xla_accounting_err_pkg.build_message
36802                                     (p_appli_s_name            => 'XLA'
36803                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36804                                     ,p_token_1                 => 'LINE_NUMBER'
36805                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36806                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36807                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36808                                                                              l_component_type
36809                                                                             ,l_component_code
36810                                                                             ,l_component_type_code
36811                                                                             ,l_component_appl_id
36812                                                                             ,l_amb_context_code
36813                                                                             ,l_entity_code
36814                                                                             ,l_event_class_code
36815                                                                            )
36816                                     ,p_token_3                 => 'OWNER'
36817                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36818                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36819                                                                           ,p_lookup_code    => l_component_type_code
36820                                                                          )
36821                                     ,p_token_4                 => 'PRODUCT_NAME'
36822                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36823                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36824                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36825                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36826                                     ,p_ae_header_id            =>  NULL
36827                                        );
36828 
36829         IF (C_LEVEL_ERROR>= g_log_level) THEN
36830                  trace
36831                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36832                       ,p_level    => C_LEVEL_ERROR
36833                       ,p_module   => l_log_module);
36834         END IF;
36835       END IF;
36839    ------------------------------------------------------------------------------------------------
36836    END IF;
36837    --
36838    --
36840    -- 4219869 Business Flow
36841    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36842    -- Prior Entry.  Currently, the following code is always generated.
36843    ------------------------------------------------------------------------------------------------
36844    XLA_AE_LINES_PKG.ValidateCurrentLine;
36845 
36846    ------------------------------------------------------------------------------------
36847    -- 4219869 Business Flow
36848    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36849    ------------------------------------------------------------------------------------
36850    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36851 
36852    ----------------------------------------------------------------------------------
36853    -- 4219869 Business Flow
36854    -- Update journal entry status -- Need to generate this within IF <condition>
36855    ----------------------------------------------------------------------------------
36856    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36857          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36858          ,p_balance_type_code => l_balance_type_code
36859          );
36860 
36861    -------------------------------------------------------------------------------------------
36862    -- 4262811 - Generate the Accrual Reversal lines
36863    -------------------------------------------------------------------------------------------
36864    BEGIN
36865       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36866                               (g_array_event(p_event_id).array_value_num('header_index'));
36867       IF l_acc_rev_flag IS NULL THEN
36868          l_acc_rev_flag := 'N';
36869       END IF;
36870    EXCEPTION
36871       WHEN OTHERS THEN
36872          l_acc_rev_flag := 'N';
36873    END;
36874    --
36875    IF (l_acc_rev_flag = 'Y') THEN
36876 
36877        -- 4645092  ------------------------------------------------------------------------------
36878        -- To allow MPA report to determine if it should generate report process
36879        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36880        ------------------------------------------------------------------------------------------
36881 
36882        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36883        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36884    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36885    -- call ADRs
36886    -- Bug 4922099
36887    --
36888    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36889         (NVL(l_actual_upg_option, 'N') = 'O') OR
36890         (NVL(l_enc_upg_option, 'N') = 'O')
36891       )
36892    THEN
36893    NULL;
36894    --
36895    --
36896    
36897   l_ccid := AcctDerRule_8(
36898            p_application_id           => p_application_id
36899          , p_ae_header_id             => l_ae_header_id 
36900 , p_source_13 => p_source_13
36901          , x_transaction_coa_id       => l_adr_transaction_coa_id
36902          , x_accounting_coa_id        => l_adr_accounting_coa_id
36903          , x_value_type_code          => l_adr_value_type_code
36904          , p_side                     => 'NA'
36905    );
36906 
36907    xla_ae_lines_pkg.set_ccid(
36908     p_code_combination_id          => l_ccid
36909   , p_value_type_code              => l_adr_value_type_code
36910   , p_transaction_coa_id           => l_adr_transaction_coa_id
36911   , p_accounting_coa_id            => l_adr_accounting_coa_id
36912   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
36913   , p_adr_type_code                => 'S'
36914   , p_component_type               => l_component_type
36915   , p_component_code               => l_component_code
36916   , p_component_type_code          => l_component_type_code
36917   , p_component_appl_id            => l_component_appl_id
36918   , p_amb_context_code             => l_amb_context_code
36919   , p_side                         => 'NA'
36920   );
36921 
36922 
36923    --
36924    --
36925    END IF;
36926 
36927        --
36928        -- Update the line information that should be overwritten
36929        --
36930        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36931                                          p_header_num   => 1);
36932        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36933 
36934        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36935 
36936        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36937           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36938        END IF;
36939 
36940       --
36941       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36942       --
36943       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36944           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36945       ELSE
36946           ---------------------------------------------------------------------------------------------------
36947           -- 4262811a Switch Sign
36951                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36948           ---------------------------------------------------------------------------------------------------
36949           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36950           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36952           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36953                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36954           -- 5132302
36955           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36956                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36957 
36958       END IF;
36959 
36960       -- 4955764
36961       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36962       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36963 
36964 
36965       XLA_AE_LINES_PKG.ValidateCurrentLine;
36966       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36967 
36968       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36969                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36970                ,p_balance_type_code => l_balance_type_code);
36971 
36972    END IF;
36973 
36974    -----------------------------------------------------------------------------------------
36975    -- 4262811 Multiperiod Accounting
36976    -----------------------------------------------------------------------------------------
36977      -- No MPA option is assigned.
36978 
36979 
36980 END IF;
36981 END IF;
36982 --
36983 
36984 --
36985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36986    trace
36987       (p_msg      => 'END of AcctLineType_62'
36988       ,p_level    => C_LEVEL_PROCEDURE
36989       ,p_module   => l_log_module);
36990 END IF;
36991 --
36992 EXCEPTION
36993   WHEN xla_exceptions_pkg.application_exception THEN
36994       RAISE;
36995   WHEN OTHERS THEN
36996        xla_exceptions_pkg.raise_message
36997            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_62');
36998 END AcctLineType_62;
36999 --
37000 
37001 ---------------------------------------
37002 --
37003 -- PRIVATE FUNCTION
37004 --         AcctLineType_63
37005 --
37006 ---------------------------------------
37007 PROCEDURE AcctLineType_63 (
37008   p_application_id        IN NUMBER
37009  ,p_event_id              IN NUMBER
37010  ,p_calculate_acctd_flag  IN VARCHAR2
37011  ,p_calculate_g_l_flag    IN VARCHAR2
37012  ,p_actual_flag           IN OUT VARCHAR2
37013  ,p_balance_type_code     OUT VARCHAR2
37014  ,p_gain_or_loss_ref      OUT VARCHAR2
37015  
37016 --Invoice Distribution Description
37017  , p_source_1            IN VARCHAR2
37018 --Self-Assessed Tax Account
37019  , p_source_13            IN NUMBER
37020 --Invoice Distribution Type
37021  , p_source_15            IN VARCHAR2
37022  , p_source_15_meaning    IN VARCHAR2
37023 --Purchasing Encumbrance Option
37024  , p_source_17            IN VARCHAR2
37025  , p_source_17_meaning    IN VARCHAR2
37026 --Accounting Reversal Indicator
37027  , p_source_19            IN VARCHAR2
37028 --Distribution Link Type
37029  , p_source_21            IN VARCHAR2
37030 --Allocation to Main Distribution Identifier
37031  , p_source_23            IN NUMBER
37032 --Invoice Identifier
37033  , p_source_24            IN NUMBER
37034 --Business Flow Accounts Payable Application Identifier
37035  , p_source_25            IN NUMBER
37036 --Business Flow Invoice Distribution Type
37037  , p_source_26            IN VARCHAR2
37038 --Business Flow Invoice Entity Code
37039  , p_source_27            IN VARCHAR2
37040 --Business Flow Invoice Distribution Identifier
37041  , p_source_28            IN NUMBER
37042 --Business Flow Invoice Identifier
37043  , p_source_29            IN NUMBER
37044 --Invoice Distribution Identifier
37045  , p_source_30            IN NUMBER
37046 --Payables Encumbrance Upgrade Credit Account
37047  , p_source_31            IN NUMBER
37048 --Payables Encumbrance Upgrade Credit Amount
37049  , p_source_32            IN NUMBER
37050 --Invoice Currency Code
37051  , p_source_33            IN VARCHAR2
37052 --Payables Encumbrance Upgrade Credit Base Amount
37053  , p_source_34            IN NUMBER
37054 --Payables Encumbrance Upgrade Debit Account
37055  , p_source_35            IN NUMBER
37056 --Payables Encumbrance Upgrade Debit Amount
37057  , p_source_36            IN NUMBER
37058 --Payables Encumbrance Upgrade Debit Base Amount
37059  , p_source_37            IN NUMBER
37060 --Payables Encumbrance Upgrade Option
37061  , p_source_38            IN VARCHAR2
37062 --Invoice Exchange Date
37063  , p_source_39            IN DATE
37064 --Invoice Exchange Rate
37065  , p_source_40            IN NUMBER
37066 --Invoice Exchange Rate Type
37067  , p_source_41            IN VARCHAR2
37068 --Deferred Accounting End Date
37069  , p_source_43            IN DATE
37070 --Deferred Accounting Option
37071  , p_source_44            IN VARCHAR2
37072 --Deferred Accounting Start Date
37073  , p_source_45            IN DATE
37074 --Override Accounted Amount Indicator
37075  , p_source_46            IN VARCHAR2
37076  , p_source_46_meaning    IN VARCHAR2
37080  , p_source_48            IN NUMBER
37077 --Invoice Supplier Identifier
37078  , p_source_47            IN NUMBER
37079 --Invoice Supplier Site Identifier
37081 --Third Party Type
37082  , p_source_49            IN VARCHAR2
37083 --Parent Reversal Identifier
37084  , p_source_50            IN NUMBER
37085 --Invoice Distribution Tax Line Identifier
37086  , p_source_52            IN NUMBER
37087 --Invoice Distribution Tax Distribution Identifier from Tax
37088  , p_source_53            IN NUMBER
37089 --Invoice Distribution Summary Tax Line Identifier
37090  , p_source_54            IN NUMBER
37091 --Payables Upgrade Credit Encumbrance Type Identifier
37092  , p_source_55            IN NUMBER
37093 --Payables Upgrade Debit Encumbrance Type Identifier
37094  , p_source_56            IN NUMBER
37095 --Self-Assessed Tax Flag
37096  , p_source_59            IN VARCHAR2
37097  , p_source_59_meaning    IN VARCHAR2
37098 --Invoice Distribution Encumbrance Amount
37099  , p_source_65            IN NUMBER
37100 --Invoice Distribution Encumbrance Ledger Amount
37101  , p_source_66            IN NUMBER
37102 )
37103 IS
37104 
37105 l_component_type              VARCHAR2(80);
37106 l_component_code              VARCHAR2(30);
37107 l_component_type_code         VARCHAR2(1);
37108 l_component_appl_id           INTEGER;
37109 l_amb_context_code            VARCHAR2(30);
37110 l_entity_code                 VARCHAR2(30);
37111 l_event_class_code            VARCHAR2(30);
37112 l_ae_header_id                NUMBER;
37113 l_event_type_code             VARCHAR2(30);
37114 l_line_definition_code        VARCHAR2(30);
37115 l_line_definition_owner_code  VARCHAR2(1);
37116 --
37117 -- adr variables
37118 l_segment                     VARCHAR2(30);
37119 l_ccid                        NUMBER;
37120 l_adr_transaction_coa_id      NUMBER;
37121 l_adr_accounting_coa_id       NUMBER;
37122 l_adr_flexfield_segment_code  VARCHAR2(30);
37123 l_adr_flex_value_set_id       NUMBER;
37124 l_adr_value_type_code         VARCHAR2(30);
37125 l_adr_value_combination_id    NUMBER;
37126 l_adr_value_segment_code      VARCHAR2(30);
37127 
37128 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37129 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37130 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37131 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37132 
37133 -- 4262811 Variables ------------------------------------------------------------------------------------------
37134 l_entered_amt_idx             NUMBER;
37135 l_accted_amt_idx              NUMBER;
37136 l_acc_rev_flag                VARCHAR2(1);
37137 l_accrual_line_num            NUMBER;
37138 l_tmp_amt                     NUMBER;
37139 l_acc_rev_natural_side_code   VARCHAR2(1);
37140 
37141 l_num_entries                 NUMBER;
37142 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37143 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37144 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37145 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37146 l_recog_line_1                NUMBER;
37147 l_recog_line_2                NUMBER;
37148 
37149 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37150 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37151 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37152 
37153 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37154 
37155 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37156 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37157 
37158 ---------------------------------------------------------------------------------------------------------------
37159 
37160 
37161 --
37162 -- bulk performance
37163 --
37164 l_balance_type_code           VARCHAR2(1);
37165 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37166 l_log_module                  VARCHAR2(240);
37167 
37168 --
37169 -- Upgrade strategy
37170 --
37171 l_actual_upg_option           VARCHAR2(1);
37172 l_enc_upg_option           VARCHAR2(1);
37173 
37174 --
37175 BEGIN
37176 --
37177 IF g_log_enabled THEN
37178       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
37179 END IF;
37180 --
37181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37182 
37183       trace
37184          (p_msg      => 'BEGIN of AcctLineType_63'
37185          ,p_level    => C_LEVEL_PROCEDURE
37186          ,p_module   => l_log_module);
37187 
37188 END IF;
37189 --
37190 l_component_type             := 'AMB_JLT';
37191 l_component_code             := 'AP_SELFASSD_NREC_TAX_DM_ENC_DR';
37192 l_component_type_code        := 'S';
37193 l_component_appl_id          :=  200;
37194 l_amb_context_code           := 'DEFAULT';
37195 l_entity_code                := 'AP_INVOICES';
37196 l_event_class_code           := 'DEBIT MEMOS';
37197 l_event_type_code            := 'DEBIT MEMOS_ALL';
37198 l_line_definition_owner_code := 'S';
37199 l_line_definition_code       := 'ENC_DM_ALL';
37200 --
37201 l_balance_type_code          := 'E';
37202 l_segment                     := NULL;
37203 l_ccid                        := NULL;
37204 l_adr_transaction_coa_id      := NULL;
37205 l_adr_accounting_coa_id       := NULL;
37206 l_adr_flexfield_segment_code  := NULL;
37210 l_adr_value_segment_code      := NULL;
37207 l_adr_flex_value_set_id       := NULL;
37208 l_adr_value_type_code         := NULL;
37209 l_adr_value_combination_id    := NULL;
37211 
37212 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37213 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
37214 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37215 l_budgetary_control_flag     := 'Y';
37216 
37217 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37218 l_bflow_applied_to_amt       := NULL; -- 5132302
37219 l_entered_amt_idx            := NULL;          -- 4262811
37220 l_accted_amt_idx             := NULL;          -- 4262811
37221 l_acc_rev_flag               := NULL;          -- 4262811
37222 l_accrual_line_num           := NULL;          -- 4262811
37223 l_tmp_amt                    := NULL;          -- 4262811
37224 --
37225  
37226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37227     l_balance_type_code <> 'B' THEN
37228 IF NVL(p_source_15,'
37229 ') =  'NONREC_TAX' AND 
37230 NVL(p_source_59,'
37231 ') =  'Y' AND 
37232 NVL(p_source_17,'
37233 ') =  'Y'
37234  THEN 
37235 
37236    --
37237    XLA_AE_LINES_PKG.SetNewLine;
37238 
37239    p_balance_type_code          := l_balance_type_code;
37240    -- set the flag so later we will know whether the gain loss line needs to be created
37241    
37242    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37243      p_actual_flag :='A';
37244    END IF;
37245 
37246    --
37247    -- bulk performance
37248    --
37249    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37250                                       p_header_num   => 0); -- 4262811
37251    --
37252    -- set accounting line options
37253    --
37254    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37255            p_natural_side_code          => 'D'
37256          , p_gain_or_loss_flag          => 'N'
37257          , p_gl_transfer_mode_code      => 'S'
37258          , p_acct_entry_type_code       => 'E'
37259          , p_switch_side_flag           => 'Y'
37260          , p_merge_duplicate_code       => 'N'
37261          );
37262    --
37263    l_acc_rev_natural_side_code := 'C';  -- 4262811
37264    -- 
37265    --
37266    -- set accounting line type info
37267    --
37268    xla_ae_lines_pkg.SetAcctLineType
37269       (p_component_type             => l_component_type
37270       ,p_event_type_code            => l_event_type_code
37271       ,p_line_definition_owner_code => l_line_definition_owner_code
37272       ,p_line_definition_code       => l_line_definition_code
37273       ,p_accounting_line_code       => l_component_code
37274       ,p_accounting_line_type_code  => l_component_type_code
37275       ,p_accounting_line_appl_id    => l_component_appl_id
37276       ,p_amb_context_code           => l_amb_context_code
37277       ,p_entity_code                => l_entity_code
37278       ,p_event_class_code           => l_event_class_code);
37279    --
37280    -- set accounting class
37281    --
37282    xla_ae_lines_pkg.SetAcctClass(
37283            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
37284          , p_ae_header_id           => l_ae_header_id
37285          );
37286 
37287    --
37288    -- set rounding class
37289    --
37290    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37291                       'SELF_ASSESSED_TAX';
37292 
37293    --
37294    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37295    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37296    --
37297    -- bulk performance
37298    --
37299    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37300 
37301    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37302       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37303 
37304    -- 4955764
37305    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37306       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37307 
37308    -- 4458381 Public Sector Enh
37309       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
37310    --
37311    -- set accounting attributes for the line type
37312    --
37313    l_entered_amt_idx := 23;
37314    l_accted_amt_idx  := 28;
37315    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
37316    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37317    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
37318    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
37319    l_rec_acct_attrs.array_num_value(2)  := 
37320 xla_ae_sources_pkg.GetSystemSourceNum(
37321    p_source_code           => 'XLA_EVENT_APPL_ID'
37322  , p_source_type_code      => 'Y'
37323  , p_source_application_id =>  602
37324 );
37325    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
37326    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
37327    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
37328    l_rec_acct_attrs.array_char_value(4)  := 
37329 xla_ae_sources_pkg.GetSystemSourceChar(
37333 );
37330    p_source_code           => 'XLA_ENTITY_CODE'
37331  , p_source_type_code      => 'Y'
37332  , p_source_application_id =>  602
37334    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
37335    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
37336    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
37337    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
37338    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
37339    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
37340    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37341    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
37342    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37343    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
37344    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37345    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
37346    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37347    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
37348    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37349    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
37350    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37351    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
37352    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
37353    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
37354    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
37355    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
37356    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
37357    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
37358    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
37359    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
37360    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
37361    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
37362    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
37363    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
37364    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
37365    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
37366    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
37367    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
37368    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
37369    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
37370    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
37371    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
37372    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
37373    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
37374    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
37375    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
37376    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
37377    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
37378    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
37379    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
37380    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
37381    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
37382    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
37383    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
37384    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
37385    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
37386    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
37387    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
37388    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
37389    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
37390    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
37391    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
37392    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
37393    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
37394    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
37395    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
37396    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
37397    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
37398    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
37399    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
37400    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
37401    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
37402    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
37403    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
37404    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
37405    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
37406    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
37407    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
37408    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
37409    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
37410 
37411    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37412    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37413 
37417    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37414    ---------------------------------------------------------------------------------------------------------------
37415    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37416    ---------------------------------------------------------------------------------------------------------------
37418 
37419    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37420    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37421 
37422    IF xla_accounting_cache_pkg.GetValueChar
37423          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37424          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37425    AND l_bflow_method_code = 'PRIOR_ENTRY'
37426 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37427    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37428          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37429        )
37430    THEN
37431          xla_ae_lines_pkg.BflowUpgEntry
37432            (p_business_method_code    => l_bflow_method_code
37433            ,p_business_class_code     => l_bflow_class_code
37434            ,p_balance_type            => l_balance_type_code);
37435    ELSE
37436       NULL;
37437 -- No business flow processing for business flow method of NONE.
37438    END IF;
37439 
37440    --
37441    -- call analytical criteria
37442    --
37443    
37444    --
37445    -- call description
37446    --
37447    
37448 xla_ae_lines_pkg.SetLineDescription(
37449    p_ae_header_id => l_ae_header_id
37450   ,p_description  => Description_2 (
37451      p_application_id         => p_application_id
37452    , p_ae_header_id           => l_ae_header_id 
37453 , p_source_1 => p_source_1
37454    )
37455 );
37456 
37457 
37458    --
37459    -- call ADRs
37460    -- Bug 4922099
37461    --
37462    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37463         (NVL(l_actual_upg_option, 'N') = 'O') OR
37464         (NVL(l_enc_upg_option, 'N') = 'O')
37465       )
37466    THEN
37467    NULL;
37468    --
37469    --
37470    
37471   l_ccid := AcctDerRule_8(
37472            p_application_id           => p_application_id
37473          , p_ae_header_id             => l_ae_header_id 
37474 , p_source_13 => p_source_13
37475          , x_transaction_coa_id       => l_adr_transaction_coa_id
37476          , x_accounting_coa_id        => l_adr_accounting_coa_id
37477          , x_value_type_code          => l_adr_value_type_code
37478          , p_side                     => 'NA'
37479    );
37480 
37481    xla_ae_lines_pkg.set_ccid(
37482     p_code_combination_id          => l_ccid
37483   , p_value_type_code              => l_adr_value_type_code
37484   , p_transaction_coa_id           => l_adr_transaction_coa_id
37485   , p_accounting_coa_id            => l_adr_accounting_coa_id
37486   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
37487   , p_adr_type_code                => 'S'
37488   , p_component_type               => l_component_type
37489   , p_component_code               => l_component_code
37490   , p_component_type_code          => l_component_type_code
37491   , p_component_appl_id            => l_component_appl_id
37492   , p_amb_context_code             => l_amb_context_code
37493   , p_side                         => 'NA'
37494   );
37495 
37496 
37497    --
37498    --
37499    END IF;
37500    --
37501    -- Bug 4922099
37502    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37503           (NVL(l_enc_upg_option, 'N') = 'O')
37504         ) AND
37505         (l_bflow_method_code = 'PRIOR_ENTRY')
37506       )
37507    THEN
37508       IF
37509       --
37510       1 = 2
37511       --
37512       THEN
37513       xla_accounting_err_pkg.build_message
37514                                     (p_appli_s_name            => 'XLA'
37515                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37516                                     ,p_token_1                 => 'LINE_NUMBER'
37517                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37518                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37519                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37520                                                                              l_component_type
37521                                                                             ,l_component_code
37522                                                                             ,l_component_type_code
37523                                                                             ,l_component_appl_id
37524                                                                             ,l_amb_context_code
37525                                                                             ,l_entity_code
37526                                                                             ,l_event_class_code
37527                                                                            )
37528                                     ,p_token_3                 => 'OWNER'
37529                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37533                                     ,p_token_4                 => 'PRODUCT_NAME'
37530                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37531                                                                           ,p_lookup_code    => l_component_type_code
37532                                                                          )
37534                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37535                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37536                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37537                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37538                                     ,p_ae_header_id            =>  NULL
37539                                        );
37540 
37541         IF (C_LEVEL_ERROR>= g_log_level) THEN
37542                  trace
37543                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37544                       ,p_level    => C_LEVEL_ERROR
37545                       ,p_module   => l_log_module);
37546         END IF;
37547       END IF;
37548    END IF;
37549    --
37550    --
37551    ------------------------------------------------------------------------------------------------
37552    -- 4219869 Business Flow
37553    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37554    -- Prior Entry.  Currently, the following code is always generated.
37555    ------------------------------------------------------------------------------------------------
37556    XLA_AE_LINES_PKG.ValidateCurrentLine;
37557 
37558    ------------------------------------------------------------------------------------
37559    -- 4219869 Business Flow
37560    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37561    ------------------------------------------------------------------------------------
37562    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37563 
37564    ----------------------------------------------------------------------------------
37565    -- 4219869 Business Flow
37566    -- Update journal entry status -- Need to generate this within IF <condition>
37567    ----------------------------------------------------------------------------------
37568    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37569          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37570          ,p_balance_type_code => l_balance_type_code
37571          );
37572 
37573    -------------------------------------------------------------------------------------------
37574    -- 4262811 - Generate the Accrual Reversal lines
37575    -------------------------------------------------------------------------------------------
37576    BEGIN
37577       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37578                               (g_array_event(p_event_id).array_value_num('header_index'));
37579       IF l_acc_rev_flag IS NULL THEN
37580          l_acc_rev_flag := 'N';
37581       END IF;
37582    EXCEPTION
37583       WHEN OTHERS THEN
37584          l_acc_rev_flag := 'N';
37585    END;
37586    --
37587    IF (l_acc_rev_flag = 'Y') THEN
37588 
37589        -- 4645092  ------------------------------------------------------------------------------
37590        -- To allow MPA report to determine if it should generate report process
37591        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37592        ------------------------------------------------------------------------------------------
37593 
37594        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37595        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37596    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37597    -- call ADRs
37598    -- Bug 4922099
37599    --
37600    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37601         (NVL(l_actual_upg_option, 'N') = 'O') OR
37602         (NVL(l_enc_upg_option, 'N') = 'O')
37603       )
37604    THEN
37605    NULL;
37606    --
37607    --
37608    
37609   l_ccid := AcctDerRule_8(
37610            p_application_id           => p_application_id
37611          , p_ae_header_id             => l_ae_header_id 
37612 , p_source_13 => p_source_13
37613          , x_transaction_coa_id       => l_adr_transaction_coa_id
37614          , x_accounting_coa_id        => l_adr_accounting_coa_id
37615          , x_value_type_code          => l_adr_value_type_code
37616          , p_side                     => 'NA'
37617    );
37618 
37619    xla_ae_lines_pkg.set_ccid(
37620     p_code_combination_id          => l_ccid
37621   , p_value_type_code              => l_adr_value_type_code
37622   , p_transaction_coa_id           => l_adr_transaction_coa_id
37623   , p_accounting_coa_id            => l_adr_accounting_coa_id
37624   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
37625   , p_adr_type_code                => 'S'
37626   , p_component_type               => l_component_type
37627   , p_component_code               => l_component_code
37628   , p_component_type_code          => l_component_type_code
37629   , p_component_appl_id            => l_component_appl_id
37630   , p_amb_context_code             => l_amb_context_code
37631   , p_side                         => 'NA'
37632   );
37633 
37634 
37635    --
37636    --
37637    END IF;
37638 
37639        --
37643                                          p_header_num   => 1);
37640        -- Update the line information that should be overwritten
37641        --
37642        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37644        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37645 
37646        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37647 
37648        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37649           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37650        END IF;
37651 
37652       --
37653       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37654       --
37655       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37656           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37657       ELSE
37658           ---------------------------------------------------------------------------------------------------
37659           -- 4262811a Switch Sign
37660           ---------------------------------------------------------------------------------------------------
37661           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37662           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37663                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37664           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37665                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37666           -- 5132302
37667           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37668                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37669 
37670       END IF;
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('acc_rev_header_index'));
37675 
37676 
37677       XLA_AE_LINES_PKG.ValidateCurrentLine;
37678       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37679 
37680       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37681                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37682                ,p_balance_type_code => l_balance_type_code);
37683 
37684    END IF;
37685 
37686    -----------------------------------------------------------------------------------------
37687    -- 4262811 Multiperiod Accounting
37688    -----------------------------------------------------------------------------------------
37689      -- No MPA option is assigned.
37690 
37691 
37692 END IF;
37693 END IF;
37694 --
37695 
37696 --
37697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37698    trace
37699       (p_msg      => 'END of AcctLineType_63'
37700       ,p_level    => C_LEVEL_PROCEDURE
37701       ,p_module   => l_log_module);
37702 END IF;
37703 --
37704 EXCEPTION
37705   WHEN xla_exceptions_pkg.application_exception THEN
37706       RAISE;
37707   WHEN OTHERS THEN
37708        xla_exceptions_pkg.raise_message
37709            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_63');
37710 END AcctLineType_63;
37711 --
37712 
37713 ---------------------------------------
37714 --
37715 -- PRIVATE FUNCTION
37716 --         AcctLineType_64
37717 --
37718 ---------------------------------------
37719 PROCEDURE AcctLineType_64 (
37720   p_application_id        IN NUMBER
37721  ,p_event_id              IN NUMBER
37722  ,p_calculate_acctd_flag  IN VARCHAR2
37723  ,p_calculate_g_l_flag    IN VARCHAR2
37724  ,p_actual_flag           IN OUT VARCHAR2
37725  ,p_balance_type_code     OUT VARCHAR2
37726  ,p_gain_or_loss_ref      OUT VARCHAR2
37727  
37728 --Invoice Distribution Description
37729  , p_source_1            IN VARCHAR2
37730 --Self-Assessed Tax Account
37731  , p_source_13            IN NUMBER
37732 --Invoice Distribution Type
37733  , p_source_15            IN VARCHAR2
37734  , p_source_15_meaning    IN VARCHAR2
37735 --Purchasing Encumbrance Option
37736  , p_source_17            IN VARCHAR2
37737  , p_source_17_meaning    IN VARCHAR2
37738 --Accounting Reversal Indicator
37739  , p_source_19            IN VARCHAR2
37740 --Distribution Link Type
37741  , p_source_21            IN VARCHAR2
37742 --Allocation to Main Distribution Identifier
37743  , p_source_23            IN NUMBER
37744 --Invoice Identifier
37745  , p_source_24            IN NUMBER
37746 --Business Flow Accounts Payable Application Identifier
37747  , p_source_25            IN NUMBER
37748 --Business Flow Invoice Distribution Type
37749  , p_source_26            IN VARCHAR2
37750 --Business Flow Invoice Entity Code
37751  , p_source_27            IN VARCHAR2
37752 --Business Flow Invoice Distribution Identifier
37753  , p_source_28            IN NUMBER
37754 --Business Flow Invoice Identifier
37755  , p_source_29            IN NUMBER
37756 --Invoice Distribution Identifier
37757  , p_source_30            IN NUMBER
37758 --Payables Encumbrance Upgrade Credit Account
37759  , p_source_31            IN NUMBER
37763  , p_source_33            IN VARCHAR2
37760 --Payables Encumbrance Upgrade Credit Amount
37761  , p_source_32            IN NUMBER
37762 --Invoice Currency Code
37764 --Payables Encumbrance Upgrade Credit Base Amount
37765  , p_source_34            IN NUMBER
37766 --Payables Encumbrance Upgrade Debit Account
37767  , p_source_35            IN NUMBER
37768 --Payables Encumbrance Upgrade Debit Amount
37769  , p_source_36            IN NUMBER
37770 --Payables Encumbrance Upgrade Debit Base Amount
37771  , p_source_37            IN NUMBER
37772 --Payables Encumbrance Upgrade Option
37773  , p_source_38            IN VARCHAR2
37774 --Invoice Exchange Date
37775  , p_source_39            IN DATE
37776 --Invoice Exchange Rate
37777  , p_source_40            IN NUMBER
37778 --Invoice Exchange Rate Type
37779  , p_source_41            IN VARCHAR2
37780 --Deferred Accounting End Date
37781  , p_source_43            IN DATE
37782 --Deferred Accounting Option
37783  , p_source_44            IN VARCHAR2
37784 --Deferred Accounting Start Date
37785  , p_source_45            IN DATE
37786 --Override Accounted Amount Indicator
37787  , p_source_46            IN VARCHAR2
37788  , p_source_46_meaning    IN VARCHAR2
37789 --Invoice Supplier Identifier
37790  , p_source_47            IN NUMBER
37791 --Invoice Supplier Site Identifier
37792  , p_source_48            IN NUMBER
37793 --Third Party Type
37794  , p_source_49            IN VARCHAR2
37795 --Parent Reversal Identifier
37796  , p_source_50            IN NUMBER
37797 --Invoice Distribution Statistical Amount
37798  , p_source_51            IN NUMBER
37799 --Invoice Distribution Tax Line Identifier
37800  , p_source_52            IN NUMBER
37801 --Invoice Distribution Tax Distribution Identifier from Tax
37802  , p_source_53            IN NUMBER
37803 --Invoice Distribution Summary Tax Line Identifier
37804  , p_source_54            IN NUMBER
37805 --Payables Upgrade Credit Encumbrance Type Identifier
37806  , p_source_55            IN NUMBER
37807 --Payables Upgrade Debit Encumbrance Type Identifier
37808  , p_source_56            IN NUMBER
37809 --Self-Assessed Tax Flag
37810  , p_source_59            IN VARCHAR2
37811  , p_source_59_meaning    IN VARCHAR2
37812 --Invoice Distribution Encumbrance Amount
37813  , p_source_65            IN NUMBER
37814 --Invoice Distribution Encumbrance Ledger Amount
37815  , p_source_66            IN NUMBER
37816 )
37817 IS
37818 
37819 l_component_type              VARCHAR2(80);
37820 l_component_code              VARCHAR2(30);
37821 l_component_type_code         VARCHAR2(1);
37822 l_component_appl_id           INTEGER;
37823 l_amb_context_code            VARCHAR2(30);
37824 l_entity_code                 VARCHAR2(30);
37825 l_event_class_code            VARCHAR2(30);
37826 l_ae_header_id                NUMBER;
37827 l_event_type_code             VARCHAR2(30);
37828 l_line_definition_code        VARCHAR2(30);
37829 l_line_definition_owner_code  VARCHAR2(1);
37830 --
37831 -- adr variables
37832 l_segment                     VARCHAR2(30);
37833 l_ccid                        NUMBER;
37834 l_adr_transaction_coa_id      NUMBER;
37835 l_adr_accounting_coa_id       NUMBER;
37836 l_adr_flexfield_segment_code  VARCHAR2(30);
37837 l_adr_flex_value_set_id       NUMBER;
37838 l_adr_value_type_code         VARCHAR2(30);
37839 l_adr_value_combination_id    NUMBER;
37840 l_adr_value_segment_code      VARCHAR2(30);
37841 
37842 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37843 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37844 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37845 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37846 
37847 -- 4262811 Variables ------------------------------------------------------------------------------------------
37848 l_entered_amt_idx             NUMBER;
37849 l_accted_amt_idx              NUMBER;
37850 l_acc_rev_flag                VARCHAR2(1);
37851 l_accrual_line_num            NUMBER;
37852 l_tmp_amt                     NUMBER;
37853 l_acc_rev_natural_side_code   VARCHAR2(1);
37854 
37855 l_num_entries                 NUMBER;
37856 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37857 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37858 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37859 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37860 l_recog_line_1                NUMBER;
37861 l_recog_line_2                NUMBER;
37862 
37863 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37864 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37865 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37866 
37867 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37868 
37869 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37870 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37871 
37872 ---------------------------------------------------------------------------------------------------------------
37873 
37874 
37875 --
37876 -- bulk performance
37877 --
37878 l_balance_type_code           VARCHAR2(1);
37879 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37880 l_log_module                  VARCHAR2(240);
37881 
37882 --
37883 -- Upgrade strategy
37884 --
37888 --
37885 l_actual_upg_option           VARCHAR2(1);
37886 l_enc_upg_option           VARCHAR2(1);
37887 
37889 BEGIN
37890 --
37891 IF g_log_enabled THEN
37892       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
37893 END IF;
37894 --
37895 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37896 
37897       trace
37898          (p_msg      => 'BEGIN of AcctLineType_64'
37899          ,p_level    => C_LEVEL_PROCEDURE
37900          ,p_module   => l_log_module);
37901 
37902 END IF;
37903 --
37904 l_component_type             := 'AMB_JLT';
37905 l_component_code             := 'AP_SELFASSD_NREC_TAX_PP_ENC_DR';
37906 l_component_type_code        := 'S';
37907 l_component_appl_id          :=  200;
37908 l_amb_context_code           := 'DEFAULT';
37909 l_entity_code                := 'AP_INVOICES';
37910 l_event_class_code           := 'PREPAYMENTS';
37911 l_event_type_code            := 'PREPAYMENTS_ALL';
37912 l_line_definition_owner_code := 'S';
37913 l_line_definition_code       := 'ENC_PREPAY_ALL';
37914 --
37915 l_balance_type_code          := 'E';
37916 l_segment                     := NULL;
37917 l_ccid                        := NULL;
37918 l_adr_transaction_coa_id      := NULL;
37919 l_adr_accounting_coa_id       := NULL;
37920 l_adr_flexfield_segment_code  := NULL;
37921 l_adr_flex_value_set_id       := NULL;
37922 l_adr_value_type_code         := NULL;
37923 l_adr_value_combination_id    := NULL;
37924 l_adr_value_segment_code      := NULL;
37925 
37926 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37927 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
37928 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37929 l_budgetary_control_flag     := 'Y';
37930 
37931 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37932 l_bflow_applied_to_amt       := NULL; -- 5132302
37933 l_entered_amt_idx            := NULL;          -- 4262811
37934 l_accted_amt_idx             := NULL;          -- 4262811
37935 l_acc_rev_flag               := NULL;          -- 4262811
37936 l_accrual_line_num           := NULL;          -- 4262811
37937 l_tmp_amt                    := NULL;          -- 4262811
37938 --
37939  
37940 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37941     l_balance_type_code <> 'B' THEN
37942 IF NVL(p_source_15,'
37943 ') =  'NONREC_TAX' AND 
37944 NVL(p_source_59,'
37945 ') =  'Y' AND 
37946 NVL(p_source_17,'
37947 ') =  'Y'
37948  THEN 
37949 
37950    --
37951    XLA_AE_LINES_PKG.SetNewLine;
37952 
37953    p_balance_type_code          := l_balance_type_code;
37954    -- set the flag so later we will know whether the gain loss line needs to be created
37955    
37956    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37957      p_actual_flag :='A';
37958    END IF;
37959 
37960    --
37961    -- bulk performance
37962    --
37963    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37964                                       p_header_num   => 0); -- 4262811
37965    --
37966    -- set accounting line options
37967    --
37968    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37969            p_natural_side_code          => 'D'
37970          , p_gain_or_loss_flag          => 'N'
37971          , p_gl_transfer_mode_code      => 'S'
37972          , p_acct_entry_type_code       => 'E'
37973          , p_switch_side_flag           => 'Y'
37974          , p_merge_duplicate_code       => 'N'
37975          );
37976    --
37977    l_acc_rev_natural_side_code := 'C';  -- 4262811
37978    -- 
37979    --
37980    -- set accounting line type info
37981    --
37982    xla_ae_lines_pkg.SetAcctLineType
37983       (p_component_type             => l_component_type
37984       ,p_event_type_code            => l_event_type_code
37985       ,p_line_definition_owner_code => l_line_definition_owner_code
37986       ,p_line_definition_code       => l_line_definition_code
37987       ,p_accounting_line_code       => l_component_code
37988       ,p_accounting_line_type_code  => l_component_type_code
37989       ,p_accounting_line_appl_id    => l_component_appl_id
37990       ,p_amb_context_code           => l_amb_context_code
37991       ,p_entity_code                => l_entity_code
37992       ,p_event_class_code           => l_event_class_code);
37993    --
37994    -- set accounting class
37995    --
37996    xla_ae_lines_pkg.SetAcctClass(
37997            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
37998          , p_ae_header_id           => l_ae_header_id
37999          );
38000 
38001    --
38002    -- set rounding class
38003    --
38004    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38005                       'SELF_ASSESSED_TAX';
38006 
38007    --
38008    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38009    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38010    --
38011    -- bulk performance
38012    --
38013    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38014 
38015    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38016       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38017 
38018    -- 4955764
38022    -- 4458381 Public Sector Enh
38019    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38020       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38021 
38023       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
38024    --
38025    -- set accounting attributes for the line type
38026    --
38027    l_entered_amt_idx := 23;
38028    l_accted_amt_idx  := 28;
38029    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38030    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38031    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
38032    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38033    l_rec_acct_attrs.array_num_value(2)  := 
38034 xla_ae_sources_pkg.GetSystemSourceNum(
38035    p_source_code           => 'XLA_EVENT_APPL_ID'
38036  , p_source_type_code      => 'Y'
38037  , p_source_application_id =>  602
38038 );
38039    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38040    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
38041    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38042    l_rec_acct_attrs.array_char_value(4)  := 
38043 xla_ae_sources_pkg.GetSystemSourceChar(
38044    p_source_code           => 'XLA_ENTITY_CODE'
38045  , p_source_type_code      => 'Y'
38046  , p_source_application_id =>  602
38047 );
38048    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38049    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
38050    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38051    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
38052    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38053    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
38054    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38055    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
38056    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38057    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
38058    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38059    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
38060    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38061    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
38062    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
38063    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
38064    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
38065    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
38066    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
38067    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
38068    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
38069    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
38070    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
38071    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
38072    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
38073    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
38074    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
38075    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
38076    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
38077    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
38078    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
38079    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
38080    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
38081    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
38082    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
38083    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
38084    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
38085    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
38086    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
38087    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
38088    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
38089    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
38090    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
38091    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
38092    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
38093    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
38094    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
38095    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
38096    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
38097    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
38098    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
38099    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
38100    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
38101    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
38102    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
38103    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
38104    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
38105    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
38106    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
38107    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
38108    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
38112    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
38109    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
38110    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
38111    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
38113    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
38114    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
38115    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
38116    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
38117    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
38118    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
38119    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
38120    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
38121    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
38122    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
38123    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
38124    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
38125    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
38126 
38127    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38128    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38129 
38130    ---------------------------------------------------------------------------------------------------------------
38131    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38132    ---------------------------------------------------------------------------------------------------------------
38133    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38134 
38135    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38136    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38137 
38138    IF xla_accounting_cache_pkg.GetValueChar
38139          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38140          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38141    AND l_bflow_method_code = 'PRIOR_ENTRY'
38142 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38143    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38144          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38145        )
38146    THEN
38147          xla_ae_lines_pkg.BflowUpgEntry
38148            (p_business_method_code    => l_bflow_method_code
38149            ,p_business_class_code     => l_bflow_class_code
38150            ,p_balance_type            => l_balance_type_code);
38151    ELSE
38152       NULL;
38153 -- No business flow processing for business flow method of NONE.
38154    END IF;
38155 
38156    --
38157    -- call analytical criteria
38158    --
38159    
38160    --
38161    -- call description
38162    --
38163    
38164 xla_ae_lines_pkg.SetLineDescription(
38165    p_ae_header_id => l_ae_header_id
38166   ,p_description  => Description_2 (
38167      p_application_id         => p_application_id
38168    , p_ae_header_id           => l_ae_header_id 
38169 , p_source_1 => p_source_1
38170    )
38171 );
38172 
38173 
38174    --
38175    -- call ADRs
38176    -- Bug 4922099
38177    --
38178    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38179         (NVL(l_actual_upg_option, 'N') = 'O') OR
38180         (NVL(l_enc_upg_option, 'N') = 'O')
38181       )
38182    THEN
38183    NULL;
38184    --
38185    --
38186    
38187   l_ccid := AcctDerRule_8(
38188            p_application_id           => p_application_id
38189          , p_ae_header_id             => l_ae_header_id 
38190 , p_source_13 => p_source_13
38191          , x_transaction_coa_id       => l_adr_transaction_coa_id
38192          , x_accounting_coa_id        => l_adr_accounting_coa_id
38193          , x_value_type_code          => l_adr_value_type_code
38194          , p_side                     => 'NA'
38195    );
38196 
38197    xla_ae_lines_pkg.set_ccid(
38198     p_code_combination_id          => l_ccid
38199   , p_value_type_code              => l_adr_value_type_code
38200   , p_transaction_coa_id           => l_adr_transaction_coa_id
38201   , p_accounting_coa_id            => l_adr_accounting_coa_id
38202   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
38203   , p_adr_type_code                => 'S'
38204   , p_component_type               => l_component_type
38205   , p_component_code               => l_component_code
38206   , p_component_type_code          => l_component_type_code
38207   , p_component_appl_id            => l_component_appl_id
38208   , p_amb_context_code             => l_amb_context_code
38209   , p_side                         => 'NA'
38210   );
38211 
38212 
38213    --
38214    --
38215    END IF;
38216    --
38217    -- Bug 4922099
38218    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38219           (NVL(l_enc_upg_option, 'N') = 'O')
38220         ) AND
38221         (l_bflow_method_code = 'PRIOR_ENTRY')
38222       )
38223    THEN
38224       IF
38225       --
38226       1 = 2
38227       --
38228       THEN
38229       xla_accounting_err_pkg.build_message
38230                                     (p_appli_s_name            => 'XLA'
38234                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38231                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38232                                     ,p_token_1                 => 'LINE_NUMBER'
38233                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38235                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38236                                                                              l_component_type
38237                                                                             ,l_component_code
38238                                                                             ,l_component_type_code
38239                                                                             ,l_component_appl_id
38240                                                                             ,l_amb_context_code
38241                                                                             ,l_entity_code
38242                                                                             ,l_event_class_code
38243                                                                            )
38244                                     ,p_token_3                 => 'OWNER'
38245                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38246                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38247                                                                           ,p_lookup_code    => l_component_type_code
38248                                                                          )
38249                                     ,p_token_4                 => 'PRODUCT_NAME'
38250                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38251                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38252                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38253                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38254                                     ,p_ae_header_id            =>  NULL
38255                                        );
38256 
38257         IF (C_LEVEL_ERROR>= g_log_level) THEN
38258                  trace
38259                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38260                       ,p_level    => C_LEVEL_ERROR
38261                       ,p_module   => l_log_module);
38262         END IF;
38263       END IF;
38264    END IF;
38265    --
38266    --
38267    ------------------------------------------------------------------------------------------------
38268    -- 4219869 Business Flow
38269    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38270    -- Prior Entry.  Currently, the following code is always generated.
38271    ------------------------------------------------------------------------------------------------
38272    XLA_AE_LINES_PKG.ValidateCurrentLine;
38273 
38274    ------------------------------------------------------------------------------------
38275    -- 4219869 Business Flow
38276    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38277    ------------------------------------------------------------------------------------
38278    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38279 
38280    ----------------------------------------------------------------------------------
38281    -- 4219869 Business Flow
38282    -- Update journal entry status -- Need to generate this within IF <condition>
38283    ----------------------------------------------------------------------------------
38284    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38285          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38286          ,p_balance_type_code => l_balance_type_code
38287          );
38288 
38289    -------------------------------------------------------------------------------------------
38290    -- 4262811 - Generate the Accrual Reversal lines
38291    -------------------------------------------------------------------------------------------
38292    BEGIN
38293       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38294                               (g_array_event(p_event_id).array_value_num('header_index'));
38295       IF l_acc_rev_flag IS NULL THEN
38296          l_acc_rev_flag := 'N';
38297       END IF;
38298    EXCEPTION
38299       WHEN OTHERS THEN
38300          l_acc_rev_flag := 'N';
38301    END;
38302    --
38303    IF (l_acc_rev_flag = 'Y') THEN
38304 
38305        -- 4645092  ------------------------------------------------------------------------------
38306        -- To allow MPA report to determine if it should generate report process
38307        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38308        ------------------------------------------------------------------------------------------
38309 
38310        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38311        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38312    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38313    -- call ADRs
38314    -- Bug 4922099
38315    --
38316    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38317         (NVL(l_actual_upg_option, 'N') = 'O') OR
38318         (NVL(l_enc_upg_option, 'N') = 'O')
38319       )
38320    THEN
38321    NULL;
38322    --
38323    --
38324    
38328 , p_source_13 => p_source_13
38325   l_ccid := AcctDerRule_8(
38326            p_application_id           => p_application_id
38327          , p_ae_header_id             => l_ae_header_id 
38329          , x_transaction_coa_id       => l_adr_transaction_coa_id
38330          , x_accounting_coa_id        => l_adr_accounting_coa_id
38331          , x_value_type_code          => l_adr_value_type_code
38332          , p_side                     => 'NA'
38333    );
38334 
38335    xla_ae_lines_pkg.set_ccid(
38336     p_code_combination_id          => l_ccid
38337   , p_value_type_code              => l_adr_value_type_code
38338   , p_transaction_coa_id           => l_adr_transaction_coa_id
38339   , p_accounting_coa_id            => l_adr_accounting_coa_id
38340   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
38341   , p_adr_type_code                => 'S'
38342   , p_component_type               => l_component_type
38343   , p_component_code               => l_component_code
38344   , p_component_type_code          => l_component_type_code
38345   , p_component_appl_id            => l_component_appl_id
38346   , p_amb_context_code             => l_amb_context_code
38347   , p_side                         => 'NA'
38348   );
38349 
38350 
38351    --
38352    --
38353    END IF;
38354 
38355        --
38356        -- Update the line information that should be overwritten
38357        --
38358        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38359                                          p_header_num   => 1);
38360        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38361 
38362        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38363 
38364        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38365           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38366        END IF;
38367 
38368       --
38369       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38370       --
38371       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38372           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38373       ELSE
38374           ---------------------------------------------------------------------------------------------------
38375           -- 4262811a Switch Sign
38376           ---------------------------------------------------------------------------------------------------
38377           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38378           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38379                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38380           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38381                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38382           -- 5132302
38383           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38384                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38385 
38386       END IF;
38387 
38388       -- 4955764
38389       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38390       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38391 
38392 
38393       XLA_AE_LINES_PKG.ValidateCurrentLine;
38394       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38395 
38396       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38397                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38398                ,p_balance_type_code => l_balance_type_code);
38399 
38400    END IF;
38401 
38402    -----------------------------------------------------------------------------------------
38403    -- 4262811 Multiperiod Accounting
38404    -----------------------------------------------------------------------------------------
38405      -- No MPA option is assigned.
38406 
38407 
38408 END IF;
38409 END IF;
38410 --
38411 
38412 --
38413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38414    trace
38415       (p_msg      => 'END of AcctLineType_64'
38416       ,p_level    => C_LEVEL_PROCEDURE
38417       ,p_module   => l_log_module);
38418 END IF;
38419 --
38420 EXCEPTION
38421   WHEN xla_exceptions_pkg.application_exception THEN
38422       RAISE;
38423   WHEN OTHERS THEN
38424        xla_exceptions_pkg.raise_message
38425            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_64');
38426 END AcctLineType_64;
38427 --
38428 
38429 ---------------------------------------
38430 --
38431 -- PRIVATE FUNCTION
38432 --         AcctLineType_65
38433 --
38434 ---------------------------------------
38435 PROCEDURE AcctLineType_65 (
38436   p_application_id        IN NUMBER
38437  ,p_event_id              IN NUMBER
38438  ,p_calculate_acctd_flag  IN VARCHAR2
38439  ,p_calculate_g_l_flag    IN VARCHAR2
38440  ,p_actual_flag           IN OUT VARCHAR2
38441  ,p_balance_type_code     OUT VARCHAR2
38442  ,p_gain_or_loss_ref      OUT VARCHAR2
38443  
38444 --Invoice Distribution Description
38445  , p_source_1            IN VARCHAR2
38449  , p_source_7            IN VARCHAR2
38446 --Purchase Order Rate Variance Gain Account
38447  , p_source_6            IN NUMBER
38448 --Automatic Offsets Value
38450  , p_source_7_meaning    IN VARCHAR2
38451 --Invoice Distribution Ledger Amount
38452  , p_source_8            IN NUMBER
38453 --Destination Type of the PO Distribution
38454  , p_source_9            IN VARCHAR2
38455  , p_source_9_meaning    IN VARCHAR2
38456 --Purchase Order Rate Variance Loss Account
38457  , p_source_10            IN NUMBER
38458 --Invoice Distribution Account
38459  , p_source_11            IN NUMBER
38460 --Automatic Offsets Flag
38461  , p_source_12            IN VARCHAR2
38462  , p_source_12_meaning    IN VARCHAR2
38463 --Invoice Distribution Type
38464  , p_source_15            IN VARCHAR2
38465  , p_source_15_meaning    IN VARCHAR2
38466 --Purchasing Encumbrance Option
38467  , p_source_17            IN VARCHAR2
38468  , p_source_17_meaning    IN VARCHAR2
38469 --Accounting Reversal Indicator
38470  , p_source_19            IN VARCHAR2
38471 --Distribution Link Type
38472  , p_source_21            IN VARCHAR2
38473 --Allocation to Main Distribution Identifier
38474  , p_source_23            IN NUMBER
38475 --Invoice Identifier
38476  , p_source_24            IN NUMBER
38477 --Business Flow Accounts Payable Application Identifier
38478  , p_source_25            IN NUMBER
38479 --Business Flow Invoice Distribution Type
38480  , p_source_26            IN VARCHAR2
38481 --Business Flow Invoice Entity Code
38482  , p_source_27            IN VARCHAR2
38483 --Business Flow Invoice Distribution Identifier
38484  , p_source_28            IN NUMBER
38485 --Business Flow Invoice Identifier
38486  , p_source_29            IN NUMBER
38487 --Invoice Distribution Identifier
38488  , p_source_30            IN NUMBER
38489 --Payables Encumbrance Upgrade Credit Account
38490  , p_source_31            IN NUMBER
38491 --Payables Encumbrance Upgrade Credit Amount
38492  , p_source_32            IN NUMBER
38493 --Invoice Currency Code
38494  , p_source_33            IN VARCHAR2
38495 --Payables Encumbrance Upgrade Credit Base Amount
38496  , p_source_34            IN NUMBER
38497 --Payables Encumbrance Upgrade Debit Account
38498  , p_source_35            IN NUMBER
38499 --Payables Encumbrance Upgrade Debit Amount
38500  , p_source_36            IN NUMBER
38501 --Payables Encumbrance Upgrade Debit Base Amount
38502  , p_source_37            IN NUMBER
38503 --Payables Encumbrance Upgrade Option
38504  , p_source_38            IN VARCHAR2
38505 --Invoice Exchange Date
38506  , p_source_39            IN DATE
38507 --Invoice Exchange Rate
38508  , p_source_40            IN NUMBER
38509 --Invoice Exchange Rate Type
38510  , p_source_41            IN VARCHAR2
38511 --Deferred Accounting End Date
38512  , p_source_43            IN DATE
38513 --Deferred Accounting Option
38514  , p_source_44            IN VARCHAR2
38515 --Deferred Accounting Start Date
38516  , p_source_45            IN DATE
38517 --Override Accounted Amount Indicator
38518  , p_source_46            IN VARCHAR2
38519  , p_source_46_meaning    IN VARCHAR2
38520 --Invoice Supplier Identifier
38521  , p_source_47            IN NUMBER
38522 --Invoice Supplier Site Identifier
38523  , p_source_48            IN NUMBER
38524 --Third Party Type
38525  , p_source_49            IN VARCHAR2
38526 --Parent Reversal Identifier
38527  , p_source_50            IN NUMBER
38528 --Invoice Distribution Statistical Amount
38529  , p_source_51            IN NUMBER
38530 --Invoice Distribution Tax Line Identifier
38531  , p_source_52            IN NUMBER
38532 --Invoice Distribution Tax Distribution Identifier from Tax
38533  , p_source_53            IN NUMBER
38534 --Invoice Distribution Summary Tax Line Identifier
38535  , p_source_54            IN NUMBER
38536 --Payables Upgrade Credit Encumbrance Type Identifier
38537  , p_source_55            IN NUMBER
38538 --Payables Upgrade Debit Encumbrance Type Identifier
38539  , p_source_56            IN NUMBER
38540 --Invoice Distribution Amount
38541  , p_source_57            IN NUMBER
38542 --Invoice Distribution Encumbrance Ledger Amount
38543  , p_source_66            IN NUMBER
38544 )
38545 IS
38546 
38547 l_component_type              VARCHAR2(80);
38548 l_component_code              VARCHAR2(30);
38549 l_component_type_code         VARCHAR2(1);
38550 l_component_appl_id           INTEGER;
38551 l_amb_context_code            VARCHAR2(30);
38552 l_entity_code                 VARCHAR2(30);
38553 l_event_class_code            VARCHAR2(30);
38554 l_ae_header_id                NUMBER;
38555 l_event_type_code             VARCHAR2(30);
38556 l_line_definition_code        VARCHAR2(30);
38557 l_line_definition_owner_code  VARCHAR2(1);
38558 --
38559 -- adr variables
38560 l_segment                     VARCHAR2(30);
38561 l_ccid                        NUMBER;
38562 l_adr_transaction_coa_id      NUMBER;
38563 l_adr_accounting_coa_id       NUMBER;
38564 l_adr_flexfield_segment_code  VARCHAR2(30);
38565 l_adr_flex_value_set_id       NUMBER;
38566 l_adr_value_type_code         VARCHAR2(30);
38567 l_adr_value_combination_id    NUMBER;
38568 l_adr_value_segment_code      VARCHAR2(30);
38569 
38570 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38571 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38572 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38576 l_entered_amt_idx             NUMBER;
38573 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38574 
38575 -- 4262811 Variables ------------------------------------------------------------------------------------------
38577 l_accted_amt_idx              NUMBER;
38578 l_acc_rev_flag                VARCHAR2(1);
38579 l_accrual_line_num            NUMBER;
38580 l_tmp_amt                     NUMBER;
38581 l_acc_rev_natural_side_code   VARCHAR2(1);
38582 
38583 l_num_entries                 NUMBER;
38584 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38585 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38586 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38587 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38588 l_recog_line_1                NUMBER;
38589 l_recog_line_2                NUMBER;
38590 
38591 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38592 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38593 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38594 
38595 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38596 
38597 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38598 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38599 
38600 ---------------------------------------------------------------------------------------------------------------
38601 
38602 
38603 --
38604 -- bulk performance
38605 --
38606 l_balance_type_code           VARCHAR2(1);
38607 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38608 l_log_module                  VARCHAR2(240);
38609 
38610 --
38611 -- Upgrade strategy
38612 --
38613 l_actual_upg_option           VARCHAR2(1);
38614 l_enc_upg_option           VARCHAR2(1);
38615 
38616 --
38617 BEGIN
38618 --
38619 IF g_log_enabled THEN
38620       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
38621 END IF;
38622 --
38623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38624 
38625       trace
38626          (p_msg      => 'BEGIN of AcctLineType_65'
38627          ,p_level    => C_LEVEL_PROCEDURE
38628          ,p_module   => l_log_module);
38629 
38630 END IF;
38631 --
38632 l_component_type             := 'AMB_JLT';
38633 l_component_code             := 'AP_TAXEXCHGRATE_VAR_INV_ENC_DR';
38634 l_component_type_code        := 'S';
38635 l_component_appl_id          :=  200;
38636 l_amb_context_code           := 'DEFAULT';
38637 l_entity_code                := 'AP_INVOICES';
38638 l_event_class_code           := 'INVOICES';
38639 l_event_type_code            := 'INVOICES_ALL';
38640 l_line_definition_owner_code := 'S';
38641 l_line_definition_code       := 'ENC_INVOICES_ALL';
38642 --
38643 l_balance_type_code          := 'E';
38644 l_segment                     := NULL;
38645 l_ccid                        := NULL;
38646 l_adr_transaction_coa_id      := NULL;
38647 l_adr_accounting_coa_id       := NULL;
38648 l_adr_flexfield_segment_code  := NULL;
38649 l_adr_flex_value_set_id       := NULL;
38650 l_adr_value_type_code         := NULL;
38651 l_adr_value_combination_id    := NULL;
38652 l_adr_value_segment_code      := NULL;
38653 
38654 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
38655 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
38656 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38657 l_budgetary_control_flag     := 'Y';
38658 
38659 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38660 l_bflow_applied_to_amt       := NULL; -- 5132302
38661 l_entered_amt_idx            := NULL;          -- 4262811
38662 l_accted_amt_idx             := NULL;          -- 4262811
38663 l_acc_rev_flag               := NULL;          -- 4262811
38664 l_accrual_line_num           := NULL;          -- 4262811
38665 l_tmp_amt                    := NULL;          -- 4262811
38666 --
38667 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38668             (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
38669                return;
38670   END IF;
38671   
38672 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38673     l_balance_type_code <> 'B' THEN
38674 IF NVL(p_source_15,'
38675 ') =  'TERV' AND 
38676 p_source_66 IS NOT NULL AND 
38677 NVL(p_source_17,'
38678 ') =  'Y'
38679  THEN 
38680 
38681    --
38682    XLA_AE_LINES_PKG.SetNewLine;
38683 
38684    p_balance_type_code          := l_balance_type_code;
38685    -- set the flag so later we will know whether the gain loss line needs to be created
38686    
38687    IF(l_balance_type_code = 'A' ) THEN
38688      p_actual_flag :='G';
38689    END IF;
38690 
38691    --
38692    -- bulk performance
38693    --
38694    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38695                                       p_header_num   => 0); -- 4262811
38696    --
38697    -- set accounting line options
38698    --
38699    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38700            p_natural_side_code          => 'D'
38701          , p_gain_or_loss_flag          => 'Y'
38702          , p_gl_transfer_mode_code      => 'S'
38706          );
38703          , p_acct_entry_type_code       => 'E'
38704          , p_switch_side_flag           => 'Y'
38705          , p_merge_duplicate_code       => 'N'
38707    --
38708    l_acc_rev_natural_side_code := 'C';  -- 4262811
38709    -- 
38710    --
38711    -- set accounting line type info
38712    --
38713    xla_ae_lines_pkg.SetAcctLineType
38714       (p_component_type             => l_component_type
38715       ,p_event_type_code            => l_event_type_code
38716       ,p_line_definition_owner_code => l_line_definition_owner_code
38717       ,p_line_definition_code       => l_line_definition_code
38718       ,p_accounting_line_code       => l_component_code
38719       ,p_accounting_line_type_code  => l_component_type_code
38720       ,p_accounting_line_appl_id    => l_component_appl_id
38721       ,p_amb_context_code           => l_amb_context_code
38722       ,p_entity_code                => l_entity_code
38723       ,p_event_class_code           => l_event_class_code);
38724    --
38725    -- set accounting class
38726    --
38727    xla_ae_lines_pkg.SetAcctClass(
38728            p_accounting_class_code  => 'TERV'
38729          , p_ae_header_id           => l_ae_header_id
38730          );
38731 
38732    --
38733    -- set rounding class
38734    --
38735    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38736                       'TERV';
38737 
38738    --
38739    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38740    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38741    --
38742    -- bulk performance
38743    --
38744    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38745 
38746    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38747       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38748 
38749    -- 4955764
38750    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38751       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38752 
38753    -- 4458381 Public Sector Enh
38754       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
38755    --
38756    -- set accounting attributes for the line type
38757    --
38758    l_entered_amt_idx := 24;
38759    l_accted_amt_idx  := 29;
38760    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
38761    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38762    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
38763    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38764    l_rec_acct_attrs.array_num_value(2)  := 
38765 xla_ae_sources_pkg.GetSystemSourceNum(
38766    p_source_code           => 'XLA_EVENT_APPL_ID'
38767  , p_source_type_code      => 'Y'
38768  , p_source_application_id =>  602
38769 );
38770    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38771    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
38772    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38773    l_rec_acct_attrs.array_char_value(4)  := 
38774 xla_ae_sources_pkg.GetSystemSourceChar(
38775    p_source_code           => 'XLA_ENTITY_CODE'
38776  , p_source_type_code      => 'Y'
38777  , p_source_application_id =>  602
38778 );
38779    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38780    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
38781    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38782    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
38783    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
38784    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
38785    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
38786    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
38787    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38788    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
38789    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
38790    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
38791    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
38792    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
38793    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38794    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
38795    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
38796    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
38797    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
38798    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
38799    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
38800    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
38801    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
38802    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
38803    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
38804    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
38805    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
38806    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
38807    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
38808    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
38812    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
38809    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
38810    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
38811    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
38813    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
38814    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
38815    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
38816    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
38817    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
38818    l_rec_acct_attrs.array_num_value(24)  := p_source_57;
38819    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
38820    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
38821    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
38822    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
38823    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
38824    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
38825    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
38826    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
38827    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
38828    l_rec_acct_attrs.array_num_value(29)  := p_source_8;
38829    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
38830    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
38831    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
38832    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
38833    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
38834    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
38835    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
38836    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
38837    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
38838    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
38839    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
38840    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
38841    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
38842    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
38843    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
38844    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
38845    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
38846    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
38847    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
38848    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
38849    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
38850    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
38851    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
38852    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
38853    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
38854    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
38855    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
38856    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
38857    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
38858    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
38859 
38860    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38861    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38862 
38863    ---------------------------------------------------------------------------------------------------------------
38864    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38865    ---------------------------------------------------------------------------------------------------------------
38866    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38867 
38868    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38869    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38870 
38871    IF xla_accounting_cache_pkg.GetValueChar
38872          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38873          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38874    AND l_bflow_method_code = 'PRIOR_ENTRY'
38875 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38876    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38877          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38878        )
38879    THEN
38880          xla_ae_lines_pkg.BflowUpgEntry
38881            (p_business_method_code    => l_bflow_method_code
38882            ,p_business_class_code     => l_bflow_class_code
38883            ,p_balance_type            => l_balance_type_code);
38884    ELSE
38885       NULL;
38886 -- No business flow processing for business flow method of NONE.
38887    END IF;
38888 
38889    --
38890    -- call analytical criteria
38891    --
38892    
38893    --
38894    -- call description
38895    --
38896    
38897 xla_ae_lines_pkg.SetLineDescription(
38898    p_ae_header_id => l_ae_header_id
38899   ,p_description  => Description_2 (
38900      p_application_id         => p_application_id
38901    , p_ae_header_id           => l_ae_header_id 
38902 , p_source_1 => p_source_1
38903    )
38904 );
38905 
38906 
38907    --
38908    -- call ADRs
38912         (NVL(l_actual_upg_option, 'N') = 'O') OR
38909    -- Bug 4922099
38910    --
38911    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38913         (NVL(l_enc_upg_option, 'N') = 'O')
38914       )
38915    THEN
38916    NULL;
38917    --
38918    --
38919    
38920   l_ccid := AcctDerRule_6(
38921            p_application_id           => p_application_id
38922          , p_ae_header_id             => l_ae_header_id 
38923 , p_source_6 => p_source_6
38924 , p_source_7 => p_source_7
38925 , p_source_7_meaning => p_source_7_meaning
38926 , p_source_8 => p_source_8
38927 , p_source_9 => p_source_9
38928 , p_source_9_meaning => p_source_9_meaning
38929 , p_source_10 => p_source_10
38930 , p_source_11 => p_source_11
38931 , p_source_12 => p_source_12
38932 , p_source_12_meaning => p_source_12_meaning
38933          , x_transaction_coa_id       => l_adr_transaction_coa_id
38934          , x_accounting_coa_id        => l_adr_accounting_coa_id
38935          , x_value_type_code          => l_adr_value_type_code
38936          , p_side                     => 'NA'
38937    );
38938 
38939    xla_ae_lines_pkg.set_ccid(
38940     p_code_combination_id          => l_ccid
38941   , p_value_type_code              => l_adr_value_type_code
38942   , p_transaction_coa_id           => l_adr_transaction_coa_id
38943   , p_accounting_coa_id            => l_adr_accounting_coa_id
38944   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
38945   , p_adr_type_code                => 'S'
38946   , p_component_type               => l_component_type
38947   , p_component_code               => l_component_code
38948   , p_component_type_code          => l_component_type_code
38949   , p_component_appl_id            => l_component_appl_id
38950   , p_amb_context_code             => l_amb_context_code
38951   , p_side                         => 'NA'
38952   );
38953 
38954 
38955    l_segment := AcctDerRule_4(
38956            p_application_id           => p_application_id
38957          , p_ae_header_id             => l_ae_header_id 
38958 , p_source_6 => p_source_6
38959 , p_source_7 => p_source_7
38960 , p_source_7_meaning => p_source_7_meaning
38961 , p_source_8 => p_source_8
38962 , p_source_9 => p_source_9
38963 , p_source_9_meaning => p_source_9_meaning
38964 , p_source_10 => p_source_10
38965          , x_transaction_coa_id       => l_adr_transaction_coa_id
38966          , x_accounting_coa_id        => l_adr_accounting_coa_id
38967          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38968          , x_flex_value_set_id        => l_adr_flex_value_set_id
38969          , x_value_type_code          => l_adr_value_type_code
38970          , x_value_combination_id     => l_adr_value_combination_id
38971          , x_value_segment_code       => l_adr_value_segment_code
38972          , p_side                     => 'NA'
38973          , p_override_seg_flag        => 'Y'
38974    );
38975 
38976    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38977 
38978       xla_ae_lines_pkg.set_segment(
38979           p_to_segment_code         => 'GL_ACCOUNT'
38980         , p_segment_value           => l_segment
38981         , p_from_segment_code       => l_adr_value_segment_code
38982         , p_from_combination_id     => l_adr_value_combination_id
38983         , p_value_type_code         => l_adr_value_type_code
38984         , p_transaction_coa_id      => l_adr_transaction_coa_id
38985         , p_accounting_coa_id       => l_adr_accounting_coa_id
38986         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38987         , p_flex_value_set_id       => l_adr_flex_value_set_id
38988         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
38989         , p_adr_type_code           => 'S'
38990         , p_component_type          => l_component_type
38991         , p_component_code          => l_component_code
38992         , p_component_type_code     => l_component_type_code
38993         , p_component_appl_id       => l_component_appl_id
38994         , p_amb_context_code        => l_amb_context_code
38995         , p_entity_code             => 'AP_INVOICES'
38996         , p_event_class_code        => 'INVOICES'
38997         , p_side                    => 'NA'
38998         );
38999 
39000   END IF;
39001 
39002    l_segment := AcctDerRule_5(
39003            p_application_id           => p_application_id
39004          , p_ae_header_id             => l_ae_header_id 
39005 , p_source_7 => p_source_7
39006 , p_source_7_meaning => p_source_7_meaning
39007 , p_source_9 => p_source_9
39008 , p_source_9_meaning => p_source_9_meaning
39009 , p_source_11 => p_source_11
39010          , x_transaction_coa_id       => l_adr_transaction_coa_id
39011          , x_accounting_coa_id        => l_adr_accounting_coa_id
39012          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39013          , x_flex_value_set_id        => l_adr_flex_value_set_id
39014          , x_value_type_code          => l_adr_value_type_code
39015          , x_value_combination_id     => l_adr_value_combination_id
39016          , x_value_segment_code       => l_adr_value_segment_code
39017          , p_side                     => 'NA'
39018          , p_override_seg_flag        => 'Y'
39019    );
39020 
39021    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39022 
39023       xla_ae_lines_pkg.set_segment(
39024           p_to_segment_code         => 'GL_BALANCING'
39028         , p_value_type_code         => l_adr_value_type_code
39025         , p_segment_value           => l_segment
39026         , p_from_segment_code       => l_adr_value_segment_code
39027         , p_from_combination_id     => l_adr_value_combination_id
39029         , p_transaction_coa_id      => l_adr_transaction_coa_id
39030         , p_accounting_coa_id       => l_adr_accounting_coa_id
39031         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39032         , p_flex_value_set_id       => l_adr_flex_value_set_id
39033         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39034         , p_adr_type_code           => 'S'
39035         , p_component_type          => l_component_type
39036         , p_component_code          => l_component_code
39037         , p_component_type_code     => l_component_type_code
39038         , p_component_appl_id       => l_component_appl_id
39039         , p_amb_context_code        => l_amb_context_code
39040         , p_entity_code             => 'AP_INVOICES'
39041         , p_event_class_code        => 'INVOICES'
39042         , p_side                    => 'NA'
39043         );
39044 
39045   END IF;
39046 
39047    --
39048    --
39049    END IF;
39050    --
39051    -- Bug 4922099
39052    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39053           (NVL(l_enc_upg_option, 'N') = 'O')
39054         ) AND
39055         (l_bflow_method_code = 'PRIOR_ENTRY')
39056       )
39057    THEN
39058       IF
39059       --
39060       1 = 2
39061       --
39062       THEN
39063       xla_accounting_err_pkg.build_message
39064                                     (p_appli_s_name            => 'XLA'
39065                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39066                                     ,p_token_1                 => 'LINE_NUMBER'
39067                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39068                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39069                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39070                                                                              l_component_type
39071                                                                             ,l_component_code
39072                                                                             ,l_component_type_code
39073                                                                             ,l_component_appl_id
39074                                                                             ,l_amb_context_code
39075                                                                             ,l_entity_code
39076                                                                             ,l_event_class_code
39077                                                                            )
39078                                     ,p_token_3                 => 'OWNER'
39079                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39080                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39081                                                                           ,p_lookup_code    => l_component_type_code
39082                                                                          )
39083                                     ,p_token_4                 => 'PRODUCT_NAME'
39084                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39085                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39086                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39087                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39088                                     ,p_ae_header_id            =>  NULL
39089                                        );
39090 
39091         IF (C_LEVEL_ERROR>= g_log_level) THEN
39092                  trace
39093                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39094                       ,p_level    => C_LEVEL_ERROR
39095                       ,p_module   => l_log_module);
39096         END IF;
39097       END IF;
39098    END IF;
39099    --
39100    --
39101    ------------------------------------------------------------------------------------------------
39102    -- 4219869 Business Flow
39103    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39104    -- Prior Entry.  Currently, the following code is always generated.
39105    ------------------------------------------------------------------------------------------------
39106    XLA_AE_LINES_PKG.ValidateCurrentLine;
39107 
39108    ------------------------------------------------------------------------------------
39109    -- 4219869 Business Flow
39110    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39111    ------------------------------------------------------------------------------------
39112    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39113 
39114    ----------------------------------------------------------------------------------
39115    -- 4219869 Business Flow
39116    -- Update journal entry status -- Need to generate this within IF <condition>
39117    ----------------------------------------------------------------------------------
39118    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39122 
39119          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39120          ,p_balance_type_code => l_balance_type_code
39121          );
39123    -------------------------------------------------------------------------------------------
39124    -- 4262811 - Generate the Accrual Reversal lines
39125    -------------------------------------------------------------------------------------------
39126    BEGIN
39127       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39128                               (g_array_event(p_event_id).array_value_num('header_index'));
39129       IF l_acc_rev_flag IS NULL THEN
39130          l_acc_rev_flag := 'N';
39131       END IF;
39132    EXCEPTION
39133       WHEN OTHERS THEN
39134          l_acc_rev_flag := 'N';
39135    END;
39136    --
39137    IF (l_acc_rev_flag = 'Y') THEN
39138 
39139        -- 4645092  ------------------------------------------------------------------------------
39140        -- To allow MPA report to determine if it should generate report process
39141        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39142        ------------------------------------------------------------------------------------------
39143 
39144        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39145        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39146    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39147    -- call ADRs
39148    -- Bug 4922099
39149    --
39150    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39151         (NVL(l_actual_upg_option, 'N') = 'O') OR
39152         (NVL(l_enc_upg_option, 'N') = 'O')
39153       )
39154    THEN
39155    NULL;
39156    --
39157    --
39158    
39159   l_ccid := AcctDerRule_6(
39160            p_application_id           => p_application_id
39161          , p_ae_header_id             => l_ae_header_id 
39162 , p_source_6 => p_source_6
39163 , p_source_7 => p_source_7
39164 , p_source_7_meaning => p_source_7_meaning
39165 , p_source_8 => p_source_8
39166 , p_source_9 => p_source_9
39167 , p_source_9_meaning => p_source_9_meaning
39168 , p_source_10 => p_source_10
39169 , p_source_11 => p_source_11
39170 , p_source_12 => p_source_12
39171 , p_source_12_meaning => p_source_12_meaning
39172          , x_transaction_coa_id       => l_adr_transaction_coa_id
39173          , x_accounting_coa_id        => l_adr_accounting_coa_id
39174          , x_value_type_code          => l_adr_value_type_code
39175          , p_side                     => 'NA'
39176    );
39177 
39178    xla_ae_lines_pkg.set_ccid(
39179     p_code_combination_id          => l_ccid
39180   , p_value_type_code              => l_adr_value_type_code
39181   , p_transaction_coa_id           => l_adr_transaction_coa_id
39182   , p_accounting_coa_id            => l_adr_accounting_coa_id
39183   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39184   , p_adr_type_code                => 'S'
39185   , p_component_type               => l_component_type
39186   , p_component_code               => l_component_code
39187   , p_component_type_code          => l_component_type_code
39188   , p_component_appl_id            => l_component_appl_id
39189   , p_amb_context_code             => l_amb_context_code
39190   , p_side                         => 'NA'
39191   );
39192 
39193 
39194    l_segment := AcctDerRule_4(
39195            p_application_id           => p_application_id
39196          , p_ae_header_id             => l_ae_header_id 
39197 , p_source_6 => p_source_6
39198 , p_source_7 => p_source_7
39199 , p_source_7_meaning => p_source_7_meaning
39200 , p_source_8 => p_source_8
39201 , p_source_9 => p_source_9
39202 , p_source_9_meaning => p_source_9_meaning
39203 , p_source_10 => p_source_10
39204          , x_transaction_coa_id       => l_adr_transaction_coa_id
39205          , x_accounting_coa_id        => l_adr_accounting_coa_id
39206          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39207          , x_flex_value_set_id        => l_adr_flex_value_set_id
39208          , x_value_type_code          => l_adr_value_type_code
39209          , x_value_combination_id     => l_adr_value_combination_id
39210          , x_value_segment_code       => l_adr_value_segment_code
39211          , p_side                     => 'NA'
39212          , p_override_seg_flag        => 'Y'
39213    );
39214 
39215    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39216 
39217       xla_ae_lines_pkg.set_segment(
39218           p_to_segment_code         => 'GL_ACCOUNT'
39219         , p_segment_value           => l_segment
39220         , p_from_segment_code       => l_adr_value_segment_code
39221         , p_from_combination_id     => l_adr_value_combination_id
39222         , p_value_type_code         => l_adr_value_type_code
39223         , p_transaction_coa_id      => l_adr_transaction_coa_id
39224         , p_accounting_coa_id       => l_adr_accounting_coa_id
39225         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39226         , p_flex_value_set_id       => l_adr_flex_value_set_id
39227         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39228         , p_adr_type_code           => 'S'
39229         , p_component_type          => l_component_type
39230         , p_component_code          => l_component_code
39231         , p_component_type_code     => l_component_type_code
39232         , p_component_appl_id       => l_component_appl_id
39233         , p_amb_context_code        => l_amb_context_code
39237         );
39234         , p_entity_code             => 'AP_INVOICES'
39235         , p_event_class_code        => 'INVOICES'
39236         , p_side                    => 'NA'
39238 
39239   END IF;
39240 
39241    l_segment := AcctDerRule_5(
39242            p_application_id           => p_application_id
39243          , p_ae_header_id             => l_ae_header_id 
39244 , p_source_7 => p_source_7
39245 , p_source_7_meaning => p_source_7_meaning
39246 , p_source_9 => p_source_9
39247 , p_source_9_meaning => p_source_9_meaning
39248 , p_source_11 => p_source_11
39249          , x_transaction_coa_id       => l_adr_transaction_coa_id
39250          , x_accounting_coa_id        => l_adr_accounting_coa_id
39251          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39252          , x_flex_value_set_id        => l_adr_flex_value_set_id
39253          , x_value_type_code          => l_adr_value_type_code
39254          , x_value_combination_id     => l_adr_value_combination_id
39255          , x_value_segment_code       => l_adr_value_segment_code
39256          , p_side                     => 'NA'
39257          , p_override_seg_flag        => 'Y'
39258    );
39259 
39260    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39261 
39262       xla_ae_lines_pkg.set_segment(
39263           p_to_segment_code         => 'GL_BALANCING'
39264         , p_segment_value           => l_segment
39265         , p_from_segment_code       => l_adr_value_segment_code
39266         , p_from_combination_id     => l_adr_value_combination_id
39267         , p_value_type_code         => l_adr_value_type_code
39268         , p_transaction_coa_id      => l_adr_transaction_coa_id
39269         , p_accounting_coa_id       => l_adr_accounting_coa_id
39270         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39271         , p_flex_value_set_id       => l_adr_flex_value_set_id
39272         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39273         , p_adr_type_code           => 'S'
39274         , p_component_type          => l_component_type
39275         , p_component_code          => l_component_code
39276         , p_component_type_code     => l_component_type_code
39277         , p_component_appl_id       => l_component_appl_id
39278         , p_amb_context_code        => l_amb_context_code
39279         , p_entity_code             => 'AP_INVOICES'
39280         , p_event_class_code        => 'INVOICES'
39281         , p_side                    => 'NA'
39282         );
39283 
39284   END IF;
39285 
39286    --
39287    --
39288    END IF;
39289 
39290        --
39291        -- Update the line information that should be overwritten
39292        --
39293        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39294                                          p_header_num   => 1);
39295        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39296 
39297        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39298 
39299        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39300           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39301        END IF;
39302 
39303       --
39304       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39305       --
39306       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39307           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39308       ELSE
39309           ---------------------------------------------------------------------------------------------------
39310           -- 4262811a Switch Sign
39311           ---------------------------------------------------------------------------------------------------
39312           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39313           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39314                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39315           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39316                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39317           -- 5132302
39318           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39319                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39320 
39321       END IF;
39322 
39323       -- 4955764
39324       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39325       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39326 
39327 
39328       XLA_AE_LINES_PKG.ValidateCurrentLine;
39329       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39330 
39331       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39332                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39333                ,p_balance_type_code => l_balance_type_code);
39334 
39335    END IF;
39336 
39337    -----------------------------------------------------------------------------------------
39338    -- 4262811 Multiperiod Accounting
39339    -----------------------------------------------------------------------------------------
39340      -- No MPA option is assigned.
39341 
39342 
39343 END IF;
39344 END IF;
39348 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39345 --
39346 
39347 --
39349    trace
39350       (p_msg      => 'END of AcctLineType_65'
39351       ,p_level    => C_LEVEL_PROCEDURE
39352       ,p_module   => l_log_module);
39353 END IF;
39354 --
39355 EXCEPTION
39356   WHEN xla_exceptions_pkg.application_exception THEN
39357       RAISE;
39358   WHEN OTHERS THEN
39359        xla_exceptions_pkg.raise_message
39360            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_65');
39361 END AcctLineType_65;
39362 --
39363 
39364 ---------------------------------------
39365 --
39366 -- PRIVATE FUNCTION
39367 --         AcctLineType_66
39368 --
39369 ---------------------------------------
39370 PROCEDURE AcctLineType_66 (
39371   p_application_id        IN NUMBER
39372  ,p_event_id              IN NUMBER
39373  ,p_calculate_acctd_flag  IN VARCHAR2
39374  ,p_calculate_g_l_flag    IN VARCHAR2
39375  ,p_actual_flag           IN OUT VARCHAR2
39376  ,p_balance_type_code     OUT VARCHAR2
39377  ,p_gain_or_loss_ref      OUT VARCHAR2
39378  
39379 --Invoice Distribution Description
39380  , p_source_1            IN VARCHAR2
39381 --Invoice Distribution Account
39382  , p_source_11            IN NUMBER
39383 --Invoice Distribution Type
39384  , p_source_15            IN VARCHAR2
39385  , p_source_15_meaning    IN VARCHAR2
39386 --Amount for Variance Amount
39387  , p_source_16            IN NUMBER
39388 --Purchasing Encumbrance Option
39389  , p_source_17            IN VARCHAR2
39390  , p_source_17_meaning    IN VARCHAR2
39391 --Accrue on Receipt Option
39392  , p_source_18            IN VARCHAR2
39393  , p_source_18_meaning    IN VARCHAR2
39394 --Accounting Reversal Indicator
39395  , p_source_19            IN VARCHAR2
39396 --Distribution Link Type
39397  , p_source_21            IN VARCHAR2
39398 --Allocation to Main Distribution Identifier
39399  , p_source_23            IN NUMBER
39400 --Invoice Identifier
39401  , p_source_24            IN NUMBER
39402 --Business Flow Accounts Payable Application Identifier
39403  , p_source_25            IN NUMBER
39404 --Business Flow Invoice Distribution Type
39405  , p_source_26            IN VARCHAR2
39406 --Business Flow Invoice Entity Code
39407  , p_source_27            IN VARCHAR2
39408 --Business Flow Invoice Distribution Identifier
39409  , p_source_28            IN NUMBER
39410 --Business Flow Invoice Identifier
39411  , p_source_29            IN NUMBER
39412 --Invoice Distribution Identifier
39413  , p_source_30            IN NUMBER
39414 --Payables Encumbrance Upgrade Credit Account
39415  , p_source_31            IN NUMBER
39416 --Payables Encumbrance Upgrade Credit Amount
39417  , p_source_32            IN NUMBER
39418 --Invoice Currency Code
39419  , p_source_33            IN VARCHAR2
39420 --Payables Encumbrance Upgrade Credit Base Amount
39421  , p_source_34            IN NUMBER
39422 --Payables Encumbrance Upgrade Debit Account
39423  , p_source_35            IN NUMBER
39424 --Payables Encumbrance Upgrade Debit Amount
39425  , p_source_36            IN NUMBER
39426 --Payables Encumbrance Upgrade Debit Base Amount
39427  , p_source_37            IN NUMBER
39428 --Payables Encumbrance Upgrade Option
39429  , p_source_38            IN VARCHAR2
39430 --Invoice Exchange Date
39431  , p_source_39            IN DATE
39432 --Invoice Exchange Rate
39433  , p_source_40            IN NUMBER
39434 --Invoice Exchange Rate Type
39435  , p_source_41            IN VARCHAR2
39436 --Variance Amount in Ledger Currency
39437  , p_source_42            IN NUMBER
39438 --Deferred Accounting End Date
39439  , p_source_43            IN DATE
39440 --Deferred Accounting Option
39441  , p_source_44            IN VARCHAR2
39442 --Deferred Accounting Start Date
39443  , p_source_45            IN DATE
39444 --Override Accounted Amount Indicator
39445  , p_source_46            IN VARCHAR2
39446  , p_source_46_meaning    IN VARCHAR2
39447 --Invoice Supplier Identifier
39448  , p_source_47            IN NUMBER
39449 --Invoice Supplier Site Identifier
39450  , p_source_48            IN NUMBER
39451 --Third Party Type
39452  , p_source_49            IN VARCHAR2
39453 --Parent Reversal Identifier
39454  , p_source_50            IN NUMBER
39455 --Invoice Distribution Statistical Amount
39456  , p_source_51            IN NUMBER
39457 --Invoice Distribution Tax Line Identifier
39458  , p_source_52            IN NUMBER
39459 --Invoice Distribution Tax Distribution Identifier from Tax
39460  , p_source_53            IN NUMBER
39461 --Invoice Distribution Summary Tax Line Identifier
39462  , p_source_54            IN NUMBER
39463 --Payables Upgrade Credit Encumbrance Type Identifier
39464  , p_source_55            IN NUMBER
39465 --Payables Upgrade Debit Encumbrance Type Identifier
39466  , p_source_56            IN NUMBER
39467 )
39468 IS
39469 
39470 l_component_type              VARCHAR2(80);
39471 l_component_code              VARCHAR2(30);
39472 l_component_type_code         VARCHAR2(1);
39473 l_component_appl_id           INTEGER;
39474 l_amb_context_code            VARCHAR2(30);
39475 l_entity_code                 VARCHAR2(30);
39476 l_event_class_code            VARCHAR2(30);
39477 l_ae_header_id                NUMBER;
39478 l_event_type_code             VARCHAR2(30);
39479 l_line_definition_code        VARCHAR2(30);
39480 l_line_definition_owner_code  VARCHAR2(1);
39481 --
39482 -- adr variables
39486 l_adr_accounting_coa_id       NUMBER;
39483 l_segment                     VARCHAR2(30);
39484 l_ccid                        NUMBER;
39485 l_adr_transaction_coa_id      NUMBER;
39487 l_adr_flexfield_segment_code  VARCHAR2(30);
39488 l_adr_flex_value_set_id       NUMBER;
39489 l_adr_value_type_code         VARCHAR2(30);
39490 l_adr_value_combination_id    NUMBER;
39491 l_adr_value_segment_code      VARCHAR2(30);
39492 
39493 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39494 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39495 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39496 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39497 
39498 -- 4262811 Variables ------------------------------------------------------------------------------------------
39499 l_entered_amt_idx             NUMBER;
39500 l_accted_amt_idx              NUMBER;
39501 l_acc_rev_flag                VARCHAR2(1);
39502 l_accrual_line_num            NUMBER;
39503 l_tmp_amt                     NUMBER;
39504 l_acc_rev_natural_side_code   VARCHAR2(1);
39505 
39506 l_num_entries                 NUMBER;
39507 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39508 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39509 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39510 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39511 l_recog_line_1                NUMBER;
39512 l_recog_line_2                NUMBER;
39513 
39514 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39515 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39516 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39517 
39518 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39519 
39520 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39521 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39522 
39523 ---------------------------------------------------------------------------------------------------------------
39524 
39525 
39526 --
39527 -- bulk performance
39528 --
39529 l_balance_type_code           VARCHAR2(1);
39530 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39531 l_log_module                  VARCHAR2(240);
39532 
39533 --
39534 -- Upgrade strategy
39535 --
39536 l_actual_upg_option           VARCHAR2(1);
39537 l_enc_upg_option           VARCHAR2(1);
39538 
39539 --
39540 BEGIN
39541 --
39542 IF g_log_enabled THEN
39543       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
39544 END IF;
39545 --
39546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39547 
39548       trace
39549          (p_msg      => 'BEGIN of AcctLineType_66'
39550          ,p_level    => C_LEVEL_PROCEDURE
39551          ,p_module   => l_log_module);
39552 
39553 END IF;
39554 --
39555 l_component_type             := 'AMB_JLT';
39556 l_component_code             := 'AP_TAX_AMT_VARIANCE_CM_ENC_DR';
39557 l_component_type_code        := 'S';
39558 l_component_appl_id          :=  200;
39559 l_amb_context_code           := 'DEFAULT';
39560 l_entity_code                := 'AP_INVOICES';
39561 l_event_class_code           := 'CREDIT MEMOS';
39562 l_event_type_code            := 'CREDIT MEMOS_ALL';
39563 l_line_definition_owner_code := 'S';
39564 l_line_definition_code       := 'ENC_CM_ALL';
39565 --
39566 l_balance_type_code          := 'E';
39567 l_segment                     := NULL;
39568 l_ccid                        := NULL;
39569 l_adr_transaction_coa_id      := NULL;
39570 l_adr_accounting_coa_id       := NULL;
39571 l_adr_flexfield_segment_code  := NULL;
39572 l_adr_flex_value_set_id       := NULL;
39573 l_adr_value_type_code         := NULL;
39574 l_adr_value_combination_id    := NULL;
39575 l_adr_value_segment_code      := NULL;
39576 
39577 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39578 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
39579 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39580 l_budgetary_control_flag     := 'Y';
39581 
39582 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39583 l_bflow_applied_to_amt       := NULL; -- 5132302
39584 l_entered_amt_idx            := NULL;          -- 4262811
39585 l_accted_amt_idx             := NULL;          -- 4262811
39586 l_acc_rev_flag               := NULL;          -- 4262811
39587 l_accrual_line_num           := NULL;          -- 4262811
39588 l_tmp_amt                    := NULL;          -- 4262811
39589 --
39590  
39591 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39592     l_balance_type_code <> 'B' THEN
39593 IF NVL(p_source_15,'
39594 ') =  'NONREC_TAX' AND 
39595 p_source_16 IS NOT NULL AND 
39596 NVL(p_source_17,'
39597 ') =  'Y' AND 
39598 NVL(p_source_18,'
39599 ') <>  'Y'
39600  THEN 
39601 
39602    --
39603    XLA_AE_LINES_PKG.SetNewLine;
39604 
39605    p_balance_type_code          := l_balance_type_code;
39606    -- set the flag so later we will know whether the gain loss line needs to be created
39607    
39608    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39609      p_actual_flag :='A';
39610    END IF;
39611 
39612    --
39616                                       p_header_num   => 0); -- 4262811
39613    -- bulk performance
39614    --
39615    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39617    --
39618    -- set accounting line options
39619    --
39620    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39621            p_natural_side_code          => 'D'
39622          , p_gain_or_loss_flag          => 'N'
39623          , p_gl_transfer_mode_code      => 'S'
39624          , p_acct_entry_type_code       => 'E'
39625          , p_switch_side_flag           => 'Y'
39626          , p_merge_duplicate_code       => 'N'
39627          );
39628    --
39629    l_acc_rev_natural_side_code := 'C';  -- 4262811
39630    -- 
39631    --
39632    -- set accounting line type info
39633    --
39634    xla_ae_lines_pkg.SetAcctLineType
39635       (p_component_type             => l_component_type
39636       ,p_event_type_code            => l_event_type_code
39637       ,p_line_definition_owner_code => l_line_definition_owner_code
39638       ,p_line_definition_code       => l_line_definition_code
39639       ,p_accounting_line_code       => l_component_code
39640       ,p_accounting_line_type_code  => l_component_type_code
39641       ,p_accounting_line_appl_id    => l_component_appl_id
39642       ,p_amb_context_code           => l_amb_context_code
39643       ,p_entity_code                => l_entity_code
39644       ,p_event_class_code           => l_event_class_code);
39645    --
39646    -- set accounting class
39647    --
39648    xla_ae_lines_pkg.SetAcctClass(
39649            p_accounting_class_code  => 'TAV'
39650          , p_ae_header_id           => l_ae_header_id
39651          );
39652 
39653    --
39654    -- set rounding class
39655    --
39656    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39657                       'TAV';
39658 
39659    --
39660    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39661    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39662    --
39663    -- bulk performance
39664    --
39665    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39666 
39667    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39668       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39669 
39670    -- 4955764
39671    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39672       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39673 
39674    -- 4458381 Public Sector Enh
39675       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
39676    --
39677    -- set accounting attributes for the line type
39678    --
39679    l_entered_amt_idx := 23;
39680    l_accted_amt_idx  := 28;
39681    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39682    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39683    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
39684    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
39685    l_rec_acct_attrs.array_num_value(2)  := 
39686 xla_ae_sources_pkg.GetSystemSourceNum(
39687    p_source_code           => 'XLA_EVENT_APPL_ID'
39688  , p_source_type_code      => 'Y'
39689  , p_source_application_id =>  602
39690 );
39691    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
39692    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
39693    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
39694    l_rec_acct_attrs.array_char_value(4)  := 
39695 xla_ae_sources_pkg.GetSystemSourceChar(
39696    p_source_code           => 'XLA_ENTITY_CODE'
39697  , p_source_type_code      => 'Y'
39698  , p_source_application_id =>  602
39699 );
39700    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
39701    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
39702    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
39703    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
39704    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
39705    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
39706    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39707    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
39708    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
39709    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
39710    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
39711    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
39712    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39713    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
39714    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
39715    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
39716    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
39717    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
39718    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
39719    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
39720    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
39724    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
39721    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
39722    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
39723    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
39725    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
39726    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
39727    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
39728    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
39729    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
39730    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
39731    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
39732    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
39733    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
39734    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
39735    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
39736    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
39737    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
39738    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
39739    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
39740    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
39741    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
39742    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
39743    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
39744    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
39745    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
39746    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
39747    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
39748    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
39749    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
39750    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
39751    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
39752    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
39753    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
39754    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
39755    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
39756    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
39757    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
39758    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
39759    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
39760    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
39761    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
39762    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
39763    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
39764    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
39765    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
39766    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
39767    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
39768    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
39769    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
39770    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
39771    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
39772    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
39773    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
39774    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
39775    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
39776    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
39777    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
39778 
39779    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39780    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39781 
39782    ---------------------------------------------------------------------------------------------------------------
39783    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39784    ---------------------------------------------------------------------------------------------------------------
39785    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39786 
39787    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39788    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39789 
39790    IF xla_accounting_cache_pkg.GetValueChar
39791          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39792          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39793    AND l_bflow_method_code = 'PRIOR_ENTRY'
39794 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39795    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39796          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39797        )
39798    THEN
39799          xla_ae_lines_pkg.BflowUpgEntry
39800            (p_business_method_code    => l_bflow_method_code
39801            ,p_business_class_code     => l_bflow_class_code
39802            ,p_balance_type            => l_balance_type_code);
39803    ELSE
39804       NULL;
39805 -- No business flow processing for business flow method of NONE.
39806    END IF;
39807 
39808    --
39809    -- call analytical criteria
39810    --
39811    
39815    
39812    --
39813    -- call description
39814    --
39816 xla_ae_lines_pkg.SetLineDescription(
39817    p_ae_header_id => l_ae_header_id
39818   ,p_description  => Description_2 (
39819      p_application_id         => p_application_id
39820    , p_ae_header_id           => l_ae_header_id 
39821 , p_source_1 => p_source_1
39822    )
39823 );
39824 
39825 
39826    --
39827    -- call ADRs
39828    -- Bug 4922099
39829    --
39830    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39831         (NVL(l_actual_upg_option, 'N') = 'O') OR
39832         (NVL(l_enc_upg_option, 'N') = 'O')
39833       )
39834    THEN
39835    NULL;
39836    --
39837    --
39838    
39839   l_ccid := AcctDerRule_7(
39840            p_application_id           => p_application_id
39841          , p_ae_header_id             => l_ae_header_id 
39842 , p_source_11 => p_source_11
39843          , x_transaction_coa_id       => l_adr_transaction_coa_id
39844          , x_accounting_coa_id        => l_adr_accounting_coa_id
39845          , x_value_type_code          => l_adr_value_type_code
39846          , p_side                     => 'NA'
39847    );
39848 
39849    xla_ae_lines_pkg.set_ccid(
39850     p_code_combination_id          => l_ccid
39851   , p_value_type_code              => l_adr_value_type_code
39852   , p_transaction_coa_id           => l_adr_transaction_coa_id
39853   , p_accounting_coa_id            => l_adr_accounting_coa_id
39854   , p_adr_code                     => 'AP_INVOICE_DIST'
39855   , p_adr_type_code                => 'S'
39856   , p_component_type               => l_component_type
39857   , p_component_code               => l_component_code
39858   , p_component_type_code          => l_component_type_code
39859   , p_component_appl_id            => l_component_appl_id
39860   , p_amb_context_code             => l_amb_context_code
39861   , p_side                         => 'NA'
39862   );
39863 
39864 
39865    --
39866    --
39867    END IF;
39868    --
39869    -- Bug 4922099
39870    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39871           (NVL(l_enc_upg_option, 'N') = 'O')
39872         ) AND
39873         (l_bflow_method_code = 'PRIOR_ENTRY')
39874       )
39875    THEN
39876       IF
39877       --
39878       1 = 2
39879       --
39880       THEN
39881       xla_accounting_err_pkg.build_message
39882                                     (p_appli_s_name            => 'XLA'
39883                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39884                                     ,p_token_1                 => 'LINE_NUMBER'
39885                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39886                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39887                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39888                                                                              l_component_type
39889                                                                             ,l_component_code
39890                                                                             ,l_component_type_code
39891                                                                             ,l_component_appl_id
39892                                                                             ,l_amb_context_code
39893                                                                             ,l_entity_code
39894                                                                             ,l_event_class_code
39895                                                                            )
39896                                     ,p_token_3                 => 'OWNER'
39897                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39898                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39899                                                                           ,p_lookup_code    => l_component_type_code
39900                                                                          )
39901                                     ,p_token_4                 => 'PRODUCT_NAME'
39902                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39903                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39904                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39905                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39906                                     ,p_ae_header_id            =>  NULL
39907                                        );
39908 
39909         IF (C_LEVEL_ERROR>= g_log_level) THEN
39910                  trace
39911                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39912                       ,p_level    => C_LEVEL_ERROR
39913                       ,p_module   => l_log_module);
39914         END IF;
39915       END IF;
39916    END IF;
39917    --
39918    --
39919    ------------------------------------------------------------------------------------------------
39920    -- 4219869 Business Flow
39921    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39922    -- Prior Entry.  Currently, the following code is always generated.
39926    ------------------------------------------------------------------------------------
39923    ------------------------------------------------------------------------------------------------
39924    XLA_AE_LINES_PKG.ValidateCurrentLine;
39925 
39927    -- 4219869 Business Flow
39928    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39929    ------------------------------------------------------------------------------------
39930    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39931 
39932    ----------------------------------------------------------------------------------
39933    -- 4219869 Business Flow
39934    -- Update journal entry status -- Need to generate this within IF <condition>
39935    ----------------------------------------------------------------------------------
39936    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39937          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39938          ,p_balance_type_code => l_balance_type_code
39939          );
39940 
39941    -------------------------------------------------------------------------------------------
39942    -- 4262811 - Generate the Accrual Reversal lines
39943    -------------------------------------------------------------------------------------------
39944    BEGIN
39945       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39946                               (g_array_event(p_event_id).array_value_num('header_index'));
39947       IF l_acc_rev_flag IS NULL THEN
39948          l_acc_rev_flag := 'N';
39949       END IF;
39950    EXCEPTION
39951       WHEN OTHERS THEN
39952          l_acc_rev_flag := 'N';
39953    END;
39954    --
39955    IF (l_acc_rev_flag = 'Y') THEN
39956 
39957        -- 4645092  ------------------------------------------------------------------------------
39958        -- To allow MPA report to determine if it should generate report process
39959        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39960        ------------------------------------------------------------------------------------------
39961 
39962        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39963        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39964    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39965    -- call ADRs
39966    -- Bug 4922099
39967    --
39968    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39969         (NVL(l_actual_upg_option, 'N') = 'O') OR
39970         (NVL(l_enc_upg_option, 'N') = 'O')
39971       )
39972    THEN
39973    NULL;
39974    --
39975    --
39976    
39977   l_ccid := AcctDerRule_7(
39978            p_application_id           => p_application_id
39979          , p_ae_header_id             => l_ae_header_id 
39980 , p_source_11 => p_source_11
39981          , x_transaction_coa_id       => l_adr_transaction_coa_id
39982          , x_accounting_coa_id        => l_adr_accounting_coa_id
39983          , x_value_type_code          => l_adr_value_type_code
39984          , p_side                     => 'NA'
39985    );
39986 
39987    xla_ae_lines_pkg.set_ccid(
39988     p_code_combination_id          => l_ccid
39989   , p_value_type_code              => l_adr_value_type_code
39990   , p_transaction_coa_id           => l_adr_transaction_coa_id
39991   , p_accounting_coa_id            => l_adr_accounting_coa_id
39992   , p_adr_code                     => 'AP_INVOICE_DIST'
39993   , p_adr_type_code                => 'S'
39994   , p_component_type               => l_component_type
39995   , p_component_code               => l_component_code
39996   , p_component_type_code          => l_component_type_code
39997   , p_component_appl_id            => l_component_appl_id
39998   , p_amb_context_code             => l_amb_context_code
39999   , p_side                         => 'NA'
40000   );
40001 
40002 
40003    --
40004    --
40005    END IF;
40006 
40007        --
40008        -- Update the line information that should be overwritten
40009        --
40010        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40011                                          p_header_num   => 1);
40012        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40013 
40014        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40015 
40016        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40017           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40018        END IF;
40019 
40020       --
40021       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40022       --
40023       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40024           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40025       ELSE
40026           ---------------------------------------------------------------------------------------------------
40027           -- 4262811a Switch Sign
40028           ---------------------------------------------------------------------------------------------------
40029           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40030           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40031                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40032           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40036                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40033                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40034           -- 5132302
40035           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40037 
40038       END IF;
40039 
40040       -- 4955764
40041       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40042       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40043 
40044 
40045       XLA_AE_LINES_PKG.ValidateCurrentLine;
40046       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40047 
40048       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40049                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40050                ,p_balance_type_code => l_balance_type_code);
40051 
40052    END IF;
40053 
40054    -----------------------------------------------------------------------------------------
40055    -- 4262811 Multiperiod Accounting
40056    -----------------------------------------------------------------------------------------
40057      -- No MPA option is assigned.
40058 
40059 
40060 END IF;
40061 END IF;
40062 --
40063 
40064 --
40065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40066    trace
40067       (p_msg      => 'END of AcctLineType_66'
40068       ,p_level    => C_LEVEL_PROCEDURE
40069       ,p_module   => l_log_module);
40070 END IF;
40071 --
40072 EXCEPTION
40073   WHEN xla_exceptions_pkg.application_exception THEN
40074       RAISE;
40075   WHEN OTHERS THEN
40076        xla_exceptions_pkg.raise_message
40077            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_66');
40078 END AcctLineType_66;
40079 --
40080 
40081 ---------------------------------------
40082 --
40083 -- PRIVATE FUNCTION
40084 --         AcctLineType_67
40085 --
40086 ---------------------------------------
40087 PROCEDURE AcctLineType_67 (
40088   p_application_id        IN NUMBER
40089  ,p_event_id              IN NUMBER
40090  ,p_calculate_acctd_flag  IN VARCHAR2
40091  ,p_calculate_g_l_flag    IN VARCHAR2
40092  ,p_actual_flag           IN OUT VARCHAR2
40093  ,p_balance_type_code     OUT VARCHAR2
40094  ,p_gain_or_loss_ref      OUT VARCHAR2
40095  
40096 --Invoice Distribution Description
40097  , p_source_1            IN VARCHAR2
40098 --Invoice Distribution Account
40099  , p_source_11            IN NUMBER
40100 --Invoice Distribution Type
40101  , p_source_15            IN VARCHAR2
40102  , p_source_15_meaning    IN VARCHAR2
40103 --Amount for Variance Amount
40104  , p_source_16            IN NUMBER
40105 --Purchasing Encumbrance Option
40106  , p_source_17            IN VARCHAR2
40107  , p_source_17_meaning    IN VARCHAR2
40108 --Accrue on Receipt Option
40109  , p_source_18            IN VARCHAR2
40110  , p_source_18_meaning    IN VARCHAR2
40111 --Accounting Reversal Indicator
40112  , p_source_19            IN VARCHAR2
40113 --Distribution Link Type
40114  , p_source_21            IN VARCHAR2
40115 --Allocation to Main Distribution Identifier
40116  , p_source_23            IN NUMBER
40117 --Invoice Identifier
40118  , p_source_24            IN NUMBER
40119 --Business Flow Accounts Payable Application Identifier
40120  , p_source_25            IN NUMBER
40121 --Business Flow Invoice Distribution Type
40122  , p_source_26            IN VARCHAR2
40123 --Business Flow Invoice Entity Code
40124  , p_source_27            IN VARCHAR2
40125 --Business Flow Invoice Distribution Identifier
40126  , p_source_28            IN NUMBER
40127 --Business Flow Invoice Identifier
40128  , p_source_29            IN NUMBER
40129 --Invoice Distribution Identifier
40130  , p_source_30            IN NUMBER
40131 --Payables Encumbrance Upgrade Credit Account
40132  , p_source_31            IN NUMBER
40133 --Payables Encumbrance Upgrade Credit Amount
40134  , p_source_32            IN NUMBER
40135 --Invoice Currency Code
40136  , p_source_33            IN VARCHAR2
40137 --Payables Encumbrance Upgrade Credit Base Amount
40138  , p_source_34            IN NUMBER
40139 --Payables Encumbrance Upgrade Debit Account
40140  , p_source_35            IN NUMBER
40141 --Payables Encumbrance Upgrade Debit Amount
40142  , p_source_36            IN NUMBER
40143 --Payables Encumbrance Upgrade Debit Base Amount
40144  , p_source_37            IN NUMBER
40145 --Payables Encumbrance Upgrade Option
40146  , p_source_38            IN VARCHAR2
40147 --Invoice Exchange Date
40148  , p_source_39            IN DATE
40149 --Invoice Exchange Rate
40150  , p_source_40            IN NUMBER
40151 --Invoice Exchange Rate Type
40152  , p_source_41            IN VARCHAR2
40153 --Variance Amount in Ledger Currency
40154  , p_source_42            IN NUMBER
40155 --Deferred Accounting End Date
40156  , p_source_43            IN DATE
40157 --Deferred Accounting Option
40158  , p_source_44            IN VARCHAR2
40159 --Deferred Accounting Start Date
40160  , p_source_45            IN DATE
40161 --Override Accounted Amount Indicator
40162  , p_source_46            IN VARCHAR2
40163  , p_source_46_meaning    IN VARCHAR2
40164 --Invoice Supplier Identifier
40165  , p_source_47            IN NUMBER
40166 --Invoice Supplier Site Identifier
40170 --Parent Reversal Identifier
40167  , p_source_48            IN NUMBER
40168 --Third Party Type
40169  , p_source_49            IN VARCHAR2
40171  , p_source_50            IN NUMBER
40172 --Invoice Distribution Tax Line Identifier
40173  , p_source_52            IN NUMBER
40174 --Invoice Distribution Tax Distribution Identifier from Tax
40175  , p_source_53            IN NUMBER
40176 --Invoice Distribution Summary Tax Line Identifier
40177  , p_source_54            IN NUMBER
40178 --Payables Upgrade Credit Encumbrance Type Identifier
40179  , p_source_55            IN NUMBER
40180 --Payables Upgrade Debit Encumbrance Type Identifier
40181  , p_source_56            IN NUMBER
40182 )
40183 IS
40184 
40185 l_component_type              VARCHAR2(80);
40186 l_component_code              VARCHAR2(30);
40187 l_component_type_code         VARCHAR2(1);
40188 l_component_appl_id           INTEGER;
40189 l_amb_context_code            VARCHAR2(30);
40190 l_entity_code                 VARCHAR2(30);
40191 l_event_class_code            VARCHAR2(30);
40192 l_ae_header_id                NUMBER;
40193 l_event_type_code             VARCHAR2(30);
40194 l_line_definition_code        VARCHAR2(30);
40195 l_line_definition_owner_code  VARCHAR2(1);
40196 --
40197 -- adr variables
40198 l_segment                     VARCHAR2(30);
40199 l_ccid                        NUMBER;
40200 l_adr_transaction_coa_id      NUMBER;
40201 l_adr_accounting_coa_id       NUMBER;
40202 l_adr_flexfield_segment_code  VARCHAR2(30);
40203 l_adr_flex_value_set_id       NUMBER;
40204 l_adr_value_type_code         VARCHAR2(30);
40205 l_adr_value_combination_id    NUMBER;
40206 l_adr_value_segment_code      VARCHAR2(30);
40207 
40208 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40209 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40210 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40211 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40212 
40213 -- 4262811 Variables ------------------------------------------------------------------------------------------
40214 l_entered_amt_idx             NUMBER;
40215 l_accted_amt_idx              NUMBER;
40216 l_acc_rev_flag                VARCHAR2(1);
40217 l_accrual_line_num            NUMBER;
40218 l_tmp_amt                     NUMBER;
40219 l_acc_rev_natural_side_code   VARCHAR2(1);
40220 
40221 l_num_entries                 NUMBER;
40222 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40223 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40224 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40225 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40226 l_recog_line_1                NUMBER;
40227 l_recog_line_2                NUMBER;
40228 
40229 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40230 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40231 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40232 
40233 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40234 
40235 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40236 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40237 
40238 ---------------------------------------------------------------------------------------------------------------
40239 
40240 
40241 --
40242 -- bulk performance
40243 --
40244 l_balance_type_code           VARCHAR2(1);
40245 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40246 l_log_module                  VARCHAR2(240);
40247 
40248 --
40249 -- Upgrade strategy
40250 --
40251 l_actual_upg_option           VARCHAR2(1);
40252 l_enc_upg_option           VARCHAR2(1);
40253 
40254 --
40255 BEGIN
40256 --
40257 IF g_log_enabled THEN
40258       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
40259 END IF;
40260 --
40261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40262 
40263       trace
40264          (p_msg      => 'BEGIN of AcctLineType_67'
40265          ,p_level    => C_LEVEL_PROCEDURE
40266          ,p_module   => l_log_module);
40267 
40268 END IF;
40269 --
40270 l_component_type             := 'AMB_JLT';
40271 l_component_code             := 'AP_TAX_AMT_VARIANCE_DM_ENC_DR';
40272 l_component_type_code        := 'S';
40273 l_component_appl_id          :=  200;
40274 l_amb_context_code           := 'DEFAULT';
40275 l_entity_code                := 'AP_INVOICES';
40276 l_event_class_code           := 'DEBIT MEMOS';
40277 l_event_type_code            := 'DEBIT MEMOS_ALL';
40278 l_line_definition_owner_code := 'S';
40279 l_line_definition_code       := 'ENC_DM_ALL';
40280 --
40281 l_balance_type_code          := 'E';
40282 l_segment                     := NULL;
40283 l_ccid                        := NULL;
40284 l_adr_transaction_coa_id      := NULL;
40285 l_adr_accounting_coa_id       := NULL;
40286 l_adr_flexfield_segment_code  := NULL;
40287 l_adr_flex_value_set_id       := NULL;
40288 l_adr_value_type_code         := NULL;
40289 l_adr_value_combination_id    := NULL;
40290 l_adr_value_segment_code      := NULL;
40291 
40292 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
40293 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
40297 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40294 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40295 l_budgetary_control_flag     := 'Y';
40296 
40298 l_bflow_applied_to_amt       := NULL; -- 5132302
40299 l_entered_amt_idx            := NULL;          -- 4262811
40300 l_accted_amt_idx             := NULL;          -- 4262811
40301 l_acc_rev_flag               := NULL;          -- 4262811
40302 l_accrual_line_num           := NULL;          -- 4262811
40303 l_tmp_amt                    := NULL;          -- 4262811
40304 --
40305  
40306 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40307     l_balance_type_code <> 'B' THEN
40308 IF NVL(p_source_15,'
40309 ') =  'NONREC_TAX' AND 
40310 p_source_16 IS NOT NULL AND 
40311 NVL(p_source_17,'
40312 ') =  'Y' AND 
40313 NVL(p_source_18,'
40314 ') <>  'Y'
40315  THEN 
40316 
40317    --
40318    XLA_AE_LINES_PKG.SetNewLine;
40319 
40320    p_balance_type_code          := l_balance_type_code;
40321    -- set the flag so later we will know whether the gain loss line needs to be created
40322    
40323    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40324      p_actual_flag :='A';
40325    END IF;
40326 
40327    --
40328    -- bulk performance
40329    --
40330    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40331                                       p_header_num   => 0); -- 4262811
40332    --
40333    -- set accounting line options
40334    --
40335    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40336            p_natural_side_code          => 'D'
40337          , p_gain_or_loss_flag          => 'N'
40338          , p_gl_transfer_mode_code      => 'S'
40339          , p_acct_entry_type_code       => 'E'
40340          , p_switch_side_flag           => 'Y'
40341          , p_merge_duplicate_code       => 'N'
40342          );
40343    --
40344    l_acc_rev_natural_side_code := 'C';  -- 4262811
40345    -- 
40346    --
40347    -- set accounting line type info
40348    --
40349    xla_ae_lines_pkg.SetAcctLineType
40350       (p_component_type             => l_component_type
40351       ,p_event_type_code            => l_event_type_code
40352       ,p_line_definition_owner_code => l_line_definition_owner_code
40353       ,p_line_definition_code       => l_line_definition_code
40354       ,p_accounting_line_code       => l_component_code
40355       ,p_accounting_line_type_code  => l_component_type_code
40356       ,p_accounting_line_appl_id    => l_component_appl_id
40357       ,p_amb_context_code           => l_amb_context_code
40358       ,p_entity_code                => l_entity_code
40359       ,p_event_class_code           => l_event_class_code);
40360    --
40361    -- set accounting class
40362    --
40363    xla_ae_lines_pkg.SetAcctClass(
40364            p_accounting_class_code  => 'TAV'
40365          , p_ae_header_id           => l_ae_header_id
40366          );
40367 
40368    --
40369    -- set rounding class
40370    --
40371    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40372                       'TAV';
40373 
40374    --
40375    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40376    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40377    --
40378    -- bulk performance
40379    --
40380    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40381 
40382    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40383       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40384 
40385    -- 4955764
40386    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40387       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40388 
40389    -- 4458381 Public Sector Enh
40390       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
40391    --
40392    -- set accounting attributes for the line type
40393    --
40394    l_entered_amt_idx := 23;
40395    l_accted_amt_idx  := 28;
40396    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40397    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40398    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
40399    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40400    l_rec_acct_attrs.array_num_value(2)  := 
40401 xla_ae_sources_pkg.GetSystemSourceNum(
40402    p_source_code           => 'XLA_EVENT_APPL_ID'
40403  , p_source_type_code      => 'Y'
40404  , p_source_application_id =>  602
40405 );
40406    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40407    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
40408    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40409    l_rec_acct_attrs.array_char_value(4)  := 
40410 xla_ae_sources_pkg.GetSystemSourceChar(
40411    p_source_code           => 'XLA_ENTITY_CODE'
40412  , p_source_type_code      => 'Y'
40413  , p_source_application_id =>  602
40414 );
40415    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40416    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
40420    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
40417    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40418    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
40419    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40421    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40422    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
40423    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40424    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
40425    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40426    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
40427    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40428    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
40429    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40430    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
40431    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40432    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
40433    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
40434    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
40435    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
40436    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
40437    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
40438    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
40439    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
40440    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
40441    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
40442    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
40443    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
40444    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
40445    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
40446    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
40447    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
40448    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
40449    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
40450    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
40451    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
40452    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
40453    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
40454    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
40455    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
40456    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
40457    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
40458    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
40459    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
40460    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
40461    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
40462    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
40463    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
40464    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
40465    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
40466    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
40467    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
40468    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
40469    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
40470    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
40471    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
40472    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
40473    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
40474    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
40475    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
40476    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
40477    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
40478    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
40479    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
40480    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
40481    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
40482    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
40483    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
40484    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
40485    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
40486    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
40487    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
40488    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
40489    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
40490    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
40491 
40492    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40493    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40494 
40495    ---------------------------------------------------------------------------------------------------------------
40496    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40497    ---------------------------------------------------------------------------------------------------------------
40498    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40499 
40503    IF xla_accounting_cache_pkg.GetValueChar
40500    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40501    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40502 
40504          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40505          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40506    AND l_bflow_method_code = 'PRIOR_ENTRY'
40507 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40508    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40509          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40510        )
40511    THEN
40512          xla_ae_lines_pkg.BflowUpgEntry
40513            (p_business_method_code    => l_bflow_method_code
40514            ,p_business_class_code     => l_bflow_class_code
40515            ,p_balance_type            => l_balance_type_code);
40516    ELSE
40517       NULL;
40518 -- No business flow processing for business flow method of NONE.
40519    END IF;
40520 
40521    --
40522    -- call analytical criteria
40523    --
40524    
40525    --
40526    -- call description
40527    --
40528    
40529 xla_ae_lines_pkg.SetLineDescription(
40530    p_ae_header_id => l_ae_header_id
40531   ,p_description  => Description_2 (
40532      p_application_id         => p_application_id
40533    , p_ae_header_id           => l_ae_header_id 
40534 , p_source_1 => p_source_1
40535    )
40536 );
40537 
40538 
40539    --
40540    -- call ADRs
40541    -- Bug 4922099
40542    --
40543    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40544         (NVL(l_actual_upg_option, 'N') = 'O') OR
40545         (NVL(l_enc_upg_option, 'N') = 'O')
40546       )
40547    THEN
40548    NULL;
40549    --
40550    --
40551    
40552   l_ccid := AcctDerRule_7(
40553            p_application_id           => p_application_id
40554          , p_ae_header_id             => l_ae_header_id 
40555 , p_source_11 => p_source_11
40556          , x_transaction_coa_id       => l_adr_transaction_coa_id
40557          , x_accounting_coa_id        => l_adr_accounting_coa_id
40558          , x_value_type_code          => l_adr_value_type_code
40559          , p_side                     => 'NA'
40560    );
40561 
40562    xla_ae_lines_pkg.set_ccid(
40563     p_code_combination_id          => l_ccid
40564   , p_value_type_code              => l_adr_value_type_code
40565   , p_transaction_coa_id           => l_adr_transaction_coa_id
40566   , p_accounting_coa_id            => l_adr_accounting_coa_id
40567   , p_adr_code                     => 'AP_INVOICE_DIST'
40568   , p_adr_type_code                => 'S'
40569   , p_component_type               => l_component_type
40570   , p_component_code               => l_component_code
40571   , p_component_type_code          => l_component_type_code
40572   , p_component_appl_id            => l_component_appl_id
40573   , p_amb_context_code             => l_amb_context_code
40574   , p_side                         => 'NA'
40575   );
40576 
40577 
40578    --
40579    --
40580    END IF;
40581    --
40582    -- Bug 4922099
40583    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40584           (NVL(l_enc_upg_option, 'N') = 'O')
40585         ) AND
40586         (l_bflow_method_code = 'PRIOR_ENTRY')
40587       )
40588    THEN
40589       IF
40590       --
40591       1 = 2
40592       --
40593       THEN
40594       xla_accounting_err_pkg.build_message
40595                                     (p_appli_s_name            => 'XLA'
40596                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40597                                     ,p_token_1                 => 'LINE_NUMBER'
40598                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40599                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40600                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40601                                                                              l_component_type
40602                                                                             ,l_component_code
40603                                                                             ,l_component_type_code
40604                                                                             ,l_component_appl_id
40605                                                                             ,l_amb_context_code
40606                                                                             ,l_entity_code
40607                                                                             ,l_event_class_code
40608                                                                            )
40609                                     ,p_token_3                 => 'OWNER'
40610                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40611                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40612                                                                           ,p_lookup_code    => l_component_type_code
40613                                                                          )
40614                                     ,p_token_4                 => 'PRODUCT_NAME'
40615                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40619                                     ,p_ae_header_id            =>  NULL
40616                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40617                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40618                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40620                                        );
40621 
40622         IF (C_LEVEL_ERROR>= g_log_level) THEN
40623                  trace
40624                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40625                       ,p_level    => C_LEVEL_ERROR
40626                       ,p_module   => l_log_module);
40627         END IF;
40628       END IF;
40629    END IF;
40630    --
40631    --
40632    ------------------------------------------------------------------------------------------------
40633    -- 4219869 Business Flow
40634    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40635    -- Prior Entry.  Currently, the following code is always generated.
40636    ------------------------------------------------------------------------------------------------
40637    XLA_AE_LINES_PKG.ValidateCurrentLine;
40638 
40639    ------------------------------------------------------------------------------------
40640    -- 4219869 Business Flow
40641    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40642    ------------------------------------------------------------------------------------
40643    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40644 
40645    ----------------------------------------------------------------------------------
40646    -- 4219869 Business Flow
40647    -- Update journal entry status -- Need to generate this within IF <condition>
40648    ----------------------------------------------------------------------------------
40649    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40650          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40651          ,p_balance_type_code => l_balance_type_code
40652          );
40653 
40654    -------------------------------------------------------------------------------------------
40655    -- 4262811 - Generate the Accrual Reversal lines
40656    -------------------------------------------------------------------------------------------
40657    BEGIN
40658       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40659                               (g_array_event(p_event_id).array_value_num('header_index'));
40660       IF l_acc_rev_flag IS NULL THEN
40661          l_acc_rev_flag := 'N';
40662       END IF;
40663    EXCEPTION
40664       WHEN OTHERS THEN
40665          l_acc_rev_flag := 'N';
40666    END;
40667    --
40668    IF (l_acc_rev_flag = 'Y') THEN
40669 
40670        -- 4645092  ------------------------------------------------------------------------------
40671        -- To allow MPA report to determine if it should generate report process
40672        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40673        ------------------------------------------------------------------------------------------
40674 
40675        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40676        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40677    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40678    -- call ADRs
40679    -- Bug 4922099
40680    --
40681    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40682         (NVL(l_actual_upg_option, 'N') = 'O') OR
40683         (NVL(l_enc_upg_option, 'N') = 'O')
40684       )
40685    THEN
40686    NULL;
40687    --
40688    --
40689    
40690   l_ccid := AcctDerRule_7(
40691            p_application_id           => p_application_id
40692          , p_ae_header_id             => l_ae_header_id 
40693 , p_source_11 => p_source_11
40694          , x_transaction_coa_id       => l_adr_transaction_coa_id
40695          , x_accounting_coa_id        => l_adr_accounting_coa_id
40696          , x_value_type_code          => l_adr_value_type_code
40697          , p_side                     => 'NA'
40698    );
40699 
40700    xla_ae_lines_pkg.set_ccid(
40701     p_code_combination_id          => l_ccid
40702   , p_value_type_code              => l_adr_value_type_code
40703   , p_transaction_coa_id           => l_adr_transaction_coa_id
40704   , p_accounting_coa_id            => l_adr_accounting_coa_id
40705   , p_adr_code                     => 'AP_INVOICE_DIST'
40706   , p_adr_type_code                => 'S'
40707   , p_component_type               => l_component_type
40708   , p_component_code               => l_component_code
40709   , p_component_type_code          => l_component_type_code
40710   , p_component_appl_id            => l_component_appl_id
40711   , p_amb_context_code             => l_amb_context_code
40712   , p_side                         => 'NA'
40713   );
40714 
40715 
40716    --
40717    --
40718    END IF;
40719 
40720        --
40721        -- Update the line information that should be overwritten
40722        --
40723        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40724                                          p_header_num   => 1);
40725        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40726 
40727        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40728 
40729        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40733       --
40730           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40731        END IF;
40732 
40734       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40735       --
40736       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40737           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40738       ELSE
40739           ---------------------------------------------------------------------------------------------------
40740           -- 4262811a Switch Sign
40741           ---------------------------------------------------------------------------------------------------
40742           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40743           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40744                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40745           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40746                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40747           -- 5132302
40748           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40749                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40750 
40751       END IF;
40752 
40753       -- 4955764
40754       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40755       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40756 
40757 
40758       XLA_AE_LINES_PKG.ValidateCurrentLine;
40759       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40760 
40761       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40762                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40763                ,p_balance_type_code => l_balance_type_code);
40764 
40765    END IF;
40766 
40767    -----------------------------------------------------------------------------------------
40768    -- 4262811 Multiperiod Accounting
40769    -----------------------------------------------------------------------------------------
40770      -- No MPA option is assigned.
40771 
40772 
40773 END IF;
40774 END IF;
40775 --
40776 
40777 --
40778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40779    trace
40780       (p_msg      => 'END of AcctLineType_67'
40781       ,p_level    => C_LEVEL_PROCEDURE
40782       ,p_module   => l_log_module);
40783 END IF;
40784 --
40785 EXCEPTION
40786   WHEN xla_exceptions_pkg.application_exception THEN
40787       RAISE;
40788   WHEN OTHERS THEN
40789        xla_exceptions_pkg.raise_message
40790            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_67');
40791 END AcctLineType_67;
40792 --
40793 
40794 ---------------------------------------
40795 --
40796 -- PRIVATE FUNCTION
40797 --         AcctLineType_68
40798 --
40799 ---------------------------------------
40800 PROCEDURE AcctLineType_68 (
40801   p_application_id        IN NUMBER
40802  ,p_event_id              IN NUMBER
40803  ,p_calculate_acctd_flag  IN VARCHAR2
40804  ,p_calculate_g_l_flag    IN VARCHAR2
40805  ,p_actual_flag           IN OUT VARCHAR2
40806  ,p_balance_type_code     OUT VARCHAR2
40807  ,p_gain_or_loss_ref      OUT VARCHAR2
40808  
40809 --Invoice Distribution Description
40810  , p_source_1            IN VARCHAR2
40811 --Invoice Distribution Account
40812  , p_source_11            IN NUMBER
40813 --Invoice Distribution Type
40814  , p_source_15            IN VARCHAR2
40815  , p_source_15_meaning    IN VARCHAR2
40816 --Amount for Variance Amount
40817  , p_source_16            IN NUMBER
40818 --Purchasing Encumbrance Option
40819  , p_source_17            IN VARCHAR2
40820  , p_source_17_meaning    IN VARCHAR2
40821 --Accrue on Receipt Option
40822  , p_source_18            IN VARCHAR2
40823  , p_source_18_meaning    IN VARCHAR2
40824 --Accounting Reversal Indicator
40825  , p_source_19            IN VARCHAR2
40826 --Distribution Link Type
40827  , p_source_21            IN VARCHAR2
40828 --Allocation to Main Distribution Identifier
40829  , p_source_23            IN NUMBER
40830 --Invoice Identifier
40831  , p_source_24            IN NUMBER
40832 --Business Flow Accounts Payable Application Identifier
40833  , p_source_25            IN NUMBER
40834 --Business Flow Invoice Distribution Type
40835  , p_source_26            IN VARCHAR2
40836 --Business Flow Invoice Entity Code
40837  , p_source_27            IN VARCHAR2
40838 --Business Flow Invoice Distribution Identifier
40839  , p_source_28            IN NUMBER
40840 --Business Flow Invoice Identifier
40841  , p_source_29            IN NUMBER
40842 --Invoice Distribution Identifier
40843  , p_source_30            IN NUMBER
40844 --Payables Encumbrance Upgrade Credit Account
40845  , p_source_31            IN NUMBER
40846 --Payables Encumbrance Upgrade Credit Amount
40847  , p_source_32            IN NUMBER
40848 --Invoice Currency Code
40849  , p_source_33            IN VARCHAR2
40850 --Payables Encumbrance Upgrade Credit Base Amount
40851  , p_source_34            IN NUMBER
40855  , p_source_36            IN NUMBER
40852 --Payables Encumbrance Upgrade Debit Account
40853  , p_source_35            IN NUMBER
40854 --Payables Encumbrance Upgrade Debit Amount
40856 --Payables Encumbrance Upgrade Debit Base Amount
40857  , p_source_37            IN NUMBER
40858 --Payables Encumbrance Upgrade Option
40859  , p_source_38            IN VARCHAR2
40860 --Invoice Exchange Date
40861  , p_source_39            IN DATE
40862 --Invoice Exchange Rate
40863  , p_source_40            IN NUMBER
40864 --Invoice Exchange Rate Type
40865  , p_source_41            IN VARCHAR2
40866 --Variance Amount in Ledger Currency
40867  , p_source_42            IN NUMBER
40868 --Deferred Accounting End Date
40869  , p_source_43            IN DATE
40870 --Deferred Accounting Option
40871  , p_source_44            IN VARCHAR2
40872 --Deferred Accounting Start Date
40873  , p_source_45            IN DATE
40874 --Override Accounted Amount Indicator
40875  , p_source_46            IN VARCHAR2
40876  , p_source_46_meaning    IN VARCHAR2
40877 --Invoice Supplier Identifier
40878  , p_source_47            IN NUMBER
40879 --Invoice Supplier Site Identifier
40880  , p_source_48            IN NUMBER
40881 --Third Party Type
40882  , p_source_49            IN VARCHAR2
40883 --Parent Reversal Identifier
40884  , p_source_50            IN NUMBER
40885 --Invoice Distribution Statistical Amount
40886  , p_source_51            IN NUMBER
40887 --Invoice Distribution Tax Line Identifier
40888  , p_source_52            IN NUMBER
40889 --Invoice Distribution Tax Distribution Identifier from Tax
40890  , p_source_53            IN NUMBER
40891 --Invoice Distribution Summary Tax Line Identifier
40892  , p_source_54            IN NUMBER
40893 --Payables Upgrade Credit Encumbrance Type Identifier
40894  , p_source_55            IN NUMBER
40895 --Payables Upgrade Debit Encumbrance Type Identifier
40896  , p_source_56            IN NUMBER
40897 --Invoice Distribution Amount
40898  , p_source_57            IN NUMBER
40899 )
40900 IS
40901 
40902 l_component_type              VARCHAR2(80);
40903 l_component_code              VARCHAR2(30);
40904 l_component_type_code         VARCHAR2(1);
40905 l_component_appl_id           INTEGER;
40906 l_amb_context_code            VARCHAR2(30);
40907 l_entity_code                 VARCHAR2(30);
40908 l_event_class_code            VARCHAR2(30);
40909 l_ae_header_id                NUMBER;
40910 l_event_type_code             VARCHAR2(30);
40911 l_line_definition_code        VARCHAR2(30);
40912 l_line_definition_owner_code  VARCHAR2(1);
40913 --
40914 -- adr variables
40915 l_segment                     VARCHAR2(30);
40916 l_ccid                        NUMBER;
40917 l_adr_transaction_coa_id      NUMBER;
40918 l_adr_accounting_coa_id       NUMBER;
40919 l_adr_flexfield_segment_code  VARCHAR2(30);
40920 l_adr_flex_value_set_id       NUMBER;
40921 l_adr_value_type_code         VARCHAR2(30);
40922 l_adr_value_combination_id    NUMBER;
40923 l_adr_value_segment_code      VARCHAR2(30);
40924 
40925 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40926 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40927 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40928 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40929 
40930 -- 4262811 Variables ------------------------------------------------------------------------------------------
40931 l_entered_amt_idx             NUMBER;
40932 l_accted_amt_idx              NUMBER;
40933 l_acc_rev_flag                VARCHAR2(1);
40934 l_accrual_line_num            NUMBER;
40935 l_tmp_amt                     NUMBER;
40936 l_acc_rev_natural_side_code   VARCHAR2(1);
40937 
40938 l_num_entries                 NUMBER;
40939 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40940 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40941 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40942 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40943 l_recog_line_1                NUMBER;
40944 l_recog_line_2                NUMBER;
40945 
40946 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40947 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40948 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40949 
40950 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40951 
40952 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40953 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40954 
40955 ---------------------------------------------------------------------------------------------------------------
40956 
40957 
40958 --
40959 -- bulk performance
40960 --
40961 l_balance_type_code           VARCHAR2(1);
40962 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40963 l_log_module                  VARCHAR2(240);
40964 
40965 --
40966 -- Upgrade strategy
40967 --
40968 l_actual_upg_option           VARCHAR2(1);
40969 l_enc_upg_option           VARCHAR2(1);
40970 
40971 --
40972 BEGIN
40973 --
40974 IF g_log_enabled THEN
40975       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
40976 END IF;
40977 --
40978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40979 
40983          ,p_module   => l_log_module);
40980       trace
40981          (p_msg      => 'BEGIN of AcctLineType_68'
40982          ,p_level    => C_LEVEL_PROCEDURE
40984 
40985 END IF;
40986 --
40987 l_component_type             := 'AMB_JLT';
40988 l_component_code             := 'AP_TAX_AMT_VARIANCE_INV_ENC_DR';
40989 l_component_type_code        := 'S';
40990 l_component_appl_id          :=  200;
40991 l_amb_context_code           := 'DEFAULT';
40992 l_entity_code                := 'AP_INVOICES';
40993 l_event_class_code           := 'INVOICES';
40994 l_event_type_code            := 'INVOICES_ALL';
40995 l_line_definition_owner_code := 'S';
40996 l_line_definition_code       := 'ENC_INVOICES_ALL';
40997 --
40998 l_balance_type_code          := 'E';
40999 l_segment                     := NULL;
41000 l_ccid                        := NULL;
41001 l_adr_transaction_coa_id      := NULL;
41002 l_adr_accounting_coa_id       := NULL;
41003 l_adr_flexfield_segment_code  := NULL;
41004 l_adr_flex_value_set_id       := NULL;
41005 l_adr_value_type_code         := NULL;
41006 l_adr_value_combination_id    := NULL;
41007 l_adr_value_segment_code      := NULL;
41008 
41009 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
41010 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
41011 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41012 l_budgetary_control_flag     := 'Y';
41013 
41014 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41015 l_bflow_applied_to_amt       := NULL; -- 5132302
41016 l_entered_amt_idx            := NULL;          -- 4262811
41017 l_accted_amt_idx             := NULL;          -- 4262811
41018 l_acc_rev_flag               := NULL;          -- 4262811
41019 l_accrual_line_num           := NULL;          -- 4262811
41020 l_tmp_amt                    := NULL;          -- 4262811
41021 --
41022  
41023 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41024     l_balance_type_code <> 'B' THEN
41025 IF NVL(p_source_15,'
41026 ') =  'NONREC_TAX' AND 
41027 NVL(p_source_17,'
41028 ') =  'Y' AND 
41029 p_source_16 IS NOT NULL AND 
41030 NVL(p_source_18,'
41031 ') <>  'Y'
41032  THEN 
41033 
41034    --
41035    XLA_AE_LINES_PKG.SetNewLine;
41036 
41037    p_balance_type_code          := l_balance_type_code;
41038    -- set the flag so later we will know whether the gain loss line needs to be created
41039    
41040    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41041      p_actual_flag :='A';
41042    END IF;
41043 
41044    --
41045    -- bulk performance
41046    --
41047    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41048                                       p_header_num   => 0); -- 4262811
41049    --
41050    -- set accounting line options
41051    --
41052    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41053            p_natural_side_code          => 'D'
41054          , p_gain_or_loss_flag          => 'N'
41055          , p_gl_transfer_mode_code      => 'S'
41056          , p_acct_entry_type_code       => 'E'
41057          , p_switch_side_flag           => 'Y'
41058          , p_merge_duplicate_code       => 'N'
41059          );
41060    --
41061    l_acc_rev_natural_side_code := 'C';  -- 4262811
41062    -- 
41063    --
41064    -- set accounting line type info
41065    --
41066    xla_ae_lines_pkg.SetAcctLineType
41067       (p_component_type             => l_component_type
41068       ,p_event_type_code            => l_event_type_code
41069       ,p_line_definition_owner_code => l_line_definition_owner_code
41070       ,p_line_definition_code       => l_line_definition_code
41071       ,p_accounting_line_code       => l_component_code
41072       ,p_accounting_line_type_code  => l_component_type_code
41073       ,p_accounting_line_appl_id    => l_component_appl_id
41074       ,p_amb_context_code           => l_amb_context_code
41075       ,p_entity_code                => l_entity_code
41076       ,p_event_class_code           => l_event_class_code);
41077    --
41078    -- set accounting class
41079    --
41080    xla_ae_lines_pkg.SetAcctClass(
41081            p_accounting_class_code  => 'TAV'
41082          , p_ae_header_id           => l_ae_header_id
41083          );
41084 
41085    --
41086    -- set rounding class
41087    --
41088    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41089                       'TAV';
41090 
41091    --
41092    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41093    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41094    --
41095    -- bulk performance
41096    --
41097    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41098 
41099    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41100       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41101 
41102    -- 4955764
41103    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41104       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41105 
41106    -- 4458381 Public Sector Enh
41110    --
41107       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
41108    --
41109    -- set accounting attributes for the line type
41111    l_entered_amt_idx := 24;
41112    l_accted_amt_idx  := 29;
41113    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
41114    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41115    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
41116    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41117    l_rec_acct_attrs.array_num_value(2)  := 
41118 xla_ae_sources_pkg.GetSystemSourceNum(
41119    p_source_code           => 'XLA_EVENT_APPL_ID'
41120  , p_source_type_code      => 'Y'
41121  , p_source_application_id =>  602
41122 );
41123    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41124    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
41125    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41126    l_rec_acct_attrs.array_char_value(4)  := 
41127 xla_ae_sources_pkg.GetSystemSourceChar(
41128    p_source_code           => 'XLA_ENTITY_CODE'
41129  , p_source_type_code      => 'Y'
41130  , p_source_application_id =>  602
41131 );
41132    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41133    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
41134    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41135    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
41136    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
41137    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
41138    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
41139    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
41140    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41141    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
41142    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
41143    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
41144    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
41145    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
41146    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41147    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
41148    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
41149    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
41150    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
41151    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
41152    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
41153    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
41154    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
41155    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
41156    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41157    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
41158    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41159    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
41160    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
41161    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
41162    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
41163    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
41164    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
41165    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
41166    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
41167    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
41168    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
41169    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
41170    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
41171    l_rec_acct_attrs.array_num_value(24)  := p_source_16;
41172    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
41173    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
41174    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
41175    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
41176    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
41177    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
41178    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
41179    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
41180    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
41181    l_rec_acct_attrs.array_num_value(29)  := p_source_42;
41182    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
41183    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
41184    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
41185    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
41186    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
41187    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
41188    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
41189    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
41190    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
41191    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
41192    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
41193    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
41194    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
41195    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
41196    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
41200    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
41197    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
41198    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
41199    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
41201    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
41202    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
41203    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
41204    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
41205    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
41206    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
41207    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
41208    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
41209    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
41210    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
41211    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
41212 
41213    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41214    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41215 
41216    ---------------------------------------------------------------------------------------------------------------
41217    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41218    ---------------------------------------------------------------------------------------------------------------
41219    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41220 
41221    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41222    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41223 
41224    IF xla_accounting_cache_pkg.GetValueChar
41225          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41226          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41227    AND l_bflow_method_code = 'PRIOR_ENTRY'
41228 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41229    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41230          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41231        )
41232    THEN
41233          xla_ae_lines_pkg.BflowUpgEntry
41234            (p_business_method_code    => l_bflow_method_code
41235            ,p_business_class_code     => l_bflow_class_code
41236            ,p_balance_type            => l_balance_type_code);
41237    ELSE
41238       NULL;
41239 -- No business flow processing for business flow method of NONE.
41240    END IF;
41241 
41242    --
41243    -- call analytical criteria
41244    --
41245    
41246    --
41247    -- call description
41248    --
41249    
41250 xla_ae_lines_pkg.SetLineDescription(
41251    p_ae_header_id => l_ae_header_id
41252   ,p_description  => Description_2 (
41253      p_application_id         => p_application_id
41254    , p_ae_header_id           => l_ae_header_id 
41255 , p_source_1 => p_source_1
41256    )
41257 );
41258 
41259 
41260    --
41261    -- call ADRs
41262    -- Bug 4922099
41263    --
41264    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41265         (NVL(l_actual_upg_option, 'N') = 'O') OR
41266         (NVL(l_enc_upg_option, 'N') = 'O')
41267       )
41268    THEN
41269    NULL;
41270    --
41271    --
41272    
41273   l_ccid := AcctDerRule_7(
41274            p_application_id           => p_application_id
41275          , p_ae_header_id             => l_ae_header_id 
41276 , p_source_11 => p_source_11
41277          , x_transaction_coa_id       => l_adr_transaction_coa_id
41278          , x_accounting_coa_id        => l_adr_accounting_coa_id
41279          , x_value_type_code          => l_adr_value_type_code
41280          , p_side                     => 'NA'
41281    );
41282 
41283    xla_ae_lines_pkg.set_ccid(
41284     p_code_combination_id          => l_ccid
41285   , p_value_type_code              => l_adr_value_type_code
41286   , p_transaction_coa_id           => l_adr_transaction_coa_id
41287   , p_accounting_coa_id            => l_adr_accounting_coa_id
41288   , p_adr_code                     => 'AP_INVOICE_DIST'
41289   , p_adr_type_code                => 'S'
41290   , p_component_type               => l_component_type
41291   , p_component_code               => l_component_code
41292   , p_component_type_code          => l_component_type_code
41293   , p_component_appl_id            => l_component_appl_id
41294   , p_amb_context_code             => l_amb_context_code
41295   , p_side                         => 'NA'
41296   );
41297 
41298 
41299    --
41300    --
41301    END IF;
41302    --
41303    -- Bug 4922099
41304    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41305           (NVL(l_enc_upg_option, 'N') = 'O')
41306         ) AND
41307         (l_bflow_method_code = 'PRIOR_ENTRY')
41308       )
41309    THEN
41310       IF
41311       --
41312       1 = 2
41313       --
41314       THEN
41315       xla_accounting_err_pkg.build_message
41316                                     (p_appli_s_name            => 'XLA'
41317                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41318                                     ,p_token_1                 => 'LINE_NUMBER'
41322                                                                              l_component_type
41319                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41320                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41321                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41323                                                                             ,l_component_code
41324                                                                             ,l_component_type_code
41325                                                                             ,l_component_appl_id
41326                                                                             ,l_amb_context_code
41327                                                                             ,l_entity_code
41328                                                                             ,l_event_class_code
41329                                                                            )
41330                                     ,p_token_3                 => 'OWNER'
41331                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41332                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41333                                                                           ,p_lookup_code    => l_component_type_code
41334                                                                          )
41335                                     ,p_token_4                 => 'PRODUCT_NAME'
41336                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41337                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41338                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41339                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41340                                     ,p_ae_header_id            =>  NULL
41341                                        );
41342 
41343         IF (C_LEVEL_ERROR>= g_log_level) THEN
41344                  trace
41345                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41346                       ,p_level    => C_LEVEL_ERROR
41347                       ,p_module   => l_log_module);
41348         END IF;
41349       END IF;
41350    END IF;
41351    --
41352    --
41353    ------------------------------------------------------------------------------------------------
41354    -- 4219869 Business Flow
41355    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41356    -- Prior Entry.  Currently, the following code is always generated.
41357    ------------------------------------------------------------------------------------------------
41358    XLA_AE_LINES_PKG.ValidateCurrentLine;
41359 
41360    ------------------------------------------------------------------------------------
41361    -- 4219869 Business Flow
41362    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41363    ------------------------------------------------------------------------------------
41364    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41365 
41366    ----------------------------------------------------------------------------------
41367    -- 4219869 Business Flow
41368    -- Update journal entry status -- Need to generate this within IF <condition>
41369    ----------------------------------------------------------------------------------
41370    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41371          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41372          ,p_balance_type_code => l_balance_type_code
41373          );
41374 
41375    -------------------------------------------------------------------------------------------
41376    -- 4262811 - Generate the Accrual Reversal lines
41377    -------------------------------------------------------------------------------------------
41378    BEGIN
41379       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41380                               (g_array_event(p_event_id).array_value_num('header_index'));
41381       IF l_acc_rev_flag IS NULL THEN
41382          l_acc_rev_flag := 'N';
41383       END IF;
41384    EXCEPTION
41385       WHEN OTHERS THEN
41386          l_acc_rev_flag := 'N';
41387    END;
41388    --
41389    IF (l_acc_rev_flag = 'Y') THEN
41390 
41391        -- 4645092  ------------------------------------------------------------------------------
41392        -- To allow MPA report to determine if it should generate report process
41393        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41394        ------------------------------------------------------------------------------------------
41395 
41396        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41397        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41398    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41399    -- call ADRs
41400    -- Bug 4922099
41401    --
41402    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41403         (NVL(l_actual_upg_option, 'N') = 'O') OR
41404         (NVL(l_enc_upg_option, 'N') = 'O')
41405       )
41406    THEN
41407    NULL;
41408    --
41409    --
41410    
41411   l_ccid := AcctDerRule_7(
41412            p_application_id           => p_application_id
41413          , p_ae_header_id             => l_ae_header_id 
41414 , p_source_11 => p_source_11
41418          , p_side                     => 'NA'
41415          , x_transaction_coa_id       => l_adr_transaction_coa_id
41416          , x_accounting_coa_id        => l_adr_accounting_coa_id
41417          , x_value_type_code          => l_adr_value_type_code
41419    );
41420 
41421    xla_ae_lines_pkg.set_ccid(
41422     p_code_combination_id          => l_ccid
41423   , p_value_type_code              => l_adr_value_type_code
41424   , p_transaction_coa_id           => l_adr_transaction_coa_id
41425   , p_accounting_coa_id            => l_adr_accounting_coa_id
41426   , p_adr_code                     => 'AP_INVOICE_DIST'
41427   , p_adr_type_code                => 'S'
41428   , p_component_type               => l_component_type
41429   , p_component_code               => l_component_code
41430   , p_component_type_code          => l_component_type_code
41431   , p_component_appl_id            => l_component_appl_id
41432   , p_amb_context_code             => l_amb_context_code
41433   , p_side                         => 'NA'
41434   );
41435 
41436 
41437    --
41438    --
41439    END IF;
41440 
41441        --
41442        -- Update the line information that should be overwritten
41443        --
41444        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41445                                          p_header_num   => 1);
41446        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41447 
41448        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41449 
41450        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41451           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41452        END IF;
41453 
41454       --
41455       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41456       --
41457       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41458           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41459       ELSE
41460           ---------------------------------------------------------------------------------------------------
41461           -- 4262811a Switch Sign
41462           ---------------------------------------------------------------------------------------------------
41463           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41464           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41465                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41466           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41467                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41468           -- 5132302
41469           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41470                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41471 
41472       END IF;
41473 
41474       -- 4955764
41475       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41476       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41477 
41478 
41479       XLA_AE_LINES_PKG.ValidateCurrentLine;
41480       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41481 
41482       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41483                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41484                ,p_balance_type_code => l_balance_type_code);
41485 
41486    END IF;
41487 
41488    -----------------------------------------------------------------------------------------
41489    -- 4262811 Multiperiod Accounting
41490    -----------------------------------------------------------------------------------------
41491      -- No MPA option is assigned.
41492 
41493 
41494 END IF;
41495 END IF;
41496 --
41497 
41498 --
41499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41500    trace
41501       (p_msg      => 'END of AcctLineType_68'
41502       ,p_level    => C_LEVEL_PROCEDURE
41503       ,p_module   => l_log_module);
41504 END IF;
41505 --
41506 EXCEPTION
41507   WHEN xla_exceptions_pkg.application_exception THEN
41508       RAISE;
41509   WHEN OTHERS THEN
41510        xla_exceptions_pkg.raise_message
41511            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_68');
41512 END AcctLineType_68;
41513 --
41514 
41515 ---------------------------------------
41516 --
41517 -- PRIVATE FUNCTION
41518 --         AcctLineType_69
41519 --
41520 ---------------------------------------
41521 PROCEDURE AcctLineType_69 (
41522   p_application_id        IN NUMBER
41523  ,p_event_id              IN NUMBER
41524  ,p_calculate_acctd_flag  IN VARCHAR2
41525  ,p_calculate_g_l_flag    IN VARCHAR2
41526  ,p_actual_flag           IN OUT VARCHAR2
41527  ,p_balance_type_code     OUT VARCHAR2
41528  ,p_gain_or_loss_ref      OUT VARCHAR2
41529  
41530 --Invoice Distribution Description
41531  , p_source_1            IN VARCHAR2
41532 --Invoice Distribution Account
41533  , p_source_11            IN NUMBER
41534 --Invoice Distribution Type
41538  , p_source_16            IN NUMBER
41535  , p_source_15            IN VARCHAR2
41536  , p_source_15_meaning    IN VARCHAR2
41537 --Amount for Variance Amount
41539 --Purchasing Encumbrance Option
41540  , p_source_17            IN VARCHAR2
41541  , p_source_17_meaning    IN VARCHAR2
41542 --Accrue on Receipt Option
41543  , p_source_18            IN VARCHAR2
41544  , p_source_18_meaning    IN VARCHAR2
41545 --Accounting Reversal Indicator
41546  , p_source_19            IN VARCHAR2
41547 --Distribution Link Type
41548  , p_source_21            IN VARCHAR2
41549 --Allocation to Main Distribution Identifier
41550  , p_source_23            IN NUMBER
41551 --Invoice Identifier
41552  , p_source_24            IN NUMBER
41553 --Business Flow Accounts Payable Application Identifier
41554  , p_source_25            IN NUMBER
41555 --Business Flow Invoice Distribution Type
41556  , p_source_26            IN VARCHAR2
41557 --Business Flow Invoice Entity Code
41558  , p_source_27            IN VARCHAR2
41559 --Business Flow Invoice Distribution Identifier
41560  , p_source_28            IN NUMBER
41561 --Business Flow Invoice Identifier
41562  , p_source_29            IN NUMBER
41563 --Invoice Distribution Identifier
41564  , p_source_30            IN NUMBER
41565 --Payables Encumbrance Upgrade Credit Account
41566  , p_source_31            IN NUMBER
41567 --Payables Encumbrance Upgrade Credit Amount
41568  , p_source_32            IN NUMBER
41569 --Invoice Currency Code
41570  , p_source_33            IN VARCHAR2
41571 --Payables Encumbrance Upgrade Credit Base Amount
41572  , p_source_34            IN NUMBER
41573 --Payables Encumbrance Upgrade Debit Account
41574  , p_source_35            IN NUMBER
41575 --Payables Encumbrance Upgrade Debit Amount
41576  , p_source_36            IN NUMBER
41577 --Payables Encumbrance Upgrade Debit Base Amount
41578  , p_source_37            IN NUMBER
41579 --Payables Encumbrance Upgrade Option
41580  , p_source_38            IN VARCHAR2
41581 --Invoice Exchange Date
41582  , p_source_39            IN DATE
41583 --Invoice Exchange Rate
41584  , p_source_40            IN NUMBER
41585 --Invoice Exchange Rate Type
41586  , p_source_41            IN VARCHAR2
41587 --Variance Amount in Ledger Currency
41588  , p_source_42            IN NUMBER
41589 --Deferred Accounting End Date
41590  , p_source_43            IN DATE
41591 --Deferred Accounting Option
41592  , p_source_44            IN VARCHAR2
41593 --Deferred Accounting Start Date
41594  , p_source_45            IN DATE
41595 --Override Accounted Amount Indicator
41596  , p_source_46            IN VARCHAR2
41597  , p_source_46_meaning    IN VARCHAR2
41598 --Invoice Supplier Identifier
41599  , p_source_47            IN NUMBER
41600 --Invoice Supplier Site Identifier
41601  , p_source_48            IN NUMBER
41602 --Third Party Type
41603  , p_source_49            IN VARCHAR2
41604 --Parent Reversal Identifier
41605  , p_source_50            IN NUMBER
41606 --Invoice Distribution Statistical Amount
41607  , p_source_51            IN NUMBER
41608 --Invoice Distribution Tax Line Identifier
41609  , p_source_52            IN NUMBER
41610 --Invoice Distribution Tax Distribution Identifier from Tax
41611  , p_source_53            IN NUMBER
41612 --Invoice Distribution Summary Tax Line Identifier
41613  , p_source_54            IN NUMBER
41614 --Payables Upgrade Credit Encumbrance Type Identifier
41615  , p_source_55            IN NUMBER
41616 --Payables Upgrade Debit Encumbrance Type Identifier
41617  , p_source_56            IN NUMBER
41618 )
41619 IS
41620 
41621 l_component_type              VARCHAR2(80);
41622 l_component_code              VARCHAR2(30);
41623 l_component_type_code         VARCHAR2(1);
41624 l_component_appl_id           INTEGER;
41625 l_amb_context_code            VARCHAR2(30);
41626 l_entity_code                 VARCHAR2(30);
41627 l_event_class_code            VARCHAR2(30);
41628 l_ae_header_id                NUMBER;
41629 l_event_type_code             VARCHAR2(30);
41630 l_line_definition_code        VARCHAR2(30);
41631 l_line_definition_owner_code  VARCHAR2(1);
41632 --
41633 -- adr variables
41634 l_segment                     VARCHAR2(30);
41635 l_ccid                        NUMBER;
41636 l_adr_transaction_coa_id      NUMBER;
41637 l_adr_accounting_coa_id       NUMBER;
41638 l_adr_flexfield_segment_code  VARCHAR2(30);
41639 l_adr_flex_value_set_id       NUMBER;
41640 l_adr_value_type_code         VARCHAR2(30);
41641 l_adr_value_combination_id    NUMBER;
41642 l_adr_value_segment_code      VARCHAR2(30);
41643 
41644 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41645 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41646 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41647 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41648 
41649 -- 4262811 Variables ------------------------------------------------------------------------------------------
41650 l_entered_amt_idx             NUMBER;
41651 l_accted_amt_idx              NUMBER;
41652 l_acc_rev_flag                VARCHAR2(1);
41653 l_accrual_line_num            NUMBER;
41654 l_tmp_amt                     NUMBER;
41655 l_acc_rev_natural_side_code   VARCHAR2(1);
41656 
41657 l_num_entries                 NUMBER;
41658 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41662 l_recog_line_1                NUMBER;
41659 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41660 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41661 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41663 l_recog_line_2                NUMBER;
41664 
41665 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41666 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41667 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41668 
41669 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41670 
41671 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41672 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41673 
41674 ---------------------------------------------------------------------------------------------------------------
41675 
41676 
41677 --
41678 -- bulk performance
41679 --
41680 l_balance_type_code           VARCHAR2(1);
41681 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41682 l_log_module                  VARCHAR2(240);
41683 
41684 --
41685 -- Upgrade strategy
41686 --
41687 l_actual_upg_option           VARCHAR2(1);
41688 l_enc_upg_option           VARCHAR2(1);
41689 
41690 --
41691 BEGIN
41692 --
41693 IF g_log_enabled THEN
41694       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
41695 END IF;
41696 --
41697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41698 
41699       trace
41700          (p_msg      => 'BEGIN of AcctLineType_69'
41701          ,p_level    => C_LEVEL_PROCEDURE
41702          ,p_module   => l_log_module);
41703 
41704 END IF;
41705 --
41706 l_component_type             := 'AMB_JLT';
41707 l_component_code             := 'AP_TAX_AMT_VARIANCE_PP_ENC_DR';
41708 l_component_type_code        := 'S';
41709 l_component_appl_id          :=  200;
41710 l_amb_context_code           := 'DEFAULT';
41711 l_entity_code                := 'AP_INVOICES';
41712 l_event_class_code           := 'PREPAYMENTS';
41713 l_event_type_code            := 'PREPAYMENTS_ALL';
41714 l_line_definition_owner_code := 'S';
41715 l_line_definition_code       := 'ENC_PREPAY_ALL';
41716 --
41717 l_balance_type_code          := 'E';
41718 l_segment                     := NULL;
41719 l_ccid                        := NULL;
41720 l_adr_transaction_coa_id      := NULL;
41721 l_adr_accounting_coa_id       := NULL;
41722 l_adr_flexfield_segment_code  := NULL;
41723 l_adr_flex_value_set_id       := NULL;
41724 l_adr_value_type_code         := NULL;
41725 l_adr_value_combination_id    := NULL;
41726 l_adr_value_segment_code      := NULL;
41727 
41728 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
41729 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
41730 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41731 l_budgetary_control_flag     := 'Y';
41732 
41733 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41734 l_bflow_applied_to_amt       := NULL; -- 5132302
41735 l_entered_amt_idx            := NULL;          -- 4262811
41736 l_accted_amt_idx             := NULL;          -- 4262811
41737 l_acc_rev_flag               := NULL;          -- 4262811
41738 l_accrual_line_num           := NULL;          -- 4262811
41739 l_tmp_amt                    := NULL;          -- 4262811
41740 --
41741  
41742 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41743     l_balance_type_code <> 'B' THEN
41744 IF NVL(p_source_15,'
41745 ') =  'NONREC_TAX' AND 
41746 p_source_16 IS NOT NULL AND 
41747 NVL(p_source_17,'
41748 ') =  'Y' AND 
41749 NVL(p_source_18,'
41750 ') <>  'Y'
41751  THEN 
41752 
41753    --
41754    XLA_AE_LINES_PKG.SetNewLine;
41755 
41756    p_balance_type_code          := l_balance_type_code;
41757    -- set the flag so later we will know whether the gain loss line needs to be created
41758    
41759    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41760      p_actual_flag :='A';
41761    END IF;
41762 
41763    --
41764    -- bulk performance
41765    --
41766    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41767                                       p_header_num   => 0); -- 4262811
41768    --
41769    -- set accounting line options
41770    --
41771    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41772            p_natural_side_code          => 'D'
41773          , p_gain_or_loss_flag          => 'N'
41774          , p_gl_transfer_mode_code      => 'S'
41775          , p_acct_entry_type_code       => 'E'
41776          , p_switch_side_flag           => 'Y'
41777          , p_merge_duplicate_code       => 'N'
41778          );
41779    --
41780    l_acc_rev_natural_side_code := 'C';  -- 4262811
41781    -- 
41782    --
41783    -- set accounting line type info
41784    --
41785    xla_ae_lines_pkg.SetAcctLineType
41786       (p_component_type             => l_component_type
41787       ,p_event_type_code            => l_event_type_code
41788       ,p_line_definition_owner_code => l_line_definition_owner_code
41789       ,p_line_definition_code       => l_line_definition_code
41790       ,p_accounting_line_code       => l_component_code
41791       ,p_accounting_line_type_code  => l_component_type_code
41795       ,p_event_class_code           => l_event_class_code);
41792       ,p_accounting_line_appl_id    => l_component_appl_id
41793       ,p_amb_context_code           => l_amb_context_code
41794       ,p_entity_code                => l_entity_code
41796    --
41797    -- set accounting class
41798    --
41799    xla_ae_lines_pkg.SetAcctClass(
41800            p_accounting_class_code  => 'TAV'
41801          , p_ae_header_id           => l_ae_header_id
41802          );
41803 
41804    --
41805    -- set rounding class
41806    --
41807    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41808                       'TAV';
41809 
41810    --
41811    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41812    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41813    --
41814    -- bulk performance
41815    --
41816    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41817 
41818    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41819       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41820 
41821    -- 4955764
41822    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41823       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41824 
41825    -- 4458381 Public Sector Enh
41826       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
41827    --
41828    -- set accounting attributes for the line type
41829    --
41830    l_entered_amt_idx := 23;
41831    l_accted_amt_idx  := 28;
41832    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41833    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41834    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
41835    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41836    l_rec_acct_attrs.array_num_value(2)  := 
41837 xla_ae_sources_pkg.GetSystemSourceNum(
41838    p_source_code           => 'XLA_EVENT_APPL_ID'
41839  , p_source_type_code      => 'Y'
41840  , p_source_application_id =>  602
41841 );
41842    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41843    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
41844    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41845    l_rec_acct_attrs.array_char_value(4)  := 
41846 xla_ae_sources_pkg.GetSystemSourceChar(
41847    p_source_code           => 'XLA_ENTITY_CODE'
41848  , p_source_type_code      => 'Y'
41849  , p_source_application_id =>  602
41850 );
41851    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41852    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
41853    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41854    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
41855    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41856    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
41857    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41858    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
41859    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41860    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
41861    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41862    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
41863    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41864    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
41865    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41866    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
41867    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41868    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
41869    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
41870    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
41871    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
41872    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
41873    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
41874    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
41875    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
41876    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
41877    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
41878    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
41879    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
41880    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
41881    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
41882    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
41883    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
41884    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
41885    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
41886    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
41887    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
41888    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
41889    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
41890    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
41891    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
41892    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
41896    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
41893    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
41894    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
41895    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
41897    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
41898    l_rec_acct_attrs.array_num_value(28)  := p_source_42;
41899    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
41900    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
41901    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
41902    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
41903    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
41904    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
41905    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
41906    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
41907    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
41908    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
41909    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
41910    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
41911    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
41912    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
41913    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
41914    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
41915    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
41916    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
41917    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
41918    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
41919    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
41920    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
41921    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
41922    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
41923    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
41924    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
41925    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
41926    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
41927    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
41928    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
41929 
41930    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41931    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41932 
41933    ---------------------------------------------------------------------------------------------------------------
41934    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41935    ---------------------------------------------------------------------------------------------------------------
41936    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41937 
41938    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41939    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41940 
41941    IF xla_accounting_cache_pkg.GetValueChar
41942          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41943          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41944    AND l_bflow_method_code = 'PRIOR_ENTRY'
41945 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41946    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41947          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41948        )
41949    THEN
41950          xla_ae_lines_pkg.BflowUpgEntry
41951            (p_business_method_code    => l_bflow_method_code
41952            ,p_business_class_code     => l_bflow_class_code
41953            ,p_balance_type            => l_balance_type_code);
41954    ELSE
41955       NULL;
41956 -- No business flow processing for business flow method of NONE.
41957    END IF;
41958 
41959    --
41960    -- call analytical criteria
41961    --
41962    
41963    --
41964    -- call description
41965    --
41966    
41967 xla_ae_lines_pkg.SetLineDescription(
41968    p_ae_header_id => l_ae_header_id
41969   ,p_description  => Description_2 (
41970      p_application_id         => p_application_id
41971    , p_ae_header_id           => l_ae_header_id 
41972 , p_source_1 => p_source_1
41973    )
41974 );
41975 
41976 
41977    --
41978    -- call ADRs
41979    -- Bug 4922099
41980    --
41981    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41982         (NVL(l_actual_upg_option, 'N') = 'O') OR
41983         (NVL(l_enc_upg_option, 'N') = 'O')
41984       )
41985    THEN
41986    NULL;
41987    --
41988    --
41989    
41990   l_ccid := AcctDerRule_7(
41991            p_application_id           => p_application_id
41992          , p_ae_header_id             => l_ae_header_id 
41993 , p_source_11 => p_source_11
41994          , x_transaction_coa_id       => l_adr_transaction_coa_id
41995          , x_accounting_coa_id        => l_adr_accounting_coa_id
41996          , x_value_type_code          => l_adr_value_type_code
41997          , p_side                     => 'NA'
41998    );
41999 
42000    xla_ae_lines_pkg.set_ccid(
42001     p_code_combination_id          => l_ccid
42002   , p_value_type_code              => l_adr_value_type_code
42006   , p_adr_type_code                => 'S'
42003   , p_transaction_coa_id           => l_adr_transaction_coa_id
42004   , p_accounting_coa_id            => l_adr_accounting_coa_id
42005   , p_adr_code                     => 'AP_INVOICE_DIST'
42007   , p_component_type               => l_component_type
42008   , p_component_code               => l_component_code
42009   , p_component_type_code          => l_component_type_code
42010   , p_component_appl_id            => l_component_appl_id
42011   , p_amb_context_code             => l_amb_context_code
42012   , p_side                         => 'NA'
42013   );
42014 
42015 
42016    --
42017    --
42018    END IF;
42019    --
42020    -- Bug 4922099
42021    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42022           (NVL(l_enc_upg_option, 'N') = 'O')
42023         ) AND
42024         (l_bflow_method_code = 'PRIOR_ENTRY')
42025       )
42026    THEN
42027       IF
42028       --
42029       1 = 2
42030       --
42031       THEN
42032       xla_accounting_err_pkg.build_message
42033                                     (p_appli_s_name            => 'XLA'
42034                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42035                                     ,p_token_1                 => 'LINE_NUMBER'
42036                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42037                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42038                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42039                                                                              l_component_type
42040                                                                             ,l_component_code
42041                                                                             ,l_component_type_code
42042                                                                             ,l_component_appl_id
42043                                                                             ,l_amb_context_code
42044                                                                             ,l_entity_code
42045                                                                             ,l_event_class_code
42046                                                                            )
42047                                     ,p_token_3                 => 'OWNER'
42048                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42049                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42050                                                                           ,p_lookup_code    => l_component_type_code
42051                                                                          )
42052                                     ,p_token_4                 => 'PRODUCT_NAME'
42053                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42054                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42055                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42056                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42057                                     ,p_ae_header_id            =>  NULL
42058                                        );
42059 
42060         IF (C_LEVEL_ERROR>= g_log_level) THEN
42061                  trace
42062                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42063                       ,p_level    => C_LEVEL_ERROR
42064                       ,p_module   => l_log_module);
42065         END IF;
42066       END IF;
42067    END IF;
42068    --
42069    --
42070    ------------------------------------------------------------------------------------------------
42071    -- 4219869 Business Flow
42072    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42073    -- Prior Entry.  Currently, the following code is always generated.
42074    ------------------------------------------------------------------------------------------------
42075    XLA_AE_LINES_PKG.ValidateCurrentLine;
42076 
42077    ------------------------------------------------------------------------------------
42078    -- 4219869 Business Flow
42079    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42080    ------------------------------------------------------------------------------------
42081    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42082 
42083    ----------------------------------------------------------------------------------
42084    -- 4219869 Business Flow
42085    -- Update journal entry status -- Need to generate this within IF <condition>
42086    ----------------------------------------------------------------------------------
42087    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42088          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42089          ,p_balance_type_code => l_balance_type_code
42090          );
42091 
42092    -------------------------------------------------------------------------------------------
42093    -- 4262811 - Generate the Accrual Reversal lines
42094    -------------------------------------------------------------------------------------------
42095    BEGIN
42096       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42100       END IF;
42097                               (g_array_event(p_event_id).array_value_num('header_index'));
42098       IF l_acc_rev_flag IS NULL THEN
42099          l_acc_rev_flag := 'N';
42101    EXCEPTION
42102       WHEN OTHERS THEN
42103          l_acc_rev_flag := 'N';
42104    END;
42105    --
42106    IF (l_acc_rev_flag = 'Y') THEN
42107 
42108        -- 4645092  ------------------------------------------------------------------------------
42109        -- To allow MPA report to determine if it should generate report process
42110        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42111        ------------------------------------------------------------------------------------------
42112 
42113        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42114        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42115    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42116    -- call ADRs
42117    -- Bug 4922099
42118    --
42119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42120         (NVL(l_actual_upg_option, 'N') = 'O') OR
42121         (NVL(l_enc_upg_option, 'N') = 'O')
42122       )
42123    THEN
42124    NULL;
42125    --
42126    --
42127    
42128   l_ccid := AcctDerRule_7(
42129            p_application_id           => p_application_id
42130          , p_ae_header_id             => l_ae_header_id 
42131 , p_source_11 => p_source_11
42132          , x_transaction_coa_id       => l_adr_transaction_coa_id
42133          , x_accounting_coa_id        => l_adr_accounting_coa_id
42134          , x_value_type_code          => l_adr_value_type_code
42135          , p_side                     => 'NA'
42136    );
42137 
42138    xla_ae_lines_pkg.set_ccid(
42139     p_code_combination_id          => l_ccid
42140   , p_value_type_code              => l_adr_value_type_code
42141   , p_transaction_coa_id           => l_adr_transaction_coa_id
42142   , p_accounting_coa_id            => l_adr_accounting_coa_id
42143   , p_adr_code                     => 'AP_INVOICE_DIST'
42144   , p_adr_type_code                => 'S'
42145   , p_component_type               => l_component_type
42146   , p_component_code               => l_component_code
42147   , p_component_type_code          => l_component_type_code
42148   , p_component_appl_id            => l_component_appl_id
42149   , p_amb_context_code             => l_amb_context_code
42150   , p_side                         => 'NA'
42151   );
42152 
42153 
42154    --
42155    --
42156    END IF;
42157 
42158        --
42159        -- Update the line information that should be overwritten
42160        --
42161        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42162                                          p_header_num   => 1);
42163        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42164 
42165        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42166 
42167        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42168           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42169        END IF;
42170 
42171       --
42172       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42173       --
42174       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42175           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42176       ELSE
42177           ---------------------------------------------------------------------------------------------------
42178           -- 4262811a Switch Sign
42179           ---------------------------------------------------------------------------------------------------
42180           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42181           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42182                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42183           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42184                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42185           -- 5132302
42186           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42187                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42188 
42189       END IF;
42190 
42191       -- 4955764
42192       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42193       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42194 
42195 
42196       XLA_AE_LINES_PKG.ValidateCurrentLine;
42197       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42198 
42199       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42200                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42201                ,p_balance_type_code => l_balance_type_code);
42202 
42203    END IF;
42204 
42205    -----------------------------------------------------------------------------------------
42206    -- 4262811 Multiperiod Accounting
42207    -----------------------------------------------------------------------------------------
42208      -- No MPA option is assigned.
42209 
42210 
42211 END IF;
42215 --
42212 END IF;
42213 --
42214 
42216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42217    trace
42218       (p_msg      => 'END of AcctLineType_69'
42219       ,p_level    => C_LEVEL_PROCEDURE
42220       ,p_module   => l_log_module);
42221 END IF;
42222 --
42223 EXCEPTION
42224   WHEN xla_exceptions_pkg.application_exception THEN
42225       RAISE;
42226   WHEN OTHERS THEN
42227        xla_exceptions_pkg.raise_message
42228            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_69');
42229 END AcctLineType_69;
42230 --
42231 
42232 ---------------------------------------
42233 --
42234 -- PRIVATE FUNCTION
42235 --         AcctLineType_70
42236 --
42237 ---------------------------------------
42238 PROCEDURE AcctLineType_70 (
42239   p_application_id        IN NUMBER
42240  ,p_event_id              IN NUMBER
42241  ,p_calculate_acctd_flag  IN VARCHAR2
42242  ,p_calculate_g_l_flag    IN VARCHAR2
42243  ,p_actual_flag           IN OUT VARCHAR2
42244  ,p_balance_type_code     OUT VARCHAR2
42245  ,p_gain_or_loss_ref      OUT VARCHAR2
42246  
42247 --Invoice Distribution Description
42248  , p_source_1            IN VARCHAR2
42249 --Purchase Order Rate Variance Gain Account
42250  , p_source_6            IN NUMBER
42251 --Automatic Offsets Value
42252  , p_source_7            IN VARCHAR2
42253  , p_source_7_meaning    IN VARCHAR2
42254 --Invoice Distribution Ledger Amount
42255  , p_source_8            IN NUMBER
42256 --Destination Type of the PO Distribution
42257  , p_source_9            IN VARCHAR2
42258  , p_source_9_meaning    IN VARCHAR2
42259 --Purchase Order Rate Variance Loss Account
42260  , p_source_10            IN NUMBER
42261 --Invoice Distribution Account
42262  , p_source_11            IN NUMBER
42263 --Automatic Offsets Flag
42264  , p_source_12            IN VARCHAR2
42265  , p_source_12_meaning    IN VARCHAR2
42266 --Invoice Distribution Type
42267  , p_source_15            IN VARCHAR2
42268  , p_source_15_meaning    IN VARCHAR2
42269 --Purchasing Encumbrance Option
42270  , p_source_17            IN VARCHAR2
42271  , p_source_17_meaning    IN VARCHAR2
42272 --Accounting Reversal Indicator
42273  , p_source_19            IN VARCHAR2
42274 --Distribution Link Type
42275  , p_source_21            IN VARCHAR2
42276 --Allocation to Main Distribution Identifier
42277  , p_source_23            IN NUMBER
42278 --Invoice Identifier
42279  , p_source_24            IN NUMBER
42280 --Business Flow Accounts Payable Application Identifier
42281  , p_source_25            IN NUMBER
42282 --Business Flow Invoice Distribution Type
42283  , p_source_26            IN VARCHAR2
42284 --Business Flow Invoice Entity Code
42285  , p_source_27            IN VARCHAR2
42286 --Business Flow Invoice Distribution Identifier
42287  , p_source_28            IN NUMBER
42288 --Business Flow Invoice Identifier
42289  , p_source_29            IN NUMBER
42290 --Invoice Distribution Identifier
42291  , p_source_30            IN NUMBER
42292 --Payables Encumbrance Upgrade Credit Account
42293  , p_source_31            IN NUMBER
42294 --Payables Encumbrance Upgrade Credit Amount
42295  , p_source_32            IN NUMBER
42296 --Invoice Currency Code
42297  , p_source_33            IN VARCHAR2
42298 --Payables Encumbrance Upgrade Credit Base Amount
42299  , p_source_34            IN NUMBER
42300 --Payables Encumbrance Upgrade Debit Account
42301  , p_source_35            IN NUMBER
42302 --Payables Encumbrance Upgrade Debit Amount
42303  , p_source_36            IN NUMBER
42304 --Payables Encumbrance Upgrade Debit Base Amount
42305  , p_source_37            IN NUMBER
42306 --Payables Encumbrance Upgrade Option
42307  , p_source_38            IN VARCHAR2
42308 --Invoice Exchange Date
42309  , p_source_39            IN DATE
42310 --Invoice Exchange Rate
42311  , p_source_40            IN NUMBER
42312 --Invoice Exchange Rate Type
42313  , p_source_41            IN VARCHAR2
42314 --Deferred Accounting End Date
42315  , p_source_43            IN DATE
42316 --Deferred Accounting Option
42317  , p_source_44            IN VARCHAR2
42318 --Deferred Accounting Start Date
42319  , p_source_45            IN DATE
42320 --Override Accounted Amount Indicator
42321  , p_source_46            IN VARCHAR2
42322  , p_source_46_meaning    IN VARCHAR2
42323 --Invoice Supplier Identifier
42324  , p_source_47            IN NUMBER
42325 --Invoice Supplier Site Identifier
42326  , p_source_48            IN NUMBER
42327 --Third Party Type
42328  , p_source_49            IN VARCHAR2
42329 --Parent Reversal Identifier
42330  , p_source_50            IN NUMBER
42331 --Invoice Distribution Statistical Amount
42332  , p_source_51            IN NUMBER
42333 --Invoice Distribution Tax Line Identifier
42334  , p_source_52            IN NUMBER
42335 --Invoice Distribution Tax Distribution Identifier from Tax
42336  , p_source_53            IN NUMBER
42337 --Invoice Distribution Summary Tax Line Identifier
42338  , p_source_54            IN NUMBER
42339 --Payables Upgrade Credit Encumbrance Type Identifier
42340  , p_source_55            IN NUMBER
42341 --Payables Upgrade Debit Encumbrance Type Identifier
42342  , p_source_56            IN NUMBER
42343 --Invoice Distribution Encumbrance Amount
42344  , p_source_65            IN NUMBER
42345 --Invoice Distribution Encumbrance Ledger Amount
42346  , p_source_66            IN NUMBER
42347 )
42351 l_component_code              VARCHAR2(30);
42348 IS
42349 
42350 l_component_type              VARCHAR2(80);
42352 l_component_type_code         VARCHAR2(1);
42353 l_component_appl_id           INTEGER;
42354 l_amb_context_code            VARCHAR2(30);
42355 l_entity_code                 VARCHAR2(30);
42356 l_event_class_code            VARCHAR2(30);
42357 l_ae_header_id                NUMBER;
42358 l_event_type_code             VARCHAR2(30);
42359 l_line_definition_code        VARCHAR2(30);
42360 l_line_definition_owner_code  VARCHAR2(1);
42361 --
42362 -- adr variables
42363 l_segment                     VARCHAR2(30);
42364 l_ccid                        NUMBER;
42365 l_adr_transaction_coa_id      NUMBER;
42366 l_adr_accounting_coa_id       NUMBER;
42367 l_adr_flexfield_segment_code  VARCHAR2(30);
42368 l_adr_flex_value_set_id       NUMBER;
42369 l_adr_value_type_code         VARCHAR2(30);
42370 l_adr_value_combination_id    NUMBER;
42371 l_adr_value_segment_code      VARCHAR2(30);
42372 
42373 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42374 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42375 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42376 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42377 
42378 -- 4262811 Variables ------------------------------------------------------------------------------------------
42379 l_entered_amt_idx             NUMBER;
42380 l_accted_amt_idx              NUMBER;
42381 l_acc_rev_flag                VARCHAR2(1);
42382 l_accrual_line_num            NUMBER;
42383 l_tmp_amt                     NUMBER;
42384 l_acc_rev_natural_side_code   VARCHAR2(1);
42385 
42386 l_num_entries                 NUMBER;
42387 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42388 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42389 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42390 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42391 l_recog_line_1                NUMBER;
42392 l_recog_line_2                NUMBER;
42393 
42394 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42395 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42396 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42397 
42398 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42399 
42400 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42401 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42402 
42403 ---------------------------------------------------------------------------------------------------------------
42404 
42405 
42406 --
42407 -- bulk performance
42408 --
42409 l_balance_type_code           VARCHAR2(1);
42410 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42411 l_log_module                  VARCHAR2(240);
42412 
42413 --
42414 -- Upgrade strategy
42415 --
42416 l_actual_upg_option           VARCHAR2(1);
42417 l_enc_upg_option           VARCHAR2(1);
42418 
42419 --
42420 BEGIN
42421 --
42422 IF g_log_enabled THEN
42423       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
42424 END IF;
42425 --
42426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42427 
42428       trace
42429          (p_msg      => 'BEGIN of AcctLineType_70'
42430          ,p_level    => C_LEVEL_PROCEDURE
42431          ,p_module   => l_log_module);
42432 
42433 END IF;
42434 --
42435 l_component_type             := 'AMB_JLT';
42436 l_component_code             := 'AP_TAX_EXCHGRATE_VAR_CM_ENC_DR';
42437 l_component_type_code        := 'S';
42438 l_component_appl_id          :=  200;
42439 l_amb_context_code           := 'DEFAULT';
42440 l_entity_code                := 'AP_INVOICES';
42441 l_event_class_code           := 'CREDIT MEMOS';
42442 l_event_type_code            := 'CREDIT MEMOS_ALL';
42443 l_line_definition_owner_code := 'S';
42444 l_line_definition_code       := 'ENC_CM_ALL';
42445 --
42446 l_balance_type_code          := 'E';
42447 l_segment                     := NULL;
42448 l_ccid                        := NULL;
42449 l_adr_transaction_coa_id      := NULL;
42450 l_adr_accounting_coa_id       := NULL;
42451 l_adr_flexfield_segment_code  := NULL;
42452 l_adr_flex_value_set_id       := NULL;
42453 l_adr_value_type_code         := NULL;
42454 l_adr_value_combination_id    := NULL;
42455 l_adr_value_segment_code      := NULL;
42456 
42457 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
42458 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
42459 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42460 l_budgetary_control_flag     := 'Y';
42461 
42462 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42463 l_bflow_applied_to_amt       := NULL; -- 5132302
42464 l_entered_amt_idx            := NULL;          -- 4262811
42465 l_accted_amt_idx             := NULL;          -- 4262811
42466 l_acc_rev_flag               := NULL;          -- 4262811
42467 l_accrual_line_num           := NULL;          -- 4262811
42468 l_tmp_amt                    := NULL;          -- 4262811
42469 --
42470 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
42474   
42471             (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
42472                return;
42473   END IF;
42475 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42476     l_balance_type_code <> 'B' THEN
42477 IF NVL(p_source_15,'
42478 ') =  'TERV' AND 
42479 NVL(p_source_17,'
42480 ') =  'Y'
42481  THEN 
42482 
42483    --
42484    XLA_AE_LINES_PKG.SetNewLine;
42485 
42486    p_balance_type_code          := l_balance_type_code;
42487    -- set the flag so later we will know whether the gain loss line needs to be created
42488    
42489    IF(l_balance_type_code = 'A' ) THEN
42490      p_actual_flag :='G';
42491    END IF;
42492 
42493    --
42494    -- bulk performance
42495    --
42496    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42497                                       p_header_num   => 0); -- 4262811
42498    --
42499    -- set accounting line options
42500    --
42501    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42502            p_natural_side_code          => 'D'
42503          , p_gain_or_loss_flag          => 'Y'
42504          , p_gl_transfer_mode_code      => 'S'
42505          , p_acct_entry_type_code       => 'E'
42506          , p_switch_side_flag           => 'Y'
42507          , p_merge_duplicate_code       => 'N'
42508          );
42509    --
42510    l_acc_rev_natural_side_code := 'C';  -- 4262811
42511    -- 
42512    --
42513    -- set accounting line type info
42514    --
42515    xla_ae_lines_pkg.SetAcctLineType
42516       (p_component_type             => l_component_type
42517       ,p_event_type_code            => l_event_type_code
42518       ,p_line_definition_owner_code => l_line_definition_owner_code
42519       ,p_line_definition_code       => l_line_definition_code
42520       ,p_accounting_line_code       => l_component_code
42521       ,p_accounting_line_type_code  => l_component_type_code
42522       ,p_accounting_line_appl_id    => l_component_appl_id
42523       ,p_amb_context_code           => l_amb_context_code
42524       ,p_entity_code                => l_entity_code
42525       ,p_event_class_code           => l_event_class_code);
42526    --
42527    -- set accounting class
42528    --
42529    xla_ae_lines_pkg.SetAcctClass(
42530            p_accounting_class_code  => 'TERV'
42531          , p_ae_header_id           => l_ae_header_id
42532          );
42533 
42534    --
42535    -- set rounding class
42536    --
42537    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42538                       'TERV';
42539 
42540    --
42541    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42542    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42543    --
42544    -- bulk performance
42545    --
42546    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42547 
42548    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42549       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42550 
42551    -- 4955764
42552    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42553       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42554 
42555    -- 4458381 Public Sector Enh
42556       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
42557    --
42558    -- set accounting attributes for the line type
42559    --
42560    l_entered_amt_idx := 23;
42561    l_accted_amt_idx  := 28;
42562    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
42563    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42564    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
42565    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
42566    l_rec_acct_attrs.array_num_value(2)  := 
42567 xla_ae_sources_pkg.GetSystemSourceNum(
42568    p_source_code           => 'XLA_EVENT_APPL_ID'
42569  , p_source_type_code      => 'Y'
42570  , p_source_application_id =>  602
42571 );
42572    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
42573    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
42574    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
42575    l_rec_acct_attrs.array_char_value(4)  := 
42576 xla_ae_sources_pkg.GetSystemSourceChar(
42577    p_source_code           => 'XLA_ENTITY_CODE'
42578  , p_source_type_code      => 'Y'
42579  , p_source_application_id =>  602
42580 );
42581    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
42582    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
42583    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
42584    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
42585    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
42586    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
42587    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42588    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
42589    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
42593    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42590    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
42591    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
42592    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
42594    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
42595    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
42596    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
42597    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
42598    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
42599    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
42600    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
42601    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
42602    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
42603    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
42604    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
42605    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
42606    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
42607    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
42608    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
42609    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
42610    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
42611    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
42612    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
42613    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
42614    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
42615    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
42616    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
42617    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
42618    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
42619    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
42620    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
42621    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
42622    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
42623    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
42624    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
42625    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
42626    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
42627    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
42628    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
42629    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
42630    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
42631    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
42632    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
42633    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
42634    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
42635    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
42636    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
42637    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
42638    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
42639    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
42640    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
42641    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
42642    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
42643    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
42644    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
42645    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
42646    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
42647    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
42648    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
42649    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
42650    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
42651    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
42652    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
42653    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
42654    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
42655    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
42656    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
42657    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
42658    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
42659 
42660    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42661    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42662 
42663    ---------------------------------------------------------------------------------------------------------------
42664    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42665    ---------------------------------------------------------------------------------------------------------------
42666    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42667 
42668    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42669    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42670 
42671    IF xla_accounting_cache_pkg.GetValueChar
42672          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42673          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42677          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42674    AND l_bflow_method_code = 'PRIOR_ENTRY'
42675 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42676    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42678        )
42679    THEN
42680          xla_ae_lines_pkg.BflowUpgEntry
42681            (p_business_method_code    => l_bflow_method_code
42682            ,p_business_class_code     => l_bflow_class_code
42683            ,p_balance_type            => l_balance_type_code);
42684    ELSE
42685       NULL;
42686 -- No business flow processing for business flow method of NONE.
42687    END IF;
42688 
42689    --
42690    -- call analytical criteria
42691    --
42692    
42693    --
42694    -- call description
42695    --
42696    
42697 xla_ae_lines_pkg.SetLineDescription(
42698    p_ae_header_id => l_ae_header_id
42699   ,p_description  => Description_2 (
42700      p_application_id         => p_application_id
42701    , p_ae_header_id           => l_ae_header_id 
42702 , p_source_1 => p_source_1
42703    )
42704 );
42705 
42706 
42707    --
42708    -- call ADRs
42709    -- Bug 4922099
42710    --
42711    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42712         (NVL(l_actual_upg_option, 'N') = 'O') OR
42713         (NVL(l_enc_upg_option, 'N') = 'O')
42714       )
42715    THEN
42716    NULL;
42717    --
42718    --
42719    
42720   l_ccid := AcctDerRule_6(
42721            p_application_id           => p_application_id
42722          , p_ae_header_id             => l_ae_header_id 
42723 , p_source_6 => p_source_6
42724 , p_source_7 => p_source_7
42725 , p_source_7_meaning => p_source_7_meaning
42726 , p_source_8 => p_source_8
42727 , p_source_9 => p_source_9
42728 , p_source_9_meaning => p_source_9_meaning
42729 , p_source_10 => p_source_10
42730 , p_source_11 => p_source_11
42731 , p_source_12 => p_source_12
42732 , p_source_12_meaning => p_source_12_meaning
42733          , x_transaction_coa_id       => l_adr_transaction_coa_id
42734          , x_accounting_coa_id        => l_adr_accounting_coa_id
42735          , x_value_type_code          => l_adr_value_type_code
42736          , p_side                     => 'NA'
42737    );
42738 
42739    xla_ae_lines_pkg.set_ccid(
42740     p_code_combination_id          => l_ccid
42741   , p_value_type_code              => l_adr_value_type_code
42742   , p_transaction_coa_id           => l_adr_transaction_coa_id
42743   , p_accounting_coa_id            => l_adr_accounting_coa_id
42744   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
42745   , p_adr_type_code                => 'S'
42746   , p_component_type               => l_component_type
42747   , p_component_code               => l_component_code
42748   , p_component_type_code          => l_component_type_code
42749   , p_component_appl_id            => l_component_appl_id
42750   , p_amb_context_code             => l_amb_context_code
42751   , p_side                         => 'NA'
42752   );
42753 
42754 
42755    l_segment := AcctDerRule_4(
42756            p_application_id           => p_application_id
42757          , p_ae_header_id             => l_ae_header_id 
42758 , p_source_6 => p_source_6
42759 , p_source_7 => p_source_7
42760 , p_source_7_meaning => p_source_7_meaning
42761 , p_source_8 => p_source_8
42762 , p_source_9 => p_source_9
42763 , p_source_9_meaning => p_source_9_meaning
42764 , p_source_10 => p_source_10
42765          , x_transaction_coa_id       => l_adr_transaction_coa_id
42766          , x_accounting_coa_id        => l_adr_accounting_coa_id
42767          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42768          , x_flex_value_set_id        => l_adr_flex_value_set_id
42769          , x_value_type_code          => l_adr_value_type_code
42770          , x_value_combination_id     => l_adr_value_combination_id
42771          , x_value_segment_code       => l_adr_value_segment_code
42772          , p_side                     => 'NA'
42773          , p_override_seg_flag        => 'Y'
42774    );
42775 
42776    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42777 
42778       xla_ae_lines_pkg.set_segment(
42779           p_to_segment_code         => 'GL_ACCOUNT'
42780         , p_segment_value           => l_segment
42781         , p_from_segment_code       => l_adr_value_segment_code
42782         , p_from_combination_id     => l_adr_value_combination_id
42783         , p_value_type_code         => l_adr_value_type_code
42784         , p_transaction_coa_id      => l_adr_transaction_coa_id
42785         , p_accounting_coa_id       => l_adr_accounting_coa_id
42786         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42787         , p_flex_value_set_id       => l_adr_flex_value_set_id
42788         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
42789         , p_adr_type_code           => 'S'
42790         , p_component_type          => l_component_type
42791         , p_component_code          => l_component_code
42792         , p_component_type_code     => l_component_type_code
42793         , p_component_appl_id       => l_component_appl_id
42794         , p_amb_context_code        => l_amb_context_code
42795         , p_entity_code             => 'AP_INVOICES'
42796         , p_event_class_code        => 'CREDIT MEMOS'
42797         , p_side                    => 'NA'
42798         );
42799 
42800   END IF;
42801 
42805 , p_source_7 => p_source_7
42802    l_segment := AcctDerRule_5(
42803            p_application_id           => p_application_id
42804          , p_ae_header_id             => l_ae_header_id 
42806 , p_source_7_meaning => p_source_7_meaning
42807 , p_source_9 => p_source_9
42808 , p_source_9_meaning => p_source_9_meaning
42809 , p_source_11 => p_source_11
42810          , x_transaction_coa_id       => l_adr_transaction_coa_id
42811          , x_accounting_coa_id        => l_adr_accounting_coa_id
42812          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42813          , x_flex_value_set_id        => l_adr_flex_value_set_id
42814          , x_value_type_code          => l_adr_value_type_code
42815          , x_value_combination_id     => l_adr_value_combination_id
42816          , x_value_segment_code       => l_adr_value_segment_code
42817          , p_side                     => 'NA'
42818          , p_override_seg_flag        => 'Y'
42819    );
42820 
42821    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42822 
42823       xla_ae_lines_pkg.set_segment(
42824           p_to_segment_code         => 'GL_BALANCING'
42825         , p_segment_value           => l_segment
42826         , p_from_segment_code       => l_adr_value_segment_code
42827         , p_from_combination_id     => l_adr_value_combination_id
42828         , p_value_type_code         => l_adr_value_type_code
42829         , p_transaction_coa_id      => l_adr_transaction_coa_id
42830         , p_accounting_coa_id       => l_adr_accounting_coa_id
42831         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42832         , p_flex_value_set_id       => l_adr_flex_value_set_id
42833         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
42834         , p_adr_type_code           => 'S'
42835         , p_component_type          => l_component_type
42836         , p_component_code          => l_component_code
42837         , p_component_type_code     => l_component_type_code
42838         , p_component_appl_id       => l_component_appl_id
42839         , p_amb_context_code        => l_amb_context_code
42840         , p_entity_code             => 'AP_INVOICES'
42841         , p_event_class_code        => 'CREDIT MEMOS'
42842         , p_side                    => 'NA'
42843         );
42844 
42845   END IF;
42846 
42847    --
42848    --
42849    END IF;
42850    --
42851    -- Bug 4922099
42852    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42853           (NVL(l_enc_upg_option, 'N') = 'O')
42854         ) AND
42855         (l_bflow_method_code = 'PRIOR_ENTRY')
42856       )
42857    THEN
42858       IF
42859       --
42860       1 = 2
42861       --
42862       THEN
42863       xla_accounting_err_pkg.build_message
42864                                     (p_appli_s_name            => 'XLA'
42865                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42866                                     ,p_token_1                 => 'LINE_NUMBER'
42867                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42868                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42869                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42870                                                                              l_component_type
42871                                                                             ,l_component_code
42872                                                                             ,l_component_type_code
42873                                                                             ,l_component_appl_id
42874                                                                             ,l_amb_context_code
42875                                                                             ,l_entity_code
42876                                                                             ,l_event_class_code
42877                                                                            )
42878                                     ,p_token_3                 => 'OWNER'
42879                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42880                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42881                                                                           ,p_lookup_code    => l_component_type_code
42882                                                                          )
42883                                     ,p_token_4                 => 'PRODUCT_NAME'
42884                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42885                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42886                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42887                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42888                                     ,p_ae_header_id            =>  NULL
42889                                        );
42890 
42891         IF (C_LEVEL_ERROR>= g_log_level) THEN
42892                  trace
42893                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42894                       ,p_level    => C_LEVEL_ERROR
42895                       ,p_module   => l_log_module);
42896         END IF;
42897       END IF;
42898    END IF;
42899    --
42900    --
42901    ------------------------------------------------------------------------------------------------
42905    ------------------------------------------------------------------------------------------------
42902    -- 4219869 Business Flow
42903    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42904    -- Prior Entry.  Currently, the following code is always generated.
42906    XLA_AE_LINES_PKG.ValidateCurrentLine;
42907 
42908    ------------------------------------------------------------------------------------
42909    -- 4219869 Business Flow
42910    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42911    ------------------------------------------------------------------------------------
42912    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42913 
42914    ----------------------------------------------------------------------------------
42915    -- 4219869 Business Flow
42916    -- Update journal entry status -- Need to generate this within IF <condition>
42917    ----------------------------------------------------------------------------------
42918    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42919          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42920          ,p_balance_type_code => l_balance_type_code
42921          );
42922 
42923    -------------------------------------------------------------------------------------------
42924    -- 4262811 - Generate the Accrual Reversal lines
42925    -------------------------------------------------------------------------------------------
42926    BEGIN
42927       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42928                               (g_array_event(p_event_id).array_value_num('header_index'));
42929       IF l_acc_rev_flag IS NULL THEN
42930          l_acc_rev_flag := 'N';
42931       END IF;
42932    EXCEPTION
42933       WHEN OTHERS THEN
42934          l_acc_rev_flag := 'N';
42935    END;
42936    --
42937    IF (l_acc_rev_flag = 'Y') THEN
42938 
42939        -- 4645092  ------------------------------------------------------------------------------
42940        -- To allow MPA report to determine if it should generate report process
42941        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42942        ------------------------------------------------------------------------------------------
42943 
42944        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42945        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42946    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42947    -- call ADRs
42948    -- Bug 4922099
42949    --
42950    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42951         (NVL(l_actual_upg_option, 'N') = 'O') OR
42952         (NVL(l_enc_upg_option, 'N') = 'O')
42953       )
42954    THEN
42955    NULL;
42956    --
42957    --
42958    
42959   l_ccid := AcctDerRule_6(
42960            p_application_id           => p_application_id
42961          , p_ae_header_id             => l_ae_header_id 
42962 , p_source_6 => p_source_6
42963 , p_source_7 => p_source_7
42964 , p_source_7_meaning => p_source_7_meaning
42965 , p_source_8 => p_source_8
42966 , p_source_9 => p_source_9
42967 , p_source_9_meaning => p_source_9_meaning
42968 , p_source_10 => p_source_10
42969 , p_source_11 => p_source_11
42970 , p_source_12 => p_source_12
42971 , p_source_12_meaning => p_source_12_meaning
42972          , x_transaction_coa_id       => l_adr_transaction_coa_id
42973          , x_accounting_coa_id        => l_adr_accounting_coa_id
42974          , x_value_type_code          => l_adr_value_type_code
42975          , p_side                     => 'NA'
42976    );
42977 
42978    xla_ae_lines_pkg.set_ccid(
42979     p_code_combination_id          => l_ccid
42980   , p_value_type_code              => l_adr_value_type_code
42981   , p_transaction_coa_id           => l_adr_transaction_coa_id
42982   , p_accounting_coa_id            => l_adr_accounting_coa_id
42983   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
42984   , p_adr_type_code                => 'S'
42985   , p_component_type               => l_component_type
42986   , p_component_code               => l_component_code
42987   , p_component_type_code          => l_component_type_code
42988   , p_component_appl_id            => l_component_appl_id
42989   , p_amb_context_code             => l_amb_context_code
42990   , p_side                         => 'NA'
42991   );
42992 
42993 
42994    l_segment := AcctDerRule_4(
42995            p_application_id           => p_application_id
42996          , p_ae_header_id             => l_ae_header_id 
42997 , p_source_6 => p_source_6
42998 , p_source_7 => p_source_7
42999 , p_source_7_meaning => p_source_7_meaning
43000 , p_source_8 => p_source_8
43001 , p_source_9 => p_source_9
43002 , p_source_9_meaning => p_source_9_meaning
43003 , p_source_10 => p_source_10
43004          , x_transaction_coa_id       => l_adr_transaction_coa_id
43005          , x_accounting_coa_id        => l_adr_accounting_coa_id
43006          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43007          , x_flex_value_set_id        => l_adr_flex_value_set_id
43008          , x_value_type_code          => l_adr_value_type_code
43009          , x_value_combination_id     => l_adr_value_combination_id
43010          , x_value_segment_code       => l_adr_value_segment_code
43011          , p_side                     => 'NA'
43012          , p_override_seg_flag        => 'Y'
43013    );
43014 
43018           p_to_segment_code         => 'GL_ACCOUNT'
43015    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43016 
43017       xla_ae_lines_pkg.set_segment(
43019         , p_segment_value           => l_segment
43020         , p_from_segment_code       => l_adr_value_segment_code
43021         , p_from_combination_id     => l_adr_value_combination_id
43022         , p_value_type_code         => l_adr_value_type_code
43023         , p_transaction_coa_id      => l_adr_transaction_coa_id
43024         , p_accounting_coa_id       => l_adr_accounting_coa_id
43025         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43026         , p_flex_value_set_id       => l_adr_flex_value_set_id
43027         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
43028         , p_adr_type_code           => 'S'
43029         , p_component_type          => l_component_type
43030         , p_component_code          => l_component_code
43031         , p_component_type_code     => l_component_type_code
43032         , p_component_appl_id       => l_component_appl_id
43033         , p_amb_context_code        => l_amb_context_code
43034         , p_entity_code             => 'AP_INVOICES'
43035         , p_event_class_code        => 'CREDIT MEMOS'
43036         , p_side                    => 'NA'
43037         );
43038 
43039   END IF;
43040 
43041    l_segment := AcctDerRule_5(
43042            p_application_id           => p_application_id
43043          , p_ae_header_id             => l_ae_header_id 
43044 , p_source_7 => p_source_7
43045 , p_source_7_meaning => p_source_7_meaning
43046 , p_source_9 => p_source_9
43047 , p_source_9_meaning => p_source_9_meaning
43048 , p_source_11 => p_source_11
43049          , x_transaction_coa_id       => l_adr_transaction_coa_id
43050          , x_accounting_coa_id        => l_adr_accounting_coa_id
43051          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43052          , x_flex_value_set_id        => l_adr_flex_value_set_id
43053          , x_value_type_code          => l_adr_value_type_code
43054          , x_value_combination_id     => l_adr_value_combination_id
43055          , x_value_segment_code       => l_adr_value_segment_code
43056          , p_side                     => 'NA'
43057          , p_override_seg_flag        => 'Y'
43058    );
43059 
43060    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43061 
43062       xla_ae_lines_pkg.set_segment(
43063           p_to_segment_code         => 'GL_BALANCING'
43064         , p_segment_value           => l_segment
43065         , p_from_segment_code       => l_adr_value_segment_code
43066         , p_from_combination_id     => l_adr_value_combination_id
43067         , p_value_type_code         => l_adr_value_type_code
43068         , p_transaction_coa_id      => l_adr_transaction_coa_id
43069         , p_accounting_coa_id       => l_adr_accounting_coa_id
43070         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43071         , p_flex_value_set_id       => l_adr_flex_value_set_id
43072         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
43073         , p_adr_type_code           => 'S'
43074         , p_component_type          => l_component_type
43075         , p_component_code          => l_component_code
43076         , p_component_type_code     => l_component_type_code
43077         , p_component_appl_id       => l_component_appl_id
43078         , p_amb_context_code        => l_amb_context_code
43079         , p_entity_code             => 'AP_INVOICES'
43080         , p_event_class_code        => 'CREDIT MEMOS'
43081         , p_side                    => 'NA'
43082         );
43083 
43084   END IF;
43085 
43086    --
43087    --
43088    END IF;
43089 
43090        --
43091        -- Update the line information that should be overwritten
43092        --
43093        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43094                                          p_header_num   => 1);
43095        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43096 
43097        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43098 
43099        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43100           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43101        END IF;
43102 
43103       --
43104       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43105       --
43106       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43107           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43108       ELSE
43109           ---------------------------------------------------------------------------------------------------
43110           -- 4262811a Switch Sign
43111           ---------------------------------------------------------------------------------------------------
43112           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43113           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43114                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43115           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43116                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43117           -- 5132302
43121       END IF;
43118           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43119                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43120 
43122 
43123       -- 4955764
43124       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43125       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43126 
43127 
43128       XLA_AE_LINES_PKG.ValidateCurrentLine;
43129       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43130 
43131       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43132                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43133                ,p_balance_type_code => l_balance_type_code);
43134 
43135    END IF;
43136 
43137    -----------------------------------------------------------------------------------------
43138    -- 4262811 Multiperiod Accounting
43139    -----------------------------------------------------------------------------------------
43140      -- No MPA option is assigned.
43141 
43142 
43143 END IF;
43144 END IF;
43145 --
43146 
43147 --
43148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43149    trace
43150       (p_msg      => 'END of AcctLineType_70'
43151       ,p_level    => C_LEVEL_PROCEDURE
43152       ,p_module   => l_log_module);
43153 END IF;
43154 --
43155 EXCEPTION
43156   WHEN xla_exceptions_pkg.application_exception THEN
43157       RAISE;
43158   WHEN OTHERS THEN
43159        xla_exceptions_pkg.raise_message
43160            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_70');
43161 END AcctLineType_70;
43162 --
43163 
43164 ---------------------------------------
43165 --
43166 -- PRIVATE FUNCTION
43167 --         AcctLineType_71
43168 --
43169 ---------------------------------------
43170 PROCEDURE AcctLineType_71 (
43171   p_application_id        IN NUMBER
43172  ,p_event_id              IN NUMBER
43173  ,p_calculate_acctd_flag  IN VARCHAR2
43174  ,p_calculate_g_l_flag    IN VARCHAR2
43175  ,p_actual_flag           IN OUT VARCHAR2
43176  ,p_balance_type_code     OUT VARCHAR2
43177  ,p_gain_or_loss_ref      OUT VARCHAR2
43178  
43179 --Invoice Distribution Description
43180  , p_source_1            IN VARCHAR2
43181 --Purchase Order Rate Variance Gain Account
43182  , p_source_6            IN NUMBER
43183 --Automatic Offsets Value
43184  , p_source_7            IN VARCHAR2
43185  , p_source_7_meaning    IN VARCHAR2
43186 --Invoice Distribution Ledger Amount
43187  , p_source_8            IN NUMBER
43188 --Destination Type of the PO Distribution
43189  , p_source_9            IN VARCHAR2
43190  , p_source_9_meaning    IN VARCHAR2
43191 --Purchase Order Rate Variance Loss Account
43192  , p_source_10            IN NUMBER
43193 --Invoice Distribution Account
43194  , p_source_11            IN NUMBER
43195 --Automatic Offsets Flag
43196  , p_source_12            IN VARCHAR2
43197  , p_source_12_meaning    IN VARCHAR2
43198 --Invoice Distribution Type
43199  , p_source_15            IN VARCHAR2
43200  , p_source_15_meaning    IN VARCHAR2
43201 --Purchasing Encumbrance Option
43202  , p_source_17            IN VARCHAR2
43203  , p_source_17_meaning    IN VARCHAR2
43204 --Accounting Reversal Indicator
43205  , p_source_19            IN VARCHAR2
43206 --Distribution Link Type
43207  , p_source_21            IN VARCHAR2
43208 --Allocation to Main Distribution Identifier
43209  , p_source_23            IN NUMBER
43210 --Invoice Identifier
43211  , p_source_24            IN NUMBER
43212 --Business Flow Accounts Payable Application Identifier
43213  , p_source_25            IN NUMBER
43214 --Business Flow Invoice Distribution Type
43215  , p_source_26            IN VARCHAR2
43216 --Business Flow Invoice Entity Code
43217  , p_source_27            IN VARCHAR2
43218 --Business Flow Invoice Distribution Identifier
43219  , p_source_28            IN NUMBER
43220 --Business Flow Invoice Identifier
43221  , p_source_29            IN NUMBER
43222 --Invoice Distribution Identifier
43223  , p_source_30            IN NUMBER
43224 --Payables Encumbrance Upgrade Credit Account
43225  , p_source_31            IN NUMBER
43226 --Payables Encumbrance Upgrade Credit Amount
43227  , p_source_32            IN NUMBER
43228 --Invoice Currency Code
43229  , p_source_33            IN VARCHAR2
43230 --Payables Encumbrance Upgrade Credit Base Amount
43231  , p_source_34            IN NUMBER
43232 --Payables Encumbrance Upgrade Debit Account
43233  , p_source_35            IN NUMBER
43234 --Payables Encumbrance Upgrade Debit Amount
43235  , p_source_36            IN NUMBER
43236 --Payables Encumbrance Upgrade Debit Base Amount
43237  , p_source_37            IN NUMBER
43238 --Payables Encumbrance Upgrade Option
43239  , p_source_38            IN VARCHAR2
43240 --Invoice Exchange Date
43241  , p_source_39            IN DATE
43242 --Invoice Exchange Rate
43243  , p_source_40            IN NUMBER
43244 --Invoice Exchange Rate Type
43245  , p_source_41            IN VARCHAR2
43246 --Deferred Accounting End Date
43247  , p_source_43            IN DATE
43248 --Deferred Accounting Option
43249  , p_source_44            IN VARCHAR2
43250 --Deferred Accounting Start Date
43251  , p_source_45            IN DATE
43252 --Override Accounted Amount Indicator
43256  , p_source_47            IN NUMBER
43253  , p_source_46            IN VARCHAR2
43254  , p_source_46_meaning    IN VARCHAR2
43255 --Invoice Supplier Identifier
43257 --Invoice Supplier Site Identifier
43258  , p_source_48            IN NUMBER
43259 --Third Party Type
43260  , p_source_49            IN VARCHAR2
43261 --Parent Reversal Identifier
43262  , p_source_50            IN NUMBER
43263 --Invoice Distribution Tax Line Identifier
43264  , p_source_52            IN NUMBER
43265 --Invoice Distribution Tax Distribution Identifier from Tax
43266  , p_source_53            IN NUMBER
43267 --Invoice Distribution Summary Tax Line Identifier
43268  , p_source_54            IN NUMBER
43269 --Payables Upgrade Credit Encumbrance Type Identifier
43270  , p_source_55            IN NUMBER
43271 --Payables Upgrade Debit Encumbrance Type Identifier
43272  , p_source_56            IN NUMBER
43273 --Invoice Distribution Encumbrance Amount
43274  , p_source_65            IN NUMBER
43275 --Invoice Distribution Encumbrance Ledger Amount
43276  , p_source_66            IN NUMBER
43277 )
43278 IS
43279 
43280 l_component_type              VARCHAR2(80);
43281 l_component_code              VARCHAR2(30);
43282 l_component_type_code         VARCHAR2(1);
43283 l_component_appl_id           INTEGER;
43284 l_amb_context_code            VARCHAR2(30);
43285 l_entity_code                 VARCHAR2(30);
43286 l_event_class_code            VARCHAR2(30);
43287 l_ae_header_id                NUMBER;
43288 l_event_type_code             VARCHAR2(30);
43289 l_line_definition_code        VARCHAR2(30);
43290 l_line_definition_owner_code  VARCHAR2(1);
43291 --
43292 -- adr variables
43293 l_segment                     VARCHAR2(30);
43294 l_ccid                        NUMBER;
43295 l_adr_transaction_coa_id      NUMBER;
43296 l_adr_accounting_coa_id       NUMBER;
43297 l_adr_flexfield_segment_code  VARCHAR2(30);
43298 l_adr_flex_value_set_id       NUMBER;
43299 l_adr_value_type_code         VARCHAR2(30);
43300 l_adr_value_combination_id    NUMBER;
43301 l_adr_value_segment_code      VARCHAR2(30);
43302 
43303 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43304 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43305 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43306 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43307 
43308 -- 4262811 Variables ------------------------------------------------------------------------------------------
43309 l_entered_amt_idx             NUMBER;
43310 l_accted_amt_idx              NUMBER;
43311 l_acc_rev_flag                VARCHAR2(1);
43312 l_accrual_line_num            NUMBER;
43313 l_tmp_amt                     NUMBER;
43314 l_acc_rev_natural_side_code   VARCHAR2(1);
43315 
43316 l_num_entries                 NUMBER;
43317 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43318 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43319 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43320 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43321 l_recog_line_1                NUMBER;
43322 l_recog_line_2                NUMBER;
43323 
43324 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43325 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43326 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43327 
43328 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43329 
43330 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43331 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43332 
43333 ---------------------------------------------------------------------------------------------------------------
43334 
43335 
43336 --
43337 -- bulk performance
43338 --
43339 l_balance_type_code           VARCHAR2(1);
43340 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43341 l_log_module                  VARCHAR2(240);
43342 
43343 --
43344 -- Upgrade strategy
43345 --
43346 l_actual_upg_option           VARCHAR2(1);
43347 l_enc_upg_option           VARCHAR2(1);
43348 
43349 --
43350 BEGIN
43351 --
43352 IF g_log_enabled THEN
43353       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
43354 END IF;
43355 --
43356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43357 
43358       trace
43359          (p_msg      => 'BEGIN of AcctLineType_71'
43360          ,p_level    => C_LEVEL_PROCEDURE
43361          ,p_module   => l_log_module);
43362 
43363 END IF;
43364 --
43365 l_component_type             := 'AMB_JLT';
43366 l_component_code             := 'AP_TAX_EX_RATE_VAR_DM_ENC_DR';
43367 l_component_type_code        := 'S';
43368 l_component_appl_id          :=  200;
43369 l_amb_context_code           := 'DEFAULT';
43370 l_entity_code                := 'AP_INVOICES';
43371 l_event_class_code           := 'DEBIT MEMOS';
43372 l_event_type_code            := 'DEBIT MEMOS_ALL';
43373 l_line_definition_owner_code := 'S';
43374 l_line_definition_code       := 'ENC_DM_ALL';
43375 --
43376 l_balance_type_code          := 'E';
43377 l_segment                     := NULL;
43378 l_ccid                        := NULL;
43379 l_adr_transaction_coa_id      := NULL;
43380 l_adr_accounting_coa_id       := NULL;
43381 l_adr_flexfield_segment_code  := NULL;
43382 l_adr_flex_value_set_id       := NULL;
43386 
43383 l_adr_value_type_code         := NULL;
43384 l_adr_value_combination_id    := NULL;
43385 l_adr_value_segment_code      := NULL;
43387 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
43388 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
43389 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43390 l_budgetary_control_flag     := 'Y';
43391 
43392 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43393 l_bflow_applied_to_amt       := NULL; -- 5132302
43394 l_entered_amt_idx            := NULL;          -- 4262811
43395 l_accted_amt_idx             := NULL;          -- 4262811
43396 l_acc_rev_flag               := NULL;          -- 4262811
43397 l_accrual_line_num           := NULL;          -- 4262811
43398 l_tmp_amt                    := NULL;          -- 4262811
43399 --
43400 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
43401             (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
43402                return;
43403   END IF;
43404   
43405 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43406     l_balance_type_code <> 'B' THEN
43407 IF NVL(p_source_15,'
43408 ') =  'TERV' AND 
43409 NVL(p_source_17,'
43410 ') =  'Y'
43411  THEN 
43412 
43413    --
43414    XLA_AE_LINES_PKG.SetNewLine;
43415 
43416    p_balance_type_code          := l_balance_type_code;
43417    -- set the flag so later we will know whether the gain loss line needs to be created
43418    
43419    IF(l_balance_type_code = 'A' ) THEN
43420      p_actual_flag :='G';
43421    END IF;
43422 
43423    --
43424    -- bulk performance
43425    --
43426    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43427                                       p_header_num   => 0); -- 4262811
43428    --
43429    -- set accounting line options
43430    --
43431    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43432            p_natural_side_code          => 'D'
43433          , p_gain_or_loss_flag          => 'Y'
43434          , p_gl_transfer_mode_code      => 'S'
43435          , p_acct_entry_type_code       => 'E'
43436          , p_switch_side_flag           => 'Y'
43437          , p_merge_duplicate_code       => 'N'
43438          );
43439    --
43440    l_acc_rev_natural_side_code := 'C';  -- 4262811
43441    -- 
43442    --
43443    -- set accounting line type info
43444    --
43445    xla_ae_lines_pkg.SetAcctLineType
43446       (p_component_type             => l_component_type
43447       ,p_event_type_code            => l_event_type_code
43448       ,p_line_definition_owner_code => l_line_definition_owner_code
43449       ,p_line_definition_code       => l_line_definition_code
43450       ,p_accounting_line_code       => l_component_code
43451       ,p_accounting_line_type_code  => l_component_type_code
43452       ,p_accounting_line_appl_id    => l_component_appl_id
43453       ,p_amb_context_code           => l_amb_context_code
43454       ,p_entity_code                => l_entity_code
43455       ,p_event_class_code           => l_event_class_code);
43456    --
43457    -- set accounting class
43458    --
43459    xla_ae_lines_pkg.SetAcctClass(
43460            p_accounting_class_code  => 'TERV'
43461          , p_ae_header_id           => l_ae_header_id
43462          );
43463 
43464    --
43465    -- set rounding class
43466    --
43467    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43468                       'TERV';
43469 
43470    --
43471    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43472    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43473    --
43474    -- bulk performance
43475    --
43476    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43477 
43478    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43479       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43480 
43481    -- 4955764
43482    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43483       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43484 
43485    -- 4458381 Public Sector Enh
43486       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
43487    --
43488    -- set accounting attributes for the line type
43489    --
43490    l_entered_amt_idx := 23;
43491    l_accted_amt_idx  := 28;
43492    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43493    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43494    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
43495    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43496    l_rec_acct_attrs.array_num_value(2)  := 
43497 xla_ae_sources_pkg.GetSystemSourceNum(
43498    p_source_code           => 'XLA_EVENT_APPL_ID'
43499  , p_source_type_code      => 'Y'
43500  , p_source_application_id =>  602
43501 );
43502    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43503    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
43504    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43508  , p_source_type_code      => 'Y'
43505    l_rec_acct_attrs.array_char_value(4)  := 
43506 xla_ae_sources_pkg.GetSystemSourceChar(
43507    p_source_code           => 'XLA_ENTITY_CODE'
43509  , p_source_application_id =>  602
43510 );
43511    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43512    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
43513    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43514    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
43515    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43516    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
43517    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43518    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
43519    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43520    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
43521    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43522    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
43523    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43524    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
43525    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43526    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
43527    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43528    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
43529    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
43530    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
43531    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
43532    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
43533    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
43534    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
43535    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
43536    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
43537    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
43538    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
43539    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
43540    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
43541    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
43542    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
43543    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
43544    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
43545    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
43546    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
43547    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
43548    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
43549    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
43550    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
43551    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
43552    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
43553    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
43554    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
43555    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
43556    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
43557    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
43558    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
43559    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
43560    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
43561    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
43562    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
43563    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
43564    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
43565    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
43566    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
43567    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
43568    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
43569    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
43570    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
43571    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
43572    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
43573    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
43574    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
43575    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
43576    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
43577    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
43578    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
43579    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
43580    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
43581    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
43582    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
43583    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
43584    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
43585    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
43586    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
43587 
43588    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43589    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43590 
43594    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43591    ---------------------------------------------------------------------------------------------------------------
43592    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43593    ---------------------------------------------------------------------------------------------------------------
43595 
43596    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43597    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43598 
43599    IF xla_accounting_cache_pkg.GetValueChar
43600          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43601          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43602    AND l_bflow_method_code = 'PRIOR_ENTRY'
43603 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43604    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43605          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43606        )
43607    THEN
43608          xla_ae_lines_pkg.BflowUpgEntry
43609            (p_business_method_code    => l_bflow_method_code
43610            ,p_business_class_code     => l_bflow_class_code
43611            ,p_balance_type            => l_balance_type_code);
43612    ELSE
43613       NULL;
43614 -- No business flow processing for business flow method of NONE.
43615    END IF;
43616 
43617    --
43618    -- call analytical criteria
43619    --
43620    
43621    --
43622    -- call description
43623    --
43624    
43625 xla_ae_lines_pkg.SetLineDescription(
43626    p_ae_header_id => l_ae_header_id
43627   ,p_description  => Description_2 (
43628      p_application_id         => p_application_id
43629    , p_ae_header_id           => l_ae_header_id 
43630 , p_source_1 => p_source_1
43631    )
43632 );
43633 
43634 
43635    --
43636    -- call ADRs
43637    -- Bug 4922099
43638    --
43639    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43640         (NVL(l_actual_upg_option, 'N') = 'O') OR
43641         (NVL(l_enc_upg_option, 'N') = 'O')
43642       )
43643    THEN
43644    NULL;
43645    --
43646    --
43647    
43648   l_ccid := AcctDerRule_6(
43649            p_application_id           => p_application_id
43650          , p_ae_header_id             => l_ae_header_id 
43651 , p_source_6 => p_source_6
43652 , p_source_7 => p_source_7
43653 , p_source_7_meaning => p_source_7_meaning
43654 , p_source_8 => p_source_8
43655 , p_source_9 => p_source_9
43656 , p_source_9_meaning => p_source_9_meaning
43657 , p_source_10 => p_source_10
43658 , p_source_11 => p_source_11
43659 , p_source_12 => p_source_12
43660 , p_source_12_meaning => p_source_12_meaning
43661          , x_transaction_coa_id       => l_adr_transaction_coa_id
43662          , x_accounting_coa_id        => l_adr_accounting_coa_id
43663          , x_value_type_code          => l_adr_value_type_code
43664          , p_side                     => 'NA'
43665    );
43666 
43667    xla_ae_lines_pkg.set_ccid(
43668     p_code_combination_id          => l_ccid
43669   , p_value_type_code              => l_adr_value_type_code
43670   , p_transaction_coa_id           => l_adr_transaction_coa_id
43671   , p_accounting_coa_id            => l_adr_accounting_coa_id
43672   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
43673   , p_adr_type_code                => 'S'
43674   , p_component_type               => l_component_type
43675   , p_component_code               => l_component_code
43676   , p_component_type_code          => l_component_type_code
43677   , p_component_appl_id            => l_component_appl_id
43678   , p_amb_context_code             => l_amb_context_code
43679   , p_side                         => 'NA'
43680   );
43681 
43682 
43683    l_segment := AcctDerRule_4(
43684            p_application_id           => p_application_id
43685          , p_ae_header_id             => l_ae_header_id 
43686 , p_source_6 => p_source_6
43687 , p_source_7 => p_source_7
43688 , p_source_7_meaning => p_source_7_meaning
43689 , p_source_8 => p_source_8
43690 , p_source_9 => p_source_9
43691 , p_source_9_meaning => p_source_9_meaning
43692 , p_source_10 => p_source_10
43693          , x_transaction_coa_id       => l_adr_transaction_coa_id
43694          , x_accounting_coa_id        => l_adr_accounting_coa_id
43695          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43696          , x_flex_value_set_id        => l_adr_flex_value_set_id
43697          , x_value_type_code          => l_adr_value_type_code
43698          , x_value_combination_id     => l_adr_value_combination_id
43699          , x_value_segment_code       => l_adr_value_segment_code
43700          , p_side                     => 'NA'
43701          , p_override_seg_flag        => 'Y'
43702    );
43703 
43704    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43705 
43706       xla_ae_lines_pkg.set_segment(
43707           p_to_segment_code         => 'GL_ACCOUNT'
43708         , p_segment_value           => l_segment
43709         , p_from_segment_code       => l_adr_value_segment_code
43710         , p_from_combination_id     => l_adr_value_combination_id
43711         , p_value_type_code         => l_adr_value_type_code
43715         , p_flex_value_set_id       => l_adr_flex_value_set_id
43712         , p_transaction_coa_id      => l_adr_transaction_coa_id
43713         , p_accounting_coa_id       => l_adr_accounting_coa_id
43714         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43716         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
43717         , p_adr_type_code           => 'S'
43718         , p_component_type          => l_component_type
43719         , p_component_code          => l_component_code
43720         , p_component_type_code     => l_component_type_code
43721         , p_component_appl_id       => l_component_appl_id
43722         , p_amb_context_code        => l_amb_context_code
43723         , p_entity_code             => 'AP_INVOICES'
43724         , p_event_class_code        => 'DEBIT MEMOS'
43725         , p_side                    => 'NA'
43726         );
43727 
43728   END IF;
43729 
43730    l_segment := AcctDerRule_5(
43731            p_application_id           => p_application_id
43732          , p_ae_header_id             => l_ae_header_id 
43733 , p_source_7 => p_source_7
43734 , p_source_7_meaning => p_source_7_meaning
43735 , p_source_9 => p_source_9
43736 , p_source_9_meaning => p_source_9_meaning
43737 , p_source_11 => p_source_11
43738          , x_transaction_coa_id       => l_adr_transaction_coa_id
43739          , x_accounting_coa_id        => l_adr_accounting_coa_id
43740          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43741          , x_flex_value_set_id        => l_adr_flex_value_set_id
43742          , x_value_type_code          => l_adr_value_type_code
43743          , x_value_combination_id     => l_adr_value_combination_id
43744          , x_value_segment_code       => l_adr_value_segment_code
43745          , p_side                     => 'NA'
43746          , p_override_seg_flag        => 'Y'
43747    );
43748 
43749    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43750 
43751       xla_ae_lines_pkg.set_segment(
43752           p_to_segment_code         => 'GL_BALANCING'
43753         , p_segment_value           => l_segment
43754         , p_from_segment_code       => l_adr_value_segment_code
43755         , p_from_combination_id     => l_adr_value_combination_id
43756         , p_value_type_code         => l_adr_value_type_code
43757         , p_transaction_coa_id      => l_adr_transaction_coa_id
43758         , p_accounting_coa_id       => l_adr_accounting_coa_id
43759         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43760         , p_flex_value_set_id       => l_adr_flex_value_set_id
43761         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
43762         , p_adr_type_code           => 'S'
43763         , p_component_type          => l_component_type
43764         , p_component_code          => l_component_code
43765         , p_component_type_code     => l_component_type_code
43766         , p_component_appl_id       => l_component_appl_id
43767         , p_amb_context_code        => l_amb_context_code
43768         , p_entity_code             => 'AP_INVOICES'
43769         , p_event_class_code        => 'DEBIT MEMOS'
43770         , p_side                    => 'NA'
43771         );
43772 
43773   END IF;
43774 
43775    --
43776    --
43777    END IF;
43778    --
43779    -- Bug 4922099
43780    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43781           (NVL(l_enc_upg_option, 'N') = 'O')
43782         ) AND
43783         (l_bflow_method_code = 'PRIOR_ENTRY')
43784       )
43785    THEN
43786       IF
43787       --
43788       1 = 2
43789       --
43790       THEN
43791       xla_accounting_err_pkg.build_message
43792                                     (p_appli_s_name            => 'XLA'
43793                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43794                                     ,p_token_1                 => 'LINE_NUMBER'
43795                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43796                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43797                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43798                                                                              l_component_type
43799                                                                             ,l_component_code
43800                                                                             ,l_component_type_code
43801                                                                             ,l_component_appl_id
43802                                                                             ,l_amb_context_code
43803                                                                             ,l_entity_code
43804                                                                             ,l_event_class_code
43805                                                                            )
43806                                     ,p_token_3                 => 'OWNER'
43807                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43808                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43809                                                                           ,p_lookup_code    => l_component_type_code
43810                                                                          )
43811                                     ,p_token_4                 => 'PRODUCT_NAME'
43815                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43812                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43813                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43814                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43816                                     ,p_ae_header_id            =>  NULL
43817                                        );
43818 
43819         IF (C_LEVEL_ERROR>= g_log_level) THEN
43820                  trace
43821                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43822                       ,p_level    => C_LEVEL_ERROR
43823                       ,p_module   => l_log_module);
43824         END IF;
43825       END IF;
43826    END IF;
43827    --
43828    --
43829    ------------------------------------------------------------------------------------------------
43830    -- 4219869 Business Flow
43831    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43832    -- Prior Entry.  Currently, the following code is always generated.
43833    ------------------------------------------------------------------------------------------------
43834    XLA_AE_LINES_PKG.ValidateCurrentLine;
43835 
43836    ------------------------------------------------------------------------------------
43837    -- 4219869 Business Flow
43838    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43839    ------------------------------------------------------------------------------------
43840    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43841 
43842    ----------------------------------------------------------------------------------
43843    -- 4219869 Business Flow
43844    -- Update journal entry status -- Need to generate this within IF <condition>
43845    ----------------------------------------------------------------------------------
43846    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43847          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43848          ,p_balance_type_code => l_balance_type_code
43849          );
43850 
43851    -------------------------------------------------------------------------------------------
43852    -- 4262811 - Generate the Accrual Reversal lines
43853    -------------------------------------------------------------------------------------------
43854    BEGIN
43855       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43856                               (g_array_event(p_event_id).array_value_num('header_index'));
43857       IF l_acc_rev_flag IS NULL THEN
43858          l_acc_rev_flag := 'N';
43859       END IF;
43860    EXCEPTION
43861       WHEN OTHERS THEN
43862          l_acc_rev_flag := 'N';
43863    END;
43864    --
43865    IF (l_acc_rev_flag = 'Y') THEN
43866 
43867        -- 4645092  ------------------------------------------------------------------------------
43868        -- To allow MPA report to determine if it should generate report process
43869        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43870        ------------------------------------------------------------------------------------------
43871 
43872        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43873        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43874    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43875    -- call ADRs
43876    -- Bug 4922099
43877    --
43878    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43879         (NVL(l_actual_upg_option, 'N') = 'O') OR
43880         (NVL(l_enc_upg_option, 'N') = 'O')
43881       )
43882    THEN
43883    NULL;
43884    --
43885    --
43886    
43887   l_ccid := AcctDerRule_6(
43888            p_application_id           => p_application_id
43889          , p_ae_header_id             => l_ae_header_id 
43890 , p_source_6 => p_source_6
43891 , p_source_7 => p_source_7
43892 , p_source_7_meaning => p_source_7_meaning
43893 , p_source_8 => p_source_8
43894 , p_source_9 => p_source_9
43895 , p_source_9_meaning => p_source_9_meaning
43896 , p_source_10 => p_source_10
43897 , p_source_11 => p_source_11
43898 , p_source_12 => p_source_12
43899 , p_source_12_meaning => p_source_12_meaning
43900          , x_transaction_coa_id       => l_adr_transaction_coa_id
43901          , x_accounting_coa_id        => l_adr_accounting_coa_id
43902          , x_value_type_code          => l_adr_value_type_code
43903          , p_side                     => 'NA'
43904    );
43905 
43906    xla_ae_lines_pkg.set_ccid(
43907     p_code_combination_id          => l_ccid
43908   , p_value_type_code              => l_adr_value_type_code
43909   , p_transaction_coa_id           => l_adr_transaction_coa_id
43910   , p_accounting_coa_id            => l_adr_accounting_coa_id
43911   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
43912   , p_adr_type_code                => 'S'
43913   , p_component_type               => l_component_type
43914   , p_component_code               => l_component_code
43915   , p_component_type_code          => l_component_type_code
43916   , p_component_appl_id            => l_component_appl_id
43917   , p_amb_context_code             => l_amb_context_code
43918   , p_side                         => 'NA'
43919   );
43920 
43921 
43922    l_segment := AcctDerRule_4(
43926 , p_source_7 => p_source_7
43923            p_application_id           => p_application_id
43924          , p_ae_header_id             => l_ae_header_id 
43925 , p_source_6 => p_source_6
43927 , p_source_7_meaning => p_source_7_meaning
43928 , p_source_8 => p_source_8
43929 , p_source_9 => p_source_9
43930 , p_source_9_meaning => p_source_9_meaning
43931 , p_source_10 => p_source_10
43932          , x_transaction_coa_id       => l_adr_transaction_coa_id
43933          , x_accounting_coa_id        => l_adr_accounting_coa_id
43934          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43935          , x_flex_value_set_id        => l_adr_flex_value_set_id
43936          , x_value_type_code          => l_adr_value_type_code
43937          , x_value_combination_id     => l_adr_value_combination_id
43938          , x_value_segment_code       => l_adr_value_segment_code
43939          , p_side                     => 'NA'
43940          , p_override_seg_flag        => 'Y'
43941    );
43942 
43943    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43944 
43945       xla_ae_lines_pkg.set_segment(
43946           p_to_segment_code         => 'GL_ACCOUNT'
43947         , p_segment_value           => l_segment
43948         , p_from_segment_code       => l_adr_value_segment_code
43949         , p_from_combination_id     => l_adr_value_combination_id
43950         , p_value_type_code         => l_adr_value_type_code
43951         , p_transaction_coa_id      => l_adr_transaction_coa_id
43952         , p_accounting_coa_id       => l_adr_accounting_coa_id
43953         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43954         , p_flex_value_set_id       => l_adr_flex_value_set_id
43955         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
43956         , p_adr_type_code           => 'S'
43957         , p_component_type          => l_component_type
43958         , p_component_code          => l_component_code
43959         , p_component_type_code     => l_component_type_code
43960         , p_component_appl_id       => l_component_appl_id
43961         , p_amb_context_code        => l_amb_context_code
43962         , p_entity_code             => 'AP_INVOICES'
43963         , p_event_class_code        => 'DEBIT MEMOS'
43964         , p_side                    => 'NA'
43965         );
43966 
43967   END IF;
43968 
43969    l_segment := AcctDerRule_5(
43970            p_application_id           => p_application_id
43971          , p_ae_header_id             => l_ae_header_id 
43972 , p_source_7 => p_source_7
43973 , p_source_7_meaning => p_source_7_meaning
43974 , p_source_9 => p_source_9
43975 , p_source_9_meaning => p_source_9_meaning
43976 , p_source_11 => p_source_11
43977          , x_transaction_coa_id       => l_adr_transaction_coa_id
43978          , x_accounting_coa_id        => l_adr_accounting_coa_id
43979          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43980          , x_flex_value_set_id        => l_adr_flex_value_set_id
43981          , x_value_type_code          => l_adr_value_type_code
43982          , x_value_combination_id     => l_adr_value_combination_id
43983          , x_value_segment_code       => l_adr_value_segment_code
43984          , p_side                     => 'NA'
43985          , p_override_seg_flag        => 'Y'
43986    );
43987 
43988    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43989 
43990       xla_ae_lines_pkg.set_segment(
43991           p_to_segment_code         => 'GL_BALANCING'
43992         , p_segment_value           => l_segment
43993         , p_from_segment_code       => l_adr_value_segment_code
43994         , p_from_combination_id     => l_adr_value_combination_id
43995         , p_value_type_code         => l_adr_value_type_code
43996         , p_transaction_coa_id      => l_adr_transaction_coa_id
43997         , p_accounting_coa_id       => l_adr_accounting_coa_id
43998         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43999         , p_flex_value_set_id       => l_adr_flex_value_set_id
44000         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
44001         , p_adr_type_code           => 'S'
44002         , p_component_type          => l_component_type
44003         , p_component_code          => l_component_code
44004         , p_component_type_code     => l_component_type_code
44005         , p_component_appl_id       => l_component_appl_id
44006         , p_amb_context_code        => l_amb_context_code
44007         , p_entity_code             => 'AP_INVOICES'
44008         , p_event_class_code        => 'DEBIT MEMOS'
44009         , p_side                    => 'NA'
44010         );
44011 
44012   END IF;
44013 
44014    --
44015    --
44016    END IF;
44017 
44018        --
44019        -- Update the line information that should be overwritten
44020        --
44021        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44022                                          p_header_num   => 1);
44023        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44024 
44025        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44026 
44027        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44028           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44029        END IF;
44030 
44031       --
44032       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44033       --
44034       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44038           -- 4262811a Switch Sign
44035           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44036       ELSE
44037           ---------------------------------------------------------------------------------------------------
44039           ---------------------------------------------------------------------------------------------------
44040           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44041           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44042                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44043           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44044                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44045           -- 5132302
44046           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44047                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44048 
44049       END IF;
44050 
44051       -- 4955764
44052       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44053       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44054 
44055 
44056       XLA_AE_LINES_PKG.ValidateCurrentLine;
44057       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44058 
44059       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44060                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44061                ,p_balance_type_code => l_balance_type_code);
44062 
44063    END IF;
44064 
44065    -----------------------------------------------------------------------------------------
44066    -- 4262811 Multiperiod Accounting
44067    -----------------------------------------------------------------------------------------
44068      -- No MPA option is assigned.
44069 
44070 
44071 END IF;
44072 END IF;
44073 --
44074 
44075 --
44076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44077    trace
44078       (p_msg      => 'END of AcctLineType_71'
44079       ,p_level    => C_LEVEL_PROCEDURE
44080       ,p_module   => l_log_module);
44081 END IF;
44082 --
44083 EXCEPTION
44084   WHEN xla_exceptions_pkg.application_exception THEN
44085       RAISE;
44086   WHEN OTHERS THEN
44087        xla_exceptions_pkg.raise_message
44088            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_71');
44089 END AcctLineType_71;
44090 --
44091 
44092 ---------------------------------------
44093 --
44094 -- PRIVATE FUNCTION
44095 --         AcctLineType_72
44096 --
44097 ---------------------------------------
44098 PROCEDURE AcctLineType_72 (
44099   p_application_id        IN NUMBER
44100  ,p_event_id              IN NUMBER
44101  ,p_calculate_acctd_flag  IN VARCHAR2
44102  ,p_calculate_g_l_flag    IN VARCHAR2
44103  ,p_actual_flag           IN OUT VARCHAR2
44104  ,p_balance_type_code     OUT VARCHAR2
44105  ,p_gain_or_loss_ref      OUT VARCHAR2
44106  
44107 --Invoice Distribution Description
44108  , p_source_1            IN VARCHAR2
44109 --Purchase Order Rate Variance Gain Account
44110  , p_source_6            IN NUMBER
44111 --Automatic Offsets Value
44112  , p_source_7            IN VARCHAR2
44113  , p_source_7_meaning    IN VARCHAR2
44114 --Invoice Distribution Ledger Amount
44115  , p_source_8            IN NUMBER
44116 --Destination Type of the PO Distribution
44117  , p_source_9            IN VARCHAR2
44118  , p_source_9_meaning    IN VARCHAR2
44119 --Purchase Order Rate Variance Loss Account
44120  , p_source_10            IN NUMBER
44121 --Invoice Distribution Account
44122  , p_source_11            IN NUMBER
44123 --Automatic Offsets Flag
44124  , p_source_12            IN VARCHAR2
44125  , p_source_12_meaning    IN VARCHAR2
44126 --Invoice Distribution Type
44127  , p_source_15            IN VARCHAR2
44128  , p_source_15_meaning    IN VARCHAR2
44129 --Purchasing Encumbrance Option
44130  , p_source_17            IN VARCHAR2
44131  , p_source_17_meaning    IN VARCHAR2
44132 --Accounting Reversal Indicator
44133  , p_source_19            IN VARCHAR2
44134 --Distribution Link Type
44135  , p_source_21            IN VARCHAR2
44136 --Allocation to Main Distribution Identifier
44137  , p_source_23            IN NUMBER
44138 --Invoice Identifier
44139  , p_source_24            IN NUMBER
44140 --Business Flow Accounts Payable Application Identifier
44141  , p_source_25            IN NUMBER
44142 --Business Flow Invoice Distribution Type
44143  , p_source_26            IN VARCHAR2
44144 --Business Flow Invoice Entity Code
44145  , p_source_27            IN VARCHAR2
44146 --Business Flow Invoice Distribution Identifier
44147  , p_source_28            IN NUMBER
44148 --Business Flow Invoice Identifier
44149  , p_source_29            IN NUMBER
44150 --Invoice Distribution Identifier
44151  , p_source_30            IN NUMBER
44152 --Payables Encumbrance Upgrade Credit Account
44153  , p_source_31            IN NUMBER
44154 --Payables Encumbrance Upgrade Credit Amount
44155  , p_source_32            IN NUMBER
44156 --Invoice Currency Code
44157  , p_source_33            IN VARCHAR2
44158 --Payables Encumbrance Upgrade Credit Base Amount
44159  , p_source_34            IN NUMBER
44160 --Payables Encumbrance Upgrade Debit Account
44164 --Payables Encumbrance Upgrade Debit Base Amount
44161  , p_source_35            IN NUMBER
44162 --Payables Encumbrance Upgrade Debit Amount
44163  , p_source_36            IN NUMBER
44165  , p_source_37            IN NUMBER
44166 --Payables Encumbrance Upgrade Option
44167  , p_source_38            IN VARCHAR2
44168 --Invoice Exchange Date
44169  , p_source_39            IN DATE
44170 --Invoice Exchange Rate
44171  , p_source_40            IN NUMBER
44172 --Invoice Exchange Rate Type
44173  , p_source_41            IN VARCHAR2
44174 --Deferred Accounting End Date
44175  , p_source_43            IN DATE
44176 --Deferred Accounting Option
44177  , p_source_44            IN VARCHAR2
44178 --Deferred Accounting Start Date
44179  , p_source_45            IN DATE
44180 --Override Accounted Amount Indicator
44181  , p_source_46            IN VARCHAR2
44182  , p_source_46_meaning    IN VARCHAR2
44183 --Invoice Supplier Identifier
44184  , p_source_47            IN NUMBER
44185 --Invoice Supplier Site Identifier
44186  , p_source_48            IN NUMBER
44187 --Third Party Type
44188  , p_source_49            IN VARCHAR2
44189 --Parent Reversal Identifier
44190  , p_source_50            IN NUMBER
44191 --Invoice Distribution Statistical Amount
44192  , p_source_51            IN NUMBER
44193 --Invoice Distribution Tax Line Identifier
44194  , p_source_52            IN NUMBER
44195 --Invoice Distribution Tax Distribution Identifier from Tax
44196  , p_source_53            IN NUMBER
44197 --Invoice Distribution Summary Tax Line Identifier
44198  , p_source_54            IN NUMBER
44199 --Payables Upgrade Credit Encumbrance Type Identifier
44200  , p_source_55            IN NUMBER
44201 --Payables Upgrade Debit Encumbrance Type Identifier
44202  , p_source_56            IN NUMBER
44203 --Invoice Distribution Encumbrance Amount
44204  , p_source_65            IN NUMBER
44205 --Invoice Distribution Encumbrance Ledger Amount
44206  , p_source_66            IN NUMBER
44207 )
44208 IS
44209 
44210 l_component_type              VARCHAR2(80);
44211 l_component_code              VARCHAR2(30);
44212 l_component_type_code         VARCHAR2(1);
44213 l_component_appl_id           INTEGER;
44214 l_amb_context_code            VARCHAR2(30);
44215 l_entity_code                 VARCHAR2(30);
44216 l_event_class_code            VARCHAR2(30);
44217 l_ae_header_id                NUMBER;
44218 l_event_type_code             VARCHAR2(30);
44219 l_line_definition_code        VARCHAR2(30);
44220 l_line_definition_owner_code  VARCHAR2(1);
44221 --
44222 -- adr variables
44223 l_segment                     VARCHAR2(30);
44224 l_ccid                        NUMBER;
44225 l_adr_transaction_coa_id      NUMBER;
44226 l_adr_accounting_coa_id       NUMBER;
44227 l_adr_flexfield_segment_code  VARCHAR2(30);
44228 l_adr_flex_value_set_id       NUMBER;
44229 l_adr_value_type_code         VARCHAR2(30);
44230 l_adr_value_combination_id    NUMBER;
44231 l_adr_value_segment_code      VARCHAR2(30);
44232 
44233 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44234 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44235 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44236 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44237 
44238 -- 4262811 Variables ------------------------------------------------------------------------------------------
44239 l_entered_amt_idx             NUMBER;
44240 l_accted_amt_idx              NUMBER;
44241 l_acc_rev_flag                VARCHAR2(1);
44242 l_accrual_line_num            NUMBER;
44243 l_tmp_amt                     NUMBER;
44244 l_acc_rev_natural_side_code   VARCHAR2(1);
44245 
44246 l_num_entries                 NUMBER;
44247 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44248 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44249 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44250 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44251 l_recog_line_1                NUMBER;
44252 l_recog_line_2                NUMBER;
44253 
44254 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44255 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44256 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44257 
44258 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44259 
44260 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44261 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44262 
44263 ---------------------------------------------------------------------------------------------------------------
44264 
44265 
44266 --
44267 -- bulk performance
44268 --
44269 l_balance_type_code           VARCHAR2(1);
44270 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44271 l_log_module                  VARCHAR2(240);
44272 
44273 --
44274 -- Upgrade strategy
44275 --
44276 l_actual_upg_option           VARCHAR2(1);
44277 l_enc_upg_option           VARCHAR2(1);
44278 
44279 --
44280 BEGIN
44281 --
44282 IF g_log_enabled THEN
44283       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
44284 END IF;
44285 --
44286 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44287 
44288       trace
44289          (p_msg      => 'BEGIN of AcctLineType_72'
44293 END IF;
44290          ,p_level    => C_LEVEL_PROCEDURE
44291          ,p_module   => l_log_module);
44292 
44294 --
44295 l_component_type             := 'AMB_JLT';
44296 l_component_code             := 'AP_TAX_EX_RATE_VAR_PP_ENC_DR';
44297 l_component_type_code        := 'S';
44298 l_component_appl_id          :=  200;
44299 l_amb_context_code           := 'DEFAULT';
44300 l_entity_code                := 'AP_INVOICES';
44301 l_event_class_code           := 'PREPAYMENTS';
44302 l_event_type_code            := 'PREPAYMENTS_ALL';
44303 l_line_definition_owner_code := 'S';
44304 l_line_definition_code       := 'ENC_PREPAY_ALL';
44305 --
44306 l_balance_type_code          := 'E';
44307 l_segment                     := NULL;
44308 l_ccid                        := NULL;
44309 l_adr_transaction_coa_id      := NULL;
44310 l_adr_accounting_coa_id       := NULL;
44311 l_adr_flexfield_segment_code  := NULL;
44312 l_adr_flex_value_set_id       := NULL;
44313 l_adr_value_type_code         := NULL;
44314 l_adr_value_combination_id    := NULL;
44315 l_adr_value_segment_code      := NULL;
44316 
44317 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
44318 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
44319 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44320 l_budgetary_control_flag     := 'Y';
44321 
44322 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44323 l_bflow_applied_to_amt       := NULL; -- 5132302
44324 l_entered_amt_idx            := NULL;          -- 4262811
44325 l_accted_amt_idx             := NULL;          -- 4262811
44326 l_acc_rev_flag               := NULL;          -- 4262811
44327 l_accrual_line_num           := NULL;          -- 4262811
44328 l_tmp_amt                    := NULL;          -- 4262811
44329 --
44330 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
44331             (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
44332                return;
44333   END IF;
44334   
44335 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44336     l_balance_type_code <> 'B' THEN
44337 IF NVL(p_source_15,'
44338 ') =  'TERV' AND 
44339 NVL(p_source_17,'
44340 ') =  'Y'
44341  THEN 
44342 
44343    --
44344    XLA_AE_LINES_PKG.SetNewLine;
44345 
44346    p_balance_type_code          := l_balance_type_code;
44347    -- set the flag so later we will know whether the gain loss line needs to be created
44348    
44349    IF(l_balance_type_code = 'A' ) THEN
44350      p_actual_flag :='G';
44351    END IF;
44352 
44353    --
44354    -- bulk performance
44355    --
44356    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44357                                       p_header_num   => 0); -- 4262811
44358    --
44359    -- set accounting line options
44360    --
44361    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44362            p_natural_side_code          => 'D'
44363          , p_gain_or_loss_flag          => 'Y'
44364          , p_gl_transfer_mode_code      => 'S'
44365          , p_acct_entry_type_code       => 'E'
44366          , p_switch_side_flag           => 'Y'
44367          , p_merge_duplicate_code       => 'N'
44368          );
44369    --
44370    l_acc_rev_natural_side_code := 'C';  -- 4262811
44371    -- 
44372    --
44373    -- set accounting line type info
44374    --
44375    xla_ae_lines_pkg.SetAcctLineType
44376       (p_component_type             => l_component_type
44377       ,p_event_type_code            => l_event_type_code
44378       ,p_line_definition_owner_code => l_line_definition_owner_code
44379       ,p_line_definition_code       => l_line_definition_code
44380       ,p_accounting_line_code       => l_component_code
44381       ,p_accounting_line_type_code  => l_component_type_code
44382       ,p_accounting_line_appl_id    => l_component_appl_id
44383       ,p_amb_context_code           => l_amb_context_code
44384       ,p_entity_code                => l_entity_code
44385       ,p_event_class_code           => l_event_class_code);
44386    --
44387    -- set accounting class
44388    --
44389    xla_ae_lines_pkg.SetAcctClass(
44390            p_accounting_class_code  => 'TERV'
44391          , p_ae_header_id           => l_ae_header_id
44392          );
44393 
44394    --
44395    -- set rounding class
44396    --
44397    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44398                       'TERV';
44399 
44400    --
44401    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44402    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44403    --
44404    -- bulk performance
44405    --
44406    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44407 
44408    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44409       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44410 
44411    -- 4955764
44412    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44416       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
44413       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44414 
44415    -- 4458381 Public Sector Enh
44417    --
44418    -- set accounting attributes for the line type
44419    --
44420    l_entered_amt_idx := 23;
44421    l_accted_amt_idx  := 28;
44422    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44423    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44424    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
44425    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44426    l_rec_acct_attrs.array_num_value(2)  := 
44427 xla_ae_sources_pkg.GetSystemSourceNum(
44428    p_source_code           => 'XLA_EVENT_APPL_ID'
44429  , p_source_type_code      => 'Y'
44430  , p_source_application_id =>  602
44431 );
44432    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44433    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
44434    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44435    l_rec_acct_attrs.array_char_value(4)  := 
44436 xla_ae_sources_pkg.GetSystemSourceChar(
44437    p_source_code           => 'XLA_ENTITY_CODE'
44438  , p_source_type_code      => 'Y'
44439  , p_source_application_id =>  602
44440 );
44441    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44442    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
44443    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44444    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
44445    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44446    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
44447    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44448    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
44449    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44450    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
44451    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44452    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
44453    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44454    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
44455    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44456    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
44457    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44458    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
44459    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
44460    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
44461    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
44462    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
44463    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
44464    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
44465    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
44466    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
44467    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
44468    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
44469    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
44470    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
44471    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
44472    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
44473    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
44474    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
44475    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
44476    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
44477    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
44478    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
44479    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
44480    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
44481    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
44482    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
44483    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
44484    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
44485    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
44486    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
44487    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
44488    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
44489    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
44490    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
44491    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
44492    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
44493    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
44494    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
44495    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
44496    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
44497    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
44498    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
44499    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
44500    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
44501    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
44502    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
44506    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
44503    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
44504    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
44505    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
44507    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
44508    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
44509    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
44510    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
44511    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
44512    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
44513    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
44514    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
44515    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
44516    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
44517    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
44518    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
44519 
44520    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44521    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44522 
44523    ---------------------------------------------------------------------------------------------------------------
44524    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44525    ---------------------------------------------------------------------------------------------------------------
44526    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44527 
44528    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44529    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44530 
44531    IF xla_accounting_cache_pkg.GetValueChar
44532          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44533          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44534    AND l_bflow_method_code = 'PRIOR_ENTRY'
44535 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44536    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44537          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44538        )
44539    THEN
44540          xla_ae_lines_pkg.BflowUpgEntry
44541            (p_business_method_code    => l_bflow_method_code
44542            ,p_business_class_code     => l_bflow_class_code
44543            ,p_balance_type            => l_balance_type_code);
44544    ELSE
44545       NULL;
44546 -- No business flow processing for business flow method of NONE.
44547    END IF;
44548 
44549    --
44550    -- call analytical criteria
44551    --
44552    
44553    --
44554    -- call description
44555    --
44556    
44557 xla_ae_lines_pkg.SetLineDescription(
44558    p_ae_header_id => l_ae_header_id
44559   ,p_description  => Description_2 (
44560      p_application_id         => p_application_id
44561    , p_ae_header_id           => l_ae_header_id 
44562 , p_source_1 => p_source_1
44563    )
44564 );
44565 
44566 
44567    --
44568    -- call ADRs
44569    -- Bug 4922099
44570    --
44571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44572         (NVL(l_actual_upg_option, 'N') = 'O') OR
44573         (NVL(l_enc_upg_option, 'N') = 'O')
44574       )
44575    THEN
44576    NULL;
44577    --
44578    --
44579    
44580   l_ccid := AcctDerRule_6(
44581            p_application_id           => p_application_id
44582          , p_ae_header_id             => l_ae_header_id 
44583 , p_source_6 => p_source_6
44584 , p_source_7 => p_source_7
44585 , p_source_7_meaning => p_source_7_meaning
44586 , p_source_8 => p_source_8
44587 , p_source_9 => p_source_9
44588 , p_source_9_meaning => p_source_9_meaning
44589 , p_source_10 => p_source_10
44590 , p_source_11 => p_source_11
44591 , p_source_12 => p_source_12
44592 , p_source_12_meaning => p_source_12_meaning
44593          , x_transaction_coa_id       => l_adr_transaction_coa_id
44594          , x_accounting_coa_id        => l_adr_accounting_coa_id
44595          , x_value_type_code          => l_adr_value_type_code
44596          , p_side                     => 'NA'
44597    );
44598 
44599    xla_ae_lines_pkg.set_ccid(
44600     p_code_combination_id          => l_ccid
44601   , p_value_type_code              => l_adr_value_type_code
44602   , p_transaction_coa_id           => l_adr_transaction_coa_id
44603   , p_accounting_coa_id            => l_adr_accounting_coa_id
44604   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
44605   , p_adr_type_code                => 'S'
44606   , p_component_type               => l_component_type
44607   , p_component_code               => l_component_code
44608   , p_component_type_code          => l_component_type_code
44609   , p_component_appl_id            => l_component_appl_id
44610   , p_amb_context_code             => l_amb_context_code
44611   , p_side                         => 'NA'
44612   );
44613 
44614 
44615    l_segment := AcctDerRule_4(
44616            p_application_id           => p_application_id
44617          , p_ae_header_id             => l_ae_header_id 
44618 , p_source_6 => p_source_6
44619 , p_source_7 => p_source_7
44620 , p_source_7_meaning => p_source_7_meaning
44621 , p_source_8 => p_source_8
44625          , x_transaction_coa_id       => l_adr_transaction_coa_id
44622 , p_source_9 => p_source_9
44623 , p_source_9_meaning => p_source_9_meaning
44624 , p_source_10 => p_source_10
44626          , x_accounting_coa_id        => l_adr_accounting_coa_id
44627          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
44628          , x_flex_value_set_id        => l_adr_flex_value_set_id
44629          , x_value_type_code          => l_adr_value_type_code
44630          , x_value_combination_id     => l_adr_value_combination_id
44631          , x_value_segment_code       => l_adr_value_segment_code
44632          , p_side                     => 'NA'
44633          , p_override_seg_flag        => 'Y'
44634    );
44635 
44636    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
44637 
44638       xla_ae_lines_pkg.set_segment(
44639           p_to_segment_code         => 'GL_ACCOUNT'
44640         , p_segment_value           => l_segment
44641         , p_from_segment_code       => l_adr_value_segment_code
44642         , p_from_combination_id     => l_adr_value_combination_id
44643         , p_value_type_code         => l_adr_value_type_code
44644         , p_transaction_coa_id      => l_adr_transaction_coa_id
44645         , p_accounting_coa_id       => l_adr_accounting_coa_id
44646         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
44647         , p_flex_value_set_id       => l_adr_flex_value_set_id
44648         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
44649         , p_adr_type_code           => 'S'
44650         , p_component_type          => l_component_type
44651         , p_component_code          => l_component_code
44652         , p_component_type_code     => l_component_type_code
44653         , p_component_appl_id       => l_component_appl_id
44654         , p_amb_context_code        => l_amb_context_code
44655         , p_entity_code             => 'AP_INVOICES'
44656         , p_event_class_code        => 'PREPAYMENTS'
44657         , p_side                    => 'NA'
44658         );
44659 
44660   END IF;
44661 
44662    l_segment := AcctDerRule_5(
44663            p_application_id           => p_application_id
44664          , p_ae_header_id             => l_ae_header_id 
44665 , p_source_7 => p_source_7
44666 , p_source_7_meaning => p_source_7_meaning
44667 , p_source_9 => p_source_9
44668 , p_source_9_meaning => p_source_9_meaning
44669 , p_source_11 => p_source_11
44670          , x_transaction_coa_id       => l_adr_transaction_coa_id
44671          , x_accounting_coa_id        => l_adr_accounting_coa_id
44672          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
44673          , x_flex_value_set_id        => l_adr_flex_value_set_id
44674          , x_value_type_code          => l_adr_value_type_code
44675          , x_value_combination_id     => l_adr_value_combination_id
44676          , x_value_segment_code       => l_adr_value_segment_code
44677          , p_side                     => 'NA'
44678          , p_override_seg_flag        => 'Y'
44679    );
44680 
44681    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
44682 
44683       xla_ae_lines_pkg.set_segment(
44684           p_to_segment_code         => 'GL_BALANCING'
44685         , p_segment_value           => l_segment
44686         , p_from_segment_code       => l_adr_value_segment_code
44687         , p_from_combination_id     => l_adr_value_combination_id
44688         , p_value_type_code         => l_adr_value_type_code
44689         , p_transaction_coa_id      => l_adr_transaction_coa_id
44690         , p_accounting_coa_id       => l_adr_accounting_coa_id
44691         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
44692         , p_flex_value_set_id       => l_adr_flex_value_set_id
44693         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
44694         , p_adr_type_code           => 'S'
44695         , p_component_type          => l_component_type
44696         , p_component_code          => l_component_code
44697         , p_component_type_code     => l_component_type_code
44698         , p_component_appl_id       => l_component_appl_id
44699         , p_amb_context_code        => l_amb_context_code
44700         , p_entity_code             => 'AP_INVOICES'
44701         , p_event_class_code        => 'PREPAYMENTS'
44702         , p_side                    => 'NA'
44703         );
44704 
44705   END IF;
44706 
44707    --
44708    --
44709    END IF;
44710    --
44711    -- Bug 4922099
44712    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44713           (NVL(l_enc_upg_option, 'N') = 'O')
44714         ) AND
44715         (l_bflow_method_code = 'PRIOR_ENTRY')
44716       )
44717    THEN
44718       IF
44719       --
44720       1 = 2
44721       --
44722       THEN
44723       xla_accounting_err_pkg.build_message
44724                                     (p_appli_s_name            => 'XLA'
44725                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44726                                     ,p_token_1                 => 'LINE_NUMBER'
44727                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44728                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44729                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44730                                                                              l_component_type
44731                                                                             ,l_component_code
44735                                                                             ,l_entity_code
44732                                                                             ,l_component_type_code
44733                                                                             ,l_component_appl_id
44734                                                                             ,l_amb_context_code
44736                                                                             ,l_event_class_code
44737                                                                            )
44738                                     ,p_token_3                 => 'OWNER'
44739                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44740                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44741                                                                           ,p_lookup_code    => l_component_type_code
44742                                                                          )
44743                                     ,p_token_4                 => 'PRODUCT_NAME'
44744                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44745                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44746                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44747                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44748                                     ,p_ae_header_id            =>  NULL
44749                                        );
44750 
44751         IF (C_LEVEL_ERROR>= g_log_level) THEN
44752                  trace
44753                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44754                       ,p_level    => C_LEVEL_ERROR
44755                       ,p_module   => l_log_module);
44756         END IF;
44757       END IF;
44758    END IF;
44759    --
44760    --
44761    ------------------------------------------------------------------------------------------------
44762    -- 4219869 Business Flow
44763    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44764    -- Prior Entry.  Currently, the following code is always generated.
44765    ------------------------------------------------------------------------------------------------
44766    XLA_AE_LINES_PKG.ValidateCurrentLine;
44767 
44768    ------------------------------------------------------------------------------------
44769    -- 4219869 Business Flow
44770    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44771    ------------------------------------------------------------------------------------
44772    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44773 
44774    ----------------------------------------------------------------------------------
44775    -- 4219869 Business Flow
44776    -- Update journal entry status -- Need to generate this within IF <condition>
44777    ----------------------------------------------------------------------------------
44778    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44779          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44780          ,p_balance_type_code => l_balance_type_code
44781          );
44782 
44783    -------------------------------------------------------------------------------------------
44784    -- 4262811 - Generate the Accrual Reversal lines
44785    -------------------------------------------------------------------------------------------
44786    BEGIN
44787       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44788                               (g_array_event(p_event_id).array_value_num('header_index'));
44789       IF l_acc_rev_flag IS NULL THEN
44790          l_acc_rev_flag := 'N';
44791       END IF;
44792    EXCEPTION
44793       WHEN OTHERS THEN
44794          l_acc_rev_flag := 'N';
44795    END;
44796    --
44797    IF (l_acc_rev_flag = 'Y') THEN
44798 
44799        -- 4645092  ------------------------------------------------------------------------------
44800        -- To allow MPA report to determine if it should generate report process
44801        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44802        ------------------------------------------------------------------------------------------
44803 
44804        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44805        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44806    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44807    -- call ADRs
44808    -- Bug 4922099
44809    --
44810    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44811         (NVL(l_actual_upg_option, 'N') = 'O') OR
44812         (NVL(l_enc_upg_option, 'N') = 'O')
44813       )
44814    THEN
44815    NULL;
44816    --
44817    --
44818    
44819   l_ccid := AcctDerRule_6(
44820            p_application_id           => p_application_id
44821          , p_ae_header_id             => l_ae_header_id 
44822 , p_source_6 => p_source_6
44823 , p_source_7 => p_source_7
44824 , p_source_7_meaning => p_source_7_meaning
44825 , p_source_8 => p_source_8
44826 , p_source_9 => p_source_9
44827 , p_source_9_meaning => p_source_9_meaning
44828 , p_source_10 => p_source_10
44829 , p_source_11 => p_source_11
44830 , p_source_12 => p_source_12
44831 , p_source_12_meaning => p_source_12_meaning
44832          , x_transaction_coa_id       => l_adr_transaction_coa_id
44836    );
44833          , x_accounting_coa_id        => l_adr_accounting_coa_id
44834          , x_value_type_code          => l_adr_value_type_code
44835          , p_side                     => 'NA'
44837 
44838    xla_ae_lines_pkg.set_ccid(
44839     p_code_combination_id          => l_ccid
44840   , p_value_type_code              => l_adr_value_type_code
44841   , p_transaction_coa_id           => l_adr_transaction_coa_id
44842   , p_accounting_coa_id            => l_adr_accounting_coa_id
44843   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
44844   , p_adr_type_code                => 'S'
44845   , p_component_type               => l_component_type
44846   , p_component_code               => l_component_code
44847   , p_component_type_code          => l_component_type_code
44848   , p_component_appl_id            => l_component_appl_id
44849   , p_amb_context_code             => l_amb_context_code
44850   , p_side                         => 'NA'
44851   );
44852 
44853 
44854    l_segment := AcctDerRule_4(
44855            p_application_id           => p_application_id
44856          , p_ae_header_id             => l_ae_header_id 
44857 , p_source_6 => p_source_6
44858 , p_source_7 => p_source_7
44859 , p_source_7_meaning => p_source_7_meaning
44860 , p_source_8 => p_source_8
44861 , p_source_9 => p_source_9
44862 , p_source_9_meaning => p_source_9_meaning
44863 , p_source_10 => p_source_10
44864          , x_transaction_coa_id       => l_adr_transaction_coa_id
44865          , x_accounting_coa_id        => l_adr_accounting_coa_id
44866          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
44867          , x_flex_value_set_id        => l_adr_flex_value_set_id
44868          , x_value_type_code          => l_adr_value_type_code
44869          , x_value_combination_id     => l_adr_value_combination_id
44870          , x_value_segment_code       => l_adr_value_segment_code
44871          , p_side                     => 'NA'
44872          , p_override_seg_flag        => 'Y'
44873    );
44874 
44875    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
44876 
44877       xla_ae_lines_pkg.set_segment(
44878           p_to_segment_code         => 'GL_ACCOUNT'
44879         , p_segment_value           => l_segment
44880         , p_from_segment_code       => l_adr_value_segment_code
44881         , p_from_combination_id     => l_adr_value_combination_id
44882         , p_value_type_code         => l_adr_value_type_code
44883         , p_transaction_coa_id      => l_adr_transaction_coa_id
44884         , p_accounting_coa_id       => l_adr_accounting_coa_id
44885         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
44886         , p_flex_value_set_id       => l_adr_flex_value_set_id
44887         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
44888         , p_adr_type_code           => 'S'
44889         , p_component_type          => l_component_type
44890         , p_component_code          => l_component_code
44891         , p_component_type_code     => l_component_type_code
44892         , p_component_appl_id       => l_component_appl_id
44893         , p_amb_context_code        => l_amb_context_code
44894         , p_entity_code             => 'AP_INVOICES'
44895         , p_event_class_code        => 'PREPAYMENTS'
44896         , p_side                    => 'NA'
44897         );
44898 
44899   END IF;
44900 
44901    l_segment := AcctDerRule_5(
44902            p_application_id           => p_application_id
44903          , p_ae_header_id             => l_ae_header_id 
44904 , p_source_7 => p_source_7
44905 , p_source_7_meaning => p_source_7_meaning
44906 , p_source_9 => p_source_9
44907 , p_source_9_meaning => p_source_9_meaning
44908 , p_source_11 => p_source_11
44909          , x_transaction_coa_id       => l_adr_transaction_coa_id
44910          , x_accounting_coa_id        => l_adr_accounting_coa_id
44911          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
44912          , x_flex_value_set_id        => l_adr_flex_value_set_id
44913          , x_value_type_code          => l_adr_value_type_code
44914          , x_value_combination_id     => l_adr_value_combination_id
44915          , x_value_segment_code       => l_adr_value_segment_code
44916          , p_side                     => 'NA'
44917          , p_override_seg_flag        => 'Y'
44918    );
44919 
44920    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
44921 
44922       xla_ae_lines_pkg.set_segment(
44923           p_to_segment_code         => 'GL_BALANCING'
44924         , p_segment_value           => l_segment
44925         , p_from_segment_code       => l_adr_value_segment_code
44926         , p_from_combination_id     => l_adr_value_combination_id
44927         , p_value_type_code         => l_adr_value_type_code
44928         , p_transaction_coa_id      => l_adr_transaction_coa_id
44929         , p_accounting_coa_id       => l_adr_accounting_coa_id
44930         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
44931         , p_flex_value_set_id       => l_adr_flex_value_set_id
44932         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
44933         , p_adr_type_code           => 'S'
44934         , p_component_type          => l_component_type
44935         , p_component_code          => l_component_code
44936         , p_component_type_code     => l_component_type_code
44937         , p_component_appl_id       => l_component_appl_id
44938         , p_amb_context_code        => l_amb_context_code
44939         , p_entity_code             => 'AP_INVOICES'
44940         , p_event_class_code        => 'PREPAYMENTS'
44944   END IF;
44941         , p_side                    => 'NA'
44942         );
44943 
44945 
44946    --
44947    --
44948    END IF;
44949 
44950        --
44951        -- Update the line information that should be overwritten
44952        --
44953        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44954                                          p_header_num   => 1);
44955        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44956 
44957        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44958 
44959        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44960           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44961        END IF;
44962 
44963       --
44964       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44965       --
44966       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44967           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44968       ELSE
44969           ---------------------------------------------------------------------------------------------------
44970           -- 4262811a Switch Sign
44971           ---------------------------------------------------------------------------------------------------
44972           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44973           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44974                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44975           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44976                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44977           -- 5132302
44978           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44979                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44980 
44981       END IF;
44982 
44983       -- 4955764
44984       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44985       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44986 
44987 
44988       XLA_AE_LINES_PKG.ValidateCurrentLine;
44989       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44990 
44991       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44992                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44993                ,p_balance_type_code => l_balance_type_code);
44994 
44995    END IF;
44996 
44997    -----------------------------------------------------------------------------------------
44998    -- 4262811 Multiperiod Accounting
44999    -----------------------------------------------------------------------------------------
45000      -- No MPA option is assigned.
45001 
45002 
45003 END IF;
45004 END IF;
45005 --
45006 
45007 --
45008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45009    trace
45010       (p_msg      => 'END of AcctLineType_72'
45011       ,p_level    => C_LEVEL_PROCEDURE
45012       ,p_module   => l_log_module);
45013 END IF;
45014 --
45015 EXCEPTION
45016   WHEN xla_exceptions_pkg.application_exception THEN
45017       RAISE;
45018   WHEN OTHERS THEN
45019        xla_exceptions_pkg.raise_message
45020            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_72');
45021 END AcctLineType_72;
45022 --
45023 
45024 ---------------------------------------
45025 --
45026 -- PRIVATE FUNCTION
45027 --         AcctLineType_73
45028 --
45029 ---------------------------------------
45030 PROCEDURE AcctLineType_73 (
45031   p_application_id        IN NUMBER
45032  ,p_event_id              IN NUMBER
45033  ,p_calculate_acctd_flag  IN VARCHAR2
45034  ,p_calculate_g_l_flag    IN VARCHAR2
45035  ,p_actual_flag           IN OUT VARCHAR2
45036  ,p_balance_type_code     OUT VARCHAR2
45037  ,p_gain_or_loss_ref      OUT VARCHAR2
45038  
45039 --Invoice Distribution Description
45040  , p_source_1            IN VARCHAR2
45041 --Invoice Distribution Account
45042  , p_source_11            IN NUMBER
45043 --Invoice Distribution Type
45044  , p_source_15            IN VARCHAR2
45045  , p_source_15_meaning    IN VARCHAR2
45046 --Purchasing Encumbrance Option
45047  , p_source_17            IN VARCHAR2
45048  , p_source_17_meaning    IN VARCHAR2
45049 --Accounting Reversal Indicator
45050  , p_source_19            IN VARCHAR2
45051 --Distribution Link Type
45052  , p_source_21            IN VARCHAR2
45053 --Allocation to Main Distribution Identifier
45054  , p_source_23            IN NUMBER
45055 --Invoice Identifier
45056  , p_source_24            IN NUMBER
45057 --Business Flow Accounts Payable Application Identifier
45058  , p_source_25            IN NUMBER
45059 --Business Flow Invoice Distribution Type
45060  , p_source_26            IN VARCHAR2
45061 --Business Flow Invoice Entity Code
45062  , p_source_27            IN VARCHAR2
45063 --Business Flow Invoice Distribution Identifier
45064  , p_source_28            IN NUMBER
45068  , p_source_30            IN NUMBER
45065 --Business Flow Invoice Identifier
45066  , p_source_29            IN NUMBER
45067 --Invoice Distribution Identifier
45069 --Payables Encumbrance Upgrade Credit Account
45070  , p_source_31            IN NUMBER
45071 --Payables Encumbrance Upgrade Credit Amount
45072  , p_source_32            IN NUMBER
45073 --Invoice Currency Code
45074  , p_source_33            IN VARCHAR2
45075 --Payables Encumbrance Upgrade Credit Base Amount
45076  , p_source_34            IN NUMBER
45077 --Payables Encumbrance Upgrade Debit Account
45078  , p_source_35            IN NUMBER
45079 --Payables Encumbrance Upgrade Debit Amount
45080  , p_source_36            IN NUMBER
45081 --Payables Encumbrance Upgrade Debit Base Amount
45082  , p_source_37            IN NUMBER
45083 --Payables Encumbrance Upgrade Option
45084  , p_source_38            IN VARCHAR2
45085 --Invoice Exchange Date
45086  , p_source_39            IN DATE
45087 --Invoice Exchange Rate
45088  , p_source_40            IN NUMBER
45089 --Invoice Exchange Rate Type
45090  , p_source_41            IN VARCHAR2
45091 --Deferred Accounting End Date
45092  , p_source_43            IN DATE
45093 --Deferred Accounting Option
45094  , p_source_44            IN VARCHAR2
45095 --Deferred Accounting Start Date
45096  , p_source_45            IN DATE
45097 --Override Accounted Amount Indicator
45098  , p_source_46            IN VARCHAR2
45099  , p_source_46_meaning    IN VARCHAR2
45100 --Invoice Supplier Identifier
45101  , p_source_47            IN NUMBER
45102 --Invoice Supplier Site Identifier
45103  , p_source_48            IN NUMBER
45104 --Third Party Type
45105  , p_source_49            IN VARCHAR2
45106 --Parent Reversal Identifier
45107  , p_source_50            IN NUMBER
45108 --Invoice Distribution Statistical Amount
45109  , p_source_51            IN NUMBER
45110 --Invoice Distribution Tax Line Identifier
45111  , p_source_52            IN NUMBER
45112 --Invoice Distribution Tax Distribution Identifier from Tax
45113  , p_source_53            IN NUMBER
45114 --Invoice Distribution Summary Tax Line Identifier
45115  , p_source_54            IN NUMBER
45116 --Payables Upgrade Credit Encumbrance Type Identifier
45117  , p_source_55            IN NUMBER
45118 --Payables Upgrade Debit Encumbrance Type Identifier
45119  , p_source_56            IN NUMBER
45120 --Invoice Distribution Encumbrance Amount
45121  , p_source_65            IN NUMBER
45122 --Invoice Distribution Encumbrance Ledger Amount
45123  , p_source_66            IN NUMBER
45124 )
45125 IS
45126 
45127 l_component_type              VARCHAR2(80);
45128 l_component_code              VARCHAR2(30);
45129 l_component_type_code         VARCHAR2(1);
45130 l_component_appl_id           INTEGER;
45131 l_amb_context_code            VARCHAR2(30);
45132 l_entity_code                 VARCHAR2(30);
45133 l_event_class_code            VARCHAR2(30);
45134 l_ae_header_id                NUMBER;
45135 l_event_type_code             VARCHAR2(30);
45136 l_line_definition_code        VARCHAR2(30);
45137 l_line_definition_owner_code  VARCHAR2(1);
45138 --
45139 -- adr variables
45140 l_segment                     VARCHAR2(30);
45141 l_ccid                        NUMBER;
45142 l_adr_transaction_coa_id      NUMBER;
45143 l_adr_accounting_coa_id       NUMBER;
45144 l_adr_flexfield_segment_code  VARCHAR2(30);
45145 l_adr_flex_value_set_id       NUMBER;
45146 l_adr_value_type_code         VARCHAR2(30);
45147 l_adr_value_combination_id    NUMBER;
45148 l_adr_value_segment_code      VARCHAR2(30);
45149 
45150 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45151 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45152 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45153 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45154 
45155 -- 4262811 Variables ------------------------------------------------------------------------------------------
45156 l_entered_amt_idx             NUMBER;
45157 l_accted_amt_idx              NUMBER;
45158 l_acc_rev_flag                VARCHAR2(1);
45159 l_accrual_line_num            NUMBER;
45160 l_tmp_amt                     NUMBER;
45161 l_acc_rev_natural_side_code   VARCHAR2(1);
45162 
45163 l_num_entries                 NUMBER;
45164 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45165 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45166 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45167 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45168 l_recog_line_1                NUMBER;
45169 l_recog_line_2                NUMBER;
45170 
45171 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45172 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45173 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45174 
45175 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45176 
45177 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45178 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45179 
45180 ---------------------------------------------------------------------------------------------------------------
45181 
45182 
45183 --
45184 -- bulk performance
45185 --
45189 
45186 l_balance_type_code           VARCHAR2(1);
45187 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45188 l_log_module                  VARCHAR2(240);
45190 --
45191 -- Upgrade strategy
45192 --
45193 l_actual_upg_option           VARCHAR2(1);
45194 l_enc_upg_option           VARCHAR2(1);
45195 
45196 --
45197 BEGIN
45198 --
45199 IF g_log_enabled THEN
45200       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
45201 END IF;
45202 --
45203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45204 
45205       trace
45206          (p_msg      => 'BEGIN of AcctLineType_73'
45207          ,p_level    => C_LEVEL_PROCEDURE
45208          ,p_module   => l_log_module);
45209 
45210 END IF;
45211 --
45212 l_component_type             := 'AMB_JLT';
45213 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM_ENC_DR';
45214 l_component_type_code        := 'S';
45215 l_component_appl_id          :=  200;
45216 l_amb_context_code           := 'DEFAULT';
45217 l_entity_code                := 'AP_INVOICES';
45218 l_event_class_code           := 'CREDIT MEMOS';
45219 l_event_type_code            := 'CREDIT MEMOS_ALL';
45220 l_line_definition_owner_code := 'S';
45221 l_line_definition_code       := 'ENC_CM_ALL';
45222 --
45223 l_balance_type_code          := 'E';
45224 l_segment                     := NULL;
45225 l_ccid                        := NULL;
45226 l_adr_transaction_coa_id      := NULL;
45227 l_adr_accounting_coa_id       := NULL;
45228 l_adr_flexfield_segment_code  := NULL;
45229 l_adr_flex_value_set_id       := NULL;
45230 l_adr_value_type_code         := NULL;
45231 l_adr_value_combination_id    := NULL;
45232 l_adr_value_segment_code      := NULL;
45233 
45234 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45235 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
45236 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45237 l_budgetary_control_flag     := 'Y';
45238 
45239 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45240 l_bflow_applied_to_amt       := NULL; -- 5132302
45241 l_entered_amt_idx            := NULL;          -- 4262811
45242 l_accted_amt_idx             := NULL;          -- 4262811
45243 l_acc_rev_flag               := NULL;          -- 4262811
45244 l_accrual_line_num           := NULL;          -- 4262811
45245 l_tmp_amt                    := NULL;          -- 4262811
45246 --
45247  
45248 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45249     l_balance_type_code <> 'B' THEN
45250 IF NVL(p_source_15,'
45251 ') =  'TIPV' AND 
45252 NVL(p_source_17,'
45253 ') =  'Y'
45254  THEN 
45255 
45256    --
45257    XLA_AE_LINES_PKG.SetNewLine;
45258 
45259    p_balance_type_code          := l_balance_type_code;
45260    -- set the flag so later we will know whether the gain loss line needs to be created
45261    
45262    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45263      p_actual_flag :='A';
45264    END IF;
45265 
45266    --
45267    -- bulk performance
45268    --
45269    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45270                                       p_header_num   => 0); -- 4262811
45271    --
45272    -- set accounting line options
45273    --
45274    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45275            p_natural_side_code          => 'D'
45276          , p_gain_or_loss_flag          => 'N'
45277          , p_gl_transfer_mode_code      => 'S'
45278          , p_acct_entry_type_code       => 'E'
45279          , p_switch_side_flag           => 'Y'
45280          , p_merge_duplicate_code       => 'N'
45281          );
45282    --
45283    l_acc_rev_natural_side_code := 'C';  -- 4262811
45284    -- 
45285    --
45286    -- set accounting line type info
45287    --
45288    xla_ae_lines_pkg.SetAcctLineType
45289       (p_component_type             => l_component_type
45290       ,p_event_type_code            => l_event_type_code
45291       ,p_line_definition_owner_code => l_line_definition_owner_code
45292       ,p_line_definition_code       => l_line_definition_code
45293       ,p_accounting_line_code       => l_component_code
45294       ,p_accounting_line_type_code  => l_component_type_code
45295       ,p_accounting_line_appl_id    => l_component_appl_id
45296       ,p_amb_context_code           => l_amb_context_code
45297       ,p_entity_code                => l_entity_code
45298       ,p_event_class_code           => l_event_class_code);
45299    --
45300    -- set accounting class
45301    --
45302    xla_ae_lines_pkg.SetAcctClass(
45303            p_accounting_class_code  => 'TIPV'
45304          , p_ae_header_id           => l_ae_header_id
45305          );
45306 
45307    --
45308    -- set rounding class
45309    --
45310    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45311                       'TIPV';
45312 
45313    --
45314    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45315    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45316    --
45317    -- bulk performance
45318    --
45319    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45320 
45321    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45325    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45322       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45323 
45324    -- 4955764
45326       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45327 
45328    -- 4458381 Public Sector Enh
45329       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
45330    --
45331    -- set accounting attributes for the line type
45332    --
45333    l_entered_amt_idx := 23;
45334    l_accted_amt_idx  := 28;
45335    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
45336    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45337    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
45338    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
45339    l_rec_acct_attrs.array_num_value(2)  := 
45340 xla_ae_sources_pkg.GetSystemSourceNum(
45341    p_source_code           => 'XLA_EVENT_APPL_ID'
45342  , p_source_type_code      => 'Y'
45343  , p_source_application_id =>  602
45344 );
45345    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
45346    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
45347    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
45348    l_rec_acct_attrs.array_char_value(4)  := 
45349 xla_ae_sources_pkg.GetSystemSourceChar(
45350    p_source_code           => 'XLA_ENTITY_CODE'
45351  , p_source_type_code      => 'Y'
45352  , p_source_application_id =>  602
45353 );
45354    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
45355    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
45356    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
45357    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
45358    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
45359    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
45360    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45361    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
45362    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
45363    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
45364    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
45365    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
45366    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45367    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
45368    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
45369    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
45370    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
45371    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
45372    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
45373    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
45374    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
45375    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
45376    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
45377    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
45378    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
45379    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
45380    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
45381    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
45382    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
45383    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
45384    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
45385    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
45386    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
45387    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
45388    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
45389    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
45390    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
45391    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
45392    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
45393    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
45394    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
45395    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
45396    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
45397    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
45398    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
45399    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
45400    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
45401    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
45402    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
45403    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
45404    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
45405    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
45406    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
45407    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
45408    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
45409    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
45410    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
45411    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
45412    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
45416    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
45413    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
45414    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
45415    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
45417    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
45418    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
45419    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
45420    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
45421    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
45422    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
45423    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
45424    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
45425    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
45426    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
45427    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
45428    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
45429    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
45430    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
45431    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
45432 
45433    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45434    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45435 
45436    ---------------------------------------------------------------------------------------------------------------
45437    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45438    ---------------------------------------------------------------------------------------------------------------
45439    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45440 
45441    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45442    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45443 
45444    IF xla_accounting_cache_pkg.GetValueChar
45445          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45446          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45447    AND l_bflow_method_code = 'PRIOR_ENTRY'
45448 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45449    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45450          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45451        )
45452    THEN
45453          xla_ae_lines_pkg.BflowUpgEntry
45454            (p_business_method_code    => l_bflow_method_code
45455            ,p_business_class_code     => l_bflow_class_code
45456            ,p_balance_type            => l_balance_type_code);
45457    ELSE
45458       NULL;
45459 -- No business flow processing for business flow method of NONE.
45460    END IF;
45461 
45462    --
45463    -- call analytical criteria
45464    --
45465    
45466    --
45467    -- call description
45468    --
45469    
45470 xla_ae_lines_pkg.SetLineDescription(
45471    p_ae_header_id => l_ae_header_id
45472   ,p_description  => Description_2 (
45473      p_application_id         => p_application_id
45474    , p_ae_header_id           => l_ae_header_id 
45475 , p_source_1 => p_source_1
45476    )
45477 );
45478 
45479 
45480    --
45481    -- call ADRs
45482    -- Bug 4922099
45483    --
45484    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45485         (NVL(l_actual_upg_option, 'N') = 'O') OR
45486         (NVL(l_enc_upg_option, 'N') = 'O')
45487       )
45488    THEN
45489    NULL;
45490    --
45491    --
45492    
45493   l_ccid := AcctDerRule_7(
45494            p_application_id           => p_application_id
45495          , p_ae_header_id             => l_ae_header_id 
45496 , p_source_11 => p_source_11
45497          , x_transaction_coa_id       => l_adr_transaction_coa_id
45498          , x_accounting_coa_id        => l_adr_accounting_coa_id
45499          , x_value_type_code          => l_adr_value_type_code
45500          , p_side                     => 'NA'
45501    );
45502 
45503    xla_ae_lines_pkg.set_ccid(
45504     p_code_combination_id          => l_ccid
45505   , p_value_type_code              => l_adr_value_type_code
45506   , p_transaction_coa_id           => l_adr_transaction_coa_id
45507   , p_accounting_coa_id            => l_adr_accounting_coa_id
45508   , p_adr_code                     => 'AP_INVOICE_DIST'
45509   , p_adr_type_code                => 'S'
45510   , p_component_type               => l_component_type
45511   , p_component_code               => l_component_code
45512   , p_component_type_code          => l_component_type_code
45513   , p_component_appl_id            => l_component_appl_id
45514   , p_amb_context_code             => l_amb_context_code
45515   , p_side                         => 'NA'
45516   );
45517 
45518 
45519    --
45520    --
45521    END IF;
45522    --
45523    -- Bug 4922099
45524    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45525           (NVL(l_enc_upg_option, 'N') = 'O')
45526         ) AND
45527         (l_bflow_method_code = 'PRIOR_ENTRY')
45528       )
45529    THEN
45530       IF
45531       --
45532       1 = 2
45533       --
45534       THEN
45535       xla_accounting_err_pkg.build_message
45536                                     (p_appli_s_name            => 'XLA'
45540                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45537                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45538                                     ,p_token_1                 => 'LINE_NUMBER'
45539                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45541                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45542                                                                              l_component_type
45543                                                                             ,l_component_code
45544                                                                             ,l_component_type_code
45545                                                                             ,l_component_appl_id
45546                                                                             ,l_amb_context_code
45547                                                                             ,l_entity_code
45548                                                                             ,l_event_class_code
45549                                                                            )
45550                                     ,p_token_3                 => 'OWNER'
45551                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45552                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45553                                                                           ,p_lookup_code    => l_component_type_code
45554                                                                          )
45555                                     ,p_token_4                 => 'PRODUCT_NAME'
45556                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45557                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45558                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45559                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45560                                     ,p_ae_header_id            =>  NULL
45561                                        );
45562 
45563         IF (C_LEVEL_ERROR>= g_log_level) THEN
45564                  trace
45565                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45566                       ,p_level    => C_LEVEL_ERROR
45567                       ,p_module   => l_log_module);
45568         END IF;
45569       END IF;
45570    END IF;
45571    --
45572    --
45573    ------------------------------------------------------------------------------------------------
45574    -- 4219869 Business Flow
45575    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45576    -- Prior Entry.  Currently, the following code is always generated.
45577    ------------------------------------------------------------------------------------------------
45578    XLA_AE_LINES_PKG.ValidateCurrentLine;
45579 
45580    ------------------------------------------------------------------------------------
45581    -- 4219869 Business Flow
45582    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45583    ------------------------------------------------------------------------------------
45584    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45585 
45586    ----------------------------------------------------------------------------------
45587    -- 4219869 Business Flow
45588    -- Update journal entry status -- Need to generate this within IF <condition>
45589    ----------------------------------------------------------------------------------
45590    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45591          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45592          ,p_balance_type_code => l_balance_type_code
45593          );
45594 
45595    -------------------------------------------------------------------------------------------
45596    -- 4262811 - Generate the Accrual Reversal lines
45597    -------------------------------------------------------------------------------------------
45598    BEGIN
45599       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45600                               (g_array_event(p_event_id).array_value_num('header_index'));
45601       IF l_acc_rev_flag IS NULL THEN
45602          l_acc_rev_flag := 'N';
45603       END IF;
45604    EXCEPTION
45605       WHEN OTHERS THEN
45606          l_acc_rev_flag := 'N';
45607    END;
45608    --
45609    IF (l_acc_rev_flag = 'Y') THEN
45610 
45611        -- 4645092  ------------------------------------------------------------------------------
45612        -- To allow MPA report to determine if it should generate report process
45613        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45614        ------------------------------------------------------------------------------------------
45615 
45616        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45617        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45618    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45619    -- call ADRs
45620    -- Bug 4922099
45621    --
45622    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45623         (NVL(l_actual_upg_option, 'N') = 'O') OR
45624         (NVL(l_enc_upg_option, 'N') = 'O')
45625       )
45626    THEN
45630    
45627    NULL;
45628    --
45629    --
45631   l_ccid := AcctDerRule_7(
45632            p_application_id           => p_application_id
45633          , p_ae_header_id             => l_ae_header_id 
45634 , p_source_11 => p_source_11
45635          , x_transaction_coa_id       => l_adr_transaction_coa_id
45636          , x_accounting_coa_id        => l_adr_accounting_coa_id
45637          , x_value_type_code          => l_adr_value_type_code
45638          , p_side                     => 'NA'
45639    );
45640 
45641    xla_ae_lines_pkg.set_ccid(
45642     p_code_combination_id          => l_ccid
45643   , p_value_type_code              => l_adr_value_type_code
45644   , p_transaction_coa_id           => l_adr_transaction_coa_id
45645   , p_accounting_coa_id            => l_adr_accounting_coa_id
45646   , p_adr_code                     => 'AP_INVOICE_DIST'
45647   , p_adr_type_code                => 'S'
45648   , p_component_type               => l_component_type
45649   , p_component_code               => l_component_code
45650   , p_component_type_code          => l_component_type_code
45651   , p_component_appl_id            => l_component_appl_id
45652   , p_amb_context_code             => l_amb_context_code
45653   , p_side                         => 'NA'
45654   );
45655 
45656 
45657    --
45658    --
45659    END IF;
45660 
45661        --
45662        -- Update the line information that should be overwritten
45663        --
45664        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45665                                          p_header_num   => 1);
45666        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45667 
45668        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45669 
45670        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45671           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45672        END IF;
45673 
45674       --
45675       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45676       --
45677       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45678           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45679       ELSE
45680           ---------------------------------------------------------------------------------------------------
45681           -- 4262811a Switch Sign
45682           ---------------------------------------------------------------------------------------------------
45683           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45684           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45685                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45686           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45687                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45688           -- 5132302
45689           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45690                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45691 
45692       END IF;
45693 
45694       -- 4955764
45695       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45696       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45697 
45698 
45699       XLA_AE_LINES_PKG.ValidateCurrentLine;
45700       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45701 
45702       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45703                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45704                ,p_balance_type_code => l_balance_type_code);
45705 
45706    END IF;
45707 
45708    -----------------------------------------------------------------------------------------
45709    -- 4262811 Multiperiod Accounting
45710    -----------------------------------------------------------------------------------------
45711      -- No MPA option is assigned.
45712 
45713 
45714 END IF;
45715 END IF;
45716 --
45717 
45718 --
45719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45720    trace
45721       (p_msg      => 'END of AcctLineType_73'
45722       ,p_level    => C_LEVEL_PROCEDURE
45723       ,p_module   => l_log_module);
45724 END IF;
45725 --
45726 EXCEPTION
45727   WHEN xla_exceptions_pkg.application_exception THEN
45728       RAISE;
45729   WHEN OTHERS THEN
45730        xla_exceptions_pkg.raise_message
45731            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_73');
45732 END AcctLineType_73;
45733 --
45734 
45735 ---------------------------------------
45736 --
45737 -- PRIVATE FUNCTION
45738 --         AcctLineType_74
45739 --
45740 ---------------------------------------
45741 PROCEDURE AcctLineType_74 (
45742   p_application_id        IN NUMBER
45743  ,p_event_id              IN NUMBER
45744  ,p_calculate_acctd_flag  IN VARCHAR2
45745  ,p_calculate_g_l_flag    IN VARCHAR2
45746  ,p_actual_flag           IN OUT VARCHAR2
45747  ,p_balance_type_code     OUT VARCHAR2
45751  , p_source_1            IN VARCHAR2
45748  ,p_gain_or_loss_ref      OUT VARCHAR2
45749  
45750 --Invoice Distribution Description
45752 --Invoice Distribution Account
45753  , p_source_11            IN NUMBER
45754 --Invoice Distribution Type
45755  , p_source_15            IN VARCHAR2
45756  , p_source_15_meaning    IN VARCHAR2
45757 --Purchasing Encumbrance Option
45758  , p_source_17            IN VARCHAR2
45759  , p_source_17_meaning    IN VARCHAR2
45760 --Accounting Reversal Indicator
45761  , p_source_19            IN VARCHAR2
45762 --Distribution Link Type
45763  , p_source_21            IN VARCHAR2
45764 --Allocation to Main Distribution Identifier
45765  , p_source_23            IN NUMBER
45766 --Invoice Identifier
45767  , p_source_24            IN NUMBER
45768 --Business Flow Accounts Payable Application Identifier
45769  , p_source_25            IN NUMBER
45770 --Business Flow Invoice Distribution Type
45771  , p_source_26            IN VARCHAR2
45772 --Business Flow Invoice Entity Code
45773  , p_source_27            IN VARCHAR2
45774 --Business Flow Invoice Distribution Identifier
45775  , p_source_28            IN NUMBER
45776 --Business Flow Invoice Identifier
45777  , p_source_29            IN NUMBER
45778 --Invoice Distribution Identifier
45779  , p_source_30            IN NUMBER
45780 --Payables Encumbrance Upgrade Credit Account
45781  , p_source_31            IN NUMBER
45782 --Payables Encumbrance Upgrade Credit Amount
45783  , p_source_32            IN NUMBER
45784 --Invoice Currency Code
45785  , p_source_33            IN VARCHAR2
45786 --Payables Encumbrance Upgrade Credit Base Amount
45787  , p_source_34            IN NUMBER
45788 --Payables Encumbrance Upgrade Debit Account
45789  , p_source_35            IN NUMBER
45790 --Payables Encumbrance Upgrade Debit Amount
45791  , p_source_36            IN NUMBER
45792 --Payables Encumbrance Upgrade Debit Base Amount
45793  , p_source_37            IN NUMBER
45794 --Payables Encumbrance Upgrade Option
45795  , p_source_38            IN VARCHAR2
45796 --Invoice Exchange Date
45797  , p_source_39            IN DATE
45798 --Invoice Exchange Rate
45799  , p_source_40            IN NUMBER
45800 --Invoice Exchange Rate Type
45801  , p_source_41            IN VARCHAR2
45802 --Deferred Accounting End Date
45803  , p_source_43            IN DATE
45804 --Deferred Accounting Option
45805  , p_source_44            IN VARCHAR2
45806 --Deferred Accounting Start Date
45807  , p_source_45            IN DATE
45808 --Override Accounted Amount Indicator
45809  , p_source_46            IN VARCHAR2
45810  , p_source_46_meaning    IN VARCHAR2
45811 --Invoice Supplier Identifier
45812  , p_source_47            IN NUMBER
45813 --Invoice Supplier Site Identifier
45814  , p_source_48            IN NUMBER
45815 --Third Party Type
45816  , p_source_49            IN VARCHAR2
45817 --Parent Reversal Identifier
45818  , p_source_50            IN NUMBER
45819 --Invoice Distribution Tax Line Identifier
45820  , p_source_52            IN NUMBER
45821 --Invoice Distribution Tax Distribution Identifier from Tax
45822  , p_source_53            IN NUMBER
45823 --Invoice Distribution Summary Tax Line Identifier
45824  , p_source_54            IN NUMBER
45825 --Payables Upgrade Credit Encumbrance Type Identifier
45826  , p_source_55            IN NUMBER
45827 --Payables Upgrade Debit Encumbrance Type Identifier
45828  , p_source_56            IN NUMBER
45829 --Invoice Distribution Encumbrance Amount
45830  , p_source_65            IN NUMBER
45831 --Invoice Distribution Encumbrance Ledger Amount
45832  , p_source_66            IN NUMBER
45833 )
45834 IS
45835 
45836 l_component_type              VARCHAR2(80);
45837 l_component_code              VARCHAR2(30);
45838 l_component_type_code         VARCHAR2(1);
45839 l_component_appl_id           INTEGER;
45840 l_amb_context_code            VARCHAR2(30);
45841 l_entity_code                 VARCHAR2(30);
45842 l_event_class_code            VARCHAR2(30);
45843 l_ae_header_id                NUMBER;
45844 l_event_type_code             VARCHAR2(30);
45845 l_line_definition_code        VARCHAR2(30);
45846 l_line_definition_owner_code  VARCHAR2(1);
45847 --
45848 -- adr variables
45849 l_segment                     VARCHAR2(30);
45850 l_ccid                        NUMBER;
45851 l_adr_transaction_coa_id      NUMBER;
45852 l_adr_accounting_coa_id       NUMBER;
45853 l_adr_flexfield_segment_code  VARCHAR2(30);
45854 l_adr_flex_value_set_id       NUMBER;
45855 l_adr_value_type_code         VARCHAR2(30);
45856 l_adr_value_combination_id    NUMBER;
45857 l_adr_value_segment_code      VARCHAR2(30);
45858 
45859 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45860 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45861 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45862 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45863 
45864 -- 4262811 Variables ------------------------------------------------------------------------------------------
45865 l_entered_amt_idx             NUMBER;
45866 l_accted_amt_idx              NUMBER;
45867 l_acc_rev_flag                VARCHAR2(1);
45868 l_accrual_line_num            NUMBER;
45869 l_tmp_amt                     NUMBER;
45870 l_acc_rev_natural_side_code   VARCHAR2(1);
45871 
45872 l_num_entries                 NUMBER;
45876 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45873 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45874 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45875 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45877 l_recog_line_1                NUMBER;
45878 l_recog_line_2                NUMBER;
45879 
45880 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45881 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45882 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45883 
45884 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45885 
45886 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45887 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45888 
45889 ---------------------------------------------------------------------------------------------------------------
45890 
45891 
45892 --
45893 -- bulk performance
45894 --
45895 l_balance_type_code           VARCHAR2(1);
45896 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45897 l_log_module                  VARCHAR2(240);
45898 
45899 --
45900 -- Upgrade strategy
45901 --
45902 l_actual_upg_option           VARCHAR2(1);
45903 l_enc_upg_option           VARCHAR2(1);
45904 
45905 --
45906 BEGIN
45907 --
45908 IF g_log_enabled THEN
45909       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
45910 END IF;
45911 --
45912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45913 
45914       trace
45915          (p_msg      => 'BEGIN of AcctLineType_74'
45916          ,p_level    => C_LEVEL_PROCEDURE
45917          ,p_module   => l_log_module);
45918 
45919 END IF;
45920 --
45921 l_component_type             := 'AMB_JLT';
45922 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM_ENC_DR';
45923 l_component_type_code        := 'S';
45924 l_component_appl_id          :=  200;
45925 l_amb_context_code           := 'DEFAULT';
45926 l_entity_code                := 'AP_INVOICES';
45927 l_event_class_code           := 'DEBIT MEMOS';
45928 l_event_type_code            := 'DEBIT MEMOS_ALL';
45929 l_line_definition_owner_code := 'S';
45930 l_line_definition_code       := 'ENC_DM_ALL';
45931 --
45932 l_balance_type_code          := 'E';
45933 l_segment                     := NULL;
45934 l_ccid                        := NULL;
45935 l_adr_transaction_coa_id      := NULL;
45936 l_adr_accounting_coa_id       := NULL;
45937 l_adr_flexfield_segment_code  := NULL;
45938 l_adr_flex_value_set_id       := NULL;
45939 l_adr_value_type_code         := NULL;
45940 l_adr_value_combination_id    := NULL;
45941 l_adr_value_segment_code      := NULL;
45942 
45943 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45944 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
45945 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45946 l_budgetary_control_flag     := 'Y';
45947 
45948 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45949 l_bflow_applied_to_amt       := NULL; -- 5132302
45950 l_entered_amt_idx            := NULL;          -- 4262811
45951 l_accted_amt_idx             := NULL;          -- 4262811
45952 l_acc_rev_flag               := NULL;          -- 4262811
45953 l_accrual_line_num           := NULL;          -- 4262811
45954 l_tmp_amt                    := NULL;          -- 4262811
45955 --
45956  
45957 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45958     l_balance_type_code <> 'B' THEN
45959 IF NVL(p_source_15,'
45960 ') =  'TIPV' AND 
45961 NVL(p_source_17,'
45962 ') =  'Y'
45963  THEN 
45964 
45965    --
45966    XLA_AE_LINES_PKG.SetNewLine;
45967 
45968    p_balance_type_code          := l_balance_type_code;
45969    -- set the flag so later we will know whether the gain loss line needs to be created
45970    
45971    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45972      p_actual_flag :='A';
45973    END IF;
45974 
45975    --
45976    -- bulk performance
45977    --
45978    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45979                                       p_header_num   => 0); -- 4262811
45980    --
45981    -- set accounting line options
45982    --
45983    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45984            p_natural_side_code          => 'D'
45985          , p_gain_or_loss_flag          => 'N'
45986          , p_gl_transfer_mode_code      => 'S'
45987          , p_acct_entry_type_code       => 'E'
45988          , p_switch_side_flag           => 'Y'
45989          , p_merge_duplicate_code       => 'N'
45990          );
45991    --
45992    l_acc_rev_natural_side_code := 'C';  -- 4262811
45993    -- 
45994    --
45995    -- set accounting line type info
45996    --
45997    xla_ae_lines_pkg.SetAcctLineType
45998       (p_component_type             => l_component_type
45999       ,p_event_type_code            => l_event_type_code
46000       ,p_line_definition_owner_code => l_line_definition_owner_code
46001       ,p_line_definition_code       => l_line_definition_code
46002       ,p_accounting_line_code       => l_component_code
46003       ,p_accounting_line_type_code  => l_component_type_code
46004       ,p_accounting_line_appl_id    => l_component_appl_id
46008    --
46005       ,p_amb_context_code           => l_amb_context_code
46006       ,p_entity_code                => l_entity_code
46007       ,p_event_class_code           => l_event_class_code);
46009    -- set accounting class
46010    --
46011    xla_ae_lines_pkg.SetAcctClass(
46012            p_accounting_class_code  => 'TIPV'
46013          , p_ae_header_id           => l_ae_header_id
46014          );
46015 
46016    --
46017    -- set rounding class
46018    --
46019    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46020                       'TIPV';
46021 
46022    --
46023    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46024    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46025    --
46026    -- bulk performance
46027    --
46028    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46029 
46030    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46031       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46032 
46033    -- 4955764
46034    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46035       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46036 
46037    -- 4458381 Public Sector Enh
46038       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
46039    --
46040    -- set accounting attributes for the line type
46041    --
46042    l_entered_amt_idx := 23;
46043    l_accted_amt_idx  := 28;
46044    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46045    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46046    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
46047    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46048    l_rec_acct_attrs.array_num_value(2)  := 
46049 xla_ae_sources_pkg.GetSystemSourceNum(
46050    p_source_code           => 'XLA_EVENT_APPL_ID'
46051  , p_source_type_code      => 'Y'
46052  , p_source_application_id =>  602
46053 );
46054    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46055    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
46056    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46057    l_rec_acct_attrs.array_char_value(4)  := 
46058 xla_ae_sources_pkg.GetSystemSourceChar(
46059    p_source_code           => 'XLA_ENTITY_CODE'
46060  , p_source_type_code      => 'Y'
46061  , p_source_application_id =>  602
46062 );
46063    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46064    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
46065    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46066    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
46067    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46068    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
46069    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46070    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
46071    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46072    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
46073    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46074    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
46075    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46076    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
46077    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46078    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
46079    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46080    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
46081    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
46082    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
46083    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
46084    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
46085    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
46086    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
46087    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
46088    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
46089    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
46090    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
46091    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
46092    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
46093    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
46094    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
46095    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
46096    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
46097    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
46098    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
46099    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
46100    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
46101    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
46102    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
46103    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
46104    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
46108    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
46105    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
46106    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
46107    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
46109    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
46110    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
46111    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
46112    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
46113    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
46114    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
46115    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
46116    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
46117    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
46118    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
46119    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
46120    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
46121    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
46122    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
46123    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
46124    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
46125    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
46126    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
46127    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
46128    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
46129    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
46130    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
46131    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
46132    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
46133    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
46134    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
46135    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
46136    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
46137    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
46138    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
46139 
46140    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46141    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46142 
46143    ---------------------------------------------------------------------------------------------------------------
46144    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46145    ---------------------------------------------------------------------------------------------------------------
46146    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46147 
46148    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46149    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46150 
46151    IF xla_accounting_cache_pkg.GetValueChar
46152          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46153          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46154    AND l_bflow_method_code = 'PRIOR_ENTRY'
46155 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46156    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46157          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46158        )
46159    THEN
46160          xla_ae_lines_pkg.BflowUpgEntry
46161            (p_business_method_code    => l_bflow_method_code
46162            ,p_business_class_code     => l_bflow_class_code
46163            ,p_balance_type            => l_balance_type_code);
46164    ELSE
46165       NULL;
46166 -- No business flow processing for business flow method of NONE.
46167    END IF;
46168 
46169    --
46170    -- call analytical criteria
46171    --
46172    
46173    --
46174    -- call description
46175    --
46176    
46177 xla_ae_lines_pkg.SetLineDescription(
46178    p_ae_header_id => l_ae_header_id
46179   ,p_description  => Description_2 (
46180      p_application_id         => p_application_id
46181    , p_ae_header_id           => l_ae_header_id 
46182 , p_source_1 => p_source_1
46183    )
46184 );
46185 
46186 
46187    --
46188    -- call ADRs
46189    -- Bug 4922099
46190    --
46191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46192         (NVL(l_actual_upg_option, 'N') = 'O') OR
46193         (NVL(l_enc_upg_option, 'N') = 'O')
46194       )
46195    THEN
46196    NULL;
46197    --
46198    --
46199    
46200   l_ccid := AcctDerRule_7(
46201            p_application_id           => p_application_id
46202          , p_ae_header_id             => l_ae_header_id 
46203 , p_source_11 => p_source_11
46204          , x_transaction_coa_id       => l_adr_transaction_coa_id
46205          , x_accounting_coa_id        => l_adr_accounting_coa_id
46206          , x_value_type_code          => l_adr_value_type_code
46207          , p_side                     => 'NA'
46208    );
46209 
46210    xla_ae_lines_pkg.set_ccid(
46211     p_code_combination_id          => l_ccid
46212   , p_value_type_code              => l_adr_value_type_code
46213   , p_transaction_coa_id           => l_adr_transaction_coa_id
46214   , p_accounting_coa_id            => l_adr_accounting_coa_id
46215   , p_adr_code                     => 'AP_INVOICE_DIST'
46219   , p_component_type_code          => l_component_type_code
46216   , p_adr_type_code                => 'S'
46217   , p_component_type               => l_component_type
46218   , p_component_code               => l_component_code
46220   , p_component_appl_id            => l_component_appl_id
46221   , p_amb_context_code             => l_amb_context_code
46222   , p_side                         => 'NA'
46223   );
46224 
46225 
46226    --
46227    --
46228    END IF;
46229    --
46230    -- Bug 4922099
46231    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46232           (NVL(l_enc_upg_option, 'N') = 'O')
46233         ) AND
46234         (l_bflow_method_code = 'PRIOR_ENTRY')
46235       )
46236    THEN
46237       IF
46238       --
46239       1 = 2
46240       --
46241       THEN
46242       xla_accounting_err_pkg.build_message
46243                                     (p_appli_s_name            => 'XLA'
46244                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46245                                     ,p_token_1                 => 'LINE_NUMBER'
46246                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46247                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46248                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46249                                                                              l_component_type
46250                                                                             ,l_component_code
46251                                                                             ,l_component_type_code
46252                                                                             ,l_component_appl_id
46253                                                                             ,l_amb_context_code
46254                                                                             ,l_entity_code
46255                                                                             ,l_event_class_code
46256                                                                            )
46257                                     ,p_token_3                 => 'OWNER'
46258                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46259                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46260                                                                           ,p_lookup_code    => l_component_type_code
46261                                                                          )
46262                                     ,p_token_4                 => 'PRODUCT_NAME'
46263                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46264                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46265                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46266                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46267                                     ,p_ae_header_id            =>  NULL
46268                                        );
46269 
46270         IF (C_LEVEL_ERROR>= g_log_level) THEN
46271                  trace
46272                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46273                       ,p_level    => C_LEVEL_ERROR
46274                       ,p_module   => l_log_module);
46275         END IF;
46276       END IF;
46277    END IF;
46278    --
46279    --
46280    ------------------------------------------------------------------------------------------------
46281    -- 4219869 Business Flow
46282    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46283    -- Prior Entry.  Currently, the following code is always generated.
46284    ------------------------------------------------------------------------------------------------
46285    XLA_AE_LINES_PKG.ValidateCurrentLine;
46286 
46287    ------------------------------------------------------------------------------------
46288    -- 4219869 Business Flow
46289    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46290    ------------------------------------------------------------------------------------
46291    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46292 
46293    ----------------------------------------------------------------------------------
46294    -- 4219869 Business Flow
46295    -- Update journal entry status -- Need to generate this within IF <condition>
46296    ----------------------------------------------------------------------------------
46297    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46298          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46299          ,p_balance_type_code => l_balance_type_code
46300          );
46301 
46302    -------------------------------------------------------------------------------------------
46303    -- 4262811 - Generate the Accrual Reversal lines
46304    -------------------------------------------------------------------------------------------
46305    BEGIN
46306       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46307                               (g_array_event(p_event_id).array_value_num('header_index'));
46308       IF l_acc_rev_flag IS NULL THEN
46309          l_acc_rev_flag := 'N';
46310       END IF;
46314    END;
46311    EXCEPTION
46312       WHEN OTHERS THEN
46313          l_acc_rev_flag := 'N';
46315    --
46316    IF (l_acc_rev_flag = 'Y') THEN
46317 
46318        -- 4645092  ------------------------------------------------------------------------------
46319        -- To allow MPA report to determine if it should generate report process
46320        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46321        ------------------------------------------------------------------------------------------
46322 
46323        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46324        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46325    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46326    -- call ADRs
46327    -- Bug 4922099
46328    --
46329    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46330         (NVL(l_actual_upg_option, 'N') = 'O') OR
46331         (NVL(l_enc_upg_option, 'N') = 'O')
46332       )
46333    THEN
46334    NULL;
46335    --
46336    --
46337    
46338   l_ccid := AcctDerRule_7(
46339            p_application_id           => p_application_id
46340          , p_ae_header_id             => l_ae_header_id 
46341 , p_source_11 => p_source_11
46342          , x_transaction_coa_id       => l_adr_transaction_coa_id
46343          , x_accounting_coa_id        => l_adr_accounting_coa_id
46344          , x_value_type_code          => l_adr_value_type_code
46345          , p_side                     => 'NA'
46346    );
46347 
46348    xla_ae_lines_pkg.set_ccid(
46349     p_code_combination_id          => l_ccid
46350   , p_value_type_code              => l_adr_value_type_code
46351   , p_transaction_coa_id           => l_adr_transaction_coa_id
46352   , p_accounting_coa_id            => l_adr_accounting_coa_id
46353   , p_adr_code                     => 'AP_INVOICE_DIST'
46354   , p_adr_type_code                => 'S'
46355   , p_component_type               => l_component_type
46356   , p_component_code               => l_component_code
46357   , p_component_type_code          => l_component_type_code
46358   , p_component_appl_id            => l_component_appl_id
46359   , p_amb_context_code             => l_amb_context_code
46360   , p_side                         => 'NA'
46361   );
46362 
46363 
46364    --
46365    --
46366    END IF;
46367 
46368        --
46369        -- Update the line information that should be overwritten
46370        --
46371        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46372                                          p_header_num   => 1);
46373        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46374 
46375        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46376 
46377        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46378           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46379        END IF;
46380 
46381       --
46382       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46383       --
46384       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46385           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46386       ELSE
46387           ---------------------------------------------------------------------------------------------------
46388           -- 4262811a Switch Sign
46389           ---------------------------------------------------------------------------------------------------
46390           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46391           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46392                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46393           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46394                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46395           -- 5132302
46396           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46397                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46398 
46399       END IF;
46400 
46401       -- 4955764
46402       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46403       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46404 
46405 
46406       XLA_AE_LINES_PKG.ValidateCurrentLine;
46407       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46408 
46409       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46410                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46411                ,p_balance_type_code => l_balance_type_code);
46412 
46413    END IF;
46414 
46415    -----------------------------------------------------------------------------------------
46416    -- 4262811 Multiperiod Accounting
46417    -----------------------------------------------------------------------------------------
46418      -- No MPA option is assigned.
46419 
46420 
46421 END IF;
46422 END IF;
46423 --
46424 
46425 --
46426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46430       ,p_module   => l_log_module);
46427    trace
46428       (p_msg      => 'END of AcctLineType_74'
46429       ,p_level    => C_LEVEL_PROCEDURE
46431 END IF;
46432 --
46433 EXCEPTION
46434   WHEN xla_exceptions_pkg.application_exception THEN
46435       RAISE;
46436   WHEN OTHERS THEN
46437        xla_exceptions_pkg.raise_message
46438            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_74');
46439 END AcctLineType_74;
46440 --
46441 
46442 ---------------------------------------
46443 --
46444 -- PRIVATE FUNCTION
46445 --         AcctLineType_75
46446 --
46447 ---------------------------------------
46448 PROCEDURE AcctLineType_75 (
46449   p_application_id        IN NUMBER
46450  ,p_event_id              IN NUMBER
46451  ,p_calculate_acctd_flag  IN VARCHAR2
46452  ,p_calculate_g_l_flag    IN VARCHAR2
46453  ,p_actual_flag           IN OUT VARCHAR2
46454  ,p_balance_type_code     OUT VARCHAR2
46455  ,p_gain_or_loss_ref      OUT VARCHAR2
46456  
46457 --Invoice Distribution Description
46458  , p_source_1            IN VARCHAR2
46459 --Invoice Distribution Account
46460  , p_source_11            IN NUMBER
46461 --Invoice Distribution Type
46462  , p_source_15            IN VARCHAR2
46463  , p_source_15_meaning    IN VARCHAR2
46464 --Purchasing Encumbrance Option
46465  , p_source_17            IN VARCHAR2
46466  , p_source_17_meaning    IN VARCHAR2
46467 --Accounting Reversal Indicator
46468  , p_source_19            IN VARCHAR2
46469 --Distribution Link Type
46470  , p_source_21            IN VARCHAR2
46471 --Allocation to Main Distribution Identifier
46472  , p_source_23            IN NUMBER
46473 --Invoice Identifier
46474  , p_source_24            IN NUMBER
46475 --Business Flow Accounts Payable Application Identifier
46476  , p_source_25            IN NUMBER
46477 --Business Flow Invoice Distribution Type
46478  , p_source_26            IN VARCHAR2
46479 --Business Flow Invoice Entity Code
46480  , p_source_27            IN VARCHAR2
46481 --Business Flow Invoice Distribution Identifier
46482  , p_source_28            IN NUMBER
46483 --Business Flow Invoice Identifier
46484  , p_source_29            IN NUMBER
46485 --Invoice Distribution Identifier
46486  , p_source_30            IN NUMBER
46487 --Payables Encumbrance Upgrade Credit Account
46488  , p_source_31            IN NUMBER
46489 --Payables Encumbrance Upgrade Credit Amount
46490  , p_source_32            IN NUMBER
46491 --Invoice Currency Code
46492  , p_source_33            IN VARCHAR2
46493 --Payables Encumbrance Upgrade Credit Base Amount
46494  , p_source_34            IN NUMBER
46495 --Payables Encumbrance Upgrade Debit Account
46496  , p_source_35            IN NUMBER
46497 --Payables Encumbrance Upgrade Debit Amount
46498  , p_source_36            IN NUMBER
46499 --Payables Encumbrance Upgrade Debit Base Amount
46500  , p_source_37            IN NUMBER
46501 --Payables Encumbrance Upgrade Option
46502  , p_source_38            IN VARCHAR2
46503 --Invoice Exchange Date
46504  , p_source_39            IN DATE
46505 --Invoice Exchange Rate
46506  , p_source_40            IN NUMBER
46507 --Invoice Exchange Rate Type
46508  , p_source_41            IN VARCHAR2
46509 --Deferred Accounting End Date
46510  , p_source_43            IN DATE
46511 --Deferred Accounting Option
46512  , p_source_44            IN VARCHAR2
46513 --Deferred Accounting Start Date
46514  , p_source_45            IN DATE
46515 --Override Accounted Amount Indicator
46516  , p_source_46            IN VARCHAR2
46517  , p_source_46_meaning    IN VARCHAR2
46518 --Invoice Supplier Identifier
46519  , p_source_47            IN NUMBER
46520 --Invoice Supplier Site Identifier
46521  , p_source_48            IN NUMBER
46522 --Third Party Type
46523  , p_source_49            IN VARCHAR2
46524 --Parent Reversal Identifier
46525  , p_source_50            IN NUMBER
46526 --Invoice Distribution Statistical Amount
46527  , p_source_51            IN NUMBER
46528 --Invoice Distribution Tax Line Identifier
46529  , p_source_52            IN NUMBER
46530 --Invoice Distribution Tax Distribution Identifier from Tax
46531  , p_source_53            IN NUMBER
46532 --Invoice Distribution Summary Tax Line Identifier
46533  , p_source_54            IN NUMBER
46534 --Payables Upgrade Credit Encumbrance Type Identifier
46535  , p_source_55            IN NUMBER
46536 --Payables Upgrade Debit Encumbrance Type Identifier
46537  , p_source_56            IN NUMBER
46538 --Invoice Distribution Encumbrance Amount
46539  , p_source_65            IN NUMBER
46540 --Invoice Distribution Encumbrance Ledger Amount
46541  , p_source_66            IN NUMBER
46542 )
46543 IS
46544 
46545 l_component_type              VARCHAR2(80);
46546 l_component_code              VARCHAR2(30);
46547 l_component_type_code         VARCHAR2(1);
46548 l_component_appl_id           INTEGER;
46549 l_amb_context_code            VARCHAR2(30);
46550 l_entity_code                 VARCHAR2(30);
46551 l_event_class_code            VARCHAR2(30);
46552 l_ae_header_id                NUMBER;
46553 l_event_type_code             VARCHAR2(30);
46554 l_line_definition_code        VARCHAR2(30);
46555 l_line_definition_owner_code  VARCHAR2(1);
46556 --
46557 -- adr variables
46558 l_segment                     VARCHAR2(30);
46559 l_ccid                        NUMBER;
46560 l_adr_transaction_coa_id      NUMBER;
46564 l_adr_value_type_code         VARCHAR2(30);
46561 l_adr_accounting_coa_id       NUMBER;
46562 l_adr_flexfield_segment_code  VARCHAR2(30);
46563 l_adr_flex_value_set_id       NUMBER;
46565 l_adr_value_combination_id    NUMBER;
46566 l_adr_value_segment_code      VARCHAR2(30);
46567 
46568 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46569 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46570 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46571 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46572 
46573 -- 4262811 Variables ------------------------------------------------------------------------------------------
46574 l_entered_amt_idx             NUMBER;
46575 l_accted_amt_idx              NUMBER;
46576 l_acc_rev_flag                VARCHAR2(1);
46577 l_accrual_line_num            NUMBER;
46578 l_tmp_amt                     NUMBER;
46579 l_acc_rev_natural_side_code   VARCHAR2(1);
46580 
46581 l_num_entries                 NUMBER;
46582 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46583 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46584 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46585 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46586 l_recog_line_1                NUMBER;
46587 l_recog_line_2                NUMBER;
46588 
46589 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46590 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46591 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46592 
46593 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46594 
46595 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46596 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46597 
46598 ---------------------------------------------------------------------------------------------------------------
46599 
46600 
46601 --
46602 -- bulk performance
46603 --
46604 l_balance_type_code           VARCHAR2(1);
46605 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46606 l_log_module                  VARCHAR2(240);
46607 
46608 --
46609 -- Upgrade strategy
46610 --
46611 l_actual_upg_option           VARCHAR2(1);
46612 l_enc_upg_option           VARCHAR2(1);
46613 
46614 --
46615 BEGIN
46616 --
46617 IF g_log_enabled THEN
46618       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
46619 END IF;
46620 --
46621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46622 
46623       trace
46624          (p_msg      => 'BEGIN of AcctLineType_75'
46625          ,p_level    => C_LEVEL_PROCEDURE
46626          ,p_module   => l_log_module);
46627 
46628 END IF;
46629 --
46630 l_component_type             := 'AMB_JLT';
46631 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PP_ENC_DR';
46632 l_component_type_code        := 'S';
46633 l_component_appl_id          :=  200;
46634 l_amb_context_code           := 'DEFAULT';
46635 l_entity_code                := 'AP_INVOICES';
46636 l_event_class_code           := 'PREPAYMENTS';
46637 l_event_type_code            := 'PREPAYMENTS_ALL';
46638 l_line_definition_owner_code := 'S';
46639 l_line_definition_code       := 'ENC_PREPAY_ALL';
46640 --
46641 l_balance_type_code          := 'E';
46642 l_segment                     := NULL;
46643 l_ccid                        := NULL;
46644 l_adr_transaction_coa_id      := NULL;
46645 l_adr_accounting_coa_id       := NULL;
46646 l_adr_flexfield_segment_code  := NULL;
46647 l_adr_flex_value_set_id       := NULL;
46648 l_adr_value_type_code         := NULL;
46649 l_adr_value_combination_id    := NULL;
46650 l_adr_value_segment_code      := NULL;
46651 
46652 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46653 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
46654 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46655 l_budgetary_control_flag     := 'Y';
46656 
46657 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46658 l_bflow_applied_to_amt       := NULL; -- 5132302
46659 l_entered_amt_idx            := NULL;          -- 4262811
46660 l_accted_amt_idx             := NULL;          -- 4262811
46661 l_acc_rev_flag               := NULL;          -- 4262811
46662 l_accrual_line_num           := NULL;          -- 4262811
46663 l_tmp_amt                    := NULL;          -- 4262811
46664 --
46665  
46666 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46667     l_balance_type_code <> 'B' THEN
46668 IF NVL(p_source_15,'
46669 ') =  'TIPV' AND 
46670 NVL(p_source_17,'
46671 ') =  'Y'
46672  THEN 
46673 
46674    --
46675    XLA_AE_LINES_PKG.SetNewLine;
46676 
46677    p_balance_type_code          := l_balance_type_code;
46678    -- set the flag so later we will know whether the gain loss line needs to be created
46679    
46680    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46681      p_actual_flag :='A';
46682    END IF;
46683 
46684    --
46685    -- bulk performance
46686    --
46687    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46688                                       p_header_num   => 0); -- 4262811
46689    --
46690    -- set accounting line options
46691    --
46692    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46696          , p_acct_entry_type_code       => 'E'
46693            p_natural_side_code          => 'D'
46694          , p_gain_or_loss_flag          => 'N'
46695          , p_gl_transfer_mode_code      => 'S'
46697          , p_switch_side_flag           => 'Y'
46698          , p_merge_duplicate_code       => 'N'
46699          );
46700    --
46701    l_acc_rev_natural_side_code := 'C';  -- 4262811
46702    -- 
46703    --
46704    -- set accounting line type info
46705    --
46706    xla_ae_lines_pkg.SetAcctLineType
46707       (p_component_type             => l_component_type
46708       ,p_event_type_code            => l_event_type_code
46709       ,p_line_definition_owner_code => l_line_definition_owner_code
46710       ,p_line_definition_code       => l_line_definition_code
46711       ,p_accounting_line_code       => l_component_code
46712       ,p_accounting_line_type_code  => l_component_type_code
46713       ,p_accounting_line_appl_id    => l_component_appl_id
46714       ,p_amb_context_code           => l_amb_context_code
46715       ,p_entity_code                => l_entity_code
46716       ,p_event_class_code           => l_event_class_code);
46717    --
46718    -- set accounting class
46719    --
46720    xla_ae_lines_pkg.SetAcctClass(
46721            p_accounting_class_code  => 'TIPV'
46722          , p_ae_header_id           => l_ae_header_id
46723          );
46724 
46725    --
46726    -- set rounding class
46727    --
46728    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46729                       'TIPV';
46730 
46731    --
46732    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46733    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46734    --
46735    -- bulk performance
46736    --
46737    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46738 
46739    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46740       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46741 
46742    -- 4955764
46743    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46744       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46745 
46746    -- 4458381 Public Sector Enh
46747       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
46748    --
46749    -- set accounting attributes for the line type
46750    --
46751    l_entered_amt_idx := 23;
46752    l_accted_amt_idx  := 28;
46753    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46754    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46755    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
46756    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46757    l_rec_acct_attrs.array_num_value(2)  := 
46758 xla_ae_sources_pkg.GetSystemSourceNum(
46759    p_source_code           => 'XLA_EVENT_APPL_ID'
46760  , p_source_type_code      => 'Y'
46761  , p_source_application_id =>  602
46762 );
46763    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46764    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
46765    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46766    l_rec_acct_attrs.array_char_value(4)  := 
46767 xla_ae_sources_pkg.GetSystemSourceChar(
46768    p_source_code           => 'XLA_ENTITY_CODE'
46769  , p_source_type_code      => 'Y'
46770  , p_source_application_id =>  602
46771 );
46772    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46773    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
46774    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46775    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
46776    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46777    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
46778    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46779    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
46780    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46781    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
46782    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46783    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
46784    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46785    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
46786    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46787    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
46788    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46789    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
46790    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
46791    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
46792    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
46793    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
46794    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
46795    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
46796    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
46797    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
46798    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
46802    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
46799    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
46800    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
46801    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
46803    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
46804    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
46805    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
46806    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
46807    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
46808    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
46809    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
46810    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
46811    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
46812    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
46813    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
46814    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
46815    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
46816    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
46817    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
46818    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
46819    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
46820    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
46821    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
46822    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
46823    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
46824    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
46825    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
46826    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
46827    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
46828    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
46829    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
46830    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
46831    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
46832    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
46833    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
46834    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
46835    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
46836    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
46837    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
46838    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
46839    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
46840    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
46841    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
46842    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
46843    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
46844    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
46845    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
46846    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
46847    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
46848    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
46849    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
46850 
46851    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46852    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46853 
46854    ---------------------------------------------------------------------------------------------------------------
46855    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46856    ---------------------------------------------------------------------------------------------------------------
46857    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46858 
46859    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46860    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46861 
46862    IF xla_accounting_cache_pkg.GetValueChar
46863          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46864          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46865    AND l_bflow_method_code = 'PRIOR_ENTRY'
46866 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46867    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46868          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46869        )
46870    THEN
46871          xla_ae_lines_pkg.BflowUpgEntry
46872            (p_business_method_code    => l_bflow_method_code
46873            ,p_business_class_code     => l_bflow_class_code
46874            ,p_balance_type            => l_balance_type_code);
46875    ELSE
46876       NULL;
46877 -- No business flow processing for business flow method of NONE.
46878    END IF;
46879 
46880    --
46881    -- call analytical criteria
46882    --
46883    
46884    --
46885    -- call description
46886    --
46887    
46888 xla_ae_lines_pkg.SetLineDescription(
46889    p_ae_header_id => l_ae_header_id
46890   ,p_description  => Description_2 (
46891      p_application_id         => p_application_id
46892    , p_ae_header_id           => l_ae_header_id 
46893 , p_source_1 => p_source_1
46894    )
46895 );
46896 
46897 
46898    --
46899    -- call ADRs
46903         (NVL(l_actual_upg_option, 'N') = 'O') OR
46900    -- Bug 4922099
46901    --
46902    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46904         (NVL(l_enc_upg_option, 'N') = 'O')
46905       )
46906    THEN
46907    NULL;
46908    --
46909    --
46910    
46911   l_ccid := AcctDerRule_7(
46912            p_application_id           => p_application_id
46913          , p_ae_header_id             => l_ae_header_id 
46914 , p_source_11 => p_source_11
46915          , x_transaction_coa_id       => l_adr_transaction_coa_id
46916          , x_accounting_coa_id        => l_adr_accounting_coa_id
46917          , x_value_type_code          => l_adr_value_type_code
46918          , p_side                     => 'NA'
46919    );
46920 
46921    xla_ae_lines_pkg.set_ccid(
46922     p_code_combination_id          => l_ccid
46923   , p_value_type_code              => l_adr_value_type_code
46924   , p_transaction_coa_id           => l_adr_transaction_coa_id
46925   , p_accounting_coa_id            => l_adr_accounting_coa_id
46926   , p_adr_code                     => 'AP_INVOICE_DIST'
46927   , p_adr_type_code                => 'S'
46928   , p_component_type               => l_component_type
46929   , p_component_code               => l_component_code
46930   , p_component_type_code          => l_component_type_code
46931   , p_component_appl_id            => l_component_appl_id
46932   , p_amb_context_code             => l_amb_context_code
46933   , p_side                         => 'NA'
46934   );
46935 
46936 
46937    --
46938    --
46939    END IF;
46940    --
46941    -- Bug 4922099
46942    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46943           (NVL(l_enc_upg_option, 'N') = 'O')
46944         ) AND
46945         (l_bflow_method_code = 'PRIOR_ENTRY')
46946       )
46947    THEN
46948       IF
46949       --
46950       1 = 2
46951       --
46952       THEN
46953       xla_accounting_err_pkg.build_message
46954                                     (p_appli_s_name            => 'XLA'
46955                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46956                                     ,p_token_1                 => 'LINE_NUMBER'
46957                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46958                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46959                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46960                                                                              l_component_type
46961                                                                             ,l_component_code
46962                                                                             ,l_component_type_code
46963                                                                             ,l_component_appl_id
46964                                                                             ,l_amb_context_code
46965                                                                             ,l_entity_code
46966                                                                             ,l_event_class_code
46967                                                                            )
46968                                     ,p_token_3                 => 'OWNER'
46969                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46970                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46971                                                                           ,p_lookup_code    => l_component_type_code
46972                                                                          )
46973                                     ,p_token_4                 => 'PRODUCT_NAME'
46974                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46975                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46976                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46977                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46978                                     ,p_ae_header_id            =>  NULL
46979                                        );
46980 
46981         IF (C_LEVEL_ERROR>= g_log_level) THEN
46982                  trace
46983                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46984                       ,p_level    => C_LEVEL_ERROR
46985                       ,p_module   => l_log_module);
46986         END IF;
46987       END IF;
46988    END IF;
46989    --
46990    --
46991    ------------------------------------------------------------------------------------------------
46992    -- 4219869 Business Flow
46993    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46994    -- Prior Entry.  Currently, the following code is always generated.
46995    ------------------------------------------------------------------------------------------------
46996    XLA_AE_LINES_PKG.ValidateCurrentLine;
46997 
46998    ------------------------------------------------------------------------------------
46999    -- 4219869 Business Flow
47000    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47001    ------------------------------------------------------------------------------------
47005    -- 4219869 Business Flow
47002    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47003 
47004    ----------------------------------------------------------------------------------
47006    -- Update journal entry status -- Need to generate this within IF <condition>
47007    ----------------------------------------------------------------------------------
47008    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47009          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47010          ,p_balance_type_code => l_balance_type_code
47011          );
47012 
47013    -------------------------------------------------------------------------------------------
47014    -- 4262811 - Generate the Accrual Reversal lines
47015    -------------------------------------------------------------------------------------------
47016    BEGIN
47017       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47018                               (g_array_event(p_event_id).array_value_num('header_index'));
47019       IF l_acc_rev_flag IS NULL THEN
47020          l_acc_rev_flag := 'N';
47021       END IF;
47022    EXCEPTION
47023       WHEN OTHERS THEN
47024          l_acc_rev_flag := 'N';
47025    END;
47026    --
47027    IF (l_acc_rev_flag = 'Y') THEN
47028 
47029        -- 4645092  ------------------------------------------------------------------------------
47030        -- To allow MPA report to determine if it should generate report process
47031        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47032        ------------------------------------------------------------------------------------------
47033 
47034        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47035        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47036    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47037    -- call ADRs
47038    -- Bug 4922099
47039    --
47040    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47041         (NVL(l_actual_upg_option, 'N') = 'O') OR
47042         (NVL(l_enc_upg_option, 'N') = 'O')
47043       )
47044    THEN
47045    NULL;
47046    --
47047    --
47048    
47049   l_ccid := AcctDerRule_7(
47050            p_application_id           => p_application_id
47051          , p_ae_header_id             => l_ae_header_id 
47052 , p_source_11 => p_source_11
47053          , x_transaction_coa_id       => l_adr_transaction_coa_id
47054          , x_accounting_coa_id        => l_adr_accounting_coa_id
47055          , x_value_type_code          => l_adr_value_type_code
47056          , p_side                     => 'NA'
47057    );
47058 
47059    xla_ae_lines_pkg.set_ccid(
47060     p_code_combination_id          => l_ccid
47061   , p_value_type_code              => l_adr_value_type_code
47062   , p_transaction_coa_id           => l_adr_transaction_coa_id
47063   , p_accounting_coa_id            => l_adr_accounting_coa_id
47064   , p_adr_code                     => 'AP_INVOICE_DIST'
47065   , p_adr_type_code                => 'S'
47066   , p_component_type               => l_component_type
47067   , p_component_code               => l_component_code
47068   , p_component_type_code          => l_component_type_code
47069   , p_component_appl_id            => l_component_appl_id
47070   , p_amb_context_code             => l_amb_context_code
47071   , p_side                         => 'NA'
47072   );
47073 
47074 
47075    --
47076    --
47077    END IF;
47078 
47079        --
47080        -- Update the line information that should be overwritten
47081        --
47082        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47083                                          p_header_num   => 1);
47084        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47085 
47086        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47087 
47088        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47089           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47090        END IF;
47091 
47092       --
47093       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47094       --
47095       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47096           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47097       ELSE
47098           ---------------------------------------------------------------------------------------------------
47099           -- 4262811a Switch Sign
47100           ---------------------------------------------------------------------------------------------------
47101           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47102           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47103                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47104           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47105                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47106           -- 5132302
47107           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47108                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47112       -- 4955764
47109 
47110       END IF;
47111 
47113       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47114       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47115 
47116 
47117       XLA_AE_LINES_PKG.ValidateCurrentLine;
47118       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47119 
47120       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47121                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47122                ,p_balance_type_code => l_balance_type_code);
47123 
47124    END IF;
47125 
47126    -----------------------------------------------------------------------------------------
47127    -- 4262811 Multiperiod Accounting
47128    -----------------------------------------------------------------------------------------
47129      -- No MPA option is assigned.
47130 
47131 
47132 END IF;
47133 END IF;
47134 --
47135 
47136 --
47137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47138    trace
47139       (p_msg      => 'END of AcctLineType_75'
47140       ,p_level    => C_LEVEL_PROCEDURE
47141       ,p_module   => l_log_module);
47142 END IF;
47143 --
47144 EXCEPTION
47145   WHEN xla_exceptions_pkg.application_exception THEN
47146       RAISE;
47147   WHEN OTHERS THEN
47148        xla_exceptions_pkg.raise_message
47149            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_75');
47150 END AcctLineType_75;
47151 --
47152 
47153 ---------------------------------------
47154 --
47155 -- PRIVATE FUNCTION
47156 --         AcctLineType_76
47157 --
47158 ---------------------------------------
47159 PROCEDURE AcctLineType_76 (
47160   p_application_id        IN NUMBER
47161  ,p_event_id              IN NUMBER
47162  ,p_calculate_acctd_flag  IN VARCHAR2
47163  ,p_calculate_g_l_flag    IN VARCHAR2
47164  ,p_actual_flag           IN OUT VARCHAR2
47165  ,p_balance_type_code     OUT VARCHAR2
47166  ,p_gain_or_loss_ref      OUT VARCHAR2
47167  
47168 --Invoice Distribution Description
47169  , p_source_1            IN VARCHAR2
47170 --Invoice Distribution Account
47171  , p_source_11            IN NUMBER
47172 --Invoice Distribution Type
47173  , p_source_15            IN VARCHAR2
47174  , p_source_15_meaning    IN VARCHAR2
47175 --Purchasing Encumbrance Option
47176  , p_source_17            IN VARCHAR2
47177  , p_source_17_meaning    IN VARCHAR2
47178 --Accounting Reversal Indicator
47179  , p_source_19            IN VARCHAR2
47180 --Distribution Link Type
47181  , p_source_21            IN VARCHAR2
47182 --Allocation to Main Distribution Identifier
47183  , p_source_23            IN NUMBER
47184 --Invoice Identifier
47185  , p_source_24            IN NUMBER
47186 --Business Flow Accounts Payable Application Identifier
47187  , p_source_25            IN NUMBER
47188 --Business Flow Invoice Distribution Type
47189  , p_source_26            IN VARCHAR2
47190 --Business Flow Invoice Entity Code
47191  , p_source_27            IN VARCHAR2
47192 --Business Flow Invoice Distribution Identifier
47193  , p_source_28            IN NUMBER
47194 --Business Flow Invoice Identifier
47195  , p_source_29            IN NUMBER
47196 --Invoice Distribution Identifier
47197  , p_source_30            IN NUMBER
47198 --Payables Encumbrance Upgrade Credit Account
47199  , p_source_31            IN NUMBER
47200 --Payables Encumbrance Upgrade Credit Amount
47201  , p_source_32            IN NUMBER
47202 --Invoice Currency Code
47203  , p_source_33            IN VARCHAR2
47204 --Payables Encumbrance Upgrade Credit Base Amount
47205  , p_source_34            IN NUMBER
47206 --Payables Encumbrance Upgrade Debit Account
47207  , p_source_35            IN NUMBER
47208 --Payables Encumbrance Upgrade Debit Amount
47209  , p_source_36            IN NUMBER
47210 --Payables Encumbrance Upgrade Debit Base Amount
47211  , p_source_37            IN NUMBER
47212 --Payables Encumbrance Upgrade Option
47213  , p_source_38            IN VARCHAR2
47214 --Invoice Exchange Date
47215  , p_source_39            IN DATE
47216 --Invoice Exchange Rate
47217  , p_source_40            IN NUMBER
47218 --Invoice Exchange Rate Type
47219  , p_source_41            IN VARCHAR2
47220 --Deferred Accounting End Date
47221  , p_source_43            IN DATE
47222 --Deferred Accounting Option
47223  , p_source_44            IN VARCHAR2
47224 --Deferred Accounting Start Date
47225  , p_source_45            IN DATE
47226 --Override Accounted Amount Indicator
47227  , p_source_46            IN VARCHAR2
47228  , p_source_46_meaning    IN VARCHAR2
47229 --Invoice Supplier Identifier
47230  , p_source_47            IN NUMBER
47231 --Invoice Supplier Site Identifier
47232  , p_source_48            IN NUMBER
47233 --Third Party Type
47234  , p_source_49            IN VARCHAR2
47235 --Parent Reversal Identifier
47236  , p_source_50            IN NUMBER
47237 --Invoice Distribution Statistical Amount
47238  , p_source_51            IN NUMBER
47239 --Invoice Distribution Tax Line Identifier
47240  , p_source_52            IN NUMBER
47241 --Invoice Distribution Tax Distribution Identifier from Tax
47242  , p_source_53            IN NUMBER
47243 --Invoice Distribution Summary Tax Line Identifier
47244  , p_source_54            IN NUMBER
47245 --Payables Upgrade Credit Encumbrance Type Identifier
47249 --Invoice Distribution Amount
47246  , p_source_55            IN NUMBER
47247 --Payables Upgrade Debit Encumbrance Type Identifier
47248  , p_source_56            IN NUMBER
47250  , p_source_57            IN NUMBER
47251 --Invoice Distribution Encumbrance Amount
47252  , p_source_65            IN NUMBER
47253 --Invoice Distribution Encumbrance Ledger Amount
47254  , p_source_66            IN NUMBER
47255 )
47256 IS
47257 
47258 l_component_type              VARCHAR2(80);
47259 l_component_code              VARCHAR2(30);
47260 l_component_type_code         VARCHAR2(1);
47261 l_component_appl_id           INTEGER;
47262 l_amb_context_code            VARCHAR2(30);
47263 l_entity_code                 VARCHAR2(30);
47264 l_event_class_code            VARCHAR2(30);
47265 l_ae_header_id                NUMBER;
47266 l_event_type_code             VARCHAR2(30);
47267 l_line_definition_code        VARCHAR2(30);
47268 l_line_definition_owner_code  VARCHAR2(1);
47269 --
47270 -- adr variables
47271 l_segment                     VARCHAR2(30);
47272 l_ccid                        NUMBER;
47273 l_adr_transaction_coa_id      NUMBER;
47274 l_adr_accounting_coa_id       NUMBER;
47275 l_adr_flexfield_segment_code  VARCHAR2(30);
47276 l_adr_flex_value_set_id       NUMBER;
47277 l_adr_value_type_code         VARCHAR2(30);
47278 l_adr_value_combination_id    NUMBER;
47279 l_adr_value_segment_code      VARCHAR2(30);
47280 
47281 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47282 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47283 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47284 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47285 
47286 -- 4262811 Variables ------------------------------------------------------------------------------------------
47287 l_entered_amt_idx             NUMBER;
47288 l_accted_amt_idx              NUMBER;
47289 l_acc_rev_flag                VARCHAR2(1);
47290 l_accrual_line_num            NUMBER;
47291 l_tmp_amt                     NUMBER;
47292 l_acc_rev_natural_side_code   VARCHAR2(1);
47293 
47294 l_num_entries                 NUMBER;
47295 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47296 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47297 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47298 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47299 l_recog_line_1                NUMBER;
47300 l_recog_line_2                NUMBER;
47301 
47302 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47303 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47304 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47305 
47306 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47307 
47308 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47309 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47310 
47311 ---------------------------------------------------------------------------------------------------------------
47312 
47313 
47314 --
47315 -- bulk performance
47316 --
47317 l_balance_type_code           VARCHAR2(1);
47318 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47319 l_log_module                  VARCHAR2(240);
47320 
47321 --
47322 -- Upgrade strategy
47323 --
47324 l_actual_upg_option           VARCHAR2(1);
47325 l_enc_upg_option           VARCHAR2(1);
47326 
47327 --
47328 BEGIN
47329 --
47330 IF g_log_enabled THEN
47331       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
47332 END IF;
47333 --
47334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47335 
47336       trace
47337          (p_msg      => 'BEGIN of AcctLineType_76'
47338          ,p_level    => C_LEVEL_PROCEDURE
47339          ,p_module   => l_log_module);
47340 
47341 END IF;
47342 --
47343 l_component_type             := 'AMB_JLT';
47344 l_component_code             := 'AP_TAX_INV_PR_VAR_INV_ENC_DR';
47345 l_component_type_code        := 'S';
47346 l_component_appl_id          :=  200;
47347 l_amb_context_code           := 'DEFAULT';
47348 l_entity_code                := 'AP_INVOICES';
47349 l_event_class_code           := 'INVOICES';
47350 l_event_type_code            := 'INVOICES_ALL';
47351 l_line_definition_owner_code := 'S';
47352 l_line_definition_code       := 'ENC_INVOICES_ALL';
47353 --
47354 l_balance_type_code          := 'E';
47355 l_segment                     := NULL;
47356 l_ccid                        := NULL;
47357 l_adr_transaction_coa_id      := NULL;
47358 l_adr_accounting_coa_id       := NULL;
47359 l_adr_flexfield_segment_code  := NULL;
47360 l_adr_flex_value_set_id       := NULL;
47361 l_adr_value_type_code         := NULL;
47362 l_adr_value_combination_id    := NULL;
47363 l_adr_value_segment_code      := NULL;
47364 
47365 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47366 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
47367 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47368 l_budgetary_control_flag     := 'Y';
47369 
47370 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47371 l_bflow_applied_to_amt       := NULL; -- 5132302
47372 l_entered_amt_idx            := NULL;          -- 4262811
47373 l_accted_amt_idx             := NULL;          -- 4262811
47374 l_acc_rev_flag               := NULL;          -- 4262811
47378  
47375 l_accrual_line_num           := NULL;          -- 4262811
47376 l_tmp_amt                    := NULL;          -- 4262811
47377 --
47379 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47380     l_balance_type_code <> 'B' THEN
47381 IF NVL(p_source_15,'
47382 ') =  'TIPV' AND 
47383 NVL(p_source_17,'
47384 ') =  'Y'
47385  THEN 
47386 
47387    --
47388    XLA_AE_LINES_PKG.SetNewLine;
47389 
47390    p_balance_type_code          := l_balance_type_code;
47391    -- set the flag so later we will know whether the gain loss line needs to be created
47392    
47393    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47394      p_actual_flag :='A';
47395    END IF;
47396 
47397    --
47398    -- bulk performance
47399    --
47400    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47401                                       p_header_num   => 0); -- 4262811
47402    --
47403    -- set accounting line options
47404    --
47405    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47406            p_natural_side_code          => 'D'
47407          , p_gain_or_loss_flag          => 'N'
47408          , p_gl_transfer_mode_code      => 'S'
47409          , p_acct_entry_type_code       => 'E'
47410          , p_switch_side_flag           => 'Y'
47411          , p_merge_duplicate_code       => 'N'
47412          );
47413    --
47414    l_acc_rev_natural_side_code := 'C';  -- 4262811
47415    -- 
47416    --
47417    -- set accounting line type info
47418    --
47419    xla_ae_lines_pkg.SetAcctLineType
47420       (p_component_type             => l_component_type
47421       ,p_event_type_code            => l_event_type_code
47422       ,p_line_definition_owner_code => l_line_definition_owner_code
47423       ,p_line_definition_code       => l_line_definition_code
47424       ,p_accounting_line_code       => l_component_code
47425       ,p_accounting_line_type_code  => l_component_type_code
47426       ,p_accounting_line_appl_id    => l_component_appl_id
47427       ,p_amb_context_code           => l_amb_context_code
47428       ,p_entity_code                => l_entity_code
47429       ,p_event_class_code           => l_event_class_code);
47430    --
47431    -- set accounting class
47432    --
47433    xla_ae_lines_pkg.SetAcctClass(
47434            p_accounting_class_code  => 'TIPV'
47435          , p_ae_header_id           => l_ae_header_id
47436          );
47437 
47438    --
47439    -- set rounding class
47440    --
47441    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47442                       'TIPV';
47443 
47444    --
47445    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47446    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47447    --
47448    -- bulk performance
47449    --
47450    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47451 
47452    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47453       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47454 
47455    -- 4955764
47456    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47457       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47458 
47459    -- 4458381 Public Sector Enh
47460       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
47461    --
47462    -- set accounting attributes for the line type
47463    --
47464    l_entered_amt_idx := 24;
47465    l_accted_amt_idx  := 29;
47466    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
47467    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47468    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
47469    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47470    l_rec_acct_attrs.array_num_value(2)  := 
47471 xla_ae_sources_pkg.GetSystemSourceNum(
47472    p_source_code           => 'XLA_EVENT_APPL_ID'
47473  , p_source_type_code      => 'Y'
47474  , p_source_application_id =>  602
47475 );
47476    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47477    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
47478    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47479    l_rec_acct_attrs.array_char_value(4)  := 
47480 xla_ae_sources_pkg.GetSystemSourceChar(
47481    p_source_code           => 'XLA_ENTITY_CODE'
47482  , p_source_type_code      => 'Y'
47483  , p_source_application_id =>  602
47484 );
47485    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47486    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
47487    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47488    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
47489    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
47490    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
47491    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
47492    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
47493    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47494    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
47498    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
47495    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
47496    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
47497    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
47499    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47500    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
47501    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
47502    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
47503    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
47504    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
47505    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
47506    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
47507    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
47508    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
47509    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
47510    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
47511    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
47512    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
47513    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
47514    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
47515    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
47516    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
47517    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
47518    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
47519    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
47520    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
47521    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
47522    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
47523    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
47524    l_rec_acct_attrs.array_num_value(24)  := p_source_65;
47525    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
47526    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
47527    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
47528    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
47529    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
47530    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
47531    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
47532    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
47533    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
47534    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
47535    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
47536    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
47537    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
47538    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
47539    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
47540    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
47541    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
47542    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
47543    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
47544    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
47545    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
47546    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
47547    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
47548    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
47549    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
47550    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
47551    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
47552    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
47553    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
47554    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
47555    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
47556    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
47557    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
47558    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
47559    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
47560    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
47561    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
47562    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
47563    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
47564    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
47565 
47566    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47567    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47568 
47569    ---------------------------------------------------------------------------------------------------------------
47570    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47571    ---------------------------------------------------------------------------------------------------------------
47572    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47573 
47574    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47575    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47576 
47577    IF xla_accounting_cache_pkg.GetValueChar
47578          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47582    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47579          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47580    AND l_bflow_method_code = 'PRIOR_ENTRY'
47581 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47583          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47584        )
47585    THEN
47586          xla_ae_lines_pkg.BflowUpgEntry
47587            (p_business_method_code    => l_bflow_method_code
47588            ,p_business_class_code     => l_bflow_class_code
47589            ,p_balance_type            => l_balance_type_code);
47590    ELSE
47591       NULL;
47592 -- No business flow processing for business flow method of NONE.
47593    END IF;
47594 
47595    --
47596    -- call analytical criteria
47597    --
47598    
47599    --
47600    -- call description
47601    --
47602    
47603 xla_ae_lines_pkg.SetLineDescription(
47604    p_ae_header_id => l_ae_header_id
47605   ,p_description  => Description_2 (
47606      p_application_id         => p_application_id
47607    , p_ae_header_id           => l_ae_header_id 
47608 , p_source_1 => p_source_1
47609    )
47610 );
47611 
47612 
47613    --
47614    -- call ADRs
47615    -- Bug 4922099
47616    --
47617    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47618         (NVL(l_actual_upg_option, 'N') = 'O') OR
47619         (NVL(l_enc_upg_option, 'N') = 'O')
47620       )
47621    THEN
47622    NULL;
47623    --
47624    --
47625    
47626   l_ccid := AcctDerRule_7(
47627            p_application_id           => p_application_id
47628          , p_ae_header_id             => l_ae_header_id 
47629 , p_source_11 => p_source_11
47630          , x_transaction_coa_id       => l_adr_transaction_coa_id
47631          , x_accounting_coa_id        => l_adr_accounting_coa_id
47632          , x_value_type_code          => l_adr_value_type_code
47633          , p_side                     => 'NA'
47634    );
47635 
47636    xla_ae_lines_pkg.set_ccid(
47637     p_code_combination_id          => l_ccid
47638   , p_value_type_code              => l_adr_value_type_code
47639   , p_transaction_coa_id           => l_adr_transaction_coa_id
47640   , p_accounting_coa_id            => l_adr_accounting_coa_id
47641   , p_adr_code                     => 'AP_INVOICE_DIST'
47642   , p_adr_type_code                => 'S'
47643   , p_component_type               => l_component_type
47644   , p_component_code               => l_component_code
47645   , p_component_type_code          => l_component_type_code
47646   , p_component_appl_id            => l_component_appl_id
47647   , p_amb_context_code             => l_amb_context_code
47648   , p_side                         => 'NA'
47649   );
47650 
47651 
47652    --
47653    --
47654    END IF;
47655    --
47656    -- Bug 4922099
47657    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47658           (NVL(l_enc_upg_option, 'N') = 'O')
47659         ) AND
47660         (l_bflow_method_code = 'PRIOR_ENTRY')
47661       )
47662    THEN
47663       IF
47664       --
47665       1 = 2
47666       --
47667       THEN
47668       xla_accounting_err_pkg.build_message
47669                                     (p_appli_s_name            => 'XLA'
47670                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47671                                     ,p_token_1                 => 'LINE_NUMBER'
47672                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47673                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47674                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47675                                                                              l_component_type
47676                                                                             ,l_component_code
47677                                                                             ,l_component_type_code
47678                                                                             ,l_component_appl_id
47679                                                                             ,l_amb_context_code
47680                                                                             ,l_entity_code
47681                                                                             ,l_event_class_code
47682                                                                            )
47683                                     ,p_token_3                 => 'OWNER'
47684                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47685                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47686                                                                           ,p_lookup_code    => l_component_type_code
47687                                                                          )
47688                                     ,p_token_4                 => 'PRODUCT_NAME'
47689                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47690                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47691                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47695 
47692                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47693                                     ,p_ae_header_id            =>  NULL
47694                                        );
47696         IF (C_LEVEL_ERROR>= g_log_level) THEN
47697                  trace
47698                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47699                       ,p_level    => C_LEVEL_ERROR
47700                       ,p_module   => l_log_module);
47701         END IF;
47702       END IF;
47703    END IF;
47704    --
47705    --
47706    ------------------------------------------------------------------------------------------------
47707    -- 4219869 Business Flow
47708    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47709    -- Prior Entry.  Currently, the following code is always generated.
47710    ------------------------------------------------------------------------------------------------
47711    XLA_AE_LINES_PKG.ValidateCurrentLine;
47712 
47713    ------------------------------------------------------------------------------------
47714    -- 4219869 Business Flow
47715    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47716    ------------------------------------------------------------------------------------
47717    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47718 
47719    ----------------------------------------------------------------------------------
47720    -- 4219869 Business Flow
47721    -- Update journal entry status -- Need to generate this within IF <condition>
47722    ----------------------------------------------------------------------------------
47723    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47724          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47725          ,p_balance_type_code => l_balance_type_code
47726          );
47727 
47728    -------------------------------------------------------------------------------------------
47729    -- 4262811 - Generate the Accrual Reversal lines
47730    -------------------------------------------------------------------------------------------
47731    BEGIN
47732       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47733                               (g_array_event(p_event_id).array_value_num('header_index'));
47734       IF l_acc_rev_flag IS NULL THEN
47735          l_acc_rev_flag := 'N';
47736       END IF;
47737    EXCEPTION
47738       WHEN OTHERS THEN
47739          l_acc_rev_flag := 'N';
47740    END;
47741    --
47742    IF (l_acc_rev_flag = 'Y') THEN
47743 
47744        -- 4645092  ------------------------------------------------------------------------------
47745        -- To allow MPA report to determine if it should generate report process
47746        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47747        ------------------------------------------------------------------------------------------
47748 
47749        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47750        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47751    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47752    -- call ADRs
47753    -- Bug 4922099
47754    --
47755    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47756         (NVL(l_actual_upg_option, 'N') = 'O') OR
47757         (NVL(l_enc_upg_option, 'N') = 'O')
47758       )
47759    THEN
47760    NULL;
47761    --
47762    --
47763    
47764   l_ccid := AcctDerRule_7(
47765            p_application_id           => p_application_id
47766          , p_ae_header_id             => l_ae_header_id 
47767 , p_source_11 => p_source_11
47768          , x_transaction_coa_id       => l_adr_transaction_coa_id
47769          , x_accounting_coa_id        => l_adr_accounting_coa_id
47770          , x_value_type_code          => l_adr_value_type_code
47771          , p_side                     => 'NA'
47772    );
47773 
47774    xla_ae_lines_pkg.set_ccid(
47775     p_code_combination_id          => l_ccid
47776   , p_value_type_code              => l_adr_value_type_code
47777   , p_transaction_coa_id           => l_adr_transaction_coa_id
47778   , p_accounting_coa_id            => l_adr_accounting_coa_id
47779   , p_adr_code                     => 'AP_INVOICE_DIST'
47780   , p_adr_type_code                => 'S'
47781   , p_component_type               => l_component_type
47782   , p_component_code               => l_component_code
47783   , p_component_type_code          => l_component_type_code
47784   , p_component_appl_id            => l_component_appl_id
47785   , p_amb_context_code             => l_amb_context_code
47786   , p_side                         => 'NA'
47787   );
47788 
47789 
47790    --
47791    --
47792    END IF;
47793 
47794        --
47795        -- Update the line information that should be overwritten
47796        --
47797        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47798                                          p_header_num   => 1);
47799        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47800 
47801        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47802 
47803        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47804           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47808       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47805        END IF;
47806 
47807       --
47809       --
47810       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47811           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47812       ELSE
47813           ---------------------------------------------------------------------------------------------------
47814           -- 4262811a Switch Sign
47815           ---------------------------------------------------------------------------------------------------
47816           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47817           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47818                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47819           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47820                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47821           -- 5132302
47822           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47823                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47824 
47825       END IF;
47826 
47827       -- 4955764
47828       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47829       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47830 
47831 
47832       XLA_AE_LINES_PKG.ValidateCurrentLine;
47833       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47834 
47835       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47836                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47837                ,p_balance_type_code => l_balance_type_code);
47838 
47839    END IF;
47840 
47841    -----------------------------------------------------------------------------------------
47842    -- 4262811 Multiperiod Accounting
47843    -----------------------------------------------------------------------------------------
47844      -- No MPA option is assigned.
47845 
47846 
47847 END IF;
47848 END IF;
47849 --
47850 
47851 --
47852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47853    trace
47854       (p_msg      => 'END of AcctLineType_76'
47855       ,p_level    => C_LEVEL_PROCEDURE
47856       ,p_module   => l_log_module);
47857 END IF;
47858 --
47859 EXCEPTION
47860   WHEN xla_exceptions_pkg.application_exception THEN
47861       RAISE;
47862   WHEN OTHERS THEN
47863        xla_exceptions_pkg.raise_message
47864            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_76');
47865 END AcctLineType_76;
47866 --
47867 
47868 ---------------------------------------
47869 --
47870 -- PRIVATE FUNCTION
47871 --         AcctLineType_77
47872 --
47873 ---------------------------------------
47874 PROCEDURE AcctLineType_77 (
47875   p_application_id        IN NUMBER
47876  ,p_event_id              IN NUMBER
47877  ,p_calculate_acctd_flag  IN VARCHAR2
47878  ,p_calculate_g_l_flag    IN VARCHAR2
47879  ,p_actual_flag           IN OUT VARCHAR2
47880  ,p_balance_type_code     OUT VARCHAR2
47881  ,p_gain_or_loss_ref      OUT VARCHAR2
47882  
47883 --Invoice Distribution Description
47884  , p_source_1            IN VARCHAR2
47885 --Invoice Distribution Account
47886  , p_source_11            IN NUMBER
47887 --Invoice Distribution Type
47888  , p_source_15            IN VARCHAR2
47889  , p_source_15_meaning    IN VARCHAR2
47890 --Amount for Variance Amount
47891  , p_source_16            IN NUMBER
47892 --Purchasing Encumbrance Option
47893  , p_source_17            IN VARCHAR2
47894  , p_source_17_meaning    IN VARCHAR2
47895 --Accrue on Receipt Option
47896  , p_source_18            IN VARCHAR2
47897  , p_source_18_meaning    IN VARCHAR2
47898 --Accounting Reversal Indicator
47899  , p_source_19            IN VARCHAR2
47900 --Distribution Link Type
47901  , p_source_21            IN VARCHAR2
47902 --Allocation to Main Distribution Identifier
47903  , p_source_23            IN NUMBER
47904 --Invoice Identifier
47905  , p_source_24            IN NUMBER
47906 --Business Flow Accounts Payable Application Identifier
47907  , p_source_25            IN NUMBER
47908 --Business Flow Invoice Distribution Type
47909  , p_source_26            IN VARCHAR2
47910 --Business Flow Invoice Entity Code
47911  , p_source_27            IN VARCHAR2
47912 --Business Flow Invoice Distribution Identifier
47913  , p_source_28            IN NUMBER
47914 --Business Flow Invoice Identifier
47915  , p_source_29            IN NUMBER
47916 --Invoice Distribution Identifier
47917  , p_source_30            IN NUMBER
47918 --Payables Encumbrance Upgrade Credit Account
47919  , p_source_31            IN NUMBER
47920 --Payables Encumbrance Upgrade Credit Amount
47921  , p_source_32            IN NUMBER
47922 --Invoice Currency Code
47923  , p_source_33            IN VARCHAR2
47924 --Payables Encumbrance Upgrade Credit Base Amount
47925  , p_source_34            IN NUMBER
47926 --Payables Encumbrance Upgrade Debit Account
47927  , p_source_35            IN NUMBER
47928 --Payables Encumbrance Upgrade Debit Amount
47929  , p_source_36            IN NUMBER
47933  , p_source_38            IN VARCHAR2
47930 --Payables Encumbrance Upgrade Debit Base Amount
47931  , p_source_37            IN NUMBER
47932 --Payables Encumbrance Upgrade Option
47934 --Invoice Exchange Date
47935  , p_source_39            IN DATE
47936 --Invoice Exchange Rate
47937  , p_source_40            IN NUMBER
47938 --Invoice Exchange Rate Type
47939  , p_source_41            IN VARCHAR2
47940 --Deferred Accounting End Date
47941  , p_source_43            IN DATE
47942 --Deferred Accounting Option
47943  , p_source_44            IN VARCHAR2
47944 --Deferred Accounting Start Date
47945  , p_source_45            IN DATE
47946 --Override Accounted Amount Indicator
47947  , p_source_46            IN VARCHAR2
47948  , p_source_46_meaning    IN VARCHAR2
47949 --Invoice Supplier Identifier
47950  , p_source_47            IN NUMBER
47951 --Invoice Supplier Site Identifier
47952  , p_source_48            IN NUMBER
47953 --Third Party Type
47954  , p_source_49            IN VARCHAR2
47955 --Parent Reversal Identifier
47956  , p_source_50            IN NUMBER
47957 --Invoice Distribution Statistical Amount
47958  , p_source_51            IN NUMBER
47959 --Invoice Distribution Tax Line Identifier
47960  , p_source_52            IN NUMBER
47961 --Invoice Distribution Tax Distribution Identifier from Tax
47962  , p_source_53            IN NUMBER
47963 --Invoice Distribution Summary Tax Line Identifier
47964  , p_source_54            IN NUMBER
47965 --Payables Upgrade Credit Encumbrance Type Identifier
47966  , p_source_55            IN NUMBER
47967 --Payables Upgrade Debit Encumbrance Type Identifier
47968  , p_source_56            IN NUMBER
47969 --Quantity Variance Amount
47970  , p_source_81            IN NUMBER
47971 --Quantity Variance Amount in Ledger Currency
47972  , p_source_82            IN NUMBER
47973 )
47974 IS
47975 
47976 l_component_type              VARCHAR2(80);
47977 l_component_code              VARCHAR2(30);
47978 l_component_type_code         VARCHAR2(1);
47979 l_component_appl_id           INTEGER;
47980 l_amb_context_code            VARCHAR2(30);
47981 l_entity_code                 VARCHAR2(30);
47982 l_event_class_code            VARCHAR2(30);
47983 l_ae_header_id                NUMBER;
47984 l_event_type_code             VARCHAR2(30);
47985 l_line_definition_code        VARCHAR2(30);
47986 l_line_definition_owner_code  VARCHAR2(1);
47987 --
47988 -- adr variables
47989 l_segment                     VARCHAR2(30);
47990 l_ccid                        NUMBER;
47991 l_adr_transaction_coa_id      NUMBER;
47992 l_adr_accounting_coa_id       NUMBER;
47993 l_adr_flexfield_segment_code  VARCHAR2(30);
47994 l_adr_flex_value_set_id       NUMBER;
47995 l_adr_value_type_code         VARCHAR2(30);
47996 l_adr_value_combination_id    NUMBER;
47997 l_adr_value_segment_code      VARCHAR2(30);
47998 
47999 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48000 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48001 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48002 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48003 
48004 -- 4262811 Variables ------------------------------------------------------------------------------------------
48005 l_entered_amt_idx             NUMBER;
48006 l_accted_amt_idx              NUMBER;
48007 l_acc_rev_flag                VARCHAR2(1);
48008 l_accrual_line_num            NUMBER;
48009 l_tmp_amt                     NUMBER;
48010 l_acc_rev_natural_side_code   VARCHAR2(1);
48011 
48012 l_num_entries                 NUMBER;
48013 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48014 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48015 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48016 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48017 l_recog_line_1                NUMBER;
48018 l_recog_line_2                NUMBER;
48019 
48020 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48021 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48022 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48023 
48024 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48025 
48026 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48027 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48028 
48029 ---------------------------------------------------------------------------------------------------------------
48030 
48031 
48032 --
48033 -- bulk performance
48034 --
48035 l_balance_type_code           VARCHAR2(1);
48036 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48037 l_log_module                  VARCHAR2(240);
48038 
48039 --
48040 -- Upgrade strategy
48041 --
48042 l_actual_upg_option           VARCHAR2(1);
48043 l_enc_upg_option           VARCHAR2(1);
48044 
48045 --
48046 BEGIN
48047 --
48048 IF g_log_enabled THEN
48049       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
48050 END IF;
48051 --
48052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48053 
48054       trace
48055          (p_msg      => 'BEGIN of AcctLineType_77'
48056          ,p_level    => C_LEVEL_PROCEDURE
48057          ,p_module   => l_log_module);
48058 
48059 END IF;
48060 --
48061 l_component_type             := 'AMB_JLT';
48065 l_amb_context_code           := 'DEFAULT';
48062 l_component_code             := 'AP_TAX_QTY_VARIANCE_CM_ENC_DR';
48063 l_component_type_code        := 'S';
48064 l_component_appl_id          :=  200;
48066 l_entity_code                := 'AP_INVOICES';
48067 l_event_class_code           := 'CREDIT MEMOS';
48068 l_event_type_code            := 'CREDIT MEMOS_ALL';
48069 l_line_definition_owner_code := 'S';
48070 l_line_definition_code       := 'ENC_CM_ALL';
48071 --
48072 l_balance_type_code          := 'E';
48073 l_segment                     := NULL;
48074 l_ccid                        := NULL;
48075 l_adr_transaction_coa_id      := NULL;
48076 l_adr_accounting_coa_id       := NULL;
48077 l_adr_flexfield_segment_code  := NULL;
48078 l_adr_flex_value_set_id       := NULL;
48079 l_adr_value_type_code         := NULL;
48080 l_adr_value_combination_id    := NULL;
48081 l_adr_value_segment_code      := NULL;
48082 
48083 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48084 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
48085 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48086 l_budgetary_control_flag     := 'Y';
48087 
48088 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48089 l_bflow_applied_to_amt       := NULL; -- 5132302
48090 l_entered_amt_idx            := NULL;          -- 4262811
48091 l_accted_amt_idx             := NULL;          -- 4262811
48092 l_acc_rev_flag               := NULL;          -- 4262811
48093 l_accrual_line_num           := NULL;          -- 4262811
48094 l_tmp_amt                    := NULL;          -- 4262811
48095 --
48096  
48097 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48098     l_balance_type_code <> 'B' THEN
48099 IF NVL(p_source_15,'
48100 ') =  'NONREC_TAX' AND 
48101 p_source_16 IS NOT NULL AND 
48102 NVL(p_source_17,'
48103 ') =  'Y' AND 
48104 NVL(p_source_18,'
48105 ') <>  'Y'
48106  THEN 
48107 
48108    --
48109    XLA_AE_LINES_PKG.SetNewLine;
48110 
48111    p_balance_type_code          := l_balance_type_code;
48112    -- set the flag so later we will know whether the gain loss line needs to be created
48113    
48114    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48115      p_actual_flag :='A';
48116    END IF;
48117 
48118    --
48119    -- bulk performance
48120    --
48121    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48122                                       p_header_num   => 0); -- 4262811
48123    --
48124    -- set accounting line options
48125    --
48126    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48127            p_natural_side_code          => 'D'
48128          , p_gain_or_loss_flag          => 'N'
48129          , p_gl_transfer_mode_code      => 'S'
48130          , p_acct_entry_type_code       => 'E'
48131          , p_switch_side_flag           => 'Y'
48132          , p_merge_duplicate_code       => 'N'
48133          );
48134    --
48135    l_acc_rev_natural_side_code := 'C';  -- 4262811
48136    -- 
48137    --
48138    -- set accounting line type info
48139    --
48140    xla_ae_lines_pkg.SetAcctLineType
48141       (p_component_type             => l_component_type
48142       ,p_event_type_code            => l_event_type_code
48143       ,p_line_definition_owner_code => l_line_definition_owner_code
48144       ,p_line_definition_code       => l_line_definition_code
48145       ,p_accounting_line_code       => l_component_code
48146       ,p_accounting_line_type_code  => l_component_type_code
48147       ,p_accounting_line_appl_id    => l_component_appl_id
48148       ,p_amb_context_code           => l_amb_context_code
48149       ,p_entity_code                => l_entity_code
48150       ,p_event_class_code           => l_event_class_code);
48151    --
48152    -- set accounting class
48153    --
48154    xla_ae_lines_pkg.SetAcctClass(
48155            p_accounting_class_code  => 'TQV'
48156          , p_ae_header_id           => l_ae_header_id
48157          );
48158 
48159    --
48160    -- set rounding class
48161    --
48162    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48163                       'TQV';
48164 
48165    --
48166    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48167    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48168    --
48169    -- bulk performance
48170    --
48171    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48172 
48173    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48174       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48175 
48176    -- 4955764
48177    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48178       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48179 
48180    -- 4458381 Public Sector Enh
48181       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
48182    --
48183    -- set accounting attributes for the line type
48184    --
48185    l_entered_amt_idx := 23;
48186    l_accted_amt_idx  := 28;
48187    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48191    l_rec_acct_attrs.array_num_value(2)  := 
48188    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48189    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
48190    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48192 xla_ae_sources_pkg.GetSystemSourceNum(
48193    p_source_code           => 'XLA_EVENT_APPL_ID'
48194  , p_source_type_code      => 'Y'
48195  , p_source_application_id =>  602
48196 );
48197    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48198    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
48199    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48200    l_rec_acct_attrs.array_char_value(4)  := 
48201 xla_ae_sources_pkg.GetSystemSourceChar(
48202    p_source_code           => 'XLA_ENTITY_CODE'
48203  , p_source_type_code      => 'Y'
48204  , p_source_application_id =>  602
48205 );
48206    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48207    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
48208    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48209    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
48210    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
48211    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
48212    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48213    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
48214    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
48215    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
48216    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
48217    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
48218    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48219    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
48220    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
48221    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
48222    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
48223    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
48224    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
48225    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
48226    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
48227    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
48228    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
48229    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
48230    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
48231    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
48232    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
48233    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
48234    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
48235    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
48236    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
48237    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
48238    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
48239    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
48240    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
48241    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
48242    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
48243    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
48244    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
48245    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
48246    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
48247    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
48248    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
48249    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
48250    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
48251    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
48252    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
48253    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
48254    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
48255    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
48256    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
48257    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
48258    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
48259    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
48260    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
48261    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
48262    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
48263    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
48264    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
48265    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
48266    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
48267    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
48268    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
48269    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
48270    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
48271    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
48272    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
48273    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
48274    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
48275    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
48276    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
48280    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
48277    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
48278    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
48279    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
48281    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
48282    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
48283    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
48284 
48285    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48286    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48287 
48288    ---------------------------------------------------------------------------------------------------------------
48289    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48290    ---------------------------------------------------------------------------------------------------------------
48291    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48292 
48293    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48294    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48295 
48296    IF xla_accounting_cache_pkg.GetValueChar
48297          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48298          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48299    AND l_bflow_method_code = 'PRIOR_ENTRY'
48300 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48301    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48302          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48303        )
48304    THEN
48305          xla_ae_lines_pkg.BflowUpgEntry
48306            (p_business_method_code    => l_bflow_method_code
48307            ,p_business_class_code     => l_bflow_class_code
48308            ,p_balance_type            => l_balance_type_code);
48309    ELSE
48310       NULL;
48311 -- No business flow processing for business flow method of NONE.
48312    END IF;
48313 
48314    --
48315    -- call analytical criteria
48316    --
48317    
48318    --
48319    -- call description
48320    --
48321    
48322 xla_ae_lines_pkg.SetLineDescription(
48323    p_ae_header_id => l_ae_header_id
48324   ,p_description  => Description_2 (
48325      p_application_id         => p_application_id
48326    , p_ae_header_id           => l_ae_header_id 
48327 , p_source_1 => p_source_1
48328    )
48329 );
48330 
48331 
48332    --
48333    -- call ADRs
48334    -- Bug 4922099
48335    --
48336    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48337         (NVL(l_actual_upg_option, 'N') = 'O') OR
48338         (NVL(l_enc_upg_option, 'N') = 'O')
48339       )
48340    THEN
48341    NULL;
48342    --
48343    --
48344    
48345   l_ccid := AcctDerRule_7(
48346            p_application_id           => p_application_id
48347          , p_ae_header_id             => l_ae_header_id 
48348 , p_source_11 => p_source_11
48349          , x_transaction_coa_id       => l_adr_transaction_coa_id
48350          , x_accounting_coa_id        => l_adr_accounting_coa_id
48351          , x_value_type_code          => l_adr_value_type_code
48352          , p_side                     => 'NA'
48353    );
48354 
48355    xla_ae_lines_pkg.set_ccid(
48356     p_code_combination_id          => l_ccid
48357   , p_value_type_code              => l_adr_value_type_code
48358   , p_transaction_coa_id           => l_adr_transaction_coa_id
48359   , p_accounting_coa_id            => l_adr_accounting_coa_id
48360   , p_adr_code                     => 'AP_INVOICE_DIST'
48361   , p_adr_type_code                => 'S'
48362   , p_component_type               => l_component_type
48363   , p_component_code               => l_component_code
48364   , p_component_type_code          => l_component_type_code
48365   , p_component_appl_id            => l_component_appl_id
48366   , p_amb_context_code             => l_amb_context_code
48367   , p_side                         => 'NA'
48368   );
48369 
48370 
48371    --
48372    --
48373    END IF;
48374    --
48375    -- Bug 4922099
48376    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48377           (NVL(l_enc_upg_option, 'N') = 'O')
48378         ) AND
48379         (l_bflow_method_code = 'PRIOR_ENTRY')
48380       )
48381    THEN
48382       IF
48383       --
48384       1 = 2
48385       --
48386       THEN
48387       xla_accounting_err_pkg.build_message
48388                                     (p_appli_s_name            => 'XLA'
48389                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48390                                     ,p_token_1                 => 'LINE_NUMBER'
48391                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48392                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48393                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48394                                                                              l_component_type
48395                                                                             ,l_component_code
48399                                                                             ,l_entity_code
48396                                                                             ,l_component_type_code
48397                                                                             ,l_component_appl_id
48398                                                                             ,l_amb_context_code
48400                                                                             ,l_event_class_code
48401                                                                            )
48402                                     ,p_token_3                 => 'OWNER'
48403                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48404                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48405                                                                           ,p_lookup_code    => l_component_type_code
48406                                                                          )
48407                                     ,p_token_4                 => 'PRODUCT_NAME'
48408                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48409                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48410                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48411                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48412                                     ,p_ae_header_id            =>  NULL
48413                                        );
48414 
48415         IF (C_LEVEL_ERROR>= g_log_level) THEN
48416                  trace
48417                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48418                       ,p_level    => C_LEVEL_ERROR
48419                       ,p_module   => l_log_module);
48420         END IF;
48421       END IF;
48422    END IF;
48423    --
48424    --
48425    ------------------------------------------------------------------------------------------------
48426    -- 4219869 Business Flow
48427    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48428    -- Prior Entry.  Currently, the following code is always generated.
48429    ------------------------------------------------------------------------------------------------
48430    XLA_AE_LINES_PKG.ValidateCurrentLine;
48431 
48432    ------------------------------------------------------------------------------------
48433    -- 4219869 Business Flow
48434    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48435    ------------------------------------------------------------------------------------
48436    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48437 
48438    ----------------------------------------------------------------------------------
48439    -- 4219869 Business Flow
48440    -- Update journal entry status -- Need to generate this within IF <condition>
48441    ----------------------------------------------------------------------------------
48442    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48443          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48444          ,p_balance_type_code => l_balance_type_code
48445          );
48446 
48447    -------------------------------------------------------------------------------------------
48448    -- 4262811 - Generate the Accrual Reversal lines
48449    -------------------------------------------------------------------------------------------
48450    BEGIN
48451       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48452                               (g_array_event(p_event_id).array_value_num('header_index'));
48453       IF l_acc_rev_flag IS NULL THEN
48454          l_acc_rev_flag := 'N';
48455       END IF;
48456    EXCEPTION
48457       WHEN OTHERS THEN
48458          l_acc_rev_flag := 'N';
48459    END;
48460    --
48461    IF (l_acc_rev_flag = 'Y') THEN
48462 
48463        -- 4645092  ------------------------------------------------------------------------------
48464        -- To allow MPA report to determine if it should generate report process
48465        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48466        ------------------------------------------------------------------------------------------
48467 
48468        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48469        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48470    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48471    -- call ADRs
48472    -- Bug 4922099
48473    --
48474    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48475         (NVL(l_actual_upg_option, 'N') = 'O') OR
48476         (NVL(l_enc_upg_option, 'N') = 'O')
48477       )
48478    THEN
48479    NULL;
48480    --
48481    --
48482    
48483   l_ccid := AcctDerRule_7(
48484            p_application_id           => p_application_id
48485          , p_ae_header_id             => l_ae_header_id 
48486 , p_source_11 => p_source_11
48487          , x_transaction_coa_id       => l_adr_transaction_coa_id
48488          , x_accounting_coa_id        => l_adr_accounting_coa_id
48489          , x_value_type_code          => l_adr_value_type_code
48490          , p_side                     => 'NA'
48491    );
48492 
48493    xla_ae_lines_pkg.set_ccid(
48494     p_code_combination_id          => l_ccid
48498   , p_adr_code                     => 'AP_INVOICE_DIST'
48495   , p_value_type_code              => l_adr_value_type_code
48496   , p_transaction_coa_id           => l_adr_transaction_coa_id
48497   , p_accounting_coa_id            => l_adr_accounting_coa_id
48499   , p_adr_type_code                => 'S'
48500   , p_component_type               => l_component_type
48501   , p_component_code               => l_component_code
48502   , p_component_type_code          => l_component_type_code
48503   , p_component_appl_id            => l_component_appl_id
48504   , p_amb_context_code             => l_amb_context_code
48505   , p_side                         => 'NA'
48506   );
48507 
48508 
48509    --
48510    --
48511    END IF;
48512 
48513        --
48514        -- Update the line information that should be overwritten
48515        --
48516        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48517                                          p_header_num   => 1);
48518        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48519 
48520        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48521 
48522        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48523           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48524        END IF;
48525 
48526       --
48527       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48528       --
48529       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48530           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48531       ELSE
48532           ---------------------------------------------------------------------------------------------------
48533           -- 4262811a Switch Sign
48534           ---------------------------------------------------------------------------------------------------
48535           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48536           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48537                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48538           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48539                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48540           -- 5132302
48541           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48542                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48543 
48544       END IF;
48545 
48546       -- 4955764
48547       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48549 
48550 
48551       XLA_AE_LINES_PKG.ValidateCurrentLine;
48552       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48553 
48554       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48555                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48556                ,p_balance_type_code => l_balance_type_code);
48557 
48558    END IF;
48559 
48560    -----------------------------------------------------------------------------------------
48561    -- 4262811 Multiperiod Accounting
48562    -----------------------------------------------------------------------------------------
48563      -- No MPA option is assigned.
48564 
48565 
48566 END IF;
48567 END IF;
48568 --
48569 
48570 --
48571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48572    trace
48573       (p_msg      => 'END of AcctLineType_77'
48574       ,p_level    => C_LEVEL_PROCEDURE
48575       ,p_module   => l_log_module);
48576 END IF;
48577 --
48578 EXCEPTION
48579   WHEN xla_exceptions_pkg.application_exception THEN
48580       RAISE;
48581   WHEN OTHERS THEN
48582        xla_exceptions_pkg.raise_message
48583            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_77');
48584 END AcctLineType_77;
48585 --
48586 
48587 ---------------------------------------
48588 --
48589 -- PRIVATE FUNCTION
48590 --         AcctLineType_78
48591 --
48592 ---------------------------------------
48593 PROCEDURE AcctLineType_78 (
48594   p_application_id        IN NUMBER
48595  ,p_event_id              IN NUMBER
48596  ,p_calculate_acctd_flag  IN VARCHAR2
48597  ,p_calculate_g_l_flag    IN VARCHAR2
48598  ,p_actual_flag           IN OUT VARCHAR2
48599  ,p_balance_type_code     OUT VARCHAR2
48600  ,p_gain_or_loss_ref      OUT VARCHAR2
48601  
48602 --Invoice Distribution Description
48603  , p_source_1            IN VARCHAR2
48604 --Invoice Distribution Account
48605  , p_source_11            IN NUMBER
48606 --Invoice Distribution Type
48607  , p_source_15            IN VARCHAR2
48608  , p_source_15_meaning    IN VARCHAR2
48609 --Purchasing Encumbrance Option
48610  , p_source_17            IN VARCHAR2
48611  , p_source_17_meaning    IN VARCHAR2
48612 --Accrue on Receipt Option
48613  , p_source_18            IN VARCHAR2
48614  , p_source_18_meaning    IN VARCHAR2
48615 --Accounting Reversal Indicator
48619 --Allocation to Main Distribution Identifier
48616  , p_source_19            IN VARCHAR2
48617 --Distribution Link Type
48618  , p_source_21            IN VARCHAR2
48620  , p_source_23            IN NUMBER
48621 --Invoice Identifier
48622  , p_source_24            IN NUMBER
48623 --Business Flow Accounts Payable Application Identifier
48624  , p_source_25            IN NUMBER
48625 --Business Flow Invoice Distribution Type
48626  , p_source_26            IN VARCHAR2
48627 --Business Flow Invoice Entity Code
48628  , p_source_27            IN VARCHAR2
48629 --Business Flow Invoice Distribution Identifier
48630  , p_source_28            IN NUMBER
48631 --Business Flow Invoice Identifier
48632  , p_source_29            IN NUMBER
48633 --Invoice Distribution Identifier
48634  , p_source_30            IN NUMBER
48635 --Payables Encumbrance Upgrade Credit Account
48636  , p_source_31            IN NUMBER
48637 --Payables Encumbrance Upgrade Credit Amount
48638  , p_source_32            IN NUMBER
48639 --Invoice Currency Code
48640  , p_source_33            IN VARCHAR2
48641 --Payables Encumbrance Upgrade Credit Base Amount
48642  , p_source_34            IN NUMBER
48643 --Payables Encumbrance Upgrade Debit Account
48644  , p_source_35            IN NUMBER
48645 --Payables Encumbrance Upgrade Debit Amount
48646  , p_source_36            IN NUMBER
48647 --Payables Encumbrance Upgrade Debit Base Amount
48648  , p_source_37            IN NUMBER
48649 --Payables Encumbrance Upgrade Option
48650  , p_source_38            IN VARCHAR2
48651 --Invoice Exchange Date
48652  , p_source_39            IN DATE
48653 --Invoice Exchange Rate
48654  , p_source_40            IN NUMBER
48655 --Invoice Exchange Rate Type
48656  , p_source_41            IN VARCHAR2
48657 --Deferred Accounting End Date
48658  , p_source_43            IN DATE
48659 --Deferred Accounting Option
48660  , p_source_44            IN VARCHAR2
48661 --Deferred Accounting Start Date
48662  , p_source_45            IN DATE
48663 --Override Accounted Amount Indicator
48664  , p_source_46            IN VARCHAR2
48665  , p_source_46_meaning    IN VARCHAR2
48666 --Invoice Supplier Identifier
48667  , p_source_47            IN NUMBER
48668 --Invoice Supplier Site Identifier
48669  , p_source_48            IN NUMBER
48670 --Third Party Type
48671  , p_source_49            IN VARCHAR2
48672 --Parent Reversal Identifier
48673  , p_source_50            IN NUMBER
48674 --Invoice Distribution Tax Line Identifier
48675  , p_source_52            IN NUMBER
48676 --Invoice Distribution Tax Distribution Identifier from Tax
48677  , p_source_53            IN NUMBER
48678 --Invoice Distribution Summary Tax Line Identifier
48679  , p_source_54            IN NUMBER
48680 --Payables Upgrade Credit Encumbrance Type Identifier
48681  , p_source_55            IN NUMBER
48682 --Payables Upgrade Debit Encumbrance Type Identifier
48683  , p_source_56            IN NUMBER
48684 --Quantity Variance Amount
48685  , p_source_81            IN NUMBER
48686 --Quantity Variance Amount in Ledger Currency
48687  , p_source_82            IN NUMBER
48688 )
48689 IS
48690 
48691 l_component_type              VARCHAR2(80);
48692 l_component_code              VARCHAR2(30);
48693 l_component_type_code         VARCHAR2(1);
48694 l_component_appl_id           INTEGER;
48695 l_amb_context_code            VARCHAR2(30);
48696 l_entity_code                 VARCHAR2(30);
48697 l_event_class_code            VARCHAR2(30);
48698 l_ae_header_id                NUMBER;
48699 l_event_type_code             VARCHAR2(30);
48700 l_line_definition_code        VARCHAR2(30);
48701 l_line_definition_owner_code  VARCHAR2(1);
48702 --
48703 -- adr variables
48704 l_segment                     VARCHAR2(30);
48705 l_ccid                        NUMBER;
48706 l_adr_transaction_coa_id      NUMBER;
48707 l_adr_accounting_coa_id       NUMBER;
48708 l_adr_flexfield_segment_code  VARCHAR2(30);
48709 l_adr_flex_value_set_id       NUMBER;
48710 l_adr_value_type_code         VARCHAR2(30);
48711 l_adr_value_combination_id    NUMBER;
48712 l_adr_value_segment_code      VARCHAR2(30);
48713 
48714 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48715 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48716 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48717 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48718 
48719 -- 4262811 Variables ------------------------------------------------------------------------------------------
48720 l_entered_amt_idx             NUMBER;
48721 l_accted_amt_idx              NUMBER;
48722 l_acc_rev_flag                VARCHAR2(1);
48723 l_accrual_line_num            NUMBER;
48724 l_tmp_amt                     NUMBER;
48725 l_acc_rev_natural_side_code   VARCHAR2(1);
48726 
48727 l_num_entries                 NUMBER;
48728 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48729 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48730 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48731 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48732 l_recog_line_1                NUMBER;
48733 l_recog_line_2                NUMBER;
48734 
48735 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48736 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48737 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48738 
48742 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48739 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48740 
48741 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48743 
48744 ---------------------------------------------------------------------------------------------------------------
48745 
48746 
48747 --
48748 -- bulk performance
48749 --
48750 l_balance_type_code           VARCHAR2(1);
48751 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48752 l_log_module                  VARCHAR2(240);
48753 
48754 --
48755 -- Upgrade strategy
48756 --
48757 l_actual_upg_option           VARCHAR2(1);
48758 l_enc_upg_option           VARCHAR2(1);
48759 
48760 --
48761 BEGIN
48762 --
48763 IF g_log_enabled THEN
48764       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
48765 END IF;
48766 --
48767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48768 
48769       trace
48770          (p_msg      => 'BEGIN of AcctLineType_78'
48771          ,p_level    => C_LEVEL_PROCEDURE
48772          ,p_module   => l_log_module);
48773 
48774 END IF;
48775 --
48776 l_component_type             := 'AMB_JLT';
48777 l_component_code             := 'AP_TAX_QTY_VARIANCE_DM_ENC_DR';
48778 l_component_type_code        := 'S';
48779 l_component_appl_id          :=  200;
48780 l_amb_context_code           := 'DEFAULT';
48781 l_entity_code                := 'AP_INVOICES';
48782 l_event_class_code           := 'DEBIT MEMOS';
48783 l_event_type_code            := 'DEBIT MEMOS_ALL';
48784 l_line_definition_owner_code := 'S';
48785 l_line_definition_code       := 'ENC_DM_ALL';
48786 --
48787 l_balance_type_code          := 'E';
48788 l_segment                     := NULL;
48789 l_ccid                        := NULL;
48790 l_adr_transaction_coa_id      := NULL;
48791 l_adr_accounting_coa_id       := NULL;
48792 l_adr_flexfield_segment_code  := NULL;
48793 l_adr_flex_value_set_id       := NULL;
48794 l_adr_value_type_code         := NULL;
48795 l_adr_value_combination_id    := NULL;
48796 l_adr_value_segment_code      := NULL;
48797 
48798 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48799 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
48800 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48801 l_budgetary_control_flag     := 'Y';
48802 
48803 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48804 l_bflow_applied_to_amt       := NULL; -- 5132302
48805 l_entered_amt_idx            := NULL;          -- 4262811
48806 l_accted_amt_idx             := NULL;          -- 4262811
48807 l_acc_rev_flag               := NULL;          -- 4262811
48808 l_accrual_line_num           := NULL;          -- 4262811
48809 l_tmp_amt                    := NULL;          -- 4262811
48810 --
48811  
48812 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48813     l_balance_type_code <> 'B' THEN
48814 IF NVL(p_source_15,'
48815 ') =  'NONREC_TAX' AND 
48816 p_source_81 IS NOT NULL AND 
48817 NVL(p_source_17,'
48818 ') =  'Y' AND 
48819 NVL(p_source_18,'
48820 ') <>  'Y'
48821  THEN 
48822 
48823    --
48824    XLA_AE_LINES_PKG.SetNewLine;
48825 
48826    p_balance_type_code          := l_balance_type_code;
48827    -- set the flag so later we will know whether the gain loss line needs to be created
48828    
48829    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48830      p_actual_flag :='A';
48831    END IF;
48832 
48833    --
48834    -- bulk performance
48835    --
48836    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48837                                       p_header_num   => 0); -- 4262811
48838    --
48839    -- set accounting line options
48840    --
48841    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48842            p_natural_side_code          => 'D'
48843          , p_gain_or_loss_flag          => 'N'
48844          , p_gl_transfer_mode_code      => 'S'
48845          , p_acct_entry_type_code       => 'E'
48846          , p_switch_side_flag           => 'Y'
48847          , p_merge_duplicate_code       => 'N'
48848          );
48849    --
48850    l_acc_rev_natural_side_code := 'C';  -- 4262811
48851    -- 
48852    --
48853    -- set accounting line type info
48854    --
48855    xla_ae_lines_pkg.SetAcctLineType
48856       (p_component_type             => l_component_type
48857       ,p_event_type_code            => l_event_type_code
48858       ,p_line_definition_owner_code => l_line_definition_owner_code
48859       ,p_line_definition_code       => l_line_definition_code
48860       ,p_accounting_line_code       => l_component_code
48861       ,p_accounting_line_type_code  => l_component_type_code
48862       ,p_accounting_line_appl_id    => l_component_appl_id
48863       ,p_amb_context_code           => l_amb_context_code
48864       ,p_entity_code                => l_entity_code
48865       ,p_event_class_code           => l_event_class_code);
48866    --
48867    -- set accounting class
48868    --
48869    xla_ae_lines_pkg.SetAcctClass(
48870            p_accounting_class_code  => 'TQV'
48871          , p_ae_header_id           => l_ae_header_id
48872          );
48873 
48874    --
48875    -- set rounding class
48876    --
48880    --
48877    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48878                       'TQV';
48879 
48881    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48882    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48883    --
48884    -- bulk performance
48885    --
48886    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48887 
48888    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48889       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48890 
48891    -- 4955764
48892    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48893       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48894 
48895    -- 4458381 Public Sector Enh
48896       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
48897    --
48898    -- set accounting attributes for the line type
48899    --
48900    l_entered_amt_idx := 23;
48901    l_accted_amt_idx  := 28;
48902    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48903    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48904    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
48905    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48906    l_rec_acct_attrs.array_num_value(2)  := 
48907 xla_ae_sources_pkg.GetSystemSourceNum(
48908    p_source_code           => 'XLA_EVENT_APPL_ID'
48909  , p_source_type_code      => 'Y'
48910  , p_source_application_id =>  602
48911 );
48912    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48913    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
48914    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48915    l_rec_acct_attrs.array_char_value(4)  := 
48916 xla_ae_sources_pkg.GetSystemSourceChar(
48917    p_source_code           => 'XLA_ENTITY_CODE'
48918  , p_source_type_code      => 'Y'
48919  , p_source_application_id =>  602
48920 );
48921    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48922    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
48923    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48924    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
48925    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
48926    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
48927    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48928    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
48929    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
48930    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
48931    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
48932    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
48933    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48934    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
48935    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
48936    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
48937    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
48938    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
48939    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
48940    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
48941    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
48942    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
48943    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
48944    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
48945    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
48946    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
48947    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
48948    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
48949    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
48950    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
48951    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
48952    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
48953    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
48954    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
48955    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
48956    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
48957    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
48958    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
48959    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
48960    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
48961    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
48962    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
48963    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
48964    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
48965    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
48966    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
48967    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
48968    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
48969    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
48970    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
48971    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
48975    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
48972    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
48973    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
48974    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
48976    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
48977    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
48978    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
48979    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
48980    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
48981    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
48982    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
48983    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
48984    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
48985    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
48986    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
48987    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
48988    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
48989    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
48990    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
48991    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
48992    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
48993    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
48994    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
48995    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
48996    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
48997 
48998    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48999    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49000 
49001    ---------------------------------------------------------------------------------------------------------------
49002    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49003    ---------------------------------------------------------------------------------------------------------------
49004    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49005 
49006    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49007    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49008 
49009    IF xla_accounting_cache_pkg.GetValueChar
49010          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49011          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49012    AND l_bflow_method_code = 'PRIOR_ENTRY'
49013 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49014    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49015          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49016        )
49017    THEN
49018          xla_ae_lines_pkg.BflowUpgEntry
49019            (p_business_method_code    => l_bflow_method_code
49020            ,p_business_class_code     => l_bflow_class_code
49021            ,p_balance_type            => l_balance_type_code);
49022    ELSE
49023       NULL;
49024 -- No business flow processing for business flow method of NONE.
49025    END IF;
49026 
49027    --
49028    -- call analytical criteria
49029    --
49030    
49031    --
49032    -- call description
49033    --
49034    
49035 xla_ae_lines_pkg.SetLineDescription(
49036    p_ae_header_id => l_ae_header_id
49037   ,p_description  => Description_2 (
49038      p_application_id         => p_application_id
49039    , p_ae_header_id           => l_ae_header_id 
49040 , p_source_1 => p_source_1
49041    )
49042 );
49043 
49044 
49045    --
49046    -- call ADRs
49047    -- Bug 4922099
49048    --
49049    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49050         (NVL(l_actual_upg_option, 'N') = 'O') OR
49051         (NVL(l_enc_upg_option, 'N') = 'O')
49052       )
49053    THEN
49054    NULL;
49055    --
49056    --
49057    
49058   l_ccid := AcctDerRule_7(
49059            p_application_id           => p_application_id
49060          , p_ae_header_id             => l_ae_header_id 
49061 , p_source_11 => p_source_11
49062          , x_transaction_coa_id       => l_adr_transaction_coa_id
49063          , x_accounting_coa_id        => l_adr_accounting_coa_id
49064          , x_value_type_code          => l_adr_value_type_code
49065          , p_side                     => 'NA'
49066    );
49067 
49068    xla_ae_lines_pkg.set_ccid(
49069     p_code_combination_id          => l_ccid
49070   , p_value_type_code              => l_adr_value_type_code
49071   , p_transaction_coa_id           => l_adr_transaction_coa_id
49072   , p_accounting_coa_id            => l_adr_accounting_coa_id
49073   , p_adr_code                     => 'AP_INVOICE_DIST'
49074   , p_adr_type_code                => 'S'
49075   , p_component_type               => l_component_type
49076   , p_component_code               => l_component_code
49077   , p_component_type_code          => l_component_type_code
49078   , p_component_appl_id            => l_component_appl_id
49079   , p_amb_context_code             => l_amb_context_code
49080   , p_side                         => 'NA'
49081   );
49082 
49083 
49084    --
49085    --
49089    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49086    END IF;
49087    --
49088    -- Bug 4922099
49090           (NVL(l_enc_upg_option, 'N') = 'O')
49091         ) AND
49092         (l_bflow_method_code = 'PRIOR_ENTRY')
49093       )
49094    THEN
49095       IF
49096       --
49097       1 = 2
49098       --
49099       THEN
49100       xla_accounting_err_pkg.build_message
49101                                     (p_appli_s_name            => 'XLA'
49102                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49103                                     ,p_token_1                 => 'LINE_NUMBER'
49104                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49105                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49106                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49107                                                                              l_component_type
49108                                                                             ,l_component_code
49109                                                                             ,l_component_type_code
49110                                                                             ,l_component_appl_id
49111                                                                             ,l_amb_context_code
49112                                                                             ,l_entity_code
49113                                                                             ,l_event_class_code
49114                                                                            )
49115                                     ,p_token_3                 => 'OWNER'
49116                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49117                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49118                                                                           ,p_lookup_code    => l_component_type_code
49119                                                                          )
49120                                     ,p_token_4                 => 'PRODUCT_NAME'
49121                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49122                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49123                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49124                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49125                                     ,p_ae_header_id            =>  NULL
49126                                        );
49127 
49128         IF (C_LEVEL_ERROR>= g_log_level) THEN
49129                  trace
49130                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49131                       ,p_level    => C_LEVEL_ERROR
49132                       ,p_module   => l_log_module);
49133         END IF;
49134       END IF;
49135    END IF;
49136    --
49137    --
49138    ------------------------------------------------------------------------------------------------
49139    -- 4219869 Business Flow
49140    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49141    -- Prior Entry.  Currently, the following code is always generated.
49142    ------------------------------------------------------------------------------------------------
49143    XLA_AE_LINES_PKG.ValidateCurrentLine;
49144 
49145    ------------------------------------------------------------------------------------
49146    -- 4219869 Business Flow
49147    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49148    ------------------------------------------------------------------------------------
49149    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49150 
49151    ----------------------------------------------------------------------------------
49152    -- 4219869 Business Flow
49153    -- Update journal entry status -- Need to generate this within IF <condition>
49154    ----------------------------------------------------------------------------------
49155    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49156          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49157          ,p_balance_type_code => l_balance_type_code
49158          );
49159 
49160    -------------------------------------------------------------------------------------------
49161    -- 4262811 - Generate the Accrual Reversal lines
49162    -------------------------------------------------------------------------------------------
49163    BEGIN
49164       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49165                               (g_array_event(p_event_id).array_value_num('header_index'));
49166       IF l_acc_rev_flag IS NULL THEN
49167          l_acc_rev_flag := 'N';
49168       END IF;
49169    EXCEPTION
49170       WHEN OTHERS THEN
49171          l_acc_rev_flag := 'N';
49172    END;
49173    --
49174    IF (l_acc_rev_flag = 'Y') THEN
49175 
49176        -- 4645092  ------------------------------------------------------------------------------
49177        -- To allow MPA report to determine if it should generate report process
49178        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49182        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49179        ------------------------------------------------------------------------------------------
49180 
49181        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49183    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49184    -- call ADRs
49185    -- Bug 4922099
49186    --
49187    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49188         (NVL(l_actual_upg_option, 'N') = 'O') OR
49189         (NVL(l_enc_upg_option, 'N') = 'O')
49190       )
49191    THEN
49192    NULL;
49193    --
49194    --
49195    
49196   l_ccid := AcctDerRule_7(
49197            p_application_id           => p_application_id
49198          , p_ae_header_id             => l_ae_header_id 
49199 , p_source_11 => p_source_11
49200          , x_transaction_coa_id       => l_adr_transaction_coa_id
49201          , x_accounting_coa_id        => l_adr_accounting_coa_id
49202          , x_value_type_code          => l_adr_value_type_code
49203          , p_side                     => 'NA'
49204    );
49205 
49206    xla_ae_lines_pkg.set_ccid(
49207     p_code_combination_id          => l_ccid
49208   , p_value_type_code              => l_adr_value_type_code
49209   , p_transaction_coa_id           => l_adr_transaction_coa_id
49210   , p_accounting_coa_id            => l_adr_accounting_coa_id
49211   , p_adr_code                     => 'AP_INVOICE_DIST'
49212   , p_adr_type_code                => 'S'
49213   , p_component_type               => l_component_type
49214   , p_component_code               => l_component_code
49215   , p_component_type_code          => l_component_type_code
49216   , p_component_appl_id            => l_component_appl_id
49217   , p_amb_context_code             => l_amb_context_code
49218   , p_side                         => 'NA'
49219   );
49220 
49221 
49222    --
49223    --
49224    END IF;
49225 
49226        --
49227        -- Update the line information that should be overwritten
49228        --
49229        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49230                                          p_header_num   => 1);
49231        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49232 
49233        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49234 
49235        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49236           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49237        END IF;
49238 
49239       --
49240       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49241       --
49242       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49243           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49244       ELSE
49245           ---------------------------------------------------------------------------------------------------
49246           -- 4262811a Switch Sign
49247           ---------------------------------------------------------------------------------------------------
49248           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49249           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49250                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49251           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49252                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49253           -- 5132302
49254           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49255                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49256 
49257       END IF;
49258 
49259       -- 4955764
49260       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49261       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49262 
49263 
49264       XLA_AE_LINES_PKG.ValidateCurrentLine;
49265       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49266 
49267       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49268                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49269                ,p_balance_type_code => l_balance_type_code);
49270 
49271    END IF;
49272 
49273    -----------------------------------------------------------------------------------------
49274    -- 4262811 Multiperiod Accounting
49275    -----------------------------------------------------------------------------------------
49276      -- No MPA option is assigned.
49277 
49278 
49279 END IF;
49280 END IF;
49281 --
49282 
49283 --
49284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49285    trace
49286       (p_msg      => 'END of AcctLineType_78'
49287       ,p_level    => C_LEVEL_PROCEDURE
49288       ,p_module   => l_log_module);
49289 END IF;
49290 --
49291 EXCEPTION
49292   WHEN xla_exceptions_pkg.application_exception THEN
49293       RAISE;
49294   WHEN OTHERS THEN
49295        xla_exceptions_pkg.raise_message
49299 
49296            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_78');
49297 END AcctLineType_78;
49298 --
49300 ---------------------------------------
49301 --
49302 -- PRIVATE FUNCTION
49303 --         AcctLineType_79
49304 --
49305 ---------------------------------------
49306 PROCEDURE AcctLineType_79 (
49307   p_application_id        IN NUMBER
49308  ,p_event_id              IN NUMBER
49309  ,p_calculate_acctd_flag  IN VARCHAR2
49310  ,p_calculate_g_l_flag    IN VARCHAR2
49311  ,p_actual_flag           IN OUT VARCHAR2
49312  ,p_balance_type_code     OUT VARCHAR2
49313  ,p_gain_or_loss_ref      OUT VARCHAR2
49314  
49315 --Invoice Distribution Description
49316  , p_source_1            IN VARCHAR2
49317 --Invoice Distribution Account
49318  , p_source_11            IN NUMBER
49319 --Invoice Distribution Type
49320  , p_source_15            IN VARCHAR2
49321  , p_source_15_meaning    IN VARCHAR2
49322 --Purchasing Encumbrance Option
49323  , p_source_17            IN VARCHAR2
49324  , p_source_17_meaning    IN VARCHAR2
49325 --Accrue on Receipt Option
49326  , p_source_18            IN VARCHAR2
49327  , p_source_18_meaning    IN VARCHAR2
49328 --Accounting Reversal Indicator
49329  , p_source_19            IN VARCHAR2
49330 --Distribution Link Type
49331  , p_source_21            IN VARCHAR2
49332 --Allocation to Main Distribution Identifier
49333  , p_source_23            IN NUMBER
49334 --Invoice Identifier
49335  , p_source_24            IN NUMBER
49336 --Business Flow Accounts Payable Application Identifier
49337  , p_source_25            IN NUMBER
49338 --Business Flow Invoice Distribution Type
49339  , p_source_26            IN VARCHAR2
49340 --Business Flow Invoice Entity Code
49341  , p_source_27            IN VARCHAR2
49342 --Business Flow Invoice Distribution Identifier
49343  , p_source_28            IN NUMBER
49344 --Business Flow Invoice Identifier
49345  , p_source_29            IN NUMBER
49346 --Invoice Distribution Identifier
49347  , p_source_30            IN NUMBER
49348 --Payables Encumbrance Upgrade Credit Account
49349  , p_source_31            IN NUMBER
49350 --Payables Encumbrance Upgrade Credit Amount
49351  , p_source_32            IN NUMBER
49352 --Invoice Currency Code
49353  , p_source_33            IN VARCHAR2
49354 --Payables Encumbrance Upgrade Credit Base Amount
49355  , p_source_34            IN NUMBER
49356 --Payables Encumbrance Upgrade Debit Account
49357  , p_source_35            IN NUMBER
49358 --Payables Encumbrance Upgrade Debit Amount
49359  , p_source_36            IN NUMBER
49360 --Payables Encumbrance Upgrade Debit Base Amount
49361  , p_source_37            IN NUMBER
49362 --Payables Encumbrance Upgrade Option
49363  , p_source_38            IN VARCHAR2
49364 --Invoice Exchange Date
49365  , p_source_39            IN DATE
49366 --Invoice Exchange Rate
49367  , p_source_40            IN NUMBER
49368 --Invoice Exchange Rate Type
49369  , p_source_41            IN VARCHAR2
49370 --Deferred Accounting End Date
49371  , p_source_43            IN DATE
49372 --Deferred Accounting Option
49373  , p_source_44            IN VARCHAR2
49374 --Deferred Accounting Start Date
49375  , p_source_45            IN DATE
49376 --Override Accounted Amount Indicator
49377  , p_source_46            IN VARCHAR2
49378  , p_source_46_meaning    IN VARCHAR2
49379 --Invoice Supplier Identifier
49380  , p_source_47            IN NUMBER
49381 --Invoice Supplier Site Identifier
49382  , p_source_48            IN NUMBER
49383 --Third Party Type
49384  , p_source_49            IN VARCHAR2
49385 --Parent Reversal Identifier
49386  , p_source_50            IN NUMBER
49387 --Invoice Distribution Statistical Amount
49388  , p_source_51            IN NUMBER
49389 --Invoice Distribution Tax Line Identifier
49390  , p_source_52            IN NUMBER
49391 --Invoice Distribution Tax Distribution Identifier from Tax
49392  , p_source_53            IN NUMBER
49393 --Invoice Distribution Summary Tax Line Identifier
49394  , p_source_54            IN NUMBER
49395 --Payables Upgrade Credit Encumbrance Type Identifier
49396  , p_source_55            IN NUMBER
49397 --Payables Upgrade Debit Encumbrance Type Identifier
49398  , p_source_56            IN NUMBER
49399 --Invoice Distribution Amount
49400  , p_source_57            IN NUMBER
49401 --Quantity Variance Amount
49402  , p_source_81            IN NUMBER
49403 --Quantity Variance Amount in Ledger Currency
49404  , p_source_82            IN NUMBER
49405 )
49406 IS
49407 
49408 l_component_type              VARCHAR2(80);
49409 l_component_code              VARCHAR2(30);
49410 l_component_type_code         VARCHAR2(1);
49411 l_component_appl_id           INTEGER;
49412 l_amb_context_code            VARCHAR2(30);
49413 l_entity_code                 VARCHAR2(30);
49414 l_event_class_code            VARCHAR2(30);
49415 l_ae_header_id                NUMBER;
49416 l_event_type_code             VARCHAR2(30);
49417 l_line_definition_code        VARCHAR2(30);
49418 l_line_definition_owner_code  VARCHAR2(1);
49419 --
49420 -- adr variables
49421 l_segment                     VARCHAR2(30);
49422 l_ccid                        NUMBER;
49423 l_adr_transaction_coa_id      NUMBER;
49424 l_adr_accounting_coa_id       NUMBER;
49425 l_adr_flexfield_segment_code  VARCHAR2(30);
49426 l_adr_flex_value_set_id       NUMBER;
49427 l_adr_value_type_code         VARCHAR2(30);
49428 l_adr_value_combination_id    NUMBER;
49429 l_adr_value_segment_code      VARCHAR2(30);
49430 
49434 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49431 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49432 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49433 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49435 
49436 -- 4262811 Variables ------------------------------------------------------------------------------------------
49437 l_entered_amt_idx             NUMBER;
49438 l_accted_amt_idx              NUMBER;
49439 l_acc_rev_flag                VARCHAR2(1);
49440 l_accrual_line_num            NUMBER;
49441 l_tmp_amt                     NUMBER;
49442 l_acc_rev_natural_side_code   VARCHAR2(1);
49443 
49444 l_num_entries                 NUMBER;
49445 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49446 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49447 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49448 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49449 l_recog_line_1                NUMBER;
49450 l_recog_line_2                NUMBER;
49451 
49452 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49453 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49454 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49455 
49456 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49457 
49458 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49459 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49460 
49461 ---------------------------------------------------------------------------------------------------------------
49462 
49463 
49464 --
49465 -- bulk performance
49466 --
49467 l_balance_type_code           VARCHAR2(1);
49468 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49469 l_log_module                  VARCHAR2(240);
49470 
49471 --
49472 -- Upgrade strategy
49473 --
49474 l_actual_upg_option           VARCHAR2(1);
49475 l_enc_upg_option           VARCHAR2(1);
49476 
49477 --
49478 BEGIN
49479 --
49480 IF g_log_enabled THEN
49481       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
49482 END IF;
49483 --
49484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49485 
49486       trace
49487          (p_msg      => 'BEGIN of AcctLineType_79'
49488          ,p_level    => C_LEVEL_PROCEDURE
49489          ,p_module   => l_log_module);
49490 
49491 END IF;
49492 --
49493 l_component_type             := 'AMB_JLT';
49494 l_component_code             := 'AP_TAX_QTY_VARIANCE_INV_ENC_DR';
49495 l_component_type_code        := 'S';
49496 l_component_appl_id          :=  200;
49497 l_amb_context_code           := 'DEFAULT';
49498 l_entity_code                := 'AP_INVOICES';
49499 l_event_class_code           := 'INVOICES';
49500 l_event_type_code            := 'INVOICES_ALL';
49501 l_line_definition_owner_code := 'S';
49502 l_line_definition_code       := 'ENC_INVOICES_ALL';
49503 --
49504 l_balance_type_code          := 'E';
49505 l_segment                     := NULL;
49506 l_ccid                        := NULL;
49507 l_adr_transaction_coa_id      := NULL;
49508 l_adr_accounting_coa_id       := NULL;
49509 l_adr_flexfield_segment_code  := NULL;
49510 l_adr_flex_value_set_id       := NULL;
49511 l_adr_value_type_code         := NULL;
49512 l_adr_value_combination_id    := NULL;
49513 l_adr_value_segment_code      := NULL;
49514 
49515 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49516 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
49517 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49518 l_budgetary_control_flag     := 'Y';
49519 
49520 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49521 l_bflow_applied_to_amt       := NULL; -- 5132302
49522 l_entered_amt_idx            := NULL;          -- 4262811
49523 l_accted_amt_idx             := NULL;          -- 4262811
49524 l_acc_rev_flag               := NULL;          -- 4262811
49525 l_accrual_line_num           := NULL;          -- 4262811
49526 l_tmp_amt                    := NULL;          -- 4262811
49527 --
49528  
49529 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49530     l_balance_type_code <> 'B' THEN
49531 IF NVL(p_source_15,'
49532 ') =  'NONREC_TAX' AND 
49533 p_source_81 IS NOT NULL AND 
49534 NVL(p_source_17,'
49535 ') =  'Y' AND 
49536 NVL(p_source_18,'
49537 ') <>  'Y'
49538  THEN 
49539 
49540    --
49541    XLA_AE_LINES_PKG.SetNewLine;
49542 
49543    p_balance_type_code          := l_balance_type_code;
49544    -- set the flag so later we will know whether the gain loss line needs to be created
49545    
49546    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49547      p_actual_flag :='A';
49548    END IF;
49549 
49550    --
49551    -- bulk performance
49552    --
49553    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49554                                       p_header_num   => 0); -- 4262811
49555    --
49556    -- set accounting line options
49557    --
49558    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49559            p_natural_side_code          => 'D'
49560          , p_gain_or_loss_flag          => 'N'
49561          , p_gl_transfer_mode_code      => 'S'
49565          );
49562          , p_acct_entry_type_code       => 'E'
49563          , p_switch_side_flag           => 'Y'
49564          , p_merge_duplicate_code       => 'N'
49566    --
49567    l_acc_rev_natural_side_code := 'C';  -- 4262811
49568    -- 
49569    --
49570    -- set accounting line type info
49571    --
49572    xla_ae_lines_pkg.SetAcctLineType
49573       (p_component_type             => l_component_type
49574       ,p_event_type_code            => l_event_type_code
49575       ,p_line_definition_owner_code => l_line_definition_owner_code
49576       ,p_line_definition_code       => l_line_definition_code
49577       ,p_accounting_line_code       => l_component_code
49578       ,p_accounting_line_type_code  => l_component_type_code
49579       ,p_accounting_line_appl_id    => l_component_appl_id
49580       ,p_amb_context_code           => l_amb_context_code
49581       ,p_entity_code                => l_entity_code
49582       ,p_event_class_code           => l_event_class_code);
49583    --
49584    -- set accounting class
49585    --
49586    xla_ae_lines_pkg.SetAcctClass(
49587            p_accounting_class_code  => 'TQV'
49588          , p_ae_header_id           => l_ae_header_id
49589          );
49590 
49591    --
49592    -- set rounding class
49593    --
49594    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49595                       'TQV';
49596 
49597    --
49598    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49599    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49600    --
49601    -- bulk performance
49602    --
49603    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49604 
49605    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49606       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49607 
49608    -- 4955764
49609    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49610       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49611 
49612    -- 4458381 Public Sector Enh
49613       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
49614    --
49615    -- set accounting attributes for the line type
49616    --
49617    l_entered_amt_idx := 24;
49618    l_accted_amt_idx  := 29;
49619    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
49620    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49621    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
49622    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
49623    l_rec_acct_attrs.array_num_value(2)  := 
49624 xla_ae_sources_pkg.GetSystemSourceNum(
49625    p_source_code           => 'XLA_EVENT_APPL_ID'
49626  , p_source_type_code      => 'Y'
49627  , p_source_application_id =>  602
49628 );
49629    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
49630    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
49631    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
49632    l_rec_acct_attrs.array_char_value(4)  := 
49633 xla_ae_sources_pkg.GetSystemSourceChar(
49634    p_source_code           => 'XLA_ENTITY_CODE'
49635  , p_source_type_code      => 'Y'
49636  , p_source_application_id =>  602
49637 );
49638    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
49639    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
49640    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
49641    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
49642    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
49643    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
49644    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
49645    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
49646    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49647    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
49648    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
49649    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
49650    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
49651    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
49652    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49653    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
49654    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
49655    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
49656    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
49657    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
49658    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
49659    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
49660    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
49661    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
49662    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
49663    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
49664    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
49665    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
49666    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
49667    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
49671    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
49668    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
49669    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
49670    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
49672    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
49673    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
49674    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
49675    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
49676    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
49677    l_rec_acct_attrs.array_num_value(24)  := p_source_81;
49678    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
49679    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
49680    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
49681    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
49682    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
49683    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
49684    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
49685    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
49686    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
49687    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
49688    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
49689    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
49690    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
49691    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
49692    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
49693    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
49694    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
49695    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
49696    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
49697    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
49698    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
49699    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
49700    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
49701    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
49702    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
49703    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
49704    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
49705    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
49706    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
49707    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
49708    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
49709    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
49710    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
49711    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
49712    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
49713    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
49714    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
49715    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
49716    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
49717    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
49718 
49719    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49720    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49721 
49722    ---------------------------------------------------------------------------------------------------------------
49723    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49724    ---------------------------------------------------------------------------------------------------------------
49725    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49726 
49727    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49728    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49729 
49730    IF xla_accounting_cache_pkg.GetValueChar
49731          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49732          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49733    AND l_bflow_method_code = 'PRIOR_ENTRY'
49734 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49735    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49736          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49737        )
49738    THEN
49739          xla_ae_lines_pkg.BflowUpgEntry
49740            (p_business_method_code    => l_bflow_method_code
49741            ,p_business_class_code     => l_bflow_class_code
49742            ,p_balance_type            => l_balance_type_code);
49743    ELSE
49744       NULL;
49745 -- No business flow processing for business flow method of NONE.
49746    END IF;
49747 
49748    --
49749    -- call analytical criteria
49750    --
49751    
49752    --
49753    -- call description
49754    --
49755    
49756 xla_ae_lines_pkg.SetLineDescription(
49757    p_ae_header_id => l_ae_header_id
49758   ,p_description  => Description_2 (
49759      p_application_id         => p_application_id
49760    , p_ae_header_id           => l_ae_header_id 
49761 , p_source_1 => p_source_1
49762    )
49763 );
49764 
49768    -- Bug 4922099
49765 
49766    --
49767    -- call ADRs
49769    --
49770    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49771         (NVL(l_actual_upg_option, 'N') = 'O') OR
49772         (NVL(l_enc_upg_option, 'N') = 'O')
49773       )
49774    THEN
49775    NULL;
49776    --
49777    --
49778    
49779   l_ccid := AcctDerRule_7(
49780            p_application_id           => p_application_id
49781          , p_ae_header_id             => l_ae_header_id 
49782 , p_source_11 => p_source_11
49783          , x_transaction_coa_id       => l_adr_transaction_coa_id
49784          , x_accounting_coa_id        => l_adr_accounting_coa_id
49785          , x_value_type_code          => l_adr_value_type_code
49786          , p_side                     => 'NA'
49787    );
49788 
49789    xla_ae_lines_pkg.set_ccid(
49790     p_code_combination_id          => l_ccid
49791   , p_value_type_code              => l_adr_value_type_code
49792   , p_transaction_coa_id           => l_adr_transaction_coa_id
49793   , p_accounting_coa_id            => l_adr_accounting_coa_id
49794   , p_adr_code                     => 'AP_INVOICE_DIST'
49795   , p_adr_type_code                => 'S'
49796   , p_component_type               => l_component_type
49797   , p_component_code               => l_component_code
49798   , p_component_type_code          => l_component_type_code
49799   , p_component_appl_id            => l_component_appl_id
49800   , p_amb_context_code             => l_amb_context_code
49801   , p_side                         => 'NA'
49802   );
49803 
49804 
49805    --
49806    --
49807    END IF;
49808    --
49809    -- Bug 4922099
49810    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49811           (NVL(l_enc_upg_option, 'N') = 'O')
49812         ) AND
49813         (l_bflow_method_code = 'PRIOR_ENTRY')
49814       )
49815    THEN
49816       IF
49817       --
49818       1 = 2
49819       --
49820       THEN
49821       xla_accounting_err_pkg.build_message
49822                                     (p_appli_s_name            => 'XLA'
49823                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49824                                     ,p_token_1                 => 'LINE_NUMBER'
49825                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49826                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49827                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49828                                                                              l_component_type
49829                                                                             ,l_component_code
49830                                                                             ,l_component_type_code
49831                                                                             ,l_component_appl_id
49832                                                                             ,l_amb_context_code
49833                                                                             ,l_entity_code
49834                                                                             ,l_event_class_code
49835                                                                            )
49836                                     ,p_token_3                 => 'OWNER'
49837                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49838                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49839                                                                           ,p_lookup_code    => l_component_type_code
49840                                                                          )
49841                                     ,p_token_4                 => 'PRODUCT_NAME'
49842                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49843                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49844                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49845                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49846                                     ,p_ae_header_id            =>  NULL
49847                                        );
49848 
49849         IF (C_LEVEL_ERROR>= g_log_level) THEN
49850                  trace
49851                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49852                       ,p_level    => C_LEVEL_ERROR
49853                       ,p_module   => l_log_module);
49854         END IF;
49855       END IF;
49856    END IF;
49857    --
49858    --
49859    ------------------------------------------------------------------------------------------------
49860    -- 4219869 Business Flow
49861    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49862    -- Prior Entry.  Currently, the following code is always generated.
49863    ------------------------------------------------------------------------------------------------
49864    XLA_AE_LINES_PKG.ValidateCurrentLine;
49865 
49866    ------------------------------------------------------------------------------------
49867    -- 4219869 Business Flow
49868    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49872    ----------------------------------------------------------------------------------
49869    ------------------------------------------------------------------------------------
49870    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49871 
49873    -- 4219869 Business Flow
49874    -- Update journal entry status -- Need to generate this within IF <condition>
49875    ----------------------------------------------------------------------------------
49876    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49877          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49878          ,p_balance_type_code => l_balance_type_code
49879          );
49880 
49881    -------------------------------------------------------------------------------------------
49882    -- 4262811 - Generate the Accrual Reversal lines
49883    -------------------------------------------------------------------------------------------
49884    BEGIN
49885       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49886                               (g_array_event(p_event_id).array_value_num('header_index'));
49887       IF l_acc_rev_flag IS NULL THEN
49888          l_acc_rev_flag := 'N';
49889       END IF;
49890    EXCEPTION
49891       WHEN OTHERS THEN
49892          l_acc_rev_flag := 'N';
49893    END;
49894    --
49895    IF (l_acc_rev_flag = 'Y') THEN
49896 
49897        -- 4645092  ------------------------------------------------------------------------------
49898        -- To allow MPA report to determine if it should generate report process
49899        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49900        ------------------------------------------------------------------------------------------
49901 
49902        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49903        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49904    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49905    -- call ADRs
49906    -- Bug 4922099
49907    --
49908    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49909         (NVL(l_actual_upg_option, 'N') = 'O') OR
49910         (NVL(l_enc_upg_option, 'N') = 'O')
49911       )
49912    THEN
49913    NULL;
49914    --
49915    --
49916    
49917   l_ccid := AcctDerRule_7(
49918            p_application_id           => p_application_id
49919          , p_ae_header_id             => l_ae_header_id 
49920 , p_source_11 => p_source_11
49921          , x_transaction_coa_id       => l_adr_transaction_coa_id
49922          , x_accounting_coa_id        => l_adr_accounting_coa_id
49923          , x_value_type_code          => l_adr_value_type_code
49924          , p_side                     => 'NA'
49925    );
49926 
49927    xla_ae_lines_pkg.set_ccid(
49928     p_code_combination_id          => l_ccid
49929   , p_value_type_code              => l_adr_value_type_code
49930   , p_transaction_coa_id           => l_adr_transaction_coa_id
49931   , p_accounting_coa_id            => l_adr_accounting_coa_id
49932   , p_adr_code                     => 'AP_INVOICE_DIST'
49933   , p_adr_type_code                => 'S'
49934   , p_component_type               => l_component_type
49935   , p_component_code               => l_component_code
49936   , p_component_type_code          => l_component_type_code
49937   , p_component_appl_id            => l_component_appl_id
49938   , p_amb_context_code             => l_amb_context_code
49939   , p_side                         => 'NA'
49940   );
49941 
49942 
49943    --
49944    --
49945    END IF;
49946 
49947        --
49948        -- Update the line information that should be overwritten
49949        --
49950        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49951                                          p_header_num   => 1);
49952        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49953 
49954        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49955 
49956        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49957           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49958        END IF;
49959 
49960       --
49961       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49962       --
49963       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49964           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49965       ELSE
49966           ---------------------------------------------------------------------------------------------------
49967           -- 4262811a Switch Sign
49968           ---------------------------------------------------------------------------------------------------
49969           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49970           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49971                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49972           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49973                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49974           -- 5132302
49975           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49979 
49976                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49977 
49978       END IF;
49980       -- 4955764
49981       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49982       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49983 
49984 
49985       XLA_AE_LINES_PKG.ValidateCurrentLine;
49986       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49987 
49988       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49989                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49990                ,p_balance_type_code => l_balance_type_code);
49991 
49992    END IF;
49993 
49994    -----------------------------------------------------------------------------------------
49995    -- 4262811 Multiperiod Accounting
49996    -----------------------------------------------------------------------------------------
49997      -- No MPA option is assigned.
49998 
49999 
50000 END IF;
50001 END IF;
50002 --
50003 
50004 --
50005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50006    trace
50007       (p_msg      => 'END of AcctLineType_79'
50008       ,p_level    => C_LEVEL_PROCEDURE
50009       ,p_module   => l_log_module);
50010 END IF;
50011 --
50012 EXCEPTION
50013   WHEN xla_exceptions_pkg.application_exception THEN
50014       RAISE;
50015   WHEN OTHERS THEN
50016        xla_exceptions_pkg.raise_message
50017            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_79');
50018 END AcctLineType_79;
50019 --
50020 
50021 ---------------------------------------
50022 --
50023 -- PRIVATE FUNCTION
50024 --         AcctLineType_80
50025 --
50026 ---------------------------------------
50027 PROCEDURE AcctLineType_80 (
50028   p_application_id        IN NUMBER
50029  ,p_event_id              IN NUMBER
50030  ,p_calculate_acctd_flag  IN VARCHAR2
50031  ,p_calculate_g_l_flag    IN VARCHAR2
50032  ,p_actual_flag           IN OUT VARCHAR2
50033  ,p_balance_type_code     OUT VARCHAR2
50034  ,p_gain_or_loss_ref      OUT VARCHAR2
50035  
50036 --Invoice Distribution Description
50037  , p_source_1            IN VARCHAR2
50038 --Invoice Distribution Account
50039  , p_source_11            IN NUMBER
50040 --Invoice Distribution Type
50041  , p_source_15            IN VARCHAR2
50042  , p_source_15_meaning    IN VARCHAR2
50043 --Purchasing Encumbrance Option
50044  , p_source_17            IN VARCHAR2
50045  , p_source_17_meaning    IN VARCHAR2
50046 --Accrue on Receipt Option
50047  , p_source_18            IN VARCHAR2
50048  , p_source_18_meaning    IN VARCHAR2
50049 --Accounting Reversal Indicator
50050  , p_source_19            IN VARCHAR2
50051 --Distribution Link Type
50052  , p_source_21            IN VARCHAR2
50053 --Allocation to Main Distribution Identifier
50054  , p_source_23            IN NUMBER
50055 --Invoice Identifier
50056  , p_source_24            IN NUMBER
50057 --Business Flow Accounts Payable Application Identifier
50058  , p_source_25            IN NUMBER
50059 --Business Flow Invoice Distribution Type
50060  , p_source_26            IN VARCHAR2
50061 --Business Flow Invoice Entity Code
50062  , p_source_27            IN VARCHAR2
50063 --Business Flow Invoice Distribution Identifier
50064  , p_source_28            IN NUMBER
50065 --Business Flow Invoice Identifier
50066  , p_source_29            IN NUMBER
50067 --Invoice Distribution Identifier
50068  , p_source_30            IN NUMBER
50069 --Payables Encumbrance Upgrade Credit Account
50070  , p_source_31            IN NUMBER
50071 --Payables Encumbrance Upgrade Credit Amount
50072  , p_source_32            IN NUMBER
50073 --Invoice Currency Code
50074  , p_source_33            IN VARCHAR2
50075 --Payables Encumbrance Upgrade Credit Base Amount
50076  , p_source_34            IN NUMBER
50077 --Payables Encumbrance Upgrade Debit Account
50078  , p_source_35            IN NUMBER
50079 --Payables Encumbrance Upgrade Debit Amount
50080  , p_source_36            IN NUMBER
50081 --Payables Encumbrance Upgrade Debit Base Amount
50082  , p_source_37            IN NUMBER
50083 --Payables Encumbrance Upgrade Option
50084  , p_source_38            IN VARCHAR2
50085 --Invoice Exchange Date
50086  , p_source_39            IN DATE
50087 --Invoice Exchange Rate
50088  , p_source_40            IN NUMBER
50089 --Invoice Exchange Rate Type
50090  , p_source_41            IN VARCHAR2
50091 --Deferred Accounting End Date
50092  , p_source_43            IN DATE
50093 --Deferred Accounting Option
50094  , p_source_44            IN VARCHAR2
50095 --Deferred Accounting Start Date
50096  , p_source_45            IN DATE
50097 --Override Accounted Amount Indicator
50098  , p_source_46            IN VARCHAR2
50099  , p_source_46_meaning    IN VARCHAR2
50100 --Invoice Supplier Identifier
50101  , p_source_47            IN NUMBER
50102 --Invoice Supplier Site Identifier
50103  , p_source_48            IN NUMBER
50104 --Third Party Type
50105  , p_source_49            IN VARCHAR2
50106 --Parent Reversal Identifier
50107  , p_source_50            IN NUMBER
50108 --Invoice Distribution Statistical Amount
50109  , p_source_51            IN NUMBER
50110 --Invoice Distribution Tax Line Identifier
50111  , p_source_52            IN NUMBER
50112 --Invoice Distribution Tax Distribution Identifier from Tax
50113  , p_source_53            IN NUMBER
50117  , p_source_55            IN NUMBER
50114 --Invoice Distribution Summary Tax Line Identifier
50115  , p_source_54            IN NUMBER
50116 --Payables Upgrade Credit Encumbrance Type Identifier
50118 --Payables Upgrade Debit Encumbrance Type Identifier
50119  , p_source_56            IN NUMBER
50120 --Quantity Variance Amount
50121  , p_source_81            IN NUMBER
50122 --Quantity Variance Amount in Ledger Currency
50123  , p_source_82            IN NUMBER
50124 )
50125 IS
50126 
50127 l_component_type              VARCHAR2(80);
50128 l_component_code              VARCHAR2(30);
50129 l_component_type_code         VARCHAR2(1);
50130 l_component_appl_id           INTEGER;
50131 l_amb_context_code            VARCHAR2(30);
50132 l_entity_code                 VARCHAR2(30);
50133 l_event_class_code            VARCHAR2(30);
50134 l_ae_header_id                NUMBER;
50135 l_event_type_code             VARCHAR2(30);
50136 l_line_definition_code        VARCHAR2(30);
50137 l_line_definition_owner_code  VARCHAR2(1);
50138 --
50139 -- adr variables
50140 l_segment                     VARCHAR2(30);
50141 l_ccid                        NUMBER;
50142 l_adr_transaction_coa_id      NUMBER;
50143 l_adr_accounting_coa_id       NUMBER;
50144 l_adr_flexfield_segment_code  VARCHAR2(30);
50145 l_adr_flex_value_set_id       NUMBER;
50146 l_adr_value_type_code         VARCHAR2(30);
50147 l_adr_value_combination_id    NUMBER;
50148 l_adr_value_segment_code      VARCHAR2(30);
50149 
50150 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50151 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50152 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50153 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50154 
50155 -- 4262811 Variables ------------------------------------------------------------------------------------------
50156 l_entered_amt_idx             NUMBER;
50157 l_accted_amt_idx              NUMBER;
50158 l_acc_rev_flag                VARCHAR2(1);
50159 l_accrual_line_num            NUMBER;
50160 l_tmp_amt                     NUMBER;
50161 l_acc_rev_natural_side_code   VARCHAR2(1);
50162 
50163 l_num_entries                 NUMBER;
50164 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50165 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50166 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50167 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50168 l_recog_line_1                NUMBER;
50169 l_recog_line_2                NUMBER;
50170 
50171 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50172 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50173 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50174 
50175 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50176 
50177 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50178 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50179 
50180 ---------------------------------------------------------------------------------------------------------------
50181 
50182 
50183 --
50184 -- bulk performance
50185 --
50186 l_balance_type_code           VARCHAR2(1);
50187 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50188 l_log_module                  VARCHAR2(240);
50189 
50190 --
50191 -- Upgrade strategy
50192 --
50193 l_actual_upg_option           VARCHAR2(1);
50194 l_enc_upg_option           VARCHAR2(1);
50195 
50196 --
50197 BEGIN
50198 --
50199 IF g_log_enabled THEN
50200       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
50201 END IF;
50202 --
50203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50204 
50205       trace
50206          (p_msg      => 'BEGIN of AcctLineType_80'
50207          ,p_level    => C_LEVEL_PROCEDURE
50208          ,p_module   => l_log_module);
50209 
50210 END IF;
50211 --
50212 l_component_type             := 'AMB_JLT';
50213 l_component_code             := 'AP_TAX_QTY_VARIANCE_PP_ENC_DR';
50214 l_component_type_code        := 'S';
50215 l_component_appl_id          :=  200;
50216 l_amb_context_code           := 'DEFAULT';
50217 l_entity_code                := 'AP_INVOICES';
50218 l_event_class_code           := 'PREPAYMENTS';
50219 l_event_type_code            := 'PREPAYMENTS_ALL';
50220 l_line_definition_owner_code := 'S';
50221 l_line_definition_code       := 'ENC_PREPAY_ALL';
50222 --
50223 l_balance_type_code          := 'E';
50224 l_segment                     := NULL;
50225 l_ccid                        := NULL;
50226 l_adr_transaction_coa_id      := NULL;
50227 l_adr_accounting_coa_id       := NULL;
50228 l_adr_flexfield_segment_code  := NULL;
50229 l_adr_flex_value_set_id       := NULL;
50230 l_adr_value_type_code         := NULL;
50231 l_adr_value_combination_id    := NULL;
50232 l_adr_value_segment_code      := NULL;
50233 
50234 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50235 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
50236 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50237 l_budgetary_control_flag     := 'Y';
50238 
50239 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50240 l_bflow_applied_to_amt       := NULL; -- 5132302
50241 l_entered_amt_idx            := NULL;          -- 4262811
50245 l_tmp_amt                    := NULL;          -- 4262811
50242 l_accted_amt_idx             := NULL;          -- 4262811
50243 l_acc_rev_flag               := NULL;          -- 4262811
50244 l_accrual_line_num           := NULL;          -- 4262811
50246 --
50247  
50248 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50249     l_balance_type_code <> 'B' THEN
50250 IF NVL(p_source_15,'
50251 ') =  'NONREC_TAX' AND 
50252 p_source_81 IS NOT NULL AND 
50253 NVL(p_source_17,'
50254 ') =  'Y' AND 
50255 NVL(p_source_18,'
50256 ') <>  'Y'
50257  THEN 
50258 
50259    --
50260    XLA_AE_LINES_PKG.SetNewLine;
50261 
50262    p_balance_type_code          := l_balance_type_code;
50263    -- set the flag so later we will know whether the gain loss line needs to be created
50264    
50265    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50266      p_actual_flag :='A';
50267    END IF;
50268 
50269    --
50270    -- bulk performance
50271    --
50272    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50273                                       p_header_num   => 0); -- 4262811
50274    --
50275    -- set accounting line options
50276    --
50277    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50278            p_natural_side_code          => 'D'
50279          , p_gain_or_loss_flag          => 'N'
50280          , p_gl_transfer_mode_code      => 'S'
50281          , p_acct_entry_type_code       => 'E'
50282          , p_switch_side_flag           => 'Y'
50283          , p_merge_duplicate_code       => 'N'
50284          );
50285    --
50286    l_acc_rev_natural_side_code := 'C';  -- 4262811
50287    -- 
50288    --
50289    -- set accounting line type info
50290    --
50291    xla_ae_lines_pkg.SetAcctLineType
50292       (p_component_type             => l_component_type
50293       ,p_event_type_code            => l_event_type_code
50294       ,p_line_definition_owner_code => l_line_definition_owner_code
50295       ,p_line_definition_code       => l_line_definition_code
50296       ,p_accounting_line_code       => l_component_code
50297       ,p_accounting_line_type_code  => l_component_type_code
50298       ,p_accounting_line_appl_id    => l_component_appl_id
50299       ,p_amb_context_code           => l_amb_context_code
50300       ,p_entity_code                => l_entity_code
50301       ,p_event_class_code           => l_event_class_code);
50302    --
50303    -- set accounting class
50304    --
50305    xla_ae_lines_pkg.SetAcctClass(
50306            p_accounting_class_code  => 'TQV'
50307          , p_ae_header_id           => l_ae_header_id
50308          );
50309 
50310    --
50311    -- set rounding class
50312    --
50313    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50314                       'TQV';
50315 
50316    --
50317    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50318    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50319    --
50320    -- bulk performance
50321    --
50322    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50323 
50324    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50325       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50326 
50327    -- 4955764
50328    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50329       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50330 
50331    -- 4458381 Public Sector Enh
50332       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
50333    --
50334    -- set accounting attributes for the line type
50335    --
50336    l_entered_amt_idx := 23;
50337    l_accted_amt_idx  := 28;
50338    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
50339    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50340    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
50341    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
50342    l_rec_acct_attrs.array_num_value(2)  := 
50343 xla_ae_sources_pkg.GetSystemSourceNum(
50344    p_source_code           => 'XLA_EVENT_APPL_ID'
50345  , p_source_type_code      => 'Y'
50346  , p_source_application_id =>  602
50347 );
50348    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
50349    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
50350    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
50351    l_rec_acct_attrs.array_char_value(4)  := 
50352 xla_ae_sources_pkg.GetSystemSourceChar(
50353    p_source_code           => 'XLA_ENTITY_CODE'
50354  , p_source_type_code      => 'Y'
50355  , p_source_application_id =>  602
50356 );
50357    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
50358    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
50359    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
50360    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
50361    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
50362    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
50363    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50364    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
50368    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
50365    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
50366    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
50367    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
50369    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50370    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
50371    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
50372    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
50373    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
50374    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
50375    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
50376    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
50377    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
50378    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
50379    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
50380    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
50381    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
50382    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
50383    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
50384    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
50385    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
50386    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
50387    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
50388    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
50389    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
50390    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
50391    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
50392    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
50393    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
50394    l_rec_acct_attrs.array_num_value(23)  := p_source_81;
50395    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
50396    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
50397    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
50398    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
50399    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
50400    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
50401    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
50402    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
50403    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
50404    l_rec_acct_attrs.array_num_value(28)  := p_source_82;
50405    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
50406    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
50407    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
50408    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
50409    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
50410    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
50411    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
50412    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
50413    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
50414    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
50415    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
50416    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
50417    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
50418    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
50419    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
50420    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
50421    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
50422    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
50423    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
50424    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
50425    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
50426    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
50427    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
50428    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
50429    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
50430    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
50431    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
50432    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
50433    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
50434    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
50435 
50436    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50437    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50438 
50439    ---------------------------------------------------------------------------------------------------------------
50440    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50441    ---------------------------------------------------------------------------------------------------------------
50442    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50443 
50444    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50448          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50445    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50446 
50447    IF xla_accounting_cache_pkg.GetValueChar
50449          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50450    AND l_bflow_method_code = 'PRIOR_ENTRY'
50451 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50452    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50453          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50454        )
50455    THEN
50456          xla_ae_lines_pkg.BflowUpgEntry
50457            (p_business_method_code    => l_bflow_method_code
50458            ,p_business_class_code     => l_bflow_class_code
50459            ,p_balance_type            => l_balance_type_code);
50460    ELSE
50461       NULL;
50462 -- No business flow processing for business flow method of NONE.
50463    END IF;
50464 
50465    --
50466    -- call analytical criteria
50467    --
50468    
50469    --
50470    -- call description
50471    --
50472    
50473 xla_ae_lines_pkg.SetLineDescription(
50474    p_ae_header_id => l_ae_header_id
50475   ,p_description  => Description_2 (
50476      p_application_id         => p_application_id
50477    , p_ae_header_id           => l_ae_header_id 
50478 , p_source_1 => p_source_1
50479    )
50480 );
50481 
50482 
50483    --
50484    -- call ADRs
50485    -- Bug 4922099
50486    --
50487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50488         (NVL(l_actual_upg_option, 'N') = 'O') OR
50489         (NVL(l_enc_upg_option, 'N') = 'O')
50490       )
50491    THEN
50492    NULL;
50493    --
50494    --
50495    
50496   l_ccid := AcctDerRule_7(
50497            p_application_id           => p_application_id
50498          , p_ae_header_id             => l_ae_header_id 
50499 , p_source_11 => p_source_11
50500          , x_transaction_coa_id       => l_adr_transaction_coa_id
50501          , x_accounting_coa_id        => l_adr_accounting_coa_id
50502          , x_value_type_code          => l_adr_value_type_code
50503          , p_side                     => 'NA'
50504    );
50505 
50506    xla_ae_lines_pkg.set_ccid(
50507     p_code_combination_id          => l_ccid
50508   , p_value_type_code              => l_adr_value_type_code
50509   , p_transaction_coa_id           => l_adr_transaction_coa_id
50510   , p_accounting_coa_id            => l_adr_accounting_coa_id
50511   , p_adr_code                     => 'AP_INVOICE_DIST'
50512   , p_adr_type_code                => 'S'
50513   , p_component_type               => l_component_type
50514   , p_component_code               => l_component_code
50515   , p_component_type_code          => l_component_type_code
50516   , p_component_appl_id            => l_component_appl_id
50517   , p_amb_context_code             => l_amb_context_code
50518   , p_side                         => 'NA'
50519   );
50520 
50521 
50522    --
50523    --
50524    END IF;
50525    --
50526    -- Bug 4922099
50527    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50528           (NVL(l_enc_upg_option, 'N') = 'O')
50529         ) AND
50530         (l_bflow_method_code = 'PRIOR_ENTRY')
50531       )
50532    THEN
50533       IF
50534       --
50535       1 = 2
50536       --
50537       THEN
50538       xla_accounting_err_pkg.build_message
50539                                     (p_appli_s_name            => 'XLA'
50540                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50541                                     ,p_token_1                 => 'LINE_NUMBER'
50542                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50543                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50544                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50545                                                                              l_component_type
50546                                                                             ,l_component_code
50547                                                                             ,l_component_type_code
50548                                                                             ,l_component_appl_id
50549                                                                             ,l_amb_context_code
50550                                                                             ,l_entity_code
50551                                                                             ,l_event_class_code
50552                                                                            )
50553                                     ,p_token_3                 => 'OWNER'
50554                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50555                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50556                                                                           ,p_lookup_code    => l_component_type_code
50557                                                                          )
50558                                     ,p_token_4                 => 'PRODUCT_NAME'
50559                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50563                                     ,p_ae_header_id            =>  NULL
50560                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50561                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50562                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50564                                        );
50565 
50566         IF (C_LEVEL_ERROR>= g_log_level) THEN
50567                  trace
50568                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50569                       ,p_level    => C_LEVEL_ERROR
50570                       ,p_module   => l_log_module);
50571         END IF;
50572       END IF;
50573    END IF;
50574    --
50575    --
50576    ------------------------------------------------------------------------------------------------
50577    -- 4219869 Business Flow
50578    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50579    -- Prior Entry.  Currently, the following code is always generated.
50580    ------------------------------------------------------------------------------------------------
50581    XLA_AE_LINES_PKG.ValidateCurrentLine;
50582 
50583    ------------------------------------------------------------------------------------
50584    -- 4219869 Business Flow
50585    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50586    ------------------------------------------------------------------------------------
50587    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50588 
50589    ----------------------------------------------------------------------------------
50590    -- 4219869 Business Flow
50591    -- Update journal entry status -- Need to generate this within IF <condition>
50592    ----------------------------------------------------------------------------------
50593    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50594          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50595          ,p_balance_type_code => l_balance_type_code
50596          );
50597 
50598    -------------------------------------------------------------------------------------------
50599    -- 4262811 - Generate the Accrual Reversal lines
50600    -------------------------------------------------------------------------------------------
50601    BEGIN
50602       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50603                               (g_array_event(p_event_id).array_value_num('header_index'));
50604       IF l_acc_rev_flag IS NULL THEN
50605          l_acc_rev_flag := 'N';
50606       END IF;
50607    EXCEPTION
50608       WHEN OTHERS THEN
50609          l_acc_rev_flag := 'N';
50610    END;
50611    --
50612    IF (l_acc_rev_flag = 'Y') THEN
50613 
50614        -- 4645092  ------------------------------------------------------------------------------
50615        -- To allow MPA report to determine if it should generate report process
50616        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50617        ------------------------------------------------------------------------------------------
50618 
50619        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50620        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50621    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50622    -- call ADRs
50623    -- Bug 4922099
50624    --
50625    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50626         (NVL(l_actual_upg_option, 'N') = 'O') OR
50627         (NVL(l_enc_upg_option, 'N') = 'O')
50628       )
50629    THEN
50630    NULL;
50631    --
50632    --
50633    
50634   l_ccid := AcctDerRule_7(
50635            p_application_id           => p_application_id
50636          , p_ae_header_id             => l_ae_header_id 
50637 , p_source_11 => p_source_11
50638          , x_transaction_coa_id       => l_adr_transaction_coa_id
50639          , x_accounting_coa_id        => l_adr_accounting_coa_id
50640          , x_value_type_code          => l_adr_value_type_code
50641          , p_side                     => 'NA'
50642    );
50643 
50644    xla_ae_lines_pkg.set_ccid(
50645     p_code_combination_id          => l_ccid
50646   , p_value_type_code              => l_adr_value_type_code
50647   , p_transaction_coa_id           => l_adr_transaction_coa_id
50648   , p_accounting_coa_id            => l_adr_accounting_coa_id
50649   , p_adr_code                     => 'AP_INVOICE_DIST'
50650   , p_adr_type_code                => 'S'
50651   , p_component_type               => l_component_type
50652   , p_component_code               => l_component_code
50653   , p_component_type_code          => l_component_type_code
50654   , p_component_appl_id            => l_component_appl_id
50655   , p_amb_context_code             => l_amb_context_code
50656   , p_side                         => 'NA'
50657   );
50658 
50659 
50660    --
50661    --
50662    END IF;
50663 
50664        --
50665        -- Update the line information that should be overwritten
50666        --
50667        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50668                                          p_header_num   => 1);
50669        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50670 
50671        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50672 
50676 
50673        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50674           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50675        END IF;
50677       --
50678       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50679       --
50680       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50681           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50682       ELSE
50683           ---------------------------------------------------------------------------------------------------
50684           -- 4262811a Switch Sign
50685           ---------------------------------------------------------------------------------------------------
50686           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50687           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50688                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50689           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50690                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50691           -- 5132302
50692           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50693                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50694 
50695       END IF;
50696 
50697       -- 4955764
50698       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50699       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50700 
50701 
50702       XLA_AE_LINES_PKG.ValidateCurrentLine;
50703       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50704 
50705       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50706                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50707                ,p_balance_type_code => l_balance_type_code);
50708 
50709    END IF;
50710 
50711    -----------------------------------------------------------------------------------------
50712    -- 4262811 Multiperiod Accounting
50713    -----------------------------------------------------------------------------------------
50714      -- No MPA option is assigned.
50715 
50716 
50717 END IF;
50718 END IF;
50719 --
50720 
50721 --
50722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50723    trace
50724       (p_msg      => 'END of AcctLineType_80'
50725       ,p_level    => C_LEVEL_PROCEDURE
50726       ,p_module   => l_log_module);
50727 END IF;
50728 --
50729 EXCEPTION
50730   WHEN xla_exceptions_pkg.application_exception THEN
50731       RAISE;
50732   WHEN OTHERS THEN
50733        xla_exceptions_pkg.raise_message
50734            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_80');
50735 END AcctLineType_80;
50736 --
50737 
50738 ---------------------------------------
50739 --
50740 -- PRIVATE FUNCTION
50741 --         AcctLineType_81
50742 --
50743 ---------------------------------------
50744 PROCEDURE AcctLineType_81 (
50745   p_application_id        IN NUMBER
50746  ,p_event_id              IN NUMBER
50747  ,p_calculate_acctd_flag  IN VARCHAR2
50748  ,p_calculate_g_l_flag    IN VARCHAR2
50749  ,p_actual_flag           IN OUT VARCHAR2
50750  ,p_balance_type_code     OUT VARCHAR2
50751  ,p_gain_or_loss_ref      OUT VARCHAR2
50752  
50753 --Invoice Distribution Description
50754  , p_source_1            IN VARCHAR2
50755 --Invoice Distribution Account
50756  , p_source_11            IN NUMBER
50757 --Invoice Distribution Type
50758  , p_source_15            IN VARCHAR2
50759  , p_source_15_meaning    IN VARCHAR2
50760 --Purchasing Encumbrance Option
50761  , p_source_17            IN VARCHAR2
50762  , p_source_17_meaning    IN VARCHAR2
50763 --Accounting Reversal Indicator
50764  , p_source_19            IN VARCHAR2
50765 --Distribution Link Type
50766  , p_source_21            IN VARCHAR2
50767 --Allocation to Main Distribution Identifier
50768  , p_source_23            IN NUMBER
50769 --Invoice Identifier
50770  , p_source_24            IN NUMBER
50771 --Business Flow Accounts Payable Application Identifier
50772  , p_source_25            IN NUMBER
50773 --Business Flow Invoice Distribution Type
50774  , p_source_26            IN VARCHAR2
50775 --Business Flow Invoice Entity Code
50776  , p_source_27            IN VARCHAR2
50777 --Business Flow Invoice Distribution Identifier
50778  , p_source_28            IN NUMBER
50779 --Business Flow Invoice Identifier
50780  , p_source_29            IN NUMBER
50781 --Invoice Distribution Identifier
50782  , p_source_30            IN NUMBER
50783 --Payables Encumbrance Upgrade Credit Account
50784  , p_source_31            IN NUMBER
50785 --Payables Encumbrance Upgrade Credit Amount
50786  , p_source_32            IN NUMBER
50787 --Invoice Currency Code
50788  , p_source_33            IN VARCHAR2
50789 --Payables Encumbrance Upgrade Credit Base Amount
50790  , p_source_34            IN NUMBER
50791 --Payables Encumbrance Upgrade Debit Account
50792  , p_source_35            IN NUMBER
50793 --Payables Encumbrance Upgrade Debit Amount
50794  , p_source_36            IN NUMBER
50795 --Payables Encumbrance Upgrade Debit Base Amount
50799 --Invoice Exchange Date
50796  , p_source_37            IN NUMBER
50797 --Payables Encumbrance Upgrade Option
50798  , p_source_38            IN VARCHAR2
50800  , p_source_39            IN DATE
50801 --Invoice Exchange Rate
50802  , p_source_40            IN NUMBER
50803 --Invoice Exchange Rate Type
50804  , p_source_41            IN VARCHAR2
50805 --Deferred Accounting End Date
50806  , p_source_43            IN DATE
50807 --Deferred Accounting Option
50808  , p_source_44            IN VARCHAR2
50809 --Deferred Accounting Start Date
50810  , p_source_45            IN DATE
50811 --Override Accounted Amount Indicator
50812  , p_source_46            IN VARCHAR2
50813  , p_source_46_meaning    IN VARCHAR2
50814 --Invoice Supplier Identifier
50815  , p_source_47            IN NUMBER
50816 --Invoice Supplier Site Identifier
50817  , p_source_48            IN NUMBER
50818 --Third Party Type
50819  , p_source_49            IN VARCHAR2
50820 --Parent Reversal Identifier
50821  , p_source_50            IN NUMBER
50822 --Invoice Distribution Statistical Amount
50823  , p_source_51            IN NUMBER
50824 --Invoice Distribution Tax Line Identifier
50825  , p_source_52            IN NUMBER
50826 --Invoice Distribution Tax Distribution Identifier from Tax
50827  , p_source_53            IN NUMBER
50828 --Invoice Distribution Summary Tax Line Identifier
50829  , p_source_54            IN NUMBER
50830 --Payables Upgrade Credit Encumbrance Type Identifier
50831  , p_source_55            IN NUMBER
50832 --Payables Upgrade Debit Encumbrance Type Identifier
50833  , p_source_56            IN NUMBER
50834 --Invoice Distribution Encumbrance Amount
50835  , p_source_65            IN NUMBER
50836 --Invoice Distribution Encumbrance Ledger Amount
50837  , p_source_66            IN NUMBER
50838 )
50839 IS
50840 
50841 l_component_type              VARCHAR2(80);
50842 l_component_code              VARCHAR2(30);
50843 l_component_type_code         VARCHAR2(1);
50844 l_component_appl_id           INTEGER;
50845 l_amb_context_code            VARCHAR2(30);
50846 l_entity_code                 VARCHAR2(30);
50847 l_event_class_code            VARCHAR2(30);
50848 l_ae_header_id                NUMBER;
50849 l_event_type_code             VARCHAR2(30);
50850 l_line_definition_code        VARCHAR2(30);
50851 l_line_definition_owner_code  VARCHAR2(1);
50852 --
50853 -- adr variables
50854 l_segment                     VARCHAR2(30);
50855 l_ccid                        NUMBER;
50856 l_adr_transaction_coa_id      NUMBER;
50857 l_adr_accounting_coa_id       NUMBER;
50858 l_adr_flexfield_segment_code  VARCHAR2(30);
50859 l_adr_flex_value_set_id       NUMBER;
50860 l_adr_value_type_code         VARCHAR2(30);
50861 l_adr_value_combination_id    NUMBER;
50862 l_adr_value_segment_code      VARCHAR2(30);
50863 
50864 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50865 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50866 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50867 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50868 
50869 -- 4262811 Variables ------------------------------------------------------------------------------------------
50870 l_entered_amt_idx             NUMBER;
50871 l_accted_amt_idx              NUMBER;
50872 l_acc_rev_flag                VARCHAR2(1);
50873 l_accrual_line_num            NUMBER;
50874 l_tmp_amt                     NUMBER;
50875 l_acc_rev_natural_side_code   VARCHAR2(1);
50876 
50877 l_num_entries                 NUMBER;
50878 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50879 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50880 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50881 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50882 l_recog_line_1                NUMBER;
50883 l_recog_line_2                NUMBER;
50884 
50885 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50886 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50887 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50888 
50889 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50890 
50891 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50892 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50893 
50894 ---------------------------------------------------------------------------------------------------------------
50895 
50896 
50897 --
50898 -- bulk performance
50899 --
50900 l_balance_type_code           VARCHAR2(1);
50901 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50902 l_log_module                  VARCHAR2(240);
50903 
50904 --
50905 -- Upgrade strategy
50906 --
50907 l_actual_upg_option           VARCHAR2(1);
50908 l_enc_upg_option           VARCHAR2(1);
50909 
50910 --
50911 BEGIN
50912 --
50913 IF g_log_enabled THEN
50914       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
50915 END IF;
50916 --
50917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50918 
50919       trace
50920          (p_msg      => 'BEGIN of AcctLineType_81'
50921          ,p_level    => C_LEVEL_PROCEDURE
50922          ,p_module   => l_log_module);
50923 
50924 END IF;
50925 --
50926 l_component_type             := 'AMB_JLT';
50927 l_component_code             := 'AP_TAX_RATE_VAR_CM_ENC_DR';
50928 l_component_type_code        := 'S';
50932 l_event_class_code           := 'CREDIT MEMOS';
50929 l_component_appl_id          :=  200;
50930 l_amb_context_code           := 'DEFAULT';
50931 l_entity_code                := 'AP_INVOICES';
50933 l_event_type_code            := 'CREDIT MEMOS_ALL';
50934 l_line_definition_owner_code := 'S';
50935 l_line_definition_code       := 'ENC_CM_ALL';
50936 --
50937 l_balance_type_code          := 'E';
50938 l_segment                     := NULL;
50939 l_ccid                        := NULL;
50940 l_adr_transaction_coa_id      := NULL;
50941 l_adr_accounting_coa_id       := NULL;
50942 l_adr_flexfield_segment_code  := NULL;
50943 l_adr_flex_value_set_id       := NULL;
50944 l_adr_value_type_code         := NULL;
50945 l_adr_value_combination_id    := NULL;
50946 l_adr_value_segment_code      := NULL;
50947 
50948 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50949 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
50950 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50951 l_budgetary_control_flag     := 'Y';
50952 
50953 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50954 l_bflow_applied_to_amt       := NULL; -- 5132302
50955 l_entered_amt_idx            := NULL;          -- 4262811
50956 l_accted_amt_idx             := NULL;          -- 4262811
50957 l_acc_rev_flag               := NULL;          -- 4262811
50958 l_accrual_line_num           := NULL;          -- 4262811
50959 l_tmp_amt                    := NULL;          -- 4262811
50960 --
50961  
50962 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50963     l_balance_type_code <> 'B' THEN
50964 IF NVL(p_source_15,'
50965 ') =  'TRV' AND 
50966 NVL(p_source_17,'
50967 ') =  'Y'
50968  THEN 
50969 
50970    --
50971    XLA_AE_LINES_PKG.SetNewLine;
50972 
50973    p_balance_type_code          := l_balance_type_code;
50974    -- set the flag so later we will know whether the gain loss line needs to be created
50975    
50976    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50977      p_actual_flag :='A';
50978    END IF;
50979 
50980    --
50981    -- bulk performance
50982    --
50983    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50984                                       p_header_num   => 0); -- 4262811
50985    --
50986    -- set accounting line options
50987    --
50988    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50989            p_natural_side_code          => 'D'
50990          , p_gain_or_loss_flag          => 'N'
50991          , p_gl_transfer_mode_code      => 'S'
50992          , p_acct_entry_type_code       => 'E'
50993          , p_switch_side_flag           => 'Y'
50994          , p_merge_duplicate_code       => 'N'
50995          );
50996    --
50997    l_acc_rev_natural_side_code := 'C';  -- 4262811
50998    -- 
50999    --
51000    -- set accounting line type info
51001    --
51002    xla_ae_lines_pkg.SetAcctLineType
51003       (p_component_type             => l_component_type
51004       ,p_event_type_code            => l_event_type_code
51005       ,p_line_definition_owner_code => l_line_definition_owner_code
51006       ,p_line_definition_code       => l_line_definition_code
51007       ,p_accounting_line_code       => l_component_code
51008       ,p_accounting_line_type_code  => l_component_type_code
51009       ,p_accounting_line_appl_id    => l_component_appl_id
51010       ,p_amb_context_code           => l_amb_context_code
51011       ,p_entity_code                => l_entity_code
51012       ,p_event_class_code           => l_event_class_code);
51013    --
51014    -- set accounting class
51015    --
51016    xla_ae_lines_pkg.SetAcctClass(
51017            p_accounting_class_code  => 'TRV'
51018          , p_ae_header_id           => l_ae_header_id
51019          );
51020 
51021    --
51022    -- set rounding class
51023    --
51024    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51025                       'TRV';
51026 
51027    --
51028    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51029    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51030    --
51031    -- bulk performance
51032    --
51033    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51034 
51035    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51036       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51037 
51038    -- 4955764
51039    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51040       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51041 
51042    -- 4458381 Public Sector Enh
51043       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
51044    --
51045    -- set accounting attributes for the line type
51046    --
51047    l_entered_amt_idx := 23;
51048    l_accted_amt_idx  := 28;
51049    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51050    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51051    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
51052    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
51056  , p_source_type_code      => 'Y'
51053    l_rec_acct_attrs.array_num_value(2)  := 
51054 xla_ae_sources_pkg.GetSystemSourceNum(
51055    p_source_code           => 'XLA_EVENT_APPL_ID'
51057  , p_source_application_id =>  602
51058 );
51059    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
51060    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
51061    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
51062    l_rec_acct_attrs.array_char_value(4)  := 
51063 xla_ae_sources_pkg.GetSystemSourceChar(
51064    p_source_code           => 'XLA_ENTITY_CODE'
51065  , p_source_type_code      => 'Y'
51066  , p_source_application_id =>  602
51067 );
51068    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
51069    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
51070    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
51071    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
51072    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
51073    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
51074    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51075    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
51076    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
51077    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
51078    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
51079    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
51080    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51081    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
51082    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
51083    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
51084    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
51085    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
51086    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
51087    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
51088    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
51089    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
51090    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
51091    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
51092    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
51093    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
51094    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
51095    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
51096    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
51097    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
51098    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
51099    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
51100    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
51101    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
51102    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
51103    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
51104    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
51105    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
51106    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
51107    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
51108    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
51109    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
51110    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
51111    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
51112    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
51113    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
51114    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
51115    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
51116    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
51117    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
51118    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
51119    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
51120    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
51121    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
51122    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
51123    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
51124    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
51125    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
51126    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
51127    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
51128    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
51129    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
51130    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
51131    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
51132    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
51133    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
51134    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
51135    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
51136    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
51137    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
51138    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
51142    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
51139    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
51140    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
51141    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
51143    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
51144    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
51145    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
51146 
51147    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51148    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51149 
51150    ---------------------------------------------------------------------------------------------------------------
51151    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51152    ---------------------------------------------------------------------------------------------------------------
51153    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51154 
51155    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51156    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51157 
51158    IF xla_accounting_cache_pkg.GetValueChar
51159          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51160          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51161    AND l_bflow_method_code = 'PRIOR_ENTRY'
51162 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51163    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51164          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51165        )
51166    THEN
51167          xla_ae_lines_pkg.BflowUpgEntry
51168            (p_business_method_code    => l_bflow_method_code
51169            ,p_business_class_code     => l_bflow_class_code
51170            ,p_balance_type            => l_balance_type_code);
51171    ELSE
51172       NULL;
51173 -- No business flow processing for business flow method of NONE.
51174    END IF;
51175 
51176    --
51177    -- call analytical criteria
51178    --
51179    
51180    --
51181    -- call description
51182    --
51183    
51184 xla_ae_lines_pkg.SetLineDescription(
51185    p_ae_header_id => l_ae_header_id
51186   ,p_description  => Description_2 (
51187      p_application_id         => p_application_id
51188    , p_ae_header_id           => l_ae_header_id 
51189 , p_source_1 => p_source_1
51190    )
51191 );
51192 
51193 
51194    --
51195    -- call ADRs
51196    -- Bug 4922099
51197    --
51198    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51199         (NVL(l_actual_upg_option, 'N') = 'O') OR
51200         (NVL(l_enc_upg_option, 'N') = 'O')
51201       )
51202    THEN
51203    NULL;
51204    --
51205    --
51206    
51207   l_ccid := AcctDerRule_7(
51208            p_application_id           => p_application_id
51209          , p_ae_header_id             => l_ae_header_id 
51210 , p_source_11 => p_source_11
51211          , x_transaction_coa_id       => l_adr_transaction_coa_id
51212          , x_accounting_coa_id        => l_adr_accounting_coa_id
51213          , x_value_type_code          => l_adr_value_type_code
51214          , p_side                     => 'NA'
51215    );
51216 
51217    xla_ae_lines_pkg.set_ccid(
51218     p_code_combination_id          => l_ccid
51219   , p_value_type_code              => l_adr_value_type_code
51220   , p_transaction_coa_id           => l_adr_transaction_coa_id
51221   , p_accounting_coa_id            => l_adr_accounting_coa_id
51222   , p_adr_code                     => 'AP_INVOICE_DIST'
51223   , p_adr_type_code                => 'S'
51224   , p_component_type               => l_component_type
51225   , p_component_code               => l_component_code
51226   , p_component_type_code          => l_component_type_code
51227   , p_component_appl_id            => l_component_appl_id
51228   , p_amb_context_code             => l_amb_context_code
51229   , p_side                         => 'NA'
51230   );
51231 
51232 
51233    --
51234    --
51235    END IF;
51236    --
51237    -- Bug 4922099
51238    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51239           (NVL(l_enc_upg_option, 'N') = 'O')
51240         ) AND
51241         (l_bflow_method_code = 'PRIOR_ENTRY')
51242       )
51243    THEN
51244       IF
51245       --
51246       1 = 2
51247       --
51248       THEN
51249       xla_accounting_err_pkg.build_message
51250                                     (p_appli_s_name            => 'XLA'
51251                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51252                                     ,p_token_1                 => 'LINE_NUMBER'
51253                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51254                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51255                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51256                                                                              l_component_type
51257                                                                             ,l_component_code
51261                                                                             ,l_entity_code
51258                                                                             ,l_component_type_code
51259                                                                             ,l_component_appl_id
51260                                                                             ,l_amb_context_code
51262                                                                             ,l_event_class_code
51263                                                                            )
51264                                     ,p_token_3                 => 'OWNER'
51265                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51266                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51267                                                                           ,p_lookup_code    => l_component_type_code
51268                                                                          )
51269                                     ,p_token_4                 => 'PRODUCT_NAME'
51270                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51271                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51272                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51273                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51274                                     ,p_ae_header_id            =>  NULL
51275                                        );
51276 
51277         IF (C_LEVEL_ERROR>= g_log_level) THEN
51278                  trace
51279                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51280                       ,p_level    => C_LEVEL_ERROR
51281                       ,p_module   => l_log_module);
51282         END IF;
51283       END IF;
51284    END IF;
51285    --
51286    --
51287    ------------------------------------------------------------------------------------------------
51288    -- 4219869 Business Flow
51289    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51290    -- Prior Entry.  Currently, the following code is always generated.
51291    ------------------------------------------------------------------------------------------------
51292    XLA_AE_LINES_PKG.ValidateCurrentLine;
51293 
51294    ------------------------------------------------------------------------------------
51295    -- 4219869 Business Flow
51296    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51297    ------------------------------------------------------------------------------------
51298    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51299 
51300    ----------------------------------------------------------------------------------
51301    -- 4219869 Business Flow
51302    -- Update journal entry status -- Need to generate this within IF <condition>
51303    ----------------------------------------------------------------------------------
51304    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51305          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51306          ,p_balance_type_code => l_balance_type_code
51307          );
51308 
51309    -------------------------------------------------------------------------------------------
51310    -- 4262811 - Generate the Accrual Reversal lines
51311    -------------------------------------------------------------------------------------------
51312    BEGIN
51313       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51314                               (g_array_event(p_event_id).array_value_num('header_index'));
51315       IF l_acc_rev_flag IS NULL THEN
51316          l_acc_rev_flag := 'N';
51317       END IF;
51318    EXCEPTION
51319       WHEN OTHERS THEN
51320          l_acc_rev_flag := 'N';
51321    END;
51322    --
51323    IF (l_acc_rev_flag = 'Y') THEN
51324 
51325        -- 4645092  ------------------------------------------------------------------------------
51326        -- To allow MPA report to determine if it should generate report process
51327        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51328        ------------------------------------------------------------------------------------------
51329 
51330        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51331        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51332    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51333    -- call ADRs
51334    -- Bug 4922099
51335    --
51336    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51337         (NVL(l_actual_upg_option, 'N') = 'O') OR
51338         (NVL(l_enc_upg_option, 'N') = 'O')
51339       )
51340    THEN
51341    NULL;
51342    --
51343    --
51344    
51345   l_ccid := AcctDerRule_7(
51346            p_application_id           => p_application_id
51347          , p_ae_header_id             => l_ae_header_id 
51348 , p_source_11 => p_source_11
51349          , x_transaction_coa_id       => l_adr_transaction_coa_id
51350          , x_accounting_coa_id        => l_adr_accounting_coa_id
51351          , x_value_type_code          => l_adr_value_type_code
51352          , p_side                     => 'NA'
51353    );
51354 
51355    xla_ae_lines_pkg.set_ccid(
51356     p_code_combination_id          => l_ccid
51357   , p_value_type_code              => l_adr_value_type_code
51358   , p_transaction_coa_id           => l_adr_transaction_coa_id
51362   , p_component_type               => l_component_type
51359   , p_accounting_coa_id            => l_adr_accounting_coa_id
51360   , p_adr_code                     => 'AP_INVOICE_DIST'
51361   , p_adr_type_code                => 'S'
51363   , p_component_code               => l_component_code
51364   , p_component_type_code          => l_component_type_code
51365   , p_component_appl_id            => l_component_appl_id
51366   , p_amb_context_code             => l_amb_context_code
51367   , p_side                         => 'NA'
51368   );
51369 
51370 
51371    --
51372    --
51373    END IF;
51374 
51375        --
51376        -- Update the line information that should be overwritten
51377        --
51378        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51379                                          p_header_num   => 1);
51380        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51381 
51382        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51383 
51384        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51385           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51386        END IF;
51387 
51388       --
51389       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51390       --
51391       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51392           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51393       ELSE
51394           ---------------------------------------------------------------------------------------------------
51395           -- 4262811a Switch Sign
51396           ---------------------------------------------------------------------------------------------------
51397           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51398           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51399                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51400           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51401                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51402           -- 5132302
51403           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51404                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51405 
51406       END IF;
51407 
51408       -- 4955764
51409       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51410       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51411 
51412 
51413       XLA_AE_LINES_PKG.ValidateCurrentLine;
51414       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51415 
51416       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51417                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51418                ,p_balance_type_code => l_balance_type_code);
51419 
51420    END IF;
51421 
51422    -----------------------------------------------------------------------------------------
51423    -- 4262811 Multiperiod Accounting
51424    -----------------------------------------------------------------------------------------
51425      -- No MPA option is assigned.
51426 
51427 
51428 END IF;
51429 END IF;
51430 --
51431 
51432 --
51433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51434    trace
51435       (p_msg      => 'END of AcctLineType_81'
51436       ,p_level    => C_LEVEL_PROCEDURE
51437       ,p_module   => l_log_module);
51438 END IF;
51439 --
51440 EXCEPTION
51441   WHEN xla_exceptions_pkg.application_exception THEN
51442       RAISE;
51443   WHEN OTHERS THEN
51444        xla_exceptions_pkg.raise_message
51445            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_81');
51446 END AcctLineType_81;
51447 --
51448 
51449 ---------------------------------------
51450 --
51451 -- PRIVATE FUNCTION
51452 --         AcctLineType_82
51453 --
51454 ---------------------------------------
51455 PROCEDURE AcctLineType_82 (
51456   p_application_id        IN NUMBER
51457  ,p_event_id              IN NUMBER
51458  ,p_calculate_acctd_flag  IN VARCHAR2
51459  ,p_calculate_g_l_flag    IN VARCHAR2
51460  ,p_actual_flag           IN OUT VARCHAR2
51461  ,p_balance_type_code     OUT VARCHAR2
51462  ,p_gain_or_loss_ref      OUT VARCHAR2
51463  
51464 --Invoice Distribution Description
51465  , p_source_1            IN VARCHAR2
51466 --Invoice Distribution Account
51467  , p_source_11            IN NUMBER
51468 --Invoice Distribution Type
51469  , p_source_15            IN VARCHAR2
51470  , p_source_15_meaning    IN VARCHAR2
51471 --Purchasing Encumbrance Option
51472  , p_source_17            IN VARCHAR2
51473  , p_source_17_meaning    IN VARCHAR2
51474 --Accounting Reversal Indicator
51475  , p_source_19            IN VARCHAR2
51476 --Distribution Link Type
51477  , p_source_21            IN VARCHAR2
51478 --Allocation to Main Distribution Identifier
51479  , p_source_23            IN NUMBER
51480 --Invoice Identifier
51481  , p_source_24            IN NUMBER
51485  , p_source_26            IN VARCHAR2
51482 --Business Flow Accounts Payable Application Identifier
51483  , p_source_25            IN NUMBER
51484 --Business Flow Invoice Distribution Type
51486 --Business Flow Invoice Entity Code
51487  , p_source_27            IN VARCHAR2
51488 --Business Flow Invoice Distribution Identifier
51489  , p_source_28            IN NUMBER
51490 --Business Flow Invoice Identifier
51491  , p_source_29            IN NUMBER
51492 --Invoice Distribution Identifier
51493  , p_source_30            IN NUMBER
51494 --Payables Encumbrance Upgrade Credit Account
51495  , p_source_31            IN NUMBER
51496 --Payables Encumbrance Upgrade Credit Amount
51497  , p_source_32            IN NUMBER
51498 --Invoice Currency Code
51499  , p_source_33            IN VARCHAR2
51500 --Payables Encumbrance Upgrade Credit Base Amount
51501  , p_source_34            IN NUMBER
51502 --Payables Encumbrance Upgrade Debit Account
51503  , p_source_35            IN NUMBER
51504 --Payables Encumbrance Upgrade Debit Amount
51505  , p_source_36            IN NUMBER
51506 --Payables Encumbrance Upgrade Debit Base Amount
51507  , p_source_37            IN NUMBER
51508 --Payables Encumbrance Upgrade Option
51509  , p_source_38            IN VARCHAR2
51510 --Invoice Exchange Date
51511  , p_source_39            IN DATE
51512 --Invoice Exchange Rate
51513  , p_source_40            IN NUMBER
51514 --Invoice Exchange Rate Type
51515  , p_source_41            IN VARCHAR2
51516 --Deferred Accounting End Date
51517  , p_source_43            IN DATE
51518 --Deferred Accounting Option
51519  , p_source_44            IN VARCHAR2
51520 --Deferred Accounting Start Date
51521  , p_source_45            IN DATE
51522 --Override Accounted Amount Indicator
51523  , p_source_46            IN VARCHAR2
51524  , p_source_46_meaning    IN VARCHAR2
51525 --Invoice Supplier Identifier
51526  , p_source_47            IN NUMBER
51527 --Invoice Supplier Site Identifier
51528  , p_source_48            IN NUMBER
51529 --Third Party Type
51530  , p_source_49            IN VARCHAR2
51531 --Parent Reversal Identifier
51532  , p_source_50            IN NUMBER
51533 --Invoice Distribution Tax Line Identifier
51534  , p_source_52            IN NUMBER
51535 --Invoice Distribution Tax Distribution Identifier from Tax
51536  , p_source_53            IN NUMBER
51537 --Invoice Distribution Summary Tax Line Identifier
51538  , p_source_54            IN NUMBER
51539 --Payables Upgrade Credit Encumbrance Type Identifier
51540  , p_source_55            IN NUMBER
51541 --Payables Upgrade Debit Encumbrance Type Identifier
51542  , p_source_56            IN NUMBER
51543 --Invoice Distribution Encumbrance Amount
51544  , p_source_65            IN NUMBER
51545 --Invoice Distribution Encumbrance Ledger Amount
51546  , p_source_66            IN NUMBER
51547 )
51548 IS
51549 
51550 l_component_type              VARCHAR2(80);
51551 l_component_code              VARCHAR2(30);
51552 l_component_type_code         VARCHAR2(1);
51553 l_component_appl_id           INTEGER;
51554 l_amb_context_code            VARCHAR2(30);
51555 l_entity_code                 VARCHAR2(30);
51556 l_event_class_code            VARCHAR2(30);
51557 l_ae_header_id                NUMBER;
51558 l_event_type_code             VARCHAR2(30);
51559 l_line_definition_code        VARCHAR2(30);
51560 l_line_definition_owner_code  VARCHAR2(1);
51561 --
51562 -- adr variables
51563 l_segment                     VARCHAR2(30);
51564 l_ccid                        NUMBER;
51565 l_adr_transaction_coa_id      NUMBER;
51566 l_adr_accounting_coa_id       NUMBER;
51567 l_adr_flexfield_segment_code  VARCHAR2(30);
51568 l_adr_flex_value_set_id       NUMBER;
51569 l_adr_value_type_code         VARCHAR2(30);
51570 l_adr_value_combination_id    NUMBER;
51571 l_adr_value_segment_code      VARCHAR2(30);
51572 
51573 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51574 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51575 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51576 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51577 
51578 -- 4262811 Variables ------------------------------------------------------------------------------------------
51579 l_entered_amt_idx             NUMBER;
51580 l_accted_amt_idx              NUMBER;
51581 l_acc_rev_flag                VARCHAR2(1);
51582 l_accrual_line_num            NUMBER;
51583 l_tmp_amt                     NUMBER;
51584 l_acc_rev_natural_side_code   VARCHAR2(1);
51585 
51586 l_num_entries                 NUMBER;
51587 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51588 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51589 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51590 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51591 l_recog_line_1                NUMBER;
51592 l_recog_line_2                NUMBER;
51593 
51594 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51595 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51596 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51597 
51598 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51599 
51600 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51601 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51602 
51606 --
51603 ---------------------------------------------------------------------------------------------------------------
51604 
51605 
51607 -- bulk performance
51608 --
51609 l_balance_type_code           VARCHAR2(1);
51610 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51611 l_log_module                  VARCHAR2(240);
51612 
51613 --
51614 -- Upgrade strategy
51615 --
51616 l_actual_upg_option           VARCHAR2(1);
51617 l_enc_upg_option           VARCHAR2(1);
51618 
51619 --
51620 BEGIN
51621 --
51622 IF g_log_enabled THEN
51623       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
51624 END IF;
51625 --
51626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51627 
51628       trace
51629          (p_msg      => 'BEGIN of AcctLineType_82'
51630          ,p_level    => C_LEVEL_PROCEDURE
51631          ,p_module   => l_log_module);
51632 
51633 END IF;
51634 --
51635 l_component_type             := 'AMB_JLT';
51636 l_component_code             := 'AP_TAX_RATE_VAR_DM_ENC_DR';
51637 l_component_type_code        := 'S';
51638 l_component_appl_id          :=  200;
51639 l_amb_context_code           := 'DEFAULT';
51640 l_entity_code                := 'AP_INVOICES';
51641 l_event_class_code           := 'DEBIT MEMOS';
51642 l_event_type_code            := 'DEBIT MEMOS_ALL';
51643 l_line_definition_owner_code := 'S';
51644 l_line_definition_code       := 'ENC_DM_ALL';
51645 --
51646 l_balance_type_code          := 'E';
51647 l_segment                     := NULL;
51648 l_ccid                        := NULL;
51649 l_adr_transaction_coa_id      := NULL;
51650 l_adr_accounting_coa_id       := NULL;
51651 l_adr_flexfield_segment_code  := NULL;
51652 l_adr_flex_value_set_id       := NULL;
51653 l_adr_value_type_code         := NULL;
51654 l_adr_value_combination_id    := NULL;
51655 l_adr_value_segment_code      := NULL;
51656 
51657 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51658 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
51659 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51660 l_budgetary_control_flag     := 'Y';
51661 
51662 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51663 l_bflow_applied_to_amt       := NULL; -- 5132302
51664 l_entered_amt_idx            := NULL;          -- 4262811
51665 l_accted_amt_idx             := NULL;          -- 4262811
51666 l_acc_rev_flag               := NULL;          -- 4262811
51667 l_accrual_line_num           := NULL;          -- 4262811
51668 l_tmp_amt                    := NULL;          -- 4262811
51669 --
51670  
51671 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51672     l_balance_type_code <> 'B' THEN
51673 IF NVL(p_source_15,'
51674 ') =  'TRV' AND 
51675 NVL(p_source_17,'
51676 ') =  'Y'
51677  THEN 
51678 
51679    --
51680    XLA_AE_LINES_PKG.SetNewLine;
51681 
51682    p_balance_type_code          := l_balance_type_code;
51683    -- set the flag so later we will know whether the gain loss line needs to be created
51684    
51685    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51686      p_actual_flag :='A';
51687    END IF;
51688 
51689    --
51690    -- bulk performance
51691    --
51692    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51693                                       p_header_num   => 0); -- 4262811
51694    --
51695    -- set accounting line options
51696    --
51697    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51698            p_natural_side_code          => 'D'
51699          , p_gain_or_loss_flag          => 'N'
51700          , p_gl_transfer_mode_code      => 'S'
51701          , p_acct_entry_type_code       => 'E'
51702          , p_switch_side_flag           => 'Y'
51703          , p_merge_duplicate_code       => 'N'
51704          );
51705    --
51706    l_acc_rev_natural_side_code := 'C';  -- 4262811
51707    -- 
51708    --
51709    -- set accounting line type info
51710    --
51711    xla_ae_lines_pkg.SetAcctLineType
51712       (p_component_type             => l_component_type
51713       ,p_event_type_code            => l_event_type_code
51714       ,p_line_definition_owner_code => l_line_definition_owner_code
51715       ,p_line_definition_code       => l_line_definition_code
51716       ,p_accounting_line_code       => l_component_code
51717       ,p_accounting_line_type_code  => l_component_type_code
51718       ,p_accounting_line_appl_id    => l_component_appl_id
51719       ,p_amb_context_code           => l_amb_context_code
51720       ,p_entity_code                => l_entity_code
51721       ,p_event_class_code           => l_event_class_code);
51722    --
51723    -- set accounting class
51724    --
51725    xla_ae_lines_pkg.SetAcctClass(
51726            p_accounting_class_code  => 'TRV'
51727          , p_ae_header_id           => l_ae_header_id
51728          );
51729 
51730    --
51731    -- set rounding class
51732    --
51733    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51734                       'TRV';
51735 
51736    --
51737    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51738    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51739    --
51743 
51740    -- bulk performance
51741    --
51742    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51744    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51745       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51746 
51747    -- 4955764
51748    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51749       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51750 
51751    -- 4458381 Public Sector Enh
51752       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
51753    --
51754    -- set accounting attributes for the line type
51755    --
51756    l_entered_amt_idx := 23;
51757    l_accted_amt_idx  := 28;
51758    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51759    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51760    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
51761    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
51762    l_rec_acct_attrs.array_num_value(2)  := 
51763 xla_ae_sources_pkg.GetSystemSourceNum(
51764    p_source_code           => 'XLA_EVENT_APPL_ID'
51765  , p_source_type_code      => 'Y'
51766  , p_source_application_id =>  602
51767 );
51768    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
51769    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
51770    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
51771    l_rec_acct_attrs.array_char_value(4)  := 
51772 xla_ae_sources_pkg.GetSystemSourceChar(
51773    p_source_code           => 'XLA_ENTITY_CODE'
51774  , p_source_type_code      => 'Y'
51775  , p_source_application_id =>  602
51776 );
51777    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
51778    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
51779    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
51780    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
51781    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
51782    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
51783    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51784    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
51785    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
51786    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
51787    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
51788    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
51789    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51790    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
51791    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
51792    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
51793    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
51794    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
51795    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
51796    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
51797    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
51798    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
51799    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
51800    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
51801    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
51802    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
51803    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
51804    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
51805    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
51806    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
51807    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
51808    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
51809    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
51810    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
51811    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
51812    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
51813    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
51814    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
51815    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
51816    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
51817    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
51818    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
51819    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
51820    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
51821    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
51822    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
51823    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
51824    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
51825    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
51826    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
51827    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
51828    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
51829    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
51830    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
51834    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
51831    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
51832    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
51833    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
51835    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
51836    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
51837    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
51838    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
51839    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
51840    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
51841    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
51842    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
51843    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
51844    l_rec_acct_attrs.array_num_value(38)  := p_source_52;
51845    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
51846    l_rec_acct_attrs.array_num_value(39)  := p_source_53;
51847    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
51848    l_rec_acct_attrs.array_num_value(40)  := p_source_54;
51849    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
51850    l_rec_acct_attrs.array_num_value(41)  := p_source_55;
51851    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
51852    l_rec_acct_attrs.array_num_value(42)  := p_source_56;
51853 
51854    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51855    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51856 
51857    ---------------------------------------------------------------------------------------------------------------
51858    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51859    ---------------------------------------------------------------------------------------------------------------
51860    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51861 
51862    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51863    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51864 
51865    IF xla_accounting_cache_pkg.GetValueChar
51866          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51867          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51868    AND l_bflow_method_code = 'PRIOR_ENTRY'
51869 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51870    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51871          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51872        )
51873    THEN
51874          xla_ae_lines_pkg.BflowUpgEntry
51875            (p_business_method_code    => l_bflow_method_code
51876            ,p_business_class_code     => l_bflow_class_code
51877            ,p_balance_type            => l_balance_type_code);
51878    ELSE
51879       NULL;
51880 -- No business flow processing for business flow method of NONE.
51881    END IF;
51882 
51883    --
51884    -- call analytical criteria
51885    --
51886    
51887    --
51888    -- call description
51889    --
51890    
51891 xla_ae_lines_pkg.SetLineDescription(
51892    p_ae_header_id => l_ae_header_id
51893   ,p_description  => Description_2 (
51894      p_application_id         => p_application_id
51895    , p_ae_header_id           => l_ae_header_id 
51896 , p_source_1 => p_source_1
51897    )
51898 );
51899 
51900 
51901    --
51902    -- call ADRs
51903    -- Bug 4922099
51904    --
51905    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51906         (NVL(l_actual_upg_option, 'N') = 'O') OR
51907         (NVL(l_enc_upg_option, 'N') = 'O')
51908       )
51909    THEN
51910    NULL;
51911    --
51912    --
51913    
51914   l_ccid := AcctDerRule_7(
51915            p_application_id           => p_application_id
51916          , p_ae_header_id             => l_ae_header_id 
51917 , p_source_11 => p_source_11
51918          , x_transaction_coa_id       => l_adr_transaction_coa_id
51919          , x_accounting_coa_id        => l_adr_accounting_coa_id
51920          , x_value_type_code          => l_adr_value_type_code
51921          , p_side                     => 'NA'
51922    );
51923 
51924    xla_ae_lines_pkg.set_ccid(
51925     p_code_combination_id          => l_ccid
51926   , p_value_type_code              => l_adr_value_type_code
51927   , p_transaction_coa_id           => l_adr_transaction_coa_id
51928   , p_accounting_coa_id            => l_adr_accounting_coa_id
51929   , p_adr_code                     => 'AP_INVOICE_DIST'
51930   , p_adr_type_code                => 'S'
51931   , p_component_type               => l_component_type
51932   , p_component_code               => l_component_code
51933   , p_component_type_code          => l_component_type_code
51934   , p_component_appl_id            => l_component_appl_id
51935   , p_amb_context_code             => l_amb_context_code
51936   , p_side                         => 'NA'
51937   );
51938 
51939 
51940    --
51941    --
51942    END IF;
51943    --
51944    -- Bug 4922099
51945    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51946           (NVL(l_enc_upg_option, 'N') = 'O')
51947         ) AND
51948         (l_bflow_method_code = 'PRIOR_ENTRY')
51949       )
51950    THEN
51951       IF
51955       THEN
51952       --
51953       1 = 2
51954       --
51956       xla_accounting_err_pkg.build_message
51957                                     (p_appli_s_name            => 'XLA'
51958                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51959                                     ,p_token_1                 => 'LINE_NUMBER'
51960                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51961                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51962                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51963                                                                              l_component_type
51964                                                                             ,l_component_code
51965                                                                             ,l_component_type_code
51966                                                                             ,l_component_appl_id
51967                                                                             ,l_amb_context_code
51968                                                                             ,l_entity_code
51969                                                                             ,l_event_class_code
51970                                                                            )
51971                                     ,p_token_3                 => 'OWNER'
51972                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51973                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51974                                                                           ,p_lookup_code    => l_component_type_code
51975                                                                          )
51976                                     ,p_token_4                 => 'PRODUCT_NAME'
51977                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51978                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51979                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51980                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51981                                     ,p_ae_header_id            =>  NULL
51982                                        );
51983 
51984         IF (C_LEVEL_ERROR>= g_log_level) THEN
51985                  trace
51986                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51987                       ,p_level    => C_LEVEL_ERROR
51988                       ,p_module   => l_log_module);
51989         END IF;
51990       END IF;
51991    END IF;
51992    --
51993    --
51994    ------------------------------------------------------------------------------------------------
51995    -- 4219869 Business Flow
51996    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51997    -- Prior Entry.  Currently, the following code is always generated.
51998    ------------------------------------------------------------------------------------------------
51999    XLA_AE_LINES_PKG.ValidateCurrentLine;
52000 
52001    ------------------------------------------------------------------------------------
52002    -- 4219869 Business Flow
52003    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52004    ------------------------------------------------------------------------------------
52005    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52006 
52007    ----------------------------------------------------------------------------------
52008    -- 4219869 Business Flow
52009    -- Update journal entry status -- Need to generate this within IF <condition>
52010    ----------------------------------------------------------------------------------
52011    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52012          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52013          ,p_balance_type_code => l_balance_type_code
52014          );
52015 
52016    -------------------------------------------------------------------------------------------
52017    -- 4262811 - Generate the Accrual Reversal lines
52018    -------------------------------------------------------------------------------------------
52019    BEGIN
52020       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52021                               (g_array_event(p_event_id).array_value_num('header_index'));
52022       IF l_acc_rev_flag IS NULL THEN
52023          l_acc_rev_flag := 'N';
52024       END IF;
52025    EXCEPTION
52026       WHEN OTHERS THEN
52027          l_acc_rev_flag := 'N';
52028    END;
52029    --
52030    IF (l_acc_rev_flag = 'Y') THEN
52031 
52032        -- 4645092  ------------------------------------------------------------------------------
52033        -- To allow MPA report to determine if it should generate report process
52034        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52035        ------------------------------------------------------------------------------------------
52036 
52037        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52038        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52039    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52040    -- call ADRs
52041    -- Bug 4922099
52042    --
52043    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52047    THEN
52044         (NVL(l_actual_upg_option, 'N') = 'O') OR
52045         (NVL(l_enc_upg_option, 'N') = 'O')
52046       )
52048    NULL;
52049    --
52050    --
52051    
52052   l_ccid := AcctDerRule_7(
52053            p_application_id           => p_application_id
52054          , p_ae_header_id             => l_ae_header_id 
52055 , p_source_11 => p_source_11
52056          , x_transaction_coa_id       => l_adr_transaction_coa_id
52057          , x_accounting_coa_id        => l_adr_accounting_coa_id
52058          , x_value_type_code          => l_adr_value_type_code
52059          , p_side                     => 'NA'
52060    );
52061 
52062    xla_ae_lines_pkg.set_ccid(
52063     p_code_combination_id          => l_ccid
52064   , p_value_type_code              => l_adr_value_type_code
52065   , p_transaction_coa_id           => l_adr_transaction_coa_id
52066   , p_accounting_coa_id            => l_adr_accounting_coa_id
52067   , p_adr_code                     => 'AP_INVOICE_DIST'
52068   , p_adr_type_code                => 'S'
52069   , p_component_type               => l_component_type
52070   , p_component_code               => l_component_code
52071   , p_component_type_code          => l_component_type_code
52072   , p_component_appl_id            => l_component_appl_id
52073   , p_amb_context_code             => l_amb_context_code
52074   , p_side                         => 'NA'
52075   );
52076 
52077 
52078    --
52079    --
52080    END IF;
52081 
52082        --
52083        -- Update the line information that should be overwritten
52084        --
52085        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52086                                          p_header_num   => 1);
52087        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52088 
52089        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52090 
52091        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52092           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52093        END IF;
52094 
52095       --
52096       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52097       --
52098       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52099           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52100       ELSE
52101           ---------------------------------------------------------------------------------------------------
52102           -- 4262811a Switch Sign
52103           ---------------------------------------------------------------------------------------------------
52104           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52105           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52106                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52107           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52108                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52109           -- 5132302
52110           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52111                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52112 
52113       END IF;
52114 
52115       -- 4955764
52116       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52117       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52118 
52119 
52120       XLA_AE_LINES_PKG.ValidateCurrentLine;
52121       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52122 
52123       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52124                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52125                ,p_balance_type_code => l_balance_type_code);
52126 
52127    END IF;
52128 
52129    -----------------------------------------------------------------------------------------
52130    -- 4262811 Multiperiod Accounting
52131    -----------------------------------------------------------------------------------------
52132      -- No MPA option is assigned.
52133 
52134 
52135 END IF;
52136 END IF;
52137 --
52138 
52139 --
52140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52141    trace
52142       (p_msg      => 'END of AcctLineType_82'
52143       ,p_level    => C_LEVEL_PROCEDURE
52144       ,p_module   => l_log_module);
52145 END IF;
52146 --
52147 EXCEPTION
52148   WHEN xla_exceptions_pkg.application_exception THEN
52149       RAISE;
52150   WHEN OTHERS THEN
52151        xla_exceptions_pkg.raise_message
52152            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_82');
52153 END AcctLineType_82;
52154 --
52155 
52156 ---------------------------------------
52157 --
52158 -- PRIVATE FUNCTION
52159 --         AcctLineType_83
52160 --
52161 ---------------------------------------
52162 PROCEDURE AcctLineType_83 (
52163   p_application_id        IN NUMBER
52164  ,p_event_id              IN NUMBER
52165  ,p_calculate_acctd_flag  IN VARCHAR2
52166  ,p_calculate_g_l_flag    IN VARCHAR2
52167  ,p_actual_flag           IN OUT VARCHAR2
52168  ,p_balance_type_code     OUT VARCHAR2
52172  , p_source_1            IN VARCHAR2
52169  ,p_gain_or_loss_ref      OUT VARCHAR2
52170  
52171 --Invoice Distribution Description
52173 --Invoice Distribution Account
52174  , p_source_11            IN NUMBER
52175 --Invoice Distribution Type
52176  , p_source_15            IN VARCHAR2
52177  , p_source_15_meaning    IN VARCHAR2
52178 --Purchasing Encumbrance Option
52179  , p_source_17            IN VARCHAR2
52180  , p_source_17_meaning    IN VARCHAR2
52181 --Accounting Reversal Indicator
52182  , p_source_19            IN VARCHAR2
52183 --Distribution Link Type
52184  , p_source_21            IN VARCHAR2
52185 --Allocation to Main Distribution Identifier
52186  , p_source_23            IN NUMBER
52187 --Invoice Identifier
52188  , p_source_24            IN NUMBER
52189 --Business Flow Accounts Payable Application Identifier
52190  , p_source_25            IN NUMBER
52191 --Business Flow Invoice Distribution Type
52192  , p_source_26            IN VARCHAR2
52193 --Business Flow Invoice Entity Code
52194  , p_source_27            IN VARCHAR2
52195 --Business Flow Invoice Distribution Identifier
52196  , p_source_28            IN NUMBER
52197 --Business Flow Invoice Identifier
52198  , p_source_29            IN NUMBER
52199 --Invoice Distribution Identifier
52200  , p_source_30            IN NUMBER
52201 --Payables Encumbrance Upgrade Credit Account
52202  , p_source_31            IN NUMBER
52203 --Payables Encumbrance Upgrade Credit Amount
52204  , p_source_32            IN NUMBER
52205 --Invoice Currency Code
52206  , p_source_33            IN VARCHAR2
52207 --Payables Encumbrance Upgrade Credit Base Amount
52208  , p_source_34            IN NUMBER
52209 --Payables Encumbrance Upgrade Debit Account
52210  , p_source_35            IN NUMBER
52211 --Payables Encumbrance Upgrade Debit Amount
52212  , p_source_36            IN NUMBER
52213 --Payables Encumbrance Upgrade Debit Base Amount
52214  , p_source_37            IN NUMBER
52215 --Payables Encumbrance Upgrade Option
52216  , p_source_38            IN VARCHAR2
52217 --Invoice Exchange Date
52218  , p_source_39            IN DATE
52219 --Invoice Exchange Rate
52220  , p_source_40            IN NUMBER
52221 --Invoice Exchange Rate Type
52222  , p_source_41            IN VARCHAR2
52223 --Deferred Accounting End Date
52224  , p_source_43            IN DATE
52225 --Deferred Accounting Option
52226  , p_source_44            IN VARCHAR2
52227 --Deferred Accounting Start Date
52228  , p_source_45            IN DATE
52229 --Override Accounted Amount Indicator
52230  , p_source_46            IN VARCHAR2
52231  , p_source_46_meaning    IN VARCHAR2
52232 --Invoice Supplier Identifier
52233  , p_source_47            IN NUMBER
52234 --Invoice Supplier Site Identifier
52235  , p_source_48            IN NUMBER
52236 --Third Party Type
52237  , p_source_49            IN VARCHAR2
52238 --Parent Reversal Identifier
52239  , p_source_50            IN NUMBER
52240 --Invoice Distribution Statistical Amount
52241  , p_source_51            IN NUMBER
52242 --Invoice Distribution Tax Line Identifier
52243  , p_source_52            IN NUMBER
52244 --Invoice Distribution Tax Distribution Identifier from Tax
52245  , p_source_53            IN NUMBER
52246 --Invoice Distribution Summary Tax Line Identifier
52247  , p_source_54            IN NUMBER
52248 --Payables Upgrade Credit Encumbrance Type Identifier
52249  , p_source_55            IN NUMBER
52250 --Payables Upgrade Debit Encumbrance Type Identifier
52251  , p_source_56            IN NUMBER
52252 --Invoice Distribution Amount
52253  , p_source_57            IN NUMBER
52254 --Invoice Distribution Encumbrance Ledger Amount
52255  , p_source_66            IN NUMBER
52256 )
52257 IS
52258 
52259 l_component_type              VARCHAR2(80);
52260 l_component_code              VARCHAR2(30);
52261 l_component_type_code         VARCHAR2(1);
52262 l_component_appl_id           INTEGER;
52263 l_amb_context_code            VARCHAR2(30);
52264 l_entity_code                 VARCHAR2(30);
52265 l_event_class_code            VARCHAR2(30);
52266 l_ae_header_id                NUMBER;
52267 l_event_type_code             VARCHAR2(30);
52268 l_line_definition_code        VARCHAR2(30);
52269 l_line_definition_owner_code  VARCHAR2(1);
52270 --
52271 -- adr variables
52272 l_segment                     VARCHAR2(30);
52273 l_ccid                        NUMBER;
52274 l_adr_transaction_coa_id      NUMBER;
52275 l_adr_accounting_coa_id       NUMBER;
52276 l_adr_flexfield_segment_code  VARCHAR2(30);
52277 l_adr_flex_value_set_id       NUMBER;
52278 l_adr_value_type_code         VARCHAR2(30);
52279 l_adr_value_combination_id    NUMBER;
52280 l_adr_value_segment_code      VARCHAR2(30);
52281 
52282 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52283 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52284 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52285 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52286 
52287 -- 4262811 Variables ------------------------------------------------------------------------------------------
52288 l_entered_amt_idx             NUMBER;
52289 l_accted_amt_idx              NUMBER;
52290 l_acc_rev_flag                VARCHAR2(1);
52291 l_accrual_line_num            NUMBER;
52292 l_tmp_amt                     NUMBER;
52293 l_acc_rev_natural_side_code   VARCHAR2(1);
52294 
52298 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52295 l_num_entries                 NUMBER;
52296 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52297 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52299 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52300 l_recog_line_1                NUMBER;
52301 l_recog_line_2                NUMBER;
52302 
52303 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52304 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52305 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52306 
52307 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52308 
52309 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52310 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52311 
52312 ---------------------------------------------------------------------------------------------------------------
52313 
52314 
52315 --
52316 -- bulk performance
52317 --
52318 l_balance_type_code           VARCHAR2(1);
52319 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52320 l_log_module                  VARCHAR2(240);
52321 
52322 --
52323 -- Upgrade strategy
52324 --
52325 l_actual_upg_option           VARCHAR2(1);
52326 l_enc_upg_option           VARCHAR2(1);
52327 
52328 --
52329 BEGIN
52330 --
52331 IF g_log_enabled THEN
52332       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
52333 END IF;
52334 --
52335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52336 
52337       trace
52338          (p_msg      => 'BEGIN of AcctLineType_83'
52339          ,p_level    => C_LEVEL_PROCEDURE
52340          ,p_module   => l_log_module);
52341 
52342 END IF;
52343 --
52344 l_component_type             := 'AMB_JLT';
52345 l_component_code             := 'AP_TAX_RATE_VAR_INV_ENC_DR';
52346 l_component_type_code        := 'S';
52347 l_component_appl_id          :=  200;
52348 l_amb_context_code           := 'DEFAULT';
52349 l_entity_code                := 'AP_INVOICES';
52350 l_event_class_code           := 'INVOICES';
52351 l_event_type_code            := 'INVOICES_ALL';
52352 l_line_definition_owner_code := 'S';
52353 l_line_definition_code       := 'ENC_INVOICES_ALL';
52354 --
52355 l_balance_type_code          := 'E';
52356 l_segment                     := NULL;
52357 l_ccid                        := NULL;
52358 l_adr_transaction_coa_id      := NULL;
52359 l_adr_accounting_coa_id       := NULL;
52360 l_adr_flexfield_segment_code  := NULL;
52361 l_adr_flex_value_set_id       := NULL;
52362 l_adr_value_type_code         := NULL;
52363 l_adr_value_combination_id    := NULL;
52364 l_adr_value_segment_code      := NULL;
52365 
52366 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52367 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
52368 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52369 l_budgetary_control_flag     := 'Y';
52370 
52371 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52372 l_bflow_applied_to_amt       := NULL; -- 5132302
52373 l_entered_amt_idx            := NULL;          -- 4262811
52374 l_accted_amt_idx             := NULL;          -- 4262811
52375 l_acc_rev_flag               := NULL;          -- 4262811
52376 l_accrual_line_num           := NULL;          -- 4262811
52377 l_tmp_amt                    := NULL;          -- 4262811
52378 --
52379  
52380 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52381     l_balance_type_code <> 'B' THEN
52382 IF NVL(p_source_15,'
52383 ') =  'TRV' AND 
52384 NVL(p_source_17,'
52385 ') =  'Y'
52386  THEN 
52387 
52388    --
52389    XLA_AE_LINES_PKG.SetNewLine;
52390 
52391    p_balance_type_code          := l_balance_type_code;
52392    -- set the flag so later we will know whether the gain loss line needs to be created
52393    
52394    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52395      p_actual_flag :='A';
52396    END IF;
52397 
52398    --
52399    -- bulk performance
52400    --
52401    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52402                                       p_header_num   => 0); -- 4262811
52403    --
52404    -- set accounting line options
52405    --
52406    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52407            p_natural_side_code          => 'D'
52408          , p_gain_or_loss_flag          => 'N'
52409          , p_gl_transfer_mode_code      => 'S'
52410          , p_acct_entry_type_code       => 'E'
52411          , p_switch_side_flag           => 'Y'
52412          , p_merge_duplicate_code       => 'N'
52413          );
52414    --
52415    l_acc_rev_natural_side_code := 'C';  -- 4262811
52416    -- 
52417    --
52418    -- set accounting line type info
52419    --
52420    xla_ae_lines_pkg.SetAcctLineType
52421       (p_component_type             => l_component_type
52422       ,p_event_type_code            => l_event_type_code
52423       ,p_line_definition_owner_code => l_line_definition_owner_code
52424       ,p_line_definition_code       => l_line_definition_code
52425       ,p_accounting_line_code       => l_component_code
52429       ,p_entity_code                => l_entity_code
52426       ,p_accounting_line_type_code  => l_component_type_code
52427       ,p_accounting_line_appl_id    => l_component_appl_id
52428       ,p_amb_context_code           => l_amb_context_code
52430       ,p_event_class_code           => l_event_class_code);
52431    --
52432    -- set accounting class
52433    --
52434    xla_ae_lines_pkg.SetAcctClass(
52435            p_accounting_class_code  => 'TRV'
52436          , p_ae_header_id           => l_ae_header_id
52437          );
52438 
52439    --
52440    -- set rounding class
52441    --
52442    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52443                       'TRV';
52444 
52445    --
52446    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52447    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52448    --
52449    -- bulk performance
52450    --
52451    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52452 
52453    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52454       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52455 
52456    -- 4955764
52457    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52458       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52459 
52460    -- 4458381 Public Sector Enh
52461       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
52462    --
52463    -- set accounting attributes for the line type
52464    --
52465    l_entered_amt_idx := 24;
52466    l_accted_amt_idx  := 29;
52467    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
52468    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52469    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
52470    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
52471    l_rec_acct_attrs.array_num_value(2)  := 
52472 xla_ae_sources_pkg.GetSystemSourceNum(
52473    p_source_code           => 'XLA_EVENT_APPL_ID'
52474  , p_source_type_code      => 'Y'
52475  , p_source_application_id =>  602
52476 );
52477    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
52478    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
52479    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
52480    l_rec_acct_attrs.array_char_value(4)  := 
52481 xla_ae_sources_pkg.GetSystemSourceChar(
52482    p_source_code           => 'XLA_ENTITY_CODE'
52483  , p_source_type_code      => 'Y'
52484  , p_source_application_id =>  602
52485 );
52486    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
52487    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
52488    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
52489    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
52490    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
52491    l_rec_acct_attrs.array_num_value(7)  := p_source_57;
52492    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
52493    l_rec_acct_attrs.array_num_value(8)  := p_source_25;
52494    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52495    l_rec_acct_attrs.array_char_value(9)  := p_source_26;
52496    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
52497    l_rec_acct_attrs.array_char_value(10)  := p_source_27;
52498    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
52499    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_28);
52500    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52501    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_29);
52502    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
52503    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
52504    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
52505    l_rec_acct_attrs.array_char_value(14)  := p_source_21;
52506    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
52507    l_rec_acct_attrs.array_num_value(15)  := p_source_31;
52508    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
52509    l_rec_acct_attrs.array_num_value(16)  := p_source_32;
52510    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
52511    l_rec_acct_attrs.array_char_value(17)  := p_source_33;
52512    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
52513    l_rec_acct_attrs.array_num_value(18)  := p_source_34;
52514    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
52515    l_rec_acct_attrs.array_num_value(19)  := p_source_35;
52516    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
52517    l_rec_acct_attrs.array_num_value(20)  := p_source_36;
52518    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
52519    l_rec_acct_attrs.array_char_value(21)  := p_source_33;
52520    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
52521    l_rec_acct_attrs.array_num_value(22)  := p_source_37;
52522    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
52523    l_rec_acct_attrs.array_char_value(23)  := p_source_38;
52524    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
52525    l_rec_acct_attrs.array_num_value(24)  := p_source_57;
52529    l_rec_acct_attrs.array_date_value(26)  := p_source_39;
52526    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
52527    l_rec_acct_attrs.array_char_value(25)  := p_source_33;
52528    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
52530    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
52531    l_rec_acct_attrs.array_num_value(27)  := p_source_40;
52532    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
52533    l_rec_acct_attrs.array_char_value(28)  := p_source_41;
52534    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
52535    l_rec_acct_attrs.array_num_value(29)  := p_source_66;
52536    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
52537    l_rec_acct_attrs.array_date_value(30)  := p_source_43;
52538    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
52539    l_rec_acct_attrs.array_char_value(31)  := p_source_44;
52540    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
52541    l_rec_acct_attrs.array_date_value(32)  := p_source_45;
52542    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
52543    l_rec_acct_attrs.array_char_value(33)  := p_source_46;
52544    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
52545    l_rec_acct_attrs.array_num_value(34)  := p_source_47;
52546    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
52547    l_rec_acct_attrs.array_num_value(35)  := p_source_48;
52548    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
52549    l_rec_acct_attrs.array_char_value(36)  := p_source_49;
52550    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
52551    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_50);
52552    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
52553    l_rec_acct_attrs.array_char_value(38)  := p_source_21;
52554    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
52555    l_rec_acct_attrs.array_num_value(39)  := p_source_51;
52556    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
52557    l_rec_acct_attrs.array_num_value(40)  := p_source_52;
52558    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
52559    l_rec_acct_attrs.array_num_value(41)  := p_source_53;
52560    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
52561    l_rec_acct_attrs.array_num_value(42)  := p_source_54;
52562    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
52563    l_rec_acct_attrs.array_num_value(43)  := p_source_55;
52564    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
52565    l_rec_acct_attrs.array_num_value(44)  := p_source_56;
52566 
52567    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52568    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52569 
52570    ---------------------------------------------------------------------------------------------------------------
52571    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52572    ---------------------------------------------------------------------------------------------------------------
52573    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52574 
52575    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52576    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52577 
52578    IF xla_accounting_cache_pkg.GetValueChar
52579          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52580          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52581    AND l_bflow_method_code = 'PRIOR_ENTRY'
52582 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52583    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52584          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52585        )
52586    THEN
52587          xla_ae_lines_pkg.BflowUpgEntry
52588            (p_business_method_code    => l_bflow_method_code
52589            ,p_business_class_code     => l_bflow_class_code
52590            ,p_balance_type            => l_balance_type_code);
52591    ELSE
52592       NULL;
52593 -- No business flow processing for business flow method of NONE.
52594    END IF;
52595 
52596    --
52597    -- call analytical criteria
52598    --
52599    
52600    --
52601    -- call description
52602    --
52603    
52604 xla_ae_lines_pkg.SetLineDescription(
52605    p_ae_header_id => l_ae_header_id
52606   ,p_description  => Description_2 (
52607      p_application_id         => p_application_id
52608    , p_ae_header_id           => l_ae_header_id 
52609 , p_source_1 => p_source_1
52610    )
52611 );
52612 
52613 
52614    --
52615    -- call ADRs
52616    -- Bug 4922099
52617    --
52618    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52619         (NVL(l_actual_upg_option, 'N') = 'O') OR
52620         (NVL(l_enc_upg_option, 'N') = 'O')
52621       )
52622    THEN
52623    NULL;
52624    --
52625    --
52626    
52627   l_ccid := AcctDerRule_7(
52628            p_application_id           => p_application_id
52629          , p_ae_header_id             => l_ae_header_id 
52630 , p_source_11 => p_source_11
52631          , x_transaction_coa_id       => l_adr_transaction_coa_id
52632          , x_accounting_coa_id        => l_adr_accounting_coa_id
52633          , x_value_type_code          => l_adr_value_type_code
52637    xla_ae_lines_pkg.set_ccid(
52634          , p_side                     => 'NA'
52635    );
52636 
52638     p_code_combination_id          => l_ccid
52639   , p_value_type_code              => l_adr_value_type_code
52640   , p_transaction_coa_id           => l_adr_transaction_coa_id
52641   , p_accounting_coa_id            => l_adr_accounting_coa_id
52642   , p_adr_code                     => 'AP_INVOICE_DIST'
52643   , p_adr_type_code                => 'S'
52644   , p_component_type               => l_component_type
52645   , p_component_code               => l_component_code
52646   , p_component_type_code          => l_component_type_code
52647   , p_component_appl_id            => l_component_appl_id
52648   , p_amb_context_code             => l_amb_context_code
52649   , p_side                         => 'NA'
52650   );
52651 
52652 
52653    --
52654    --
52655    END IF;
52656    --
52657    -- Bug 4922099
52658    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52659           (NVL(l_enc_upg_option, 'N') = 'O')
52660         ) AND
52661         (l_bflow_method_code = 'PRIOR_ENTRY')
52662       )
52663    THEN
52664       IF
52665       --
52666       1 = 2
52667       --
52668       THEN
52669       xla_accounting_err_pkg.build_message
52670                                     (p_appli_s_name            => 'XLA'
52671                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52672                                     ,p_token_1                 => 'LINE_NUMBER'
52673                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52674                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52675                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52676                                                                              l_component_type
52677                                                                             ,l_component_code
52678                                                                             ,l_component_type_code
52679                                                                             ,l_component_appl_id
52680                                                                             ,l_amb_context_code
52681                                                                             ,l_entity_code
52682                                                                             ,l_event_class_code
52683                                                                            )
52684                                     ,p_token_3                 => 'OWNER'
52685                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52686                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52687                                                                           ,p_lookup_code    => l_component_type_code
52688                                                                          )
52689                                     ,p_token_4                 => 'PRODUCT_NAME'
52690                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52691                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52692                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52693                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52694                                     ,p_ae_header_id            =>  NULL
52695                                        );
52696 
52697         IF (C_LEVEL_ERROR>= g_log_level) THEN
52698                  trace
52699                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52700                       ,p_level    => C_LEVEL_ERROR
52701                       ,p_module   => l_log_module);
52702         END IF;
52703       END IF;
52704    END IF;
52705    --
52706    --
52707    ------------------------------------------------------------------------------------------------
52708    -- 4219869 Business Flow
52709    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52710    -- Prior Entry.  Currently, the following code is always generated.
52711    ------------------------------------------------------------------------------------------------
52712    XLA_AE_LINES_PKG.ValidateCurrentLine;
52713 
52714    ------------------------------------------------------------------------------------
52715    -- 4219869 Business Flow
52716    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52717    ------------------------------------------------------------------------------------
52718    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52719 
52720    ----------------------------------------------------------------------------------
52721    -- 4219869 Business Flow
52722    -- Update journal entry status -- Need to generate this within IF <condition>
52723    ----------------------------------------------------------------------------------
52724    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52725          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52726          ,p_balance_type_code => l_balance_type_code
52727          );
52728 
52729    -------------------------------------------------------------------------------------------
52730    -- 4262811 - Generate the Accrual Reversal lines
52731    -------------------------------------------------------------------------------------------
52732    BEGIN
52736          l_acc_rev_flag := 'N';
52733       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52734                               (g_array_event(p_event_id).array_value_num('header_index'));
52735       IF l_acc_rev_flag IS NULL THEN
52737       END IF;
52738    EXCEPTION
52739       WHEN OTHERS THEN
52740          l_acc_rev_flag := 'N';
52741    END;
52742    --
52743    IF (l_acc_rev_flag = 'Y') THEN
52744 
52745        -- 4645092  ------------------------------------------------------------------------------
52746        -- To allow MPA report to determine if it should generate report process
52747        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52748        ------------------------------------------------------------------------------------------
52749 
52750        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52751        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52752    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52753    -- call ADRs
52754    -- Bug 4922099
52755    --
52756    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52757         (NVL(l_actual_upg_option, 'N') = 'O') OR
52758         (NVL(l_enc_upg_option, 'N') = 'O')
52759       )
52760    THEN
52761    NULL;
52762    --
52763    --
52764    
52765   l_ccid := AcctDerRule_7(
52766            p_application_id           => p_application_id
52767          , p_ae_header_id             => l_ae_header_id 
52768 , p_source_11 => p_source_11
52769          , x_transaction_coa_id       => l_adr_transaction_coa_id
52770          , x_accounting_coa_id        => l_adr_accounting_coa_id
52771          , x_value_type_code          => l_adr_value_type_code
52772          , p_side                     => 'NA'
52773    );
52774 
52775    xla_ae_lines_pkg.set_ccid(
52776     p_code_combination_id          => l_ccid
52777   , p_value_type_code              => l_adr_value_type_code
52778   , p_transaction_coa_id           => l_adr_transaction_coa_id
52779   , p_accounting_coa_id            => l_adr_accounting_coa_id
52780   , p_adr_code                     => 'AP_INVOICE_DIST'
52781   , p_adr_type_code                => 'S'
52782   , p_component_type               => l_component_type
52783   , p_component_code               => l_component_code
52784   , p_component_type_code          => l_component_type_code
52785   , p_component_appl_id            => l_component_appl_id
52786   , p_amb_context_code             => l_amb_context_code
52787   , p_side                         => 'NA'
52788   );
52789 
52790 
52791    --
52792    --
52793    END IF;
52794 
52795        --
52796        -- Update the line information that should be overwritten
52797        --
52798        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52799                                          p_header_num   => 1);
52800        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52801 
52802        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52803 
52804        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52805           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52806        END IF;
52807 
52808       --
52809       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52810       --
52811       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52812           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52813       ELSE
52814           ---------------------------------------------------------------------------------------------------
52815           -- 4262811a Switch Sign
52816           ---------------------------------------------------------------------------------------------------
52817           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52818           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52819                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52820           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52821                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52822           -- 5132302
52823           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52824                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52825 
52826       END IF;
52827 
52828       -- 4955764
52829       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52830       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52831 
52832 
52833       XLA_AE_LINES_PKG.ValidateCurrentLine;
52834       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52835 
52836       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52837                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52838                ,p_balance_type_code => l_balance_type_code);
52839 
52840    END IF;
52841 
52842    -----------------------------------------------------------------------------------------
52843    -- 4262811 Multiperiod Accounting
52847 
52844    -----------------------------------------------------------------------------------------
52845      -- No MPA option is assigned.
52846 
52848 END IF;
52849 END IF;
52850 --
52851 
52852 --
52853 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52854    trace
52855       (p_msg      => 'END of AcctLineType_83'
52856       ,p_level    => C_LEVEL_PROCEDURE
52857       ,p_module   => l_log_module);
52858 END IF;
52859 --
52860 EXCEPTION
52861   WHEN xla_exceptions_pkg.application_exception THEN
52862       RAISE;
52863   WHEN OTHERS THEN
52864        xla_exceptions_pkg.raise_message
52865            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_83');
52866 END AcctLineType_83;
52867 --
52868 
52869 ---------------------------------------
52870 --
52871 -- PRIVATE FUNCTION
52872 --         AcctLineType_84
52873 --
52874 ---------------------------------------
52875 PROCEDURE AcctLineType_84 (
52876   p_application_id        IN NUMBER
52877  ,p_event_id              IN NUMBER
52878  ,p_calculate_acctd_flag  IN VARCHAR2
52879  ,p_calculate_g_l_flag    IN VARCHAR2
52880  ,p_actual_flag           IN OUT VARCHAR2
52881  ,p_balance_type_code     OUT VARCHAR2
52882  ,p_gain_or_loss_ref      OUT VARCHAR2
52883  
52884 --Invoice Distribution Description
52885  , p_source_1            IN VARCHAR2
52886 --Invoice Distribution Account
52887  , p_source_11            IN NUMBER
52888 --Invoice Distribution Type
52889  , p_source_15            IN VARCHAR2
52890  , p_source_15_meaning    IN VARCHAR2
52891 --Purchasing Encumbrance Option
52892  , p_source_17            IN VARCHAR2
52893  , p_source_17_meaning    IN VARCHAR2
52894 --Accounting Reversal Indicator
52895  , p_source_19            IN VARCHAR2
52896 --Distribution Link Type
52897  , p_source_21            IN VARCHAR2
52898 --Allocation to Main Distribution Identifier
52899  , p_source_23            IN NUMBER
52900 --Invoice Identifier
52901  , p_source_24            IN NUMBER
52902 --Business Flow Accounts Payable Application Identifier
52903  , p_source_25            IN NUMBER
52904 --Business Flow Invoice Distribution Type
52905  , p_source_26            IN VARCHAR2
52906 --Business Flow Invoice Entity Code
52907  , p_source_27            IN VARCHAR2
52908 --Business Flow Invoice Distribution Identifier
52909  , p_source_28            IN NUMBER
52910 --Business Flow Invoice Identifier
52911  , p_source_29            IN NUMBER
52912 --Invoice Distribution Identifier
52913  , p_source_30            IN NUMBER
52914 --Payables Encumbrance Upgrade Credit Account
52915  , p_source_31            IN NUMBER
52916 --Payables Encumbrance Upgrade Credit Amount
52917  , p_source_32            IN NUMBER
52918 --Invoice Currency Code
52919  , p_source_33            IN VARCHAR2
52920 --Payables Encumbrance Upgrade Credit Base Amount
52921  , p_source_34            IN NUMBER
52922 --Payables Encumbrance Upgrade Debit Account
52923  , p_source_35            IN NUMBER
52924 --Payables Encumbrance Upgrade Debit Amount
52925  , p_source_36            IN NUMBER
52926 --Payables Encumbrance Upgrade Debit Base Amount
52927  , p_source_37            IN NUMBER
52928 --Payables Encumbrance Upgrade Option
52929  , p_source_38            IN VARCHAR2
52930 --Invoice Exchange Date
52931  , p_source_39            IN DATE
52932 --Invoice Exchange Rate
52933  , p_source_40            IN NUMBER
52934 --Invoice Exchange Rate Type
52935  , p_source_41            IN VARCHAR2
52936 --Deferred Accounting End Date
52937  , p_source_43            IN DATE
52938 --Deferred Accounting Option
52939  , p_source_44            IN VARCHAR2
52940 --Deferred Accounting Start Date
52941  , p_source_45            IN DATE
52942 --Override Accounted Amount Indicator
52943  , p_source_46            IN VARCHAR2
52944  , p_source_46_meaning    IN VARCHAR2
52945 --Invoice Supplier Identifier
52946  , p_source_47            IN NUMBER
52947 --Invoice Supplier Site Identifier
52948  , p_source_48            IN NUMBER
52949 --Third Party Type
52950  , p_source_49            IN VARCHAR2
52951 --Parent Reversal Identifier
52952  , p_source_50            IN NUMBER
52953 --Invoice Distribution Statistical Amount
52954  , p_source_51            IN NUMBER
52955 --Invoice Distribution Tax Line Identifier
52956  , p_source_52            IN NUMBER
52957 --Invoice Distribution Tax Distribution Identifier from Tax
52958  , p_source_53            IN NUMBER
52959 --Invoice Distribution Summary Tax Line Identifier
52960  , p_source_54            IN NUMBER
52961 --Payables Upgrade Credit Encumbrance Type Identifier
52962  , p_source_55            IN NUMBER
52963 --Payables Upgrade Debit Encumbrance Type Identifier
52964  , p_source_56            IN NUMBER
52965 --Invoice Distribution Encumbrance Amount
52966  , p_source_65            IN NUMBER
52967 --Invoice Distribution Encumbrance Ledger Amount
52968  , p_source_66            IN NUMBER
52969 )
52970 IS
52971 
52972 l_component_type              VARCHAR2(80);
52973 l_component_code              VARCHAR2(30);
52974 l_component_type_code         VARCHAR2(1);
52975 l_component_appl_id           INTEGER;
52976 l_amb_context_code            VARCHAR2(30);
52977 l_entity_code                 VARCHAR2(30);
52978 l_event_class_code            VARCHAR2(30);
52979 l_ae_header_id                NUMBER;
52980 l_event_type_code             VARCHAR2(30);
52984 -- adr variables
52981 l_line_definition_code        VARCHAR2(30);
52982 l_line_definition_owner_code  VARCHAR2(1);
52983 --
52985 l_segment                     VARCHAR2(30);
52986 l_ccid                        NUMBER;
52987 l_adr_transaction_coa_id      NUMBER;
52988 l_adr_accounting_coa_id       NUMBER;
52989 l_adr_flexfield_segment_code  VARCHAR2(30);
52990 l_adr_flex_value_set_id       NUMBER;
52991 l_adr_value_type_code         VARCHAR2(30);
52992 l_adr_value_combination_id    NUMBER;
52993 l_adr_value_segment_code      VARCHAR2(30);
52994 
52995 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52996 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52997 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52998 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52999 
53000 -- 4262811 Variables ------------------------------------------------------------------------------------------
53001 l_entered_amt_idx             NUMBER;
53002 l_accted_amt_idx              NUMBER;
53003 l_acc_rev_flag                VARCHAR2(1);
53004 l_accrual_line_num            NUMBER;
53005 l_tmp_amt                     NUMBER;
53006 l_acc_rev_natural_side_code   VARCHAR2(1);
53007 
53008 l_num_entries                 NUMBER;
53009 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53010 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53011 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53012 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53013 l_recog_line_1                NUMBER;
53014 l_recog_line_2                NUMBER;
53015 
53016 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53017 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53018 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53019 
53020 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53021 
53022 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53023 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53024 
53025 ---------------------------------------------------------------------------------------------------------------
53026 
53027 
53028 --
53029 -- bulk performance
53030 --
53031 l_balance_type_code           VARCHAR2(1);
53032 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53033 l_log_module                  VARCHAR2(240);
53034 
53035 --
53036 -- Upgrade strategy
53037 --
53038 l_actual_upg_option           VARCHAR2(1);
53039 l_enc_upg_option           VARCHAR2(1);
53040 
53041 --
53042 BEGIN
53043 --
53044 IF g_log_enabled THEN
53045       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
53046 END IF;
53047 --
53048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53049 
53050       trace
53051          (p_msg      => 'BEGIN of AcctLineType_84'
53052          ,p_level    => C_LEVEL_PROCEDURE
53053          ,p_module   => l_log_module);
53054 
53055 END IF;
53056 --
53057 l_component_type             := 'AMB_JLT';
53058 l_component_code             := 'AP_TAX_RATE_VAR_PP_ENC_DR';
53059 l_component_type_code        := 'S';
53060 l_component_appl_id          :=  200;
53061 l_amb_context_code           := 'DEFAULT';
53062 l_entity_code                := 'AP_INVOICES';
53063 l_event_class_code           := 'PREPAYMENTS';
53064 l_event_type_code            := 'PREPAYMENTS_ALL';
53065 l_line_definition_owner_code := 'S';
53066 l_line_definition_code       := 'ENC_PREPAY_ALL';
53067 --
53068 l_balance_type_code          := 'E';
53069 l_segment                     := NULL;
53070 l_ccid                        := NULL;
53071 l_adr_transaction_coa_id      := NULL;
53072 l_adr_accounting_coa_id       := NULL;
53073 l_adr_flexfield_segment_code  := NULL;
53074 l_adr_flex_value_set_id       := NULL;
53075 l_adr_value_type_code         := NULL;
53076 l_adr_value_combination_id    := NULL;
53077 l_adr_value_segment_code      := NULL;
53078 
53079 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53080 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
53081 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53082 l_budgetary_control_flag     := 'Y';
53083 
53084 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53085 l_bflow_applied_to_amt       := NULL; -- 5132302
53086 l_entered_amt_idx            := NULL;          -- 4262811
53087 l_accted_amt_idx             := NULL;          -- 4262811
53088 l_acc_rev_flag               := NULL;          -- 4262811
53089 l_accrual_line_num           := NULL;          -- 4262811
53090 l_tmp_amt                    := NULL;          -- 4262811
53091 --
53092  
53093 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53094     l_balance_type_code <> 'B' THEN
53095 IF NVL(p_source_15,'
53096 ') =  'TRV' AND 
53097 NVL(p_source_17,'
53098 ') =  'Y'
53099  THEN 
53100 
53101    --
53102    XLA_AE_LINES_PKG.SetNewLine;
53103 
53104    p_balance_type_code          := l_balance_type_code;
53105    -- set the flag so later we will know whether the gain loss line needs to be created
53106    
53107    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53111    --
53108      p_actual_flag :='A';
53109    END IF;
53110 
53112    -- bulk performance
53113    --
53114    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53115                                       p_header_num   => 0); -- 4262811
53116    --
53117    -- set accounting line options
53118    --
53119    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53120            p_natural_side_code          => 'D'
53121          , p_gain_or_loss_flag          => 'N'
53122          , p_gl_transfer_mode_code      => 'S'
53123          , p_acct_entry_type_code       => 'E'
53124          , p_switch_side_flag           => 'Y'
53125          , p_merge_duplicate_code       => 'N'
53126          );
53127    --
53128    l_acc_rev_natural_side_code := 'C';  -- 4262811
53129    -- 
53130    --
53131    -- set accounting line type info
53132    --
53133    xla_ae_lines_pkg.SetAcctLineType
53134       (p_component_type             => l_component_type
53135       ,p_event_type_code            => l_event_type_code
53136       ,p_line_definition_owner_code => l_line_definition_owner_code
53137       ,p_line_definition_code       => l_line_definition_code
53138       ,p_accounting_line_code       => l_component_code
53139       ,p_accounting_line_type_code  => l_component_type_code
53140       ,p_accounting_line_appl_id    => l_component_appl_id
53141       ,p_amb_context_code           => l_amb_context_code
53142       ,p_entity_code                => l_entity_code
53143       ,p_event_class_code           => l_event_class_code);
53144    --
53145    -- set accounting class
53146    --
53147    xla_ae_lines_pkg.SetAcctClass(
53148            p_accounting_class_code  => 'TRV'
53149          , p_ae_header_id           => l_ae_header_id
53150          );
53151 
53152    --
53153    -- set rounding class
53154    --
53155    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53156                       'TRV';
53157 
53158    --
53159    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53160    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53161    --
53162    -- bulk performance
53163    --
53164    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53165 
53166    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53167       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53168 
53169    -- 4955764
53170    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53171       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53172 
53173    -- 4458381 Public Sector Enh
53174       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
53175    --
53176    -- set accounting attributes for the line type
53177    --
53178    l_entered_amt_idx := 23;
53179    l_accted_amt_idx  := 28;
53180    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53181    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53182    l_rec_acct_attrs.array_char_value(1)  := p_source_19;
53183    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53184    l_rec_acct_attrs.array_num_value(2)  := 
53185 xla_ae_sources_pkg.GetSystemSourceNum(
53186    p_source_code           => 'XLA_EVENT_APPL_ID'
53187  , p_source_type_code      => 'Y'
53188  , p_source_application_id =>  602
53189 );
53190    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53191    l_rec_acct_attrs.array_char_value(3)  := p_source_21;
53192    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53193    l_rec_acct_attrs.array_char_value(4)  := 
53194 xla_ae_sources_pkg.GetSystemSourceChar(
53195    p_source_code           => 'XLA_ENTITY_CODE'
53196  , p_source_type_code      => 'Y'
53197  , p_source_application_id =>  602
53198 );
53199    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53200    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_23);
53201    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53202    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_24);
53203    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
53204    l_rec_acct_attrs.array_num_value(7)  := p_source_25;
53205    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53206    l_rec_acct_attrs.array_char_value(8)  := p_source_26;
53207    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
53208    l_rec_acct_attrs.array_char_value(9)  := p_source_27;
53209    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53210    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_28);
53211    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53212    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_29);
53213    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
53214    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_30);
53215    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
53216    l_rec_acct_attrs.array_char_value(13)  := p_source_21;
53217    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
53218    l_rec_acct_attrs.array_num_value(14)  := p_source_31;
53219    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
53220    l_rec_acct_attrs.array_num_value(15)  := p_source_32;
53224    l_rec_acct_attrs.array_num_value(17)  := p_source_34;
53221    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
53222    l_rec_acct_attrs.array_char_value(16)  := p_source_33;
53223    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
53225    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
53226    l_rec_acct_attrs.array_num_value(18)  := p_source_35;
53227    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
53228    l_rec_acct_attrs.array_num_value(19)  := p_source_36;
53229    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
53230    l_rec_acct_attrs.array_char_value(20)  := p_source_33;
53231    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
53232    l_rec_acct_attrs.array_num_value(21)  := p_source_37;
53233    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
53234    l_rec_acct_attrs.array_char_value(22)  := p_source_38;
53235    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
53236    l_rec_acct_attrs.array_num_value(23)  := p_source_65;
53237    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
53238    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
53239    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
53240    l_rec_acct_attrs.array_date_value(25)  := p_source_39;
53241    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
53242    l_rec_acct_attrs.array_num_value(26)  := p_source_40;
53243    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
53244    l_rec_acct_attrs.array_char_value(27)  := p_source_41;
53245    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
53246    l_rec_acct_attrs.array_num_value(28)  := p_source_66;
53247    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
53248    l_rec_acct_attrs.array_date_value(29)  := p_source_43;
53249    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
53250    l_rec_acct_attrs.array_char_value(30)  := p_source_44;
53251    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
53252    l_rec_acct_attrs.array_date_value(31)  := p_source_45;
53253    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
53254    l_rec_acct_attrs.array_char_value(32)  := p_source_46;
53255    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
53256    l_rec_acct_attrs.array_num_value(33)  := p_source_47;
53257    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
53258    l_rec_acct_attrs.array_num_value(34)  := p_source_48;
53259    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
53260    l_rec_acct_attrs.array_char_value(35)  := p_source_49;
53261    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
53262    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_50);
53263    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
53264    l_rec_acct_attrs.array_char_value(37)  := p_source_21;
53265    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
53266    l_rec_acct_attrs.array_num_value(38)  := p_source_51;
53267    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
53268    l_rec_acct_attrs.array_num_value(39)  := p_source_52;
53269    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
53270    l_rec_acct_attrs.array_num_value(40)  := p_source_53;
53271    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
53272    l_rec_acct_attrs.array_num_value(41)  := p_source_54;
53273    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
53274    l_rec_acct_attrs.array_num_value(42)  := p_source_55;
53275    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
53276    l_rec_acct_attrs.array_num_value(43)  := p_source_56;
53277 
53278    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53279    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53280 
53281    ---------------------------------------------------------------------------------------------------------------
53282    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53283    ---------------------------------------------------------------------------------------------------------------
53284    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53285 
53286    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53287    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53288 
53289    IF xla_accounting_cache_pkg.GetValueChar
53290          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53291          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53292    AND l_bflow_method_code = 'PRIOR_ENTRY'
53293 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53294    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53295          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53296        )
53297    THEN
53298          xla_ae_lines_pkg.BflowUpgEntry
53299            (p_business_method_code    => l_bflow_method_code
53300            ,p_business_class_code     => l_bflow_class_code
53301            ,p_balance_type            => l_balance_type_code);
53302    ELSE
53303       NULL;
53304 -- No business flow processing for business flow method of NONE.
53305    END IF;
53306 
53307    --
53308    -- call analytical criteria
53309    --
53310    
53311    --
53312    -- call description
53313    --
53317   ,p_description  => Description_2 (
53314    
53315 xla_ae_lines_pkg.SetLineDescription(
53316    p_ae_header_id => l_ae_header_id
53318      p_application_id         => p_application_id
53319    , p_ae_header_id           => l_ae_header_id 
53320 , p_source_1 => p_source_1
53321    )
53322 );
53323 
53324 
53325    --
53326    -- call ADRs
53327    -- Bug 4922099
53328    --
53329    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53330         (NVL(l_actual_upg_option, 'N') = 'O') OR
53331         (NVL(l_enc_upg_option, 'N') = 'O')
53332       )
53333    THEN
53334    NULL;
53335    --
53336    --
53337    
53338   l_ccid := AcctDerRule_7(
53339            p_application_id           => p_application_id
53340          , p_ae_header_id             => l_ae_header_id 
53341 , p_source_11 => p_source_11
53342          , x_transaction_coa_id       => l_adr_transaction_coa_id
53343          , x_accounting_coa_id        => l_adr_accounting_coa_id
53344          , x_value_type_code          => l_adr_value_type_code
53345          , p_side                     => 'NA'
53346    );
53347 
53348    xla_ae_lines_pkg.set_ccid(
53349     p_code_combination_id          => l_ccid
53350   , p_value_type_code              => l_adr_value_type_code
53351   , p_transaction_coa_id           => l_adr_transaction_coa_id
53352   , p_accounting_coa_id            => l_adr_accounting_coa_id
53353   , p_adr_code                     => 'AP_INVOICE_DIST'
53354   , p_adr_type_code                => 'S'
53355   , p_component_type               => l_component_type
53356   , p_component_code               => l_component_code
53357   , p_component_type_code          => l_component_type_code
53358   , p_component_appl_id            => l_component_appl_id
53359   , p_amb_context_code             => l_amb_context_code
53360   , p_side                         => 'NA'
53361   );
53362 
53363 
53364    --
53365    --
53366    END IF;
53367    --
53368    -- Bug 4922099
53369    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53370           (NVL(l_enc_upg_option, 'N') = 'O')
53371         ) AND
53372         (l_bflow_method_code = 'PRIOR_ENTRY')
53373       )
53374    THEN
53375       IF
53376       --
53377       1 = 2
53378       --
53379       THEN
53380       xla_accounting_err_pkg.build_message
53381                                     (p_appli_s_name            => 'XLA'
53382                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53383                                     ,p_token_1                 => 'LINE_NUMBER'
53384                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53385                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53386                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53387                                                                              l_component_type
53388                                                                             ,l_component_code
53389                                                                             ,l_component_type_code
53390                                                                             ,l_component_appl_id
53391                                                                             ,l_amb_context_code
53392                                                                             ,l_entity_code
53393                                                                             ,l_event_class_code
53394                                                                            )
53395                                     ,p_token_3                 => 'OWNER'
53396                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53397                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53398                                                                           ,p_lookup_code    => l_component_type_code
53399                                                                          )
53400                                     ,p_token_4                 => 'PRODUCT_NAME'
53401                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53402                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53403                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53404                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53405                                     ,p_ae_header_id            =>  NULL
53406                                        );
53407 
53408         IF (C_LEVEL_ERROR>= g_log_level) THEN
53409                  trace
53410                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53411                       ,p_level    => C_LEVEL_ERROR
53412                       ,p_module   => l_log_module);
53413         END IF;
53414       END IF;
53415    END IF;
53416    --
53417    --
53418    ------------------------------------------------------------------------------------------------
53419    -- 4219869 Business Flow
53420    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53421    -- Prior Entry.  Currently, the following code is always generated.
53422    ------------------------------------------------------------------------------------------------
53423    XLA_AE_LINES_PKG.ValidateCurrentLine;
53424 
53428    ------------------------------------------------------------------------------------
53425    ------------------------------------------------------------------------------------
53426    -- 4219869 Business Flow
53427    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53429    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53430 
53431    ----------------------------------------------------------------------------------
53432    -- 4219869 Business Flow
53433    -- Update journal entry status -- Need to generate this within IF <condition>
53434    ----------------------------------------------------------------------------------
53435    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53436          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53437          ,p_balance_type_code => l_balance_type_code
53438          );
53439 
53440    -------------------------------------------------------------------------------------------
53441    -- 4262811 - Generate the Accrual Reversal lines
53442    -------------------------------------------------------------------------------------------
53443    BEGIN
53444       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53445                               (g_array_event(p_event_id).array_value_num('header_index'));
53446       IF l_acc_rev_flag IS NULL THEN
53447          l_acc_rev_flag := 'N';
53448       END IF;
53449    EXCEPTION
53450       WHEN OTHERS THEN
53451          l_acc_rev_flag := 'N';
53452    END;
53453    --
53454    IF (l_acc_rev_flag = 'Y') THEN
53455 
53456        -- 4645092  ------------------------------------------------------------------------------
53457        -- To allow MPA report to determine if it should generate report process
53458        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53459        ------------------------------------------------------------------------------------------
53460 
53461        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53462        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53463    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53464    -- call ADRs
53465    -- Bug 4922099
53466    --
53467    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53468         (NVL(l_actual_upg_option, 'N') = 'O') OR
53469         (NVL(l_enc_upg_option, 'N') = 'O')
53470       )
53471    THEN
53472    NULL;
53473    --
53474    --
53475    
53476   l_ccid := AcctDerRule_7(
53477            p_application_id           => p_application_id
53478          , p_ae_header_id             => l_ae_header_id 
53479 , p_source_11 => p_source_11
53480          , x_transaction_coa_id       => l_adr_transaction_coa_id
53481          , x_accounting_coa_id        => l_adr_accounting_coa_id
53482          , x_value_type_code          => l_adr_value_type_code
53483          , p_side                     => 'NA'
53484    );
53485 
53486    xla_ae_lines_pkg.set_ccid(
53487     p_code_combination_id          => l_ccid
53488   , p_value_type_code              => l_adr_value_type_code
53489   , p_transaction_coa_id           => l_adr_transaction_coa_id
53490   , p_accounting_coa_id            => l_adr_accounting_coa_id
53491   , p_adr_code                     => 'AP_INVOICE_DIST'
53492   , p_adr_type_code                => 'S'
53493   , p_component_type               => l_component_type
53494   , p_component_code               => l_component_code
53495   , p_component_type_code          => l_component_type_code
53496   , p_component_appl_id            => l_component_appl_id
53497   , p_amb_context_code             => l_amb_context_code
53498   , p_side                         => 'NA'
53499   );
53500 
53501 
53502    --
53503    --
53504    END IF;
53505 
53506        --
53507        -- Update the line information that should be overwritten
53508        --
53509        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53510                                          p_header_num   => 1);
53511        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53512 
53513        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53514 
53515        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53516           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53517        END IF;
53518 
53519       --
53520       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53521       --
53522       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53523           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53524       ELSE
53525           ---------------------------------------------------------------------------------------------------
53526           -- 4262811a Switch Sign
53527           ---------------------------------------------------------------------------------------------------
53528           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53529           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53530                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53531           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53535                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53532                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53533           -- 5132302
53534           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53536 
53537       END IF;
53538 
53539       -- 4955764
53540       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53541       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53542 
53543 
53544       XLA_AE_LINES_PKG.ValidateCurrentLine;
53545       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53546 
53547       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53548                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53549                ,p_balance_type_code => l_balance_type_code);
53550 
53551    END IF;
53552 
53553    -----------------------------------------------------------------------------------------
53554    -- 4262811 Multiperiod Accounting
53555    -----------------------------------------------------------------------------------------
53556      -- No MPA option is assigned.
53557 
53558 
53559 END IF;
53560 END IF;
53561 --
53562 
53563 --
53564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53565    trace
53566       (p_msg      => 'END of AcctLineType_84'
53567       ,p_level    => C_LEVEL_PROCEDURE
53568       ,p_module   => l_log_module);
53569 END IF;
53570 --
53571 EXCEPTION
53572   WHEN xla_exceptions_pkg.application_exception THEN
53573       RAISE;
53574   WHEN OTHERS THEN
53575        xla_exceptions_pkg.raise_message
53576            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_84');
53577 END AcctLineType_84;
53578 --
53579 
53580 ---------------------------------------
53581 --
53582 -- PRIVATE FUNCTION
53583 --         AcctLineType_85
53584 --
53585 ---------------------------------------
53586 PROCEDURE AcctLineType_85 (
53587   p_application_id        IN NUMBER
53588  ,p_event_id              IN NUMBER
53589  ,p_calculate_acctd_flag  IN VARCHAR2
53590  ,p_calculate_g_l_flag    IN VARCHAR2
53591  ,p_actual_flag           IN OUT VARCHAR2
53592  ,p_balance_type_code     OUT VARCHAR2
53593  ,p_gain_or_loss_ref      OUT VARCHAR2
53594  
53595 --Document Distribution Type
53596  , p_source_2            IN VARCHAR2
53597 --Project Name
53598  , p_source_3            IN VARCHAR2
53599 --Task Number
53600  , p_source_4            IN VARCHAR2
53601 --Expenditure Organization
53602  , p_source_5            IN NUMBER
53603 --Budget Account
53604  , p_source_14            IN NUMBER
53605 --Distribution Link Type
53606  , p_source_21            IN VARCHAR2
53607 --Invoice Distribution Identifier
53608  , p_source_30            IN NUMBER
53609 --Invoice Currency Code
53610  , p_source_33            IN VARCHAR2
53611 --Invoice Exchange Date
53612  , p_source_39            IN DATE
53613 --Invoice Exchange Rate
53614  , p_source_40            IN NUMBER
53615 --Invoice Exchange Rate Type
53616  , p_source_41            IN VARCHAR2
53617 --Invoice Distribution Amount
53618  , p_source_57            IN NUMBER
53619 --Document Type
53620  , p_source_83            IN VARCHAR2
53621 --Burden Amount Display Method
53622  , p_source_84            IN VARCHAR2
53623 --Accounting reversal indicator for project invoice burden
53624  , p_source_85            IN VARCHAR2
53625 --Allocated to Application Identifier
53626  , p_source_86            IN NUMBER
53627 --Allocated to Distribution Type
53628  , p_source_87            IN VARCHAR2
53629 --Allocated to Entity Code
53630  , p_source_88            IN VARCHAR2
53631 --Allocated to First Distribution Identifier
53632  , p_source_89            IN NUMBER
53633 --Allocated to First System Transaction Identifier
53634  , p_source_90            IN NUMBER
53635 --Invoice Burden Applied to Application Identifier
53636  , p_source_91            IN NUMBER
53637 --Invoice Burden Applied to Distribution Type
53638  , p_source_92            IN VARCHAR2
53639 --Invoice Burden Applied to Entity Code
53640  , p_source_93            IN VARCHAR2
53641 --Invoice Burden Applied to First Distribution Identifier
53642  , p_source_94            IN NUMBER
53643 --Invoice Burden Applied to System Transaction Identifier
53644  , p_source_95            IN NUMBER
53645 --Invoice Distribution Expenditure Type
53646  , p_source_96            IN VARCHAR2
53647 --Encumbrance Upgrade Credit Accounting Class
53648  , p_source_97            IN VARCHAR2
53649 --Encumbrance Upgrade Credit Account
53650  , p_source_98            IN NUMBER
53651 --Invoice Distribution Ledger Amount Before Rounding
53652  , p_source_99            IN NUMBER
53653 --Encumbrance Upgrade Debit Accounting Class
53654  , p_source_100            IN VARCHAR2
53655 --Encumbrance Upgrade Debit Account
53656  , p_source_101            IN NUMBER
53657 --Use Encumbrances Upgrade Attributes Flag
53658  , p_source_102            IN VARCHAR2
53659 --Accounting reversal first distribution identifier for project invoice burden
53660  , p_source_103            IN NUMBER
53661 --Invoice Burden Applied to Second Distribution Identifier
53662  , p_source_104            IN VARCHAR2
53663 --Accounting reversal distribution type for project invoice burden
53667 --Encumbrance Upgrade Debit Encumbrance Type
53664  , p_source_105            IN VARCHAR2
53665 --Encumbrance Upgrade Credit Encumbrance Type
53666  , p_source_106            IN NUMBER
53668  , p_source_107            IN NUMBER
53669 )
53670 IS
53671 
53672 l_component_type              VARCHAR2(80);
53673 l_component_code              VARCHAR2(30);
53674 l_component_type_code         VARCHAR2(1);
53675 l_component_appl_id           INTEGER;
53676 l_amb_context_code            VARCHAR2(30);
53677 l_entity_code                 VARCHAR2(30);
53678 l_event_class_code            VARCHAR2(30);
53679 l_ae_header_id                NUMBER;
53680 l_event_type_code             VARCHAR2(30);
53681 l_line_definition_code        VARCHAR2(30);
53682 l_line_definition_owner_code  VARCHAR2(1);
53683 --
53684 -- adr variables
53685 l_segment                     VARCHAR2(30);
53686 l_ccid                        NUMBER;
53687 l_adr_transaction_coa_id      NUMBER;
53688 l_adr_accounting_coa_id       NUMBER;
53689 l_adr_flexfield_segment_code  VARCHAR2(30);
53690 l_adr_flex_value_set_id       NUMBER;
53691 l_adr_value_type_code         VARCHAR2(30);
53692 l_adr_value_combination_id    NUMBER;
53693 l_adr_value_segment_code      VARCHAR2(30);
53694 
53695 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53696 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53697 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53698 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53699 
53700 -- 4262811 Variables ------------------------------------------------------------------------------------------
53701 l_entered_amt_idx             NUMBER;
53702 l_accted_amt_idx              NUMBER;
53703 l_acc_rev_flag                VARCHAR2(1);
53704 l_accrual_line_num            NUMBER;
53705 l_tmp_amt                     NUMBER;
53706 l_acc_rev_natural_side_code   VARCHAR2(1);
53707 
53708 l_num_entries                 NUMBER;
53709 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53710 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53711 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53712 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53713 l_recog_line_1                NUMBER;
53714 l_recog_line_2                NUMBER;
53715 
53716 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53717 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53718 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53719 
53720 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53721 
53722 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53723 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53724 
53725 ---------------------------------------------------------------------------------------------------------------
53726 
53727 
53728 --
53729 -- bulk performance
53730 --
53731 l_balance_type_code           VARCHAR2(1);
53732 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53733 l_log_module                  VARCHAR2(240);
53734 
53735 --
53736 -- Upgrade strategy
53737 --
53738 l_actual_upg_option           VARCHAR2(1);
53739 l_enc_upg_option           VARCHAR2(1);
53740 
53741 --
53742 BEGIN
53743 --
53744 IF g_log_enabled THEN
53745       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
53746 END IF;
53747 --
53748 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53749 
53750       trace
53751          (p_msg      => 'BEGIN of AcctLineType_85'
53752          ,p_level    => C_LEVEL_PROCEDURE
53753          ,p_module   => l_log_module);
53754 
53755 END IF;
53756 --
53757 l_component_type             := 'AMB_JLT';
53758 l_component_code             := 'BURDENED_INV_ENC';
53759 l_component_type_code        := 'S';
53760 l_component_appl_id          :=  200;
53761 l_amb_context_code           := 'DEFAULT';
53762 l_entity_code                := 'AP_INVOICES';
53763 l_event_class_code           := 'INVOICE_BURDEN';
53764 l_event_type_code            := 'INVOICE_BURDEN_ALL';
53765 l_line_definition_owner_code := 'S';
53766 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
53767 --
53768 l_balance_type_code          := 'E';
53769 l_segment                     := NULL;
53770 l_ccid                        := NULL;
53771 l_adr_transaction_coa_id      := NULL;
53772 l_adr_accounting_coa_id       := NULL;
53773 l_adr_flexfield_segment_code  := NULL;
53774 l_adr_flex_value_set_id       := NULL;
53775 l_adr_value_type_code         := NULL;
53776 l_adr_value_combination_id    := NULL;
53777 l_adr_value_segment_code      := NULL;
53778 
53779 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53780 l_bflow_class_code           := 'AP_INV_PA_BURDENED_ENC';    -- 4219869 Business Flow
53781 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53782 l_budgetary_control_flag     := 'Y';
53783 
53784 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53785 l_bflow_applied_to_amt       := NULL; -- 5132302
53786 l_entered_amt_idx            := NULL;          -- 4262811
53787 l_accted_amt_idx             := NULL;          -- 4262811
53788 l_acc_rev_flag               := NULL;          -- 4262811
53792  
53789 l_accrual_line_num           := NULL;          -- 4262811
53790 l_tmp_amt                    := NULL;          -- 4262811
53791 --
53793 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53794     l_balance_type_code <> 'B' THEN
53795 IF NVL(p_source_83,'
53796 ') =  'AP' AND 
53797 (NVL(p_source_2,'
53798 ') <>  'PREPAY APPL' OR 
53799 NVL(p_source_2,'
53800 ') <>  'TAX DIFF' OR 
53801 NVL(p_source_2,'
53802 ') <>  'FINAL APPLICATION ROUNDING') AND 
53803 NVL(p_source_84,'
53804 ') =  'S'
53805  THEN 
53806 
53807    --
53808    XLA_AE_LINES_PKG.SetNewLine;
53809 
53810    p_balance_type_code          := l_balance_type_code;
53811    -- set the flag so later we will know whether the gain loss line needs to be created
53812    
53813    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53814      p_actual_flag :='A';
53815    END IF;
53816 
53817    --
53818    -- bulk performance
53819    --
53820    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53821                                       p_header_num   => 0); -- 4262811
53822    --
53823    -- set accounting line options
53824    --
53825    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53826            p_natural_side_code          => 'D'
53827          , p_gain_or_loss_flag          => 'N'
53828          , p_gl_transfer_mode_code      => 'S'
53829          , p_acct_entry_type_code       => 'E'
53830          , p_switch_side_flag           => 'Y'
53831          , p_merge_duplicate_code       => 'N'
53832          );
53833    --
53834    l_acc_rev_natural_side_code := 'C';  -- 4262811
53835    -- 
53836    --
53837    -- set accounting line type info
53838    --
53839    xla_ae_lines_pkg.SetAcctLineType
53840       (p_component_type             => l_component_type
53841       ,p_event_type_code            => l_event_type_code
53842       ,p_line_definition_owner_code => l_line_definition_owner_code
53843       ,p_line_definition_code       => l_line_definition_code
53844       ,p_accounting_line_code       => l_component_code
53845       ,p_accounting_line_type_code  => l_component_type_code
53846       ,p_accounting_line_appl_id    => l_component_appl_id
53847       ,p_amb_context_code           => l_amb_context_code
53848       ,p_entity_code                => l_entity_code
53849       ,p_event_class_code           => l_event_class_code);
53850    --
53851    -- set accounting class
53852    --
53853    xla_ae_lines_pkg.SetAcctClass(
53854            p_accounting_class_code  => 'AP_INV_PA_BURDENED'
53855          , p_ae_header_id           => l_ae_header_id
53856          );
53857 
53858    --
53859    -- set rounding class
53860    --
53861    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53862                       'AP_INV_PA_BURDENED';
53863 
53864    --
53865    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53866    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53867    --
53868    -- bulk performance
53869    --
53870    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53871 
53872    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53873       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53874 
53875    -- 4955764
53876    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53877       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53878 
53879    -- 4458381 Public Sector Enh
53880       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
53881    --
53882    -- set accounting attributes for the line type
53883    --
53884    l_entered_amt_idx := 27;
53885    l_accted_amt_idx  := 32;
53886    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53887    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53888    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
53889    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53890    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
53891    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53892    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
53893    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53894    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
53895    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53896    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
53897    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53898    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
53899    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
53900    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
53901    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53902    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
53903    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
53904    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
53905    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53906    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
53907    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53908    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
53912    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
53909    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
53910    l_rec_acct_attrs.array_char_value(12)  := p_source_96;
53911    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
53913    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
53914    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
53915    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
53916    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
53917    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
53918    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
53919    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
53920    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
53921    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
53922    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
53923    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
53924    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
53925    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
53926    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
53927    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
53928    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
53929    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
53930    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
53931    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
53932    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
53933    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
53934    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
53935    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
53936    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
53937    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
53938    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
53939    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
53940    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
53941    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
53942    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
53943    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_DATE';
53944    l_rec_acct_attrs.array_date_value(29)  := p_source_39;
53945    l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_RATE';
53946    l_rec_acct_attrs.array_num_value(30)  := p_source_40;
53947    l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE_TYPE';
53948    l_rec_acct_attrs.array_char_value(31)  := p_source_41;
53949    l_rec_acct_attrs.array_acct_attr_code(32) := 'LEDGER_AMOUNT';
53950    l_rec_acct_attrs.array_num_value(32)  := p_source_99;
53951    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
53952    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_103);
53953    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID2';
53954    l_rec_acct_attrs.array_char_value(34)  := p_source_104;
53955    l_rec_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_TYPE';
53956    l_rec_acct_attrs.array_char_value(35)  := p_source_105;
53957    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
53958    l_rec_acct_attrs.array_num_value(36)  := p_source_106;
53959    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
53960    l_rec_acct_attrs.array_num_value(37)  := p_source_107;
53961 
53962    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53963    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53964 
53965    ---------------------------------------------------------------------------------------------------------------
53966    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53967    ---------------------------------------------------------------------------------------------------------------
53968    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53969 
53970    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53971    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53972 
53973    IF xla_accounting_cache_pkg.GetValueChar
53974          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53975          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53976    AND l_bflow_method_code = 'PRIOR_ENTRY'
53977 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53978    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53979          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53980        )
53981    THEN
53982          xla_ae_lines_pkg.BflowUpgEntry
53983            (p_business_method_code    => l_bflow_method_code
53984            ,p_business_class_code     => l_bflow_class_code
53985            ,p_balance_type            => l_balance_type_code);
53986    ELSE
53987       NULL;
53988 -- No business flow processing for business flow method of NONE.
53989    END IF;
53990 
53991    --
53992    -- call analytical criteria
53993    --
53994    
53995    --
53996    -- call description
53997    --
53998    
53999 xla_ae_lines_pkg.SetLineDescription(
54000    p_ae_header_id => l_ae_header_id
54001   ,p_description  => Description_3 (
54005 , p_source_3 => p_source_3
54002      p_application_id         => p_application_id
54003    , p_ae_header_id           => l_ae_header_id 
54004 , p_source_2 => p_source_2
54006 , p_source_4 => p_source_4
54007 , p_source_5 => p_source_5
54008    )
54009 );
54010 
54011 
54012    --
54013    -- call ADRs
54014    -- Bug 4922099
54015    --
54016    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54017         (NVL(l_actual_upg_option, 'N') = 'O') OR
54018         (NVL(l_enc_upg_option, 'N') = 'O')
54019       )
54020    THEN
54021    NULL;
54022    --
54023    --
54024    
54025   l_ccid := AcctDerRule_9(
54026            p_application_id           => p_application_id
54027          , p_ae_header_id             => l_ae_header_id 
54028 , p_source_14 => p_source_14
54029          , x_transaction_coa_id       => l_adr_transaction_coa_id
54030          , x_accounting_coa_id        => l_adr_accounting_coa_id
54031          , x_value_type_code          => l_adr_value_type_code
54032          , p_side                     => 'NA'
54033    );
54034 
54035    xla_ae_lines_pkg.set_ccid(
54036     p_code_combination_id          => l_ccid
54037   , p_value_type_code              => l_adr_value_type_code
54038   , p_transaction_coa_id           => l_adr_transaction_coa_id
54039   , p_accounting_coa_id            => l_adr_accounting_coa_id
54040   , p_adr_code                     => 'PROJ_BURDENED_ENC_ACCT_RULE'
54041   , p_adr_type_code                => 'S'
54042   , p_component_type               => l_component_type
54043   , p_component_code               => l_component_code
54044   , p_component_type_code          => l_component_type_code
54045   , p_component_appl_id            => l_component_appl_id
54046   , p_amb_context_code             => l_amb_context_code
54047   , p_side                         => 'NA'
54048   );
54049 
54050 
54051    --
54052    --
54053    END IF;
54054    --
54055    -- Bug 4922099
54056    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54057           (NVL(l_enc_upg_option, 'N') = 'O')
54058         ) AND
54059         (l_bflow_method_code = 'PRIOR_ENTRY')
54060       )
54061    THEN
54062       IF
54063       --
54064       1 = 2
54065       --
54066       THEN
54067       xla_accounting_err_pkg.build_message
54068                                     (p_appli_s_name            => 'XLA'
54069                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54070                                     ,p_token_1                 => 'LINE_NUMBER'
54071                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54072                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54073                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54074                                                                              l_component_type
54075                                                                             ,l_component_code
54076                                                                             ,l_component_type_code
54077                                                                             ,l_component_appl_id
54078                                                                             ,l_amb_context_code
54079                                                                             ,l_entity_code
54080                                                                             ,l_event_class_code
54081                                                                            )
54082                                     ,p_token_3                 => 'OWNER'
54083                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54084                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54085                                                                           ,p_lookup_code    => l_component_type_code
54086                                                                          )
54087                                     ,p_token_4                 => 'PRODUCT_NAME'
54088                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54089                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54090                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54091                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54092                                     ,p_ae_header_id            =>  NULL
54093                                        );
54094 
54095         IF (C_LEVEL_ERROR>= g_log_level) THEN
54096                  trace
54097                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54098                       ,p_level    => C_LEVEL_ERROR
54099                       ,p_module   => l_log_module);
54100         END IF;
54101       END IF;
54102    END IF;
54103    --
54104    --
54105    ------------------------------------------------------------------------------------------------
54106    -- 4219869 Business Flow
54107    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54108    -- Prior Entry.  Currently, the following code is always generated.
54109    ------------------------------------------------------------------------------------------------
54110    XLA_AE_LINES_PKG.ValidateCurrentLine;
54111 
54112    ------------------------------------------------------------------------------------
54116    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54113    -- 4219869 Business Flow
54114    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54115    ------------------------------------------------------------------------------------
54117 
54118    ----------------------------------------------------------------------------------
54119    -- 4219869 Business Flow
54120    -- Update journal entry status -- Need to generate this within IF <condition>
54121    ----------------------------------------------------------------------------------
54122    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54123          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54124          ,p_balance_type_code => l_balance_type_code
54125          );
54126 
54127    -------------------------------------------------------------------------------------------
54128    -- 4262811 - Generate the Accrual Reversal lines
54129    -------------------------------------------------------------------------------------------
54130    BEGIN
54131       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54132                               (g_array_event(p_event_id).array_value_num('header_index'));
54133       IF l_acc_rev_flag IS NULL THEN
54134          l_acc_rev_flag := 'N';
54135       END IF;
54136    EXCEPTION
54137       WHEN OTHERS THEN
54138          l_acc_rev_flag := 'N';
54139    END;
54140    --
54141    IF (l_acc_rev_flag = 'Y') THEN
54142 
54143        -- 4645092  ------------------------------------------------------------------------------
54144        -- To allow MPA report to determine if it should generate report process
54145        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54146        ------------------------------------------------------------------------------------------
54147 
54148        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54149        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54150    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54151    -- call ADRs
54152    -- Bug 4922099
54153    --
54154    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54155         (NVL(l_actual_upg_option, 'N') = 'O') OR
54156         (NVL(l_enc_upg_option, 'N') = 'O')
54157       )
54158    THEN
54159    NULL;
54160    --
54161    --
54162    
54163   l_ccid := AcctDerRule_9(
54164            p_application_id           => p_application_id
54165          , p_ae_header_id             => l_ae_header_id 
54166 , p_source_14 => p_source_14
54167          , x_transaction_coa_id       => l_adr_transaction_coa_id
54168          , x_accounting_coa_id        => l_adr_accounting_coa_id
54169          , x_value_type_code          => l_adr_value_type_code
54170          , p_side                     => 'NA'
54171    );
54172 
54173    xla_ae_lines_pkg.set_ccid(
54174     p_code_combination_id          => l_ccid
54175   , p_value_type_code              => l_adr_value_type_code
54176   , p_transaction_coa_id           => l_adr_transaction_coa_id
54177   , p_accounting_coa_id            => l_adr_accounting_coa_id
54178   , p_adr_code                     => 'PROJ_BURDENED_ENC_ACCT_RULE'
54179   , p_adr_type_code                => 'S'
54180   , p_component_type               => l_component_type
54181   , p_component_code               => l_component_code
54182   , p_component_type_code          => l_component_type_code
54183   , p_component_appl_id            => l_component_appl_id
54184   , p_amb_context_code             => l_amb_context_code
54185   , p_side                         => 'NA'
54186   );
54187 
54188 
54189    --
54190    --
54191    END IF;
54192 
54193        --
54194        -- Update the line information that should be overwritten
54195        --
54196        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54197                                          p_header_num   => 1);
54198        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54199 
54200        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54201 
54202        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54203           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54204        END IF;
54205 
54206       --
54207       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54208       --
54209       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54210           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54211       ELSE
54212           ---------------------------------------------------------------------------------------------------
54213           -- 4262811a Switch Sign
54214           ---------------------------------------------------------------------------------------------------
54215           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54216           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54217                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54218           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54222                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54219                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54220           -- 5132302
54221           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54223 
54224       END IF;
54225 
54226       -- 4955764
54227       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54228       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54229 
54230 
54231       XLA_AE_LINES_PKG.ValidateCurrentLine;
54232       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54233 
54234       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54235                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54236                ,p_balance_type_code => l_balance_type_code);
54237 
54238    END IF;
54239 
54240    -----------------------------------------------------------------------------------------
54241    -- 4262811 Multiperiod Accounting
54242    -----------------------------------------------------------------------------------------
54243      -- No MPA option is assigned.
54244 
54245 
54246 END IF;
54247 END IF;
54248 --
54249 
54250 --
54251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54252    trace
54253       (p_msg      => 'END of AcctLineType_85'
54254       ,p_level    => C_LEVEL_PROCEDURE
54255       ,p_module   => l_log_module);
54256 END IF;
54257 --
54258 EXCEPTION
54259   WHEN xla_exceptions_pkg.application_exception THEN
54260       RAISE;
54261   WHEN OTHERS THEN
54262        xla_exceptions_pkg.raise_message
54263            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_85');
54264 END AcctLineType_85;
54265 --
54266 
54267 ---------------------------------------
54268 --
54269 -- PRIVATE FUNCTION
54270 --         AcctLineType_86
54271 --
54272 ---------------------------------------
54273 PROCEDURE AcctLineType_86 (
54274   p_application_id        IN NUMBER
54275  ,p_event_id              IN NUMBER
54276  ,p_calculate_acctd_flag  IN VARCHAR2
54277  ,p_calculate_g_l_flag    IN VARCHAR2
54278  ,p_actual_flag           IN OUT VARCHAR2
54279  ,p_balance_type_code     OUT VARCHAR2
54280  ,p_gain_or_loss_ref      OUT VARCHAR2
54281  
54282 --Document Distribution Type
54283  , p_source_2            IN VARCHAR2
54284 --Project Name
54285  , p_source_3            IN VARCHAR2
54286 --Task Number
54287  , p_source_4            IN VARCHAR2
54288 --Expenditure Organization
54289  , p_source_5            IN NUMBER
54290 --Budget Account
54291  , p_source_14            IN NUMBER
54292 --Distribution Link Type
54293  , p_source_21            IN VARCHAR2
54294 --Invoice Distribution Identifier
54295  , p_source_30            IN NUMBER
54296 --Invoice Currency Code
54297  , p_source_33            IN VARCHAR2
54298 --Invoice Exchange Date
54299  , p_source_39            IN DATE
54300 --Invoice Exchange Rate
54301  , p_source_40            IN NUMBER
54302 --Invoice Exchange Rate Type
54303  , p_source_41            IN VARCHAR2
54304 --Invoice Distribution Amount
54305  , p_source_57            IN NUMBER
54306 --Document Type
54307  , p_source_83            IN VARCHAR2
54308 --Burden Amount Display Method
54309  , p_source_84            IN VARCHAR2
54310 --Accounting reversal indicator for project invoice burden
54311  , p_source_85            IN VARCHAR2
54312 --Allocated to Application Identifier
54313  , p_source_86            IN NUMBER
54314 --Allocated to Distribution Type
54315  , p_source_87            IN VARCHAR2
54316 --Allocated to Entity Code
54317  , p_source_88            IN VARCHAR2
54318 --Allocated to First Distribution Identifier
54319  , p_source_89            IN NUMBER
54320 --Allocated to First System Transaction Identifier
54321  , p_source_90            IN NUMBER
54322 --Invoice Burden Applied to Application Identifier
54323  , p_source_91            IN NUMBER
54324 --Invoice Burden Applied to Distribution Type
54325  , p_source_92            IN VARCHAR2
54326 --Invoice Burden Applied to Entity Code
54327  , p_source_93            IN VARCHAR2
54328 --Invoice Burden Applied to First Distribution Identifier
54329  , p_source_94            IN NUMBER
54330 --Invoice Burden Applied to System Transaction Identifier
54331  , p_source_95            IN NUMBER
54332 --Invoice Distribution Expenditure Type
54333  , p_source_96            IN VARCHAR2
54334 --Encumbrance Upgrade Credit Accounting Class
54335  , p_source_97            IN VARCHAR2
54336 --Encumbrance Upgrade Credit Account
54337  , p_source_98            IN NUMBER
54338 --Invoice Distribution Ledger Amount Before Rounding
54339  , p_source_99            IN NUMBER
54340 --Encumbrance Upgrade Debit Accounting Class
54341  , p_source_100            IN VARCHAR2
54342 --Encumbrance Upgrade Debit Account
54343  , p_source_101            IN NUMBER
54344 --Use Encumbrances Upgrade Attributes Flag
54345  , p_source_102            IN VARCHAR2
54346 --Accounting reversal first distribution identifier for project invoice burden
54347  , p_source_103            IN NUMBER
54348 --Invoice Burden Applied to Second Distribution Identifier
54349  , p_source_104            IN VARCHAR2
54350 --Accounting reversal distribution type for project invoice burden
54354 --Encumbrance Upgrade Debit Encumbrance Type
54351  , p_source_105            IN VARCHAR2
54352 --Encumbrance Upgrade Credit Encumbrance Type
54353  , p_source_106            IN NUMBER
54355  , p_source_107            IN NUMBER
54356 --Burden Record Identifier
54357  , p_source_108            IN VARCHAR2
54358  , p_source_108_meaning    IN VARCHAR2
54359 )
54360 IS
54361 
54362 l_component_type              VARCHAR2(80);
54363 l_component_code              VARCHAR2(30);
54364 l_component_type_code         VARCHAR2(1);
54365 l_component_appl_id           INTEGER;
54366 l_amb_context_code            VARCHAR2(30);
54367 l_entity_code                 VARCHAR2(30);
54368 l_event_class_code            VARCHAR2(30);
54369 l_ae_header_id                NUMBER;
54370 l_event_type_code             VARCHAR2(30);
54371 l_line_definition_code        VARCHAR2(30);
54372 l_line_definition_owner_code  VARCHAR2(1);
54373 --
54374 -- adr variables
54375 l_segment                     VARCHAR2(30);
54376 l_ccid                        NUMBER;
54377 l_adr_transaction_coa_id      NUMBER;
54378 l_adr_accounting_coa_id       NUMBER;
54379 l_adr_flexfield_segment_code  VARCHAR2(30);
54380 l_adr_flex_value_set_id       NUMBER;
54381 l_adr_value_type_code         VARCHAR2(30);
54382 l_adr_value_combination_id    NUMBER;
54383 l_adr_value_segment_code      VARCHAR2(30);
54384 
54385 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54386 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54387 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54388 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54389 
54390 -- 4262811 Variables ------------------------------------------------------------------------------------------
54391 l_entered_amt_idx             NUMBER;
54392 l_accted_amt_idx              NUMBER;
54393 l_acc_rev_flag                VARCHAR2(1);
54394 l_accrual_line_num            NUMBER;
54395 l_tmp_amt                     NUMBER;
54396 l_acc_rev_natural_side_code   VARCHAR2(1);
54397 
54398 l_num_entries                 NUMBER;
54399 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54400 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54401 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54402 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54403 l_recog_line_1                NUMBER;
54404 l_recog_line_2                NUMBER;
54405 
54406 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54407 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54408 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54409 
54410 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54411 
54412 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54413 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54414 
54415 ---------------------------------------------------------------------------------------------------------------
54416 
54417 
54418 --
54419 -- bulk performance
54420 --
54421 l_balance_type_code           VARCHAR2(1);
54422 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54423 l_log_module                  VARCHAR2(240);
54424 
54425 --
54426 -- Upgrade strategy
54427 --
54428 l_actual_upg_option           VARCHAR2(1);
54429 l_enc_upg_option           VARCHAR2(1);
54430 
54431 --
54432 BEGIN
54433 --
54434 IF g_log_enabled THEN
54435       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
54436 END IF;
54437 --
54438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54439 
54440       trace
54441          (p_msg      => 'BEGIN of AcctLineType_86'
54442          ,p_level    => C_LEVEL_PROCEDURE
54443          ,p_module   => l_log_module);
54444 
54445 END IF;
54446 --
54447 l_component_type             := 'AMB_JLT';
54448 l_component_code             := 'BURDEN_INV_ENC';
54449 l_component_type_code        := 'S';
54450 l_component_appl_id          :=  200;
54451 l_amb_context_code           := 'DEFAULT';
54452 l_entity_code                := 'AP_INVOICES';
54453 l_event_class_code           := 'INVOICE_BURDEN';
54454 l_event_type_code            := 'INVOICE_BURDEN_ALL';
54455 l_line_definition_owner_code := 'S';
54456 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
54457 --
54458 l_balance_type_code          := 'E';
54459 l_segment                     := NULL;
54460 l_ccid                        := NULL;
54461 l_adr_transaction_coa_id      := NULL;
54462 l_adr_accounting_coa_id       := NULL;
54463 l_adr_flexfield_segment_code  := NULL;
54464 l_adr_flex_value_set_id       := NULL;
54465 l_adr_value_type_code         := NULL;
54466 l_adr_value_combination_id    := NULL;
54467 l_adr_value_segment_code      := NULL;
54468 
54469 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54470 l_bflow_class_code           := 'AP_INV_PA_BURDEN_ENC';    -- 4219869 Business Flow
54471 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54472 l_budgetary_control_flag     := 'Y';
54473 
54474 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54475 l_bflow_applied_to_amt       := NULL; -- 5132302
54476 l_entered_amt_idx            := NULL;          -- 4262811
54480 l_tmp_amt                    := NULL;          -- 4262811
54477 l_accted_amt_idx             := NULL;          -- 4262811
54478 l_acc_rev_flag               := NULL;          -- 4262811
54479 l_accrual_line_num           := NULL;          -- 4262811
54481 --
54482  
54483 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54484     l_balance_type_code <> 'B' THEN
54485 IF NVL(p_source_83,'
54486 ') =  'AP' AND 
54487 (NVL(p_source_2,'
54488 ') <>  'PREPAY APPL' OR 
54489 NVL(p_source_2,'
54490 ') <>  'TAX DIFF' OR 
54491 NVL(p_source_2,'
54492 ') <>  'FINAL APPLICATION ROUNDING') AND 
54493 NVL(p_source_84,'
54494 ') =  'D' AND 
54495 NVL(p_source_108,'
54496 ') =  'O'
54497  THEN 
54498 
54499    --
54500    XLA_AE_LINES_PKG.SetNewLine;
54501 
54502    p_balance_type_code          := l_balance_type_code;
54503    -- set the flag so later we will know whether the gain loss line needs to be created
54504    
54505    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54506      p_actual_flag :='A';
54507    END IF;
54508 
54509    --
54510    -- bulk performance
54511    --
54512    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54513                                       p_header_num   => 0); -- 4262811
54514    --
54515    -- set accounting line options
54516    --
54517    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54518            p_natural_side_code          => 'D'
54519          , p_gain_or_loss_flag          => 'N'
54520          , p_gl_transfer_mode_code      => 'S'
54521          , p_acct_entry_type_code       => 'E'
54522          , p_switch_side_flag           => 'Y'
54523          , p_merge_duplicate_code       => 'N'
54524          );
54525    --
54526    l_acc_rev_natural_side_code := 'C';  -- 4262811
54527    -- 
54528    --
54529    -- set accounting line type info
54530    --
54531    xla_ae_lines_pkg.SetAcctLineType
54532       (p_component_type             => l_component_type
54533       ,p_event_type_code            => l_event_type_code
54534       ,p_line_definition_owner_code => l_line_definition_owner_code
54535       ,p_line_definition_code       => l_line_definition_code
54536       ,p_accounting_line_code       => l_component_code
54537       ,p_accounting_line_type_code  => l_component_type_code
54538       ,p_accounting_line_appl_id    => l_component_appl_id
54539       ,p_amb_context_code           => l_amb_context_code
54540       ,p_entity_code                => l_entity_code
54541       ,p_event_class_code           => l_event_class_code);
54542    --
54543    -- set accounting class
54544    --
54545    xla_ae_lines_pkg.SetAcctClass(
54546            p_accounting_class_code  => 'AP_INV_PA_BURDEN'
54547          , p_ae_header_id           => l_ae_header_id
54548          );
54549 
54550    --
54551    -- set rounding class
54552    --
54553    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54554                       'AP_INV_PA_BURDEN';
54555 
54556    --
54557    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54558    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54559    --
54560    -- bulk performance
54561    --
54562    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54563 
54564    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54565       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54566 
54567    -- 4955764
54568    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54569       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54570 
54571    -- 4458381 Public Sector Enh
54572       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
54573    --
54574    -- set accounting attributes for the line type
54575    --
54576    l_entered_amt_idx := 27;
54577    l_accted_amt_idx  := 32;
54578    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54579    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54580    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
54581    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54582    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
54583    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54584    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
54585    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54586    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
54587    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54588    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
54589    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54590    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
54591    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54592    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
54593    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54594    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
54595    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54596    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
54597    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54601    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
54598    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
54599    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54600    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
54602    l_rec_acct_attrs.array_char_value(12)  := p_source_96;
54603    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
54604    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
54605    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
54606    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
54607    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
54608    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
54609    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
54610    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
54611    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
54612    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
54613    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
54614    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
54615    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
54616    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
54617    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
54618    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
54619    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
54620    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
54621    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
54622    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
54623    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
54624    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
54625    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
54626    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
54627    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
54628    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
54629    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
54630    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
54631    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
54632    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
54633    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
54634    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
54635    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_DATE';
54636    l_rec_acct_attrs.array_date_value(29)  := p_source_39;
54637    l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_RATE';
54638    l_rec_acct_attrs.array_num_value(30)  := p_source_40;
54639    l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE_TYPE';
54640    l_rec_acct_attrs.array_char_value(31)  := p_source_41;
54641    l_rec_acct_attrs.array_acct_attr_code(32) := 'LEDGER_AMOUNT';
54642    l_rec_acct_attrs.array_num_value(32)  := p_source_99;
54643    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
54644    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_103);
54645    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID2';
54646    l_rec_acct_attrs.array_char_value(34)  := p_source_104;
54647    l_rec_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_TYPE';
54648    l_rec_acct_attrs.array_char_value(35)  := p_source_105;
54649    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
54650    l_rec_acct_attrs.array_num_value(36)  := p_source_106;
54651    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
54652    l_rec_acct_attrs.array_num_value(37)  := p_source_107;
54653 
54654    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54655    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54656 
54657    ---------------------------------------------------------------------------------------------------------------
54658    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54659    ---------------------------------------------------------------------------------------------------------------
54660    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54661 
54662    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54663    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54664 
54665    IF xla_accounting_cache_pkg.GetValueChar
54666          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54667          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54668    AND l_bflow_method_code = 'PRIOR_ENTRY'
54669 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54670    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54671          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54672        )
54673    THEN
54674          xla_ae_lines_pkg.BflowUpgEntry
54675            (p_business_method_code    => l_bflow_method_code
54676            ,p_business_class_code     => l_bflow_class_code
54677            ,p_balance_type            => l_balance_type_code);
54678    ELSE
54679       NULL;
54680 -- No business flow processing for business flow method of NONE.
54681    END IF;
54682 
54683    --
54684    -- call analytical criteria
54685    --
54686    
54687    --
54691 xla_ae_lines_pkg.SetLineDescription(
54688    -- call description
54689    --
54690    
54692    p_ae_header_id => l_ae_header_id
54693   ,p_description  => Description_3 (
54694      p_application_id         => p_application_id
54695    , p_ae_header_id           => l_ae_header_id 
54696 , p_source_2 => p_source_2
54697 , p_source_3 => p_source_3
54698 , p_source_4 => p_source_4
54699 , p_source_5 => p_source_5
54700    )
54701 );
54702 
54703 
54704    --
54705    -- call ADRs
54706    -- Bug 4922099
54707    --
54708    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54709         (NVL(l_actual_upg_option, 'N') = 'O') OR
54710         (NVL(l_enc_upg_option, 'N') = 'O')
54711       )
54712    THEN
54713    NULL;
54714    --
54715    --
54716    
54717   l_ccid := AcctDerRule_10(
54718            p_application_id           => p_application_id
54719          , p_ae_header_id             => l_ae_header_id 
54720 , p_source_14 => p_source_14
54721          , x_transaction_coa_id       => l_adr_transaction_coa_id
54722          , x_accounting_coa_id        => l_adr_accounting_coa_id
54723          , x_value_type_code          => l_adr_value_type_code
54724          , p_side                     => 'NA'
54725    );
54726 
54727    xla_ae_lines_pkg.set_ccid(
54728     p_code_combination_id          => l_ccid
54729   , p_value_type_code              => l_adr_value_type_code
54730   , p_transaction_coa_id           => l_adr_transaction_coa_id
54731   , p_accounting_coa_id            => l_adr_accounting_coa_id
54732   , p_adr_code                     => 'PROJ_BURDEN_ENC_ACCT_RULE'
54733   , p_adr_type_code                => 'S'
54734   , p_component_type               => l_component_type
54735   , p_component_code               => l_component_code
54736   , p_component_type_code          => l_component_type_code
54737   , p_component_appl_id            => l_component_appl_id
54738   , p_amb_context_code             => l_amb_context_code
54739   , p_side                         => 'NA'
54740   );
54741 
54742 
54743    --
54744    --
54745    END IF;
54746    --
54747    -- Bug 4922099
54748    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54749           (NVL(l_enc_upg_option, 'N') = 'O')
54750         ) AND
54751         (l_bflow_method_code = 'PRIOR_ENTRY')
54752       )
54753    THEN
54754       IF
54755       --
54756       1 = 2
54757       --
54758       THEN
54759       xla_accounting_err_pkg.build_message
54760                                     (p_appli_s_name            => 'XLA'
54761                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54762                                     ,p_token_1                 => 'LINE_NUMBER'
54763                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54764                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54765                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54766                                                                              l_component_type
54767                                                                             ,l_component_code
54768                                                                             ,l_component_type_code
54769                                                                             ,l_component_appl_id
54770                                                                             ,l_amb_context_code
54771                                                                             ,l_entity_code
54772                                                                             ,l_event_class_code
54773                                                                            )
54774                                     ,p_token_3                 => 'OWNER'
54775                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54776                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54777                                                                           ,p_lookup_code    => l_component_type_code
54778                                                                          )
54779                                     ,p_token_4                 => 'PRODUCT_NAME'
54780                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54781                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54782                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54783                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54784                                     ,p_ae_header_id            =>  NULL
54785                                        );
54786 
54787         IF (C_LEVEL_ERROR>= g_log_level) THEN
54788                  trace
54789                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54790                       ,p_level    => C_LEVEL_ERROR
54791                       ,p_module   => l_log_module);
54792         END IF;
54793       END IF;
54794    END IF;
54795    --
54796    --
54797    ------------------------------------------------------------------------------------------------
54798    -- 4219869 Business Flow
54799    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54800    -- Prior Entry.  Currently, the following code is always generated.
54804    ------------------------------------------------------------------------------------
54801    ------------------------------------------------------------------------------------------------
54802    XLA_AE_LINES_PKG.ValidateCurrentLine;
54803 
54805    -- 4219869 Business Flow
54806    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54807    ------------------------------------------------------------------------------------
54808    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54809 
54810    ----------------------------------------------------------------------------------
54811    -- 4219869 Business Flow
54812    -- Update journal entry status -- Need to generate this within IF <condition>
54813    ----------------------------------------------------------------------------------
54814    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54815          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54816          ,p_balance_type_code => l_balance_type_code
54817          );
54818 
54819    -------------------------------------------------------------------------------------------
54820    -- 4262811 - Generate the Accrual Reversal lines
54821    -------------------------------------------------------------------------------------------
54822    BEGIN
54823       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54824                               (g_array_event(p_event_id).array_value_num('header_index'));
54825       IF l_acc_rev_flag IS NULL THEN
54826          l_acc_rev_flag := 'N';
54827       END IF;
54828    EXCEPTION
54829       WHEN OTHERS THEN
54830          l_acc_rev_flag := 'N';
54831    END;
54832    --
54833    IF (l_acc_rev_flag = 'Y') THEN
54834 
54835        -- 4645092  ------------------------------------------------------------------------------
54836        -- To allow MPA report to determine if it should generate report process
54837        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54838        ------------------------------------------------------------------------------------------
54839 
54840        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54841        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54842    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54843    -- call ADRs
54844    -- Bug 4922099
54845    --
54846    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54847         (NVL(l_actual_upg_option, 'N') = 'O') OR
54848         (NVL(l_enc_upg_option, 'N') = 'O')
54849       )
54850    THEN
54851    NULL;
54852    --
54853    --
54854    
54855   l_ccid := AcctDerRule_10(
54856            p_application_id           => p_application_id
54857          , p_ae_header_id             => l_ae_header_id 
54858 , p_source_14 => p_source_14
54859          , x_transaction_coa_id       => l_adr_transaction_coa_id
54860          , x_accounting_coa_id        => l_adr_accounting_coa_id
54861          , x_value_type_code          => l_adr_value_type_code
54862          , p_side                     => 'NA'
54863    );
54864 
54865    xla_ae_lines_pkg.set_ccid(
54866     p_code_combination_id          => l_ccid
54867   , p_value_type_code              => l_adr_value_type_code
54868   , p_transaction_coa_id           => l_adr_transaction_coa_id
54869   , p_accounting_coa_id            => l_adr_accounting_coa_id
54870   , p_adr_code                     => 'PROJ_BURDEN_ENC_ACCT_RULE'
54871   , p_adr_type_code                => 'S'
54872   , p_component_type               => l_component_type
54873   , p_component_code               => l_component_code
54874   , p_component_type_code          => l_component_type_code
54875   , p_component_appl_id            => l_component_appl_id
54876   , p_amb_context_code             => l_amb_context_code
54877   , p_side                         => 'NA'
54878   );
54879 
54880 
54881    --
54882    --
54883    END IF;
54884 
54885        --
54886        -- Update the line information that should be overwritten
54887        --
54888        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54889                                          p_header_num   => 1);
54890        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54891 
54892        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54893 
54894        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54895           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54896        END IF;
54897 
54898       --
54899       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54900       --
54901       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54902           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54903       ELSE
54904           ---------------------------------------------------------------------------------------------------
54905           -- 4262811a Switch Sign
54906           ---------------------------------------------------------------------------------------------------
54907           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54908           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54912           -- 5132302
54909                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54910           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54911                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54913           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54914                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54915 
54916       END IF;
54917 
54918       -- 4955764
54919       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54920       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54921 
54922 
54923       XLA_AE_LINES_PKG.ValidateCurrentLine;
54924       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54925 
54926       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54927                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54928                ,p_balance_type_code => l_balance_type_code);
54929 
54930    END IF;
54931 
54932    -----------------------------------------------------------------------------------------
54933    -- 4262811 Multiperiod Accounting
54934    -----------------------------------------------------------------------------------------
54935      -- No MPA option is assigned.
54936 
54937 
54938 END IF;
54939 END IF;
54940 --
54941 
54942 --
54943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54944    trace
54945       (p_msg      => 'END of AcctLineType_86'
54946       ,p_level    => C_LEVEL_PROCEDURE
54947       ,p_module   => l_log_module);
54948 END IF;
54949 --
54950 EXCEPTION
54951   WHEN xla_exceptions_pkg.application_exception THEN
54952       RAISE;
54953   WHEN OTHERS THEN
54954        xla_exceptions_pkg.raise_message
54955            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_86');
54956 END AcctLineType_86;
54957 --
54958 
54959 ---------------------------------------
54960 --
54961 -- PRIVATE FUNCTION
54962 --         AcctLineType_87
54963 --
54964 ---------------------------------------
54965 PROCEDURE AcctLineType_87 (
54966   p_application_id        IN NUMBER
54967  ,p_event_id              IN NUMBER
54968  ,p_calculate_acctd_flag  IN VARCHAR2
54969  ,p_calculate_g_l_flag    IN VARCHAR2
54970  ,p_actual_flag           IN OUT VARCHAR2
54971  ,p_balance_type_code     OUT VARCHAR2
54972  ,p_gain_or_loss_ref      OUT VARCHAR2
54973  
54974 --Document Distribution Type
54975  , p_source_2            IN VARCHAR2
54976 --Project Name
54977  , p_source_3            IN VARCHAR2
54978 --Task Number
54979  , p_source_4            IN VARCHAR2
54980 --Expenditure Organization
54981  , p_source_5            IN NUMBER
54982 --Distribution Link Type
54983  , p_source_21            IN VARCHAR2
54984 --Invoice Distribution Identifier
54985  , p_source_30            IN NUMBER
54986 --Invoice Currency Code
54987  , p_source_33            IN VARCHAR2
54988 --Invoice Distribution Amount
54989  , p_source_57            IN NUMBER
54990 --Document Type
54991  , p_source_83            IN VARCHAR2
54992 --Burden Amount Display Method
54993  , p_source_84            IN VARCHAR2
54994 --Accounting reversal indicator for project invoice burden
54995  , p_source_85            IN VARCHAR2
54996 --Allocated to Application Identifier
54997  , p_source_86            IN NUMBER
54998 --Allocated to Distribution Type
54999  , p_source_87            IN VARCHAR2
55000 --Allocated to Entity Code
55001  , p_source_88            IN VARCHAR2
55002 --Allocated to First Distribution Identifier
55003  , p_source_89            IN NUMBER
55004 --Allocated to First System Transaction Identifier
55005  , p_source_90            IN NUMBER
55006 --Invoice Burden Applied to Application Identifier
55007  , p_source_91            IN NUMBER
55008 --Invoice Burden Applied to Distribution Type
55009  , p_source_92            IN VARCHAR2
55010 --Invoice Burden Applied to Entity Code
55011  , p_source_93            IN VARCHAR2
55012 --Invoice Burden Applied to First Distribution Identifier
55013  , p_source_94            IN NUMBER
55014 --Invoice Burden Applied to System Transaction Identifier
55015  , p_source_95            IN NUMBER
55016 --Invoice Distribution Expenditure Type
55017  , p_source_96            IN VARCHAR2
55018 --Encumbrance Upgrade Credit Accounting Class
55019  , p_source_97            IN VARCHAR2
55020 --Encumbrance Upgrade Credit Account
55021  , p_source_98            IN NUMBER
55022 --Invoice Distribution Ledger Amount Before Rounding
55023  , p_source_99            IN NUMBER
55024 --Encumbrance Upgrade Debit Accounting Class
55025  , p_source_100            IN VARCHAR2
55026 --Encumbrance Upgrade Debit Account
55027  , p_source_101            IN NUMBER
55028 --Use Encumbrances Upgrade Attributes Flag
55029  , p_source_102            IN VARCHAR2
55030 --Accounting reversal first distribution identifier for project invoice burden
55031  , p_source_103            IN NUMBER
55032 --Invoice Burden Applied to Second Distribution Identifier
55033  , p_source_104            IN VARCHAR2
55034 --Accounting reversal distribution type for project invoice burden
55035  , p_source_105            IN VARCHAR2
55036 --Encumbrance Upgrade Credit Encumbrance Type
55040 )
55037  , p_source_106            IN NUMBER
55038 --Encumbrance Upgrade Debit Encumbrance Type
55039  , p_source_107            IN NUMBER
55041 IS
55042 
55043 l_component_type              VARCHAR2(80);
55044 l_component_code              VARCHAR2(30);
55045 l_component_type_code         VARCHAR2(1);
55046 l_component_appl_id           INTEGER;
55047 l_amb_context_code            VARCHAR2(30);
55048 l_entity_code                 VARCHAR2(30);
55049 l_event_class_code            VARCHAR2(30);
55050 l_ae_header_id                NUMBER;
55051 l_event_type_code             VARCHAR2(30);
55052 l_line_definition_code        VARCHAR2(30);
55053 l_line_definition_owner_code  VARCHAR2(1);
55054 --
55055 -- adr variables
55056 l_segment                     VARCHAR2(30);
55057 l_ccid                        NUMBER;
55058 l_adr_transaction_coa_id      NUMBER;
55059 l_adr_accounting_coa_id       NUMBER;
55060 l_adr_flexfield_segment_code  VARCHAR2(30);
55061 l_adr_flex_value_set_id       NUMBER;
55062 l_adr_value_type_code         VARCHAR2(30);
55063 l_adr_value_combination_id    NUMBER;
55064 l_adr_value_segment_code      VARCHAR2(30);
55065 
55066 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55067 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55068 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55069 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55070 
55071 -- 4262811 Variables ------------------------------------------------------------------------------------------
55072 l_entered_amt_idx             NUMBER;
55073 l_accted_amt_idx              NUMBER;
55074 l_acc_rev_flag                VARCHAR2(1);
55075 l_accrual_line_num            NUMBER;
55076 l_tmp_amt                     NUMBER;
55077 l_acc_rev_natural_side_code   VARCHAR2(1);
55078 
55079 l_num_entries                 NUMBER;
55080 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55081 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55082 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55083 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55084 l_recog_line_1                NUMBER;
55085 l_recog_line_2                NUMBER;
55086 
55087 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55088 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55089 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55090 
55091 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55092 
55093 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55094 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55095 
55096 ---------------------------------------------------------------------------------------------------------------
55097 
55098 
55099 --
55100 -- bulk performance
55101 --
55102 l_balance_type_code           VARCHAR2(1);
55103 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55104 l_log_module                  VARCHAR2(240);
55105 
55106 --
55107 -- Upgrade strategy
55108 --
55109 l_actual_upg_option           VARCHAR2(1);
55110 l_enc_upg_option           VARCHAR2(1);
55111 
55112 --
55113 BEGIN
55114 --
55115 IF g_log_enabled THEN
55116       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
55117 END IF;
55118 --
55119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55120 
55121       trace
55122          (p_msg      => 'BEGIN of AcctLineType_87'
55123          ,p_level    => C_LEVEL_PROCEDURE
55124          ,p_module   => l_log_module);
55125 
55126 END IF;
55127 --
55128 l_component_type             := 'AMB_JLT';
55129 l_component_code             := 'PREPAY_APPL_BURDENED_ENC';
55130 l_component_type_code        := 'S';
55131 l_component_appl_id          :=  200;
55132 l_amb_context_code           := 'DEFAULT';
55133 l_entity_code                := 'AP_INVOICES';
55134 l_event_class_code           := 'PREPAY_APPLICATION_BURDEN';
55135 l_event_type_code            := 'PREPAY_APPLICATION_BURDEN_ALL';
55136 l_line_definition_owner_code := 'S';
55137 l_line_definition_code       := 'AP_PREPAY_APPLY_BURDEN_ENC_ALL';
55138 --
55139 l_balance_type_code          := 'E';
55140 l_segment                     := NULL;
55141 l_ccid                        := NULL;
55142 l_adr_transaction_coa_id      := NULL;
55143 l_adr_accounting_coa_id       := NULL;
55144 l_adr_flexfield_segment_code  := NULL;
55145 l_adr_flex_value_set_id       := NULL;
55146 l_adr_value_type_code         := NULL;
55147 l_adr_value_combination_id    := NULL;
55148 l_adr_value_segment_code      := NULL;
55149 
55150 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
55151 l_bflow_class_code           := 'AP_PREPAY_BURDENED_ENC';    -- 4219869 Business Flow
55152 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55153 l_budgetary_control_flag     := 'Y';
55154 
55155 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55156 l_bflow_applied_to_amt       := NULL; -- 5132302
55157 l_entered_amt_idx            := NULL;          -- 4262811
55158 l_accted_amt_idx             := NULL;          -- 4262811
55159 l_acc_rev_flag               := NULL;          -- 4262811
55160 l_accrual_line_num           := NULL;          -- 4262811
55161 l_tmp_amt                    := NULL;          -- 4262811
55162 --
55166 IF NVL(p_source_83,'
55163  
55164 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55165     l_balance_type_code <> 'B' THEN
55167 ') =  'AP' AND 
55168 (NVL(p_source_2,'
55169 ') =  'PREPAY APPL' OR 
55170 NVL(p_source_2,'
55171 ') =  'TAX DIFF' OR 
55172 NVL(p_source_2,'
55173 ') =  'FINAL APPLICATION ROUNDING' OR 
55174 NVL(p_source_2,'
55175 ') =  'PREPAY APPL NONREC TAX') AND 
55176 NVL(p_source_84,'
55177 ') =  'S'
55178  THEN 
55179 
55180    --
55181    XLA_AE_LINES_PKG.SetNewLine;
55182 
55183    p_balance_type_code          := l_balance_type_code;
55184    -- set the flag so later we will know whether the gain loss line needs to be created
55185    
55186    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55187      p_actual_flag :='A';
55188    END IF;
55189 
55190    --
55191    -- bulk performance
55192    --
55193    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55194                                       p_header_num   => 0); -- 4262811
55195    --
55196    -- set accounting line options
55197    --
55198    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55199            p_natural_side_code          => 'C'
55200          , p_gain_or_loss_flag          => 'N'
55201          , p_gl_transfer_mode_code      => 'S'
55202          , p_acct_entry_type_code       => 'E'
55203          , p_switch_side_flag           => 'Y'
55204          , p_merge_duplicate_code       => 'N'
55205          );
55206    --
55207    l_acc_rev_natural_side_code := 'D';  -- 4262811
55208    -- 
55209    --
55210    -- set accounting line type info
55211    --
55212    xla_ae_lines_pkg.SetAcctLineType
55213       (p_component_type             => l_component_type
55214       ,p_event_type_code            => l_event_type_code
55215       ,p_line_definition_owner_code => l_line_definition_owner_code
55216       ,p_line_definition_code       => l_line_definition_code
55217       ,p_accounting_line_code       => l_component_code
55218       ,p_accounting_line_type_code  => l_component_type_code
55219       ,p_accounting_line_appl_id    => l_component_appl_id
55220       ,p_amb_context_code           => l_amb_context_code
55221       ,p_entity_code                => l_entity_code
55222       ,p_event_class_code           => l_event_class_code);
55223    --
55224    -- set accounting class
55225    --
55226    xla_ae_lines_pkg.SetAcctClass(
55227            p_accounting_class_code  => 'AP_PREPAY_APPL_BURDEN'
55228          , p_ae_header_id           => l_ae_header_id
55229          );
55230 
55231    --
55232    -- set rounding class
55233    --
55234    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55235                       'AP_PREPAY_APPL_BURDEN';
55236 
55237    --
55238    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55239    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55240    --
55241    -- bulk performance
55242    --
55243    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55244 
55245    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55246       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55247 
55248    -- 4955764
55249    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55250       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55251 
55252    -- 4458381 Public Sector Enh
55253    
55254    --
55255    -- set accounting attributes for the line type
55256    --
55257    l_entered_amt_idx := 27;
55258    l_accted_amt_idx  := 29;
55259    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
55260    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55261    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
55262    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55263    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
55264    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55265    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
55266    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55267    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
55268    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55269    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
55270    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55271    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
55272    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55273    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
55274    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55275    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
55276    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55277    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
55278    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55279    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
55280    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55281    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
55282    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
55286    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
55283    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
55284    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
55285    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
55287    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
55288    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
55289    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
55290    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
55291    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
55292    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
55293    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
55294    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
55295    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
55296    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
55297    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
55298    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
55299    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
55300    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
55301    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
55302    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
55303    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
55304    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
55305    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
55306    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
55307    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
55308    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
55309    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
55310    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
55311    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
55312    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
55313    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
55314    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
55315    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
55316    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
55317    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
55318    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
55319    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
55320    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
55321    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
55322    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
55323    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
55324    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
55325    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
55326    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
55327    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
55328 
55329    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55330    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55331 
55332    ---------------------------------------------------------------------------------------------------------------
55333    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55334    ---------------------------------------------------------------------------------------------------------------
55335    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55336 
55337    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55338    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55339 
55340    IF xla_accounting_cache_pkg.GetValueChar
55341          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55342          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55343    AND l_bflow_method_code = 'PRIOR_ENTRY'
55344 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55345    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55346          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55347        )
55348    THEN
55349          xla_ae_lines_pkg.BflowUpgEntry
55350            (p_business_method_code    => l_bflow_method_code
55351            ,p_business_class_code     => l_bflow_class_code
55352            ,p_balance_type            => l_balance_type_code);
55353    ELSE
55354       NULL;
55355 XLA_AE_LINES_PKG.business_flow_validation(
55356                                 p_business_method_code     => l_bflow_method_code
55357                                ,p_business_class_code      => l_bflow_class_code
55358                                ,p_inherit_description_flag => l_inherit_desc_flag);
55359    END IF;
55360 
55361    --
55362    -- call analytical criteria
55363    --
55364    -- Inherited Analytical Criteria for business flow method of Prior Entry.
55365    --
55366    -- call description
55367    --
55368    
55369 xla_ae_lines_pkg.SetLineDescription(
55370    p_ae_header_id => l_ae_header_id
55371   ,p_description  => Description_3 (
55372      p_application_id         => p_application_id
55373    , p_ae_header_id           => l_ae_header_id 
55374 , p_source_2 => p_source_2
55375 , p_source_3 => p_source_3
55379 );
55376 , p_source_4 => p_source_4
55377 , p_source_5 => p_source_5
55378    )
55380 
55381 
55382    --
55383    -- call ADRs
55384    -- Bug 4922099
55385    --
55386    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55387         (NVL(l_actual_upg_option, 'N') = 'O') OR
55388         (NVL(l_enc_upg_option, 'N') = 'O')
55389       )
55390    THEN
55391    NULL;
55392    --
55393    --
55394    
55395    --
55396    --
55397    END IF;
55398    --
55399    -- Bug 4922099
55400    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55401           (NVL(l_enc_upg_option, 'N') = 'O')
55402         ) AND
55403         (l_bflow_method_code = 'PRIOR_ENTRY')
55404       )
55405    THEN
55406       IF
55407       --
55408       1 = 1
55409       --
55410       THEN
55411       xla_accounting_err_pkg.build_message
55412                                     (p_appli_s_name            => 'XLA'
55413                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55414                                     ,p_token_1                 => 'LINE_NUMBER'
55415                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55416                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55417                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55418                                                                              l_component_type
55419                                                                             ,l_component_code
55420                                                                             ,l_component_type_code
55421                                                                             ,l_component_appl_id
55422                                                                             ,l_amb_context_code
55423                                                                             ,l_entity_code
55424                                                                             ,l_event_class_code
55425                                                                            )
55426                                     ,p_token_3                 => 'OWNER'
55427                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55428                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55429                                                                           ,p_lookup_code    => l_component_type_code
55430                                                                          )
55431                                     ,p_token_4                 => 'PRODUCT_NAME'
55432                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55433                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55434                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55435                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55436                                     ,p_ae_header_id            =>  NULL
55437                                        );
55438 
55439         IF (C_LEVEL_ERROR>= g_log_level) THEN
55440                  trace
55441                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55442                       ,p_level    => C_LEVEL_ERROR
55443                       ,p_module   => l_log_module);
55444         END IF;
55445       END IF;
55446    END IF;
55447    --
55448    --
55449    ------------------------------------------------------------------------------------------------
55450    -- 4219869 Business Flow
55451    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55452    -- Prior Entry.  Currently, the following code is always generated.
55453    ------------------------------------------------------------------------------------------------
55454    -- No ValidateCurrentLine for business flow method of Prior Entry
55455 
55456    ------------------------------------------------------------------------------------
55457    -- 4219869 Business Flow
55458    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55459    ------------------------------------------------------------------------------------
55460    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55461 
55462    ----------------------------------------------------------------------------------
55463    -- 4219869 Business Flow
55464    -- Update journal entry status -- Need to generate this within IF <condition>
55465    ----------------------------------------------------------------------------------
55466    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55467          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55468          ,p_balance_type_code => l_balance_type_code
55469          );
55470 
55471    -------------------------------------------------------------------------------------------
55472    -- 4262811 - Generate the Accrual Reversal lines
55473    -------------------------------------------------------------------------------------------
55474    BEGIN
55475       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55476                               (g_array_event(p_event_id).array_value_num('header_index'));
55477       IF l_acc_rev_flag IS NULL THEN
55478          l_acc_rev_flag := 'N';
55479       END IF;
55480    EXCEPTION
55481       WHEN OTHERS THEN
55482          l_acc_rev_flag := 'N';
55486 
55483    END;
55484    --
55485    IF (l_acc_rev_flag = 'Y') THEN
55487        -- 4645092  ------------------------------------------------------------------------------
55488        -- To allow MPA report to determine if it should generate report process
55489        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55490        ------------------------------------------------------------------------------------------
55491 
55492        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55493        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55494    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55495    -- call ADRs
55496    -- Bug 4922099
55497    --
55498    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55499         (NVL(l_actual_upg_option, 'N') = 'O') OR
55500         (NVL(l_enc_upg_option, 'N') = 'O')
55501       )
55502    THEN
55503    NULL;
55504    --
55505    --
55506    
55507    --
55508    --
55509    END IF;
55510 
55511        --
55512        -- Update the line information that should be overwritten
55513        --
55514        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55515                                          p_header_num   => 1);
55516        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55517 
55518        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55519 
55520        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55521           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55522        END IF;
55523 
55524       --
55525       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55526       --
55527       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55528           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55529       ELSE
55530           ---------------------------------------------------------------------------------------------------
55531           -- 4262811a Switch Sign
55532           ---------------------------------------------------------------------------------------------------
55533           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55534           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55535                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55536           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55537                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55538           -- 5132302
55539           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55540                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55541 
55542       END IF;
55543 
55544       -- 4955764
55545       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55546       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55547 
55548 
55549       XLA_AE_LINES_PKG.ValidateCurrentLine;
55550       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55551 
55552       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55553                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55554                ,p_balance_type_code => l_balance_type_code);
55555 
55556    END IF;
55557 
55558    -----------------------------------------------------------------------------------------
55559    -- 4262811 Multiperiod Accounting
55560    -----------------------------------------------------------------------------------------
55561      -- No MPA option is assigned.
55562 
55563 
55564 END IF;
55565 END IF;
55566 --
55567 
55568 --
55569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55570    trace
55571       (p_msg      => 'END of AcctLineType_87'
55572       ,p_level    => C_LEVEL_PROCEDURE
55573       ,p_module   => l_log_module);
55574 END IF;
55575 --
55576 EXCEPTION
55577   WHEN xla_exceptions_pkg.application_exception THEN
55578       RAISE;
55579   WHEN OTHERS THEN
55580        xla_exceptions_pkg.raise_message
55581            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_87');
55582 END AcctLineType_87;
55583 --
55584 
55585 ---------------------------------------
55586 --
55587 -- PRIVATE FUNCTION
55588 --         AcctLineType_88
55589 --
55590 ---------------------------------------
55591 PROCEDURE AcctLineType_88 (
55592   p_application_id        IN NUMBER
55593  ,p_event_id              IN NUMBER
55594  ,p_calculate_acctd_flag  IN VARCHAR2
55595  ,p_calculate_g_l_flag    IN VARCHAR2
55596  ,p_actual_flag           IN OUT VARCHAR2
55597  ,p_balance_type_code     OUT VARCHAR2
55598  ,p_gain_or_loss_ref      OUT VARCHAR2
55599  
55600 --Document Distribution Type
55601  , p_source_2            IN VARCHAR2
55602 --Project Name
55603  , p_source_3            IN VARCHAR2
55604 --Task Number
55605  , p_source_4            IN VARCHAR2
55606 --Expenditure Organization
55607  , p_source_5            IN NUMBER
55611  , p_source_30            IN NUMBER
55608 --Distribution Link Type
55609  , p_source_21            IN VARCHAR2
55610 --Invoice Distribution Identifier
55612 --Invoice Currency Code
55613  , p_source_33            IN VARCHAR2
55614 --Invoice Distribution Amount
55615  , p_source_57            IN NUMBER
55616 --Document Type
55617  , p_source_83            IN VARCHAR2
55618 --Burden Amount Display Method
55619  , p_source_84            IN VARCHAR2
55620 --Accounting reversal indicator for project invoice burden
55621  , p_source_85            IN VARCHAR2
55622 --Allocated to Application Identifier
55623  , p_source_86            IN NUMBER
55624 --Allocated to Distribution Type
55625  , p_source_87            IN VARCHAR2
55626 --Allocated to Entity Code
55627  , p_source_88            IN VARCHAR2
55628 --Allocated to First Distribution Identifier
55629  , p_source_89            IN NUMBER
55630 --Allocated to First System Transaction Identifier
55631  , p_source_90            IN NUMBER
55632 --Invoice Burden Applied to Application Identifier
55633  , p_source_91            IN NUMBER
55634 --Invoice Burden Applied to Distribution Type
55635  , p_source_92            IN VARCHAR2
55636 --Invoice Burden Applied to Entity Code
55637  , p_source_93            IN VARCHAR2
55638 --Invoice Burden Applied to First Distribution Identifier
55639  , p_source_94            IN NUMBER
55640 --Invoice Burden Applied to System Transaction Identifier
55641  , p_source_95            IN NUMBER
55642 --Invoice Distribution Expenditure Type
55643  , p_source_96            IN VARCHAR2
55644 --Encumbrance Upgrade Credit Accounting Class
55645  , p_source_97            IN VARCHAR2
55646 --Encumbrance Upgrade Credit Account
55647  , p_source_98            IN NUMBER
55648 --Invoice Distribution Ledger Amount Before Rounding
55649  , p_source_99            IN NUMBER
55650 --Encumbrance Upgrade Debit Accounting Class
55651  , p_source_100            IN VARCHAR2
55652 --Encumbrance Upgrade Debit Account
55653  , p_source_101            IN NUMBER
55654 --Use Encumbrances Upgrade Attributes Flag
55655  , p_source_102            IN VARCHAR2
55656 --Accounting reversal first distribution identifier for project invoice burden
55657  , p_source_103            IN NUMBER
55658 --Invoice Burden Applied to Second Distribution Identifier
55659  , p_source_104            IN VARCHAR2
55660 --Accounting reversal distribution type for project invoice burden
55661  , p_source_105            IN VARCHAR2
55662 --Encumbrance Upgrade Credit Encumbrance Type
55663  , p_source_106            IN NUMBER
55664 --Encumbrance Upgrade Debit Encumbrance Type
55665  , p_source_107            IN NUMBER
55666 --Burden Record Identifier
55667  , p_source_108            IN VARCHAR2
55668  , p_source_108_meaning    IN VARCHAR2
55669 )
55670 IS
55671 
55672 l_component_type              VARCHAR2(80);
55673 l_component_code              VARCHAR2(30);
55674 l_component_type_code         VARCHAR2(1);
55675 l_component_appl_id           INTEGER;
55676 l_amb_context_code            VARCHAR2(30);
55677 l_entity_code                 VARCHAR2(30);
55678 l_event_class_code            VARCHAR2(30);
55679 l_ae_header_id                NUMBER;
55680 l_event_type_code             VARCHAR2(30);
55681 l_line_definition_code        VARCHAR2(30);
55682 l_line_definition_owner_code  VARCHAR2(1);
55683 --
55684 -- adr variables
55685 l_segment                     VARCHAR2(30);
55686 l_ccid                        NUMBER;
55687 l_adr_transaction_coa_id      NUMBER;
55688 l_adr_accounting_coa_id       NUMBER;
55689 l_adr_flexfield_segment_code  VARCHAR2(30);
55690 l_adr_flex_value_set_id       NUMBER;
55691 l_adr_value_type_code         VARCHAR2(30);
55692 l_adr_value_combination_id    NUMBER;
55693 l_adr_value_segment_code      VARCHAR2(30);
55694 
55695 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55696 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55697 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55698 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55699 
55700 -- 4262811 Variables ------------------------------------------------------------------------------------------
55701 l_entered_amt_idx             NUMBER;
55702 l_accted_amt_idx              NUMBER;
55703 l_acc_rev_flag                VARCHAR2(1);
55704 l_accrual_line_num            NUMBER;
55705 l_tmp_amt                     NUMBER;
55706 l_acc_rev_natural_side_code   VARCHAR2(1);
55707 
55708 l_num_entries                 NUMBER;
55709 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55710 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55711 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55712 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55713 l_recog_line_1                NUMBER;
55714 l_recog_line_2                NUMBER;
55715 
55716 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55717 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55718 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55719 
55720 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55721 
55722 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55723 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55724 
55728 --
55725 ---------------------------------------------------------------------------------------------------------------
55726 
55727 
55729 -- bulk performance
55730 --
55731 l_balance_type_code           VARCHAR2(1);
55732 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55733 l_log_module                  VARCHAR2(240);
55734 
55735 --
55736 -- Upgrade strategy
55737 --
55738 l_actual_upg_option           VARCHAR2(1);
55739 l_enc_upg_option           VARCHAR2(1);
55740 
55741 --
55742 BEGIN
55743 --
55744 IF g_log_enabled THEN
55745       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
55746 END IF;
55747 --
55748 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55749 
55750       trace
55751          (p_msg      => 'BEGIN of AcctLineType_88'
55752          ,p_level    => C_LEVEL_PROCEDURE
55753          ,p_module   => l_log_module);
55754 
55755 END IF;
55756 --
55757 l_component_type             := 'AMB_JLT';
55758 l_component_code             := 'PREPAY_APPL_BURDEN_ENC';
55759 l_component_type_code        := 'S';
55760 l_component_appl_id          :=  200;
55761 l_amb_context_code           := 'DEFAULT';
55762 l_entity_code                := 'AP_INVOICES';
55763 l_event_class_code           := 'PREPAY_APPLICATION_BURDEN';
55764 l_event_type_code            := 'PREPAY_APPLICATION_BURDEN_ALL';
55765 l_line_definition_owner_code := 'S';
55766 l_line_definition_code       := 'AP_PREPAY_APPLY_BURDEN_ENC_ALL';
55767 --
55768 l_balance_type_code          := 'E';
55769 l_segment                     := NULL;
55770 l_ccid                        := NULL;
55771 l_adr_transaction_coa_id      := NULL;
55772 l_adr_accounting_coa_id       := NULL;
55773 l_adr_flexfield_segment_code  := NULL;
55774 l_adr_flex_value_set_id       := NULL;
55775 l_adr_value_type_code         := NULL;
55776 l_adr_value_combination_id    := NULL;
55777 l_adr_value_segment_code      := NULL;
55778 
55779 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
55780 l_bflow_class_code           := 'AP_PREPAY_BURDEN_ENC';    -- 4219869 Business Flow
55781 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55782 l_budgetary_control_flag     := 'Y';
55783 
55784 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55785 l_bflow_applied_to_amt       := NULL; -- 5132302
55786 l_entered_amt_idx            := NULL;          -- 4262811
55787 l_accted_amt_idx             := NULL;          -- 4262811
55788 l_acc_rev_flag               := NULL;          -- 4262811
55789 l_accrual_line_num           := NULL;          -- 4262811
55790 l_tmp_amt                    := NULL;          -- 4262811
55791 --
55792  
55793 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55794     l_balance_type_code <> 'B' THEN
55795 IF NVL(p_source_83,'
55796 ') =  'AP' AND 
55797 (NVL(p_source_2,'
55798 ') =  'PREPAY APPL' OR 
55799 NVL(p_source_2,'
55800 ') =  'TAX DIFF' OR 
55801 NVL(p_source_2,'
55802 ') =  'FINAL APPLICATION ROUNDING' OR 
55803 NVL(p_source_2,'
55804 ') =  'PREPAY APPL NONREC TAX') AND 
55805 NVL(p_source_84,'
55806 ') =  'D' AND 
55807 NVL(p_source_108,'
55808 ') =  'O'
55809  THEN 
55810 
55811    --
55812    XLA_AE_LINES_PKG.SetNewLine;
55813 
55814    p_balance_type_code          := l_balance_type_code;
55815    -- set the flag so later we will know whether the gain loss line needs to be created
55816    
55817    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55818      p_actual_flag :='A';
55819    END IF;
55820 
55821    --
55822    -- bulk performance
55823    --
55824    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55825                                       p_header_num   => 0); -- 4262811
55826    --
55827    -- set accounting line options
55828    --
55829    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55830            p_natural_side_code          => 'C'
55831          , p_gain_or_loss_flag          => 'N'
55832          , p_gl_transfer_mode_code      => 'S'
55833          , p_acct_entry_type_code       => 'E'
55834          , p_switch_side_flag           => 'Y'
55835          , p_merge_duplicate_code       => 'N'
55836          );
55837    --
55838    l_acc_rev_natural_side_code := 'D';  -- 4262811
55839    -- 
55840    --
55841    -- set accounting line type info
55842    --
55843    xla_ae_lines_pkg.SetAcctLineType
55844       (p_component_type             => l_component_type
55845       ,p_event_type_code            => l_event_type_code
55846       ,p_line_definition_owner_code => l_line_definition_owner_code
55847       ,p_line_definition_code       => l_line_definition_code
55848       ,p_accounting_line_code       => l_component_code
55849       ,p_accounting_line_type_code  => l_component_type_code
55850       ,p_accounting_line_appl_id    => l_component_appl_id
55851       ,p_amb_context_code           => l_amb_context_code
55852       ,p_entity_code                => l_entity_code
55853       ,p_event_class_code           => l_event_class_code);
55854    --
55855    -- set accounting class
55856    --
55857    xla_ae_lines_pkg.SetAcctClass(
55858            p_accounting_class_code  => 'AP_PREPAY_APPL_BURDEN'
55859          , p_ae_header_id           => l_ae_header_id
55860          );
55861 
55862    --
55863    -- set rounding class
55864    --
55868    --
55865    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55866                       'AP_PREPAY_APPL_BURDEN';
55867 
55869    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55870    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55871    --
55872    -- bulk performance
55873    --
55874    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55875 
55876    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55877       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55878 
55879    -- 4955764
55880    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55881       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55882 
55883    -- 4458381 Public Sector Enh
55884    
55885    --
55886    -- set accounting attributes for the line type
55887    --
55888    l_entered_amt_idx := 27;
55889    l_accted_amt_idx  := 29;
55890    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
55891    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55892    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
55893    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55894    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
55895    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55896    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
55897    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55898    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
55899    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55900    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
55901    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55902    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
55903    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55904    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
55905    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55906    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
55907    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55908    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
55909    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55910    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
55911    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55912    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
55913    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
55914    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
55915    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
55916    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
55917    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
55918    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
55919    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
55920    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
55921    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
55922    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
55923    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
55924    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
55925    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
55926    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
55927    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
55928    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
55929    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
55930    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
55931    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
55932    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
55933    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
55934    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
55935    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
55936    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
55937    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
55938    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
55939    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
55940    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
55941    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
55942    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
55943    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
55944    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
55945    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
55946    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
55947    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
55948    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
55949    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
55950    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
55951    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
55952    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
55953    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
55954    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
55958    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
55955    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
55956    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
55957    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
55959 
55960    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55961    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55962 
55963    ---------------------------------------------------------------------------------------------------------------
55964    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55965    ---------------------------------------------------------------------------------------------------------------
55966    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55967 
55968    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55969    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55970 
55971    IF xla_accounting_cache_pkg.GetValueChar
55972          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55973          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55974    AND l_bflow_method_code = 'PRIOR_ENTRY'
55975 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55976    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55977          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55978        )
55979    THEN
55980          xla_ae_lines_pkg.BflowUpgEntry
55981            (p_business_method_code    => l_bflow_method_code
55982            ,p_business_class_code     => l_bflow_class_code
55983            ,p_balance_type            => l_balance_type_code);
55984    ELSE
55985       NULL;
55986 XLA_AE_LINES_PKG.business_flow_validation(
55987                                 p_business_method_code     => l_bflow_method_code
55988                                ,p_business_class_code      => l_bflow_class_code
55989                                ,p_inherit_description_flag => l_inherit_desc_flag);
55990    END IF;
55991 
55992    --
55993    -- call analytical criteria
55994    --
55995    -- Inherited Analytical Criteria for business flow method of Prior Entry.
55996    --
55997    -- call description
55998    --
55999    
56000 xla_ae_lines_pkg.SetLineDescription(
56001    p_ae_header_id => l_ae_header_id
56002   ,p_description  => Description_3 (
56003      p_application_id         => p_application_id
56004    , p_ae_header_id           => l_ae_header_id 
56005 , p_source_2 => p_source_2
56006 , p_source_3 => p_source_3
56007 , p_source_4 => p_source_4
56008 , p_source_5 => p_source_5
56009    )
56010 );
56011 
56012 
56013    --
56014    -- call ADRs
56015    -- Bug 4922099
56016    --
56017    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56018         (NVL(l_actual_upg_option, 'N') = 'O') OR
56019         (NVL(l_enc_upg_option, 'N') = 'O')
56020       )
56021    THEN
56022    NULL;
56023    --
56024    --
56025    
56026    --
56027    --
56028    END IF;
56029    --
56030    -- Bug 4922099
56031    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56032           (NVL(l_enc_upg_option, 'N') = 'O')
56033         ) AND
56034         (l_bflow_method_code = 'PRIOR_ENTRY')
56035       )
56036    THEN
56037       IF
56038       --
56039       1 = 1
56040       --
56041       THEN
56042       xla_accounting_err_pkg.build_message
56043                                     (p_appli_s_name            => 'XLA'
56044                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56045                                     ,p_token_1                 => 'LINE_NUMBER'
56046                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56047                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56048                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56049                                                                              l_component_type
56050                                                                             ,l_component_code
56051                                                                             ,l_component_type_code
56052                                                                             ,l_component_appl_id
56053                                                                             ,l_amb_context_code
56054                                                                             ,l_entity_code
56055                                                                             ,l_event_class_code
56056                                                                            )
56057                                     ,p_token_3                 => 'OWNER'
56058                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56059                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56060                                                                           ,p_lookup_code    => l_component_type_code
56061                                                                          )
56062                                     ,p_token_4                 => 'PRODUCT_NAME'
56066                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56063                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56064                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56065                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56067                                     ,p_ae_header_id            =>  NULL
56068                                        );
56069 
56070         IF (C_LEVEL_ERROR>= g_log_level) THEN
56071                  trace
56072                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56073                       ,p_level    => C_LEVEL_ERROR
56074                       ,p_module   => l_log_module);
56075         END IF;
56076       END IF;
56077    END IF;
56078    --
56079    --
56080    ------------------------------------------------------------------------------------------------
56081    -- 4219869 Business Flow
56082    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56083    -- Prior Entry.  Currently, the following code is always generated.
56084    ------------------------------------------------------------------------------------------------
56085    -- No ValidateCurrentLine for business flow method of Prior Entry
56086 
56087    ------------------------------------------------------------------------------------
56088    -- 4219869 Business Flow
56089    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56090    ------------------------------------------------------------------------------------
56091    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56092 
56093    ----------------------------------------------------------------------------------
56094    -- 4219869 Business Flow
56095    -- Update journal entry status -- Need to generate this within IF <condition>
56096    ----------------------------------------------------------------------------------
56097    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56098          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56099          ,p_balance_type_code => l_balance_type_code
56100          );
56101 
56102    -------------------------------------------------------------------------------------------
56103    -- 4262811 - Generate the Accrual Reversal lines
56104    -------------------------------------------------------------------------------------------
56105    BEGIN
56106       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56107                               (g_array_event(p_event_id).array_value_num('header_index'));
56108       IF l_acc_rev_flag IS NULL THEN
56109          l_acc_rev_flag := 'N';
56110       END IF;
56111    EXCEPTION
56112       WHEN OTHERS THEN
56113          l_acc_rev_flag := 'N';
56114    END;
56115    --
56116    IF (l_acc_rev_flag = 'Y') THEN
56117 
56118        -- 4645092  ------------------------------------------------------------------------------
56119        -- To allow MPA report to determine if it should generate report process
56120        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56121        ------------------------------------------------------------------------------------------
56122 
56123        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56124        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56125    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56126    -- call ADRs
56127    -- Bug 4922099
56128    --
56129    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56130         (NVL(l_actual_upg_option, 'N') = 'O') OR
56131         (NVL(l_enc_upg_option, 'N') = 'O')
56132       )
56133    THEN
56134    NULL;
56135    --
56136    --
56137    
56138    --
56139    --
56140    END IF;
56141 
56142        --
56143        -- Update the line information that should be overwritten
56144        --
56145        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56146                                          p_header_num   => 1);
56147        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56148 
56149        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56150 
56151        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56152           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56153        END IF;
56154 
56155       --
56156       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56157       --
56158       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56159           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56160       ELSE
56161           ---------------------------------------------------------------------------------------------------
56162           -- 4262811a Switch Sign
56163           ---------------------------------------------------------------------------------------------------
56164           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56165           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56166                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56170           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56167           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56168                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56169           -- 5132302
56171                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56172 
56173       END IF;
56174 
56175       -- 4955764
56176       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56177       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56178 
56179 
56180       XLA_AE_LINES_PKG.ValidateCurrentLine;
56181       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56182 
56183       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56184                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56185                ,p_balance_type_code => l_balance_type_code);
56186 
56187    END IF;
56188 
56189    -----------------------------------------------------------------------------------------
56190    -- 4262811 Multiperiod Accounting
56191    -----------------------------------------------------------------------------------------
56192      -- No MPA option is assigned.
56193 
56194 
56195 END IF;
56196 END IF;
56197 --
56198 
56199 --
56200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56201    trace
56202       (p_msg      => 'END of AcctLineType_88'
56203       ,p_level    => C_LEVEL_PROCEDURE
56204       ,p_module   => l_log_module);
56205 END IF;
56206 --
56207 EXCEPTION
56208   WHEN xla_exceptions_pkg.application_exception THEN
56209       RAISE;
56210   WHEN OTHERS THEN
56211        xla_exceptions_pkg.raise_message
56212            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_88');
56213 END AcctLineType_88;
56214 --
56215 
56216 ---------------------------------------
56217 --
56218 -- PRIVATE FUNCTION
56219 --         AcctLineType_89
56220 --
56221 ---------------------------------------
56222 PROCEDURE AcctLineType_89 (
56223   p_application_id        IN NUMBER
56224  ,p_event_id              IN NUMBER
56225  ,p_calculate_acctd_flag  IN VARCHAR2
56226  ,p_calculate_g_l_flag    IN VARCHAR2
56227  ,p_actual_flag           IN OUT VARCHAR2
56228  ,p_balance_type_code     OUT VARCHAR2
56229  ,p_gain_or_loss_ref      OUT VARCHAR2
56230  
56231 --Document Distribution Type
56232  , p_source_2            IN VARCHAR2
56233 --Project Name
56234  , p_source_3            IN VARCHAR2
56235 --Task Number
56236  , p_source_4            IN VARCHAR2
56237 --Expenditure Organization
56238  , p_source_5            IN NUMBER
56239 --Invoice Distribution Account
56240  , p_source_11            IN NUMBER
56241 --Budget Account
56242  , p_source_14            IN NUMBER
56243 --Distribution Link Type
56244  , p_source_21            IN VARCHAR2
56245 --Invoice Distribution Identifier
56246  , p_source_30            IN NUMBER
56247 --Invoice Currency Code
56248  , p_source_33            IN VARCHAR2
56249 --Invoice Distribution Amount
56250  , p_source_57            IN NUMBER
56251 --Document Type
56252  , p_source_83            IN VARCHAR2
56253 --Burden Amount Display Method
56254  , p_source_84            IN VARCHAR2
56255 --Accounting reversal indicator for project invoice burden
56256  , p_source_85            IN VARCHAR2
56257 --Allocated to Application Identifier
56258  , p_source_86            IN NUMBER
56259 --Allocated to Distribution Type
56260  , p_source_87            IN VARCHAR2
56261 --Allocated to Entity Code
56262  , p_source_88            IN VARCHAR2
56263 --Allocated to First Distribution Identifier
56264  , p_source_89            IN NUMBER
56265 --Allocated to First System Transaction Identifier
56266  , p_source_90            IN NUMBER
56267 --Invoice Burden Applied to Application Identifier
56268  , p_source_91            IN NUMBER
56269 --Invoice Burden Applied to Distribution Type
56270  , p_source_92            IN VARCHAR2
56271 --Invoice Burden Applied to Entity Code
56272  , p_source_93            IN VARCHAR2
56273 --Invoice Burden Applied to First Distribution Identifier
56274  , p_source_94            IN NUMBER
56275 --Invoice Burden Applied to System Transaction Identifier
56276  , p_source_95            IN NUMBER
56277 --Invoice Distribution Expenditure Type
56278  , p_source_96            IN VARCHAR2
56279 --Encumbrance Upgrade Credit Accounting Class
56280  , p_source_97            IN VARCHAR2
56281 --Encumbrance Upgrade Credit Account
56282  , p_source_98            IN NUMBER
56283 --Invoice Distribution Ledger Amount Before Rounding
56284  , p_source_99            IN NUMBER
56285 --Encumbrance Upgrade Debit Accounting Class
56286  , p_source_100            IN VARCHAR2
56287 --Encumbrance Upgrade Debit Account
56288  , p_source_101            IN NUMBER
56289 --Use Encumbrances Upgrade Attributes Flag
56290  , p_source_102            IN VARCHAR2
56291 --Accounting reversal first distribution identifier for project invoice burden
56292  , p_source_103            IN NUMBER
56293 --Invoice Burden Applied to Second Distribution Identifier
56294  , p_source_104            IN VARCHAR2
56295 --Accounting reversal distribution type for project invoice burden
56296  , p_source_105            IN VARCHAR2
56300  , p_source_107            IN NUMBER
56297 --Encumbrance Upgrade Credit Encumbrance Type
56298  , p_source_106            IN NUMBER
56299 --Encumbrance Upgrade Debit Encumbrance Type
56301 --Burden Record Identifier
56302  , p_source_108            IN VARCHAR2
56303  , p_source_108_meaning    IN VARCHAR2
56304 )
56305 IS
56306 
56307 l_component_type              VARCHAR2(80);
56308 l_component_code              VARCHAR2(30);
56309 l_component_type_code         VARCHAR2(1);
56310 l_component_appl_id           INTEGER;
56311 l_amb_context_code            VARCHAR2(30);
56312 l_entity_code                 VARCHAR2(30);
56313 l_event_class_code            VARCHAR2(30);
56314 l_ae_header_id                NUMBER;
56315 l_event_type_code             VARCHAR2(30);
56316 l_line_definition_code        VARCHAR2(30);
56317 l_line_definition_owner_code  VARCHAR2(1);
56318 --
56319 -- adr variables
56320 l_segment                     VARCHAR2(30);
56321 l_ccid                        NUMBER;
56322 l_adr_transaction_coa_id      NUMBER;
56323 l_adr_accounting_coa_id       NUMBER;
56324 l_adr_flexfield_segment_code  VARCHAR2(30);
56325 l_adr_flex_value_set_id       NUMBER;
56326 l_adr_value_type_code         VARCHAR2(30);
56327 l_adr_value_combination_id    NUMBER;
56328 l_adr_value_segment_code      VARCHAR2(30);
56329 
56330 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56331 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56332 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56333 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56334 
56335 -- 4262811 Variables ------------------------------------------------------------------------------------------
56336 l_entered_amt_idx             NUMBER;
56337 l_accted_amt_idx              NUMBER;
56338 l_acc_rev_flag                VARCHAR2(1);
56339 l_accrual_line_num            NUMBER;
56340 l_tmp_amt                     NUMBER;
56341 l_acc_rev_natural_side_code   VARCHAR2(1);
56342 
56343 l_num_entries                 NUMBER;
56344 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56345 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56346 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56347 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56348 l_recog_line_1                NUMBER;
56349 l_recog_line_2                NUMBER;
56350 
56351 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56352 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56353 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56354 
56355 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56356 
56357 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56358 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56359 
56360 ---------------------------------------------------------------------------------------------------------------
56361 
56362 
56363 --
56364 -- bulk performance
56365 --
56366 l_balance_type_code           VARCHAR2(1);
56367 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56368 l_log_module                  VARCHAR2(240);
56369 
56370 --
56371 -- Upgrade strategy
56372 --
56373 l_actual_upg_option           VARCHAR2(1);
56374 l_enc_upg_option           VARCHAR2(1);
56375 
56376 --
56377 BEGIN
56378 --
56379 IF g_log_enabled THEN
56380       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
56381 END IF;
56382 --
56383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56384 
56385       trace
56386          (p_msg      => 'BEGIN of AcctLineType_89'
56387          ,p_level    => C_LEVEL_PROCEDURE
56388          ,p_module   => l_log_module);
56389 
56390 END IF;
56391 --
56392 l_component_type             := 'AMB_JLT';
56393 l_component_code             := 'PREPAY_APPL_ENCUMBRANCE';
56394 l_component_type_code        := 'S';
56395 l_component_appl_id          :=  200;
56396 l_amb_context_code           := 'DEFAULT';
56397 l_entity_code                := 'AP_INVOICES';
56398 l_event_class_code           := 'PREPAY_APPLICATION_BURDEN';
56399 l_event_type_code            := 'PREPAY_APPLICATION_BURDEN_ALL';
56400 l_line_definition_owner_code := 'S';
56401 l_line_definition_code       := 'AP_PREPAY_APPLY_BURDEN_ENC_ALL';
56402 --
56403 l_balance_type_code          := 'E';
56404 l_segment                     := NULL;
56405 l_ccid                        := NULL;
56406 l_adr_transaction_coa_id      := NULL;
56407 l_adr_accounting_coa_id       := NULL;
56408 l_adr_flexfield_segment_code  := NULL;
56409 l_adr_flex_value_set_id       := NULL;
56410 l_adr_value_type_code         := NULL;
56411 l_adr_value_combination_id    := NULL;
56412 l_adr_value_segment_code      := NULL;
56413 
56414 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
56415 l_bflow_class_code           := 'AP_PREPAY_PA_ENC';    -- 4219869 Business Flow
56416 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56417 l_budgetary_control_flag     := 'Y';
56418 
56419 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56420 l_bflow_applied_to_amt       := NULL; -- 5132302
56421 l_entered_amt_idx            := NULL;          -- 4262811
56422 l_accted_amt_idx             := NULL;          -- 4262811
56426 --
56423 l_acc_rev_flag               := NULL;          -- 4262811
56424 l_accrual_line_num           := NULL;          -- 4262811
56425 l_tmp_amt                    := NULL;          -- 4262811
56427  
56428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56429     l_balance_type_code <> 'B' THEN
56430 IF NVL(p_source_83,'
56431 ') =  'AP' AND 
56432 (NVL(p_source_2,'
56433 ') =  'PREPAY APPL' OR 
56434 NVL(p_source_2,'
56435 ') =  'TAX DIFF' OR 
56436 NVL(p_source_2,'
56437 ') =  'FINAL APPLICATION ROUNDING' OR 
56438 NVL(p_source_2,'
56439 ') =  'PREPAY APPL NONREC TAX') AND 
56440 (NVL(p_source_84,'
56441 ') =  'N' OR 
56442 (NVL(p_source_84,'
56443 ') =  'D' AND 
56444 NVL(p_source_108,'
56445 ') =  'N')
56446 ) AND NVL(TO_NUMBER(p_source_14),9E125) <> NVL(TO_NUMBER(p_source_11),9E125) 
56447  THEN 
56448 
56449    --
56450    XLA_AE_LINES_PKG.SetNewLine;
56451 
56452    p_balance_type_code          := l_balance_type_code;
56453    -- set the flag so later we will know whether the gain loss line needs to be created
56454    
56455    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56456      p_actual_flag :='A';
56457    END IF;
56458 
56459    --
56460    -- bulk performance
56461    --
56462    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56463                                       p_header_num   => 0); -- 4262811
56464    --
56465    -- set accounting line options
56466    --
56467    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56468            p_natural_side_code          => 'C'
56469          , p_gain_or_loss_flag          => 'N'
56470          , p_gl_transfer_mode_code      => 'S'
56471          , p_acct_entry_type_code       => 'E'
56472          , p_switch_side_flag           => 'Y'
56473          , p_merge_duplicate_code       => 'N'
56474          );
56475    --
56476    l_acc_rev_natural_side_code := 'D';  -- 4262811
56477    -- 
56478    --
56479    -- set accounting line type info
56480    --
56481    xla_ae_lines_pkg.SetAcctLineType
56482       (p_component_type             => l_component_type
56483       ,p_event_type_code            => l_event_type_code
56484       ,p_line_definition_owner_code => l_line_definition_owner_code
56485       ,p_line_definition_code       => l_line_definition_code
56486       ,p_accounting_line_code       => l_component_code
56487       ,p_accounting_line_type_code  => l_component_type_code
56488       ,p_accounting_line_appl_id    => l_component_appl_id
56489       ,p_amb_context_code           => l_amb_context_code
56490       ,p_entity_code                => l_entity_code
56491       ,p_event_class_code           => l_event_class_code);
56492    --
56493    -- set accounting class
56494    --
56495    xla_ae_lines_pkg.SetAcctClass(
56496            p_accounting_class_code  => 'AP_PREPAY_APPL_BURDEN'
56497          , p_ae_header_id           => l_ae_header_id
56498          );
56499 
56500    --
56501    -- set rounding class
56502    --
56503    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56504                       'AP_PREPAY_APPL_BURDEN';
56505 
56506    --
56507    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56508    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56509    --
56510    -- bulk performance
56511    --
56512    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56513 
56514    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56515       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56516 
56517    -- 4955764
56518    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56519       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56520 
56521    -- 4458381 Public Sector Enh
56522    
56523    --
56524    -- set accounting attributes for the line type
56525    --
56526    l_entered_amt_idx := 27;
56527    l_accted_amt_idx  := 29;
56528    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
56529    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56530    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
56531    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
56532    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
56533    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
56534    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
56535    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
56536    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
56537    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
56538    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
56539    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
56540    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
56541    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
56542    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
56543    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56544    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
56545    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
56549    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56546    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
56547    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
56548    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
56550    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
56551    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
56552    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
56553    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
56554    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
56555    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
56556    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
56557    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
56558    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
56559    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
56560    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
56561    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
56562    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
56563    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
56564    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
56565    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
56566    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
56567    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
56568    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
56569    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
56570    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
56571    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
56572    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
56573    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
56574    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
56575    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
56576    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
56577    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
56578    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
56579    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
56580    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
56581    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
56582    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
56583    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
56584    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
56585    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
56586    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
56587    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
56588    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
56589    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
56590    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
56591    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
56592    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
56593    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
56594    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
56595    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
56596    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
56597 
56598    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56599    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56600 
56601    ---------------------------------------------------------------------------------------------------------------
56602    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56603    ---------------------------------------------------------------------------------------------------------------
56604    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56605 
56606    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56607    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56608 
56609    IF xla_accounting_cache_pkg.GetValueChar
56610          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56611          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56612    AND l_bflow_method_code = 'PRIOR_ENTRY'
56613 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56614    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56615          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56616        )
56617    THEN
56618          xla_ae_lines_pkg.BflowUpgEntry
56619            (p_business_method_code    => l_bflow_method_code
56620            ,p_business_class_code     => l_bflow_class_code
56621            ,p_balance_type            => l_balance_type_code);
56622    ELSE
56623       NULL;
56624 XLA_AE_LINES_PKG.business_flow_validation(
56625                                 p_business_method_code     => l_bflow_method_code
56626                                ,p_business_class_code      => l_bflow_class_code
56627                                ,p_inherit_description_flag => l_inherit_desc_flag);
56628    END IF;
56629 
56630    --
56631    -- call analytical criteria
56632    --
56633    -- Inherited Analytical Criteria for business flow method of Prior Entry.
56634    --
56635    -- call description
56639    p_ae_header_id => l_ae_header_id
56636    --
56637    
56638 xla_ae_lines_pkg.SetLineDescription(
56640   ,p_description  => Description_3 (
56641      p_application_id         => p_application_id
56642    , p_ae_header_id           => l_ae_header_id 
56643 , p_source_2 => p_source_2
56644 , p_source_3 => p_source_3
56645 , p_source_4 => p_source_4
56646 , p_source_5 => p_source_5
56647    )
56648 );
56649 
56650 
56651    --
56652    -- call ADRs
56653    -- Bug 4922099
56654    --
56655    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56656         (NVL(l_actual_upg_option, 'N') = 'O') OR
56657         (NVL(l_enc_upg_option, 'N') = 'O')
56658       )
56659    THEN
56660    NULL;
56661    --
56662    --
56663    
56664    --
56665    --
56666    END IF;
56667    --
56668    -- Bug 4922099
56669    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56670           (NVL(l_enc_upg_option, 'N') = 'O')
56671         ) AND
56672         (l_bflow_method_code = 'PRIOR_ENTRY')
56673       )
56674    THEN
56675       IF
56676       --
56677       1 = 1
56678       --
56679       THEN
56680       xla_accounting_err_pkg.build_message
56681                                     (p_appli_s_name            => 'XLA'
56682                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56683                                     ,p_token_1                 => 'LINE_NUMBER'
56684                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56685                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56686                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56687                                                                              l_component_type
56688                                                                             ,l_component_code
56689                                                                             ,l_component_type_code
56690                                                                             ,l_component_appl_id
56691                                                                             ,l_amb_context_code
56692                                                                             ,l_entity_code
56693                                                                             ,l_event_class_code
56694                                                                            )
56695                                     ,p_token_3                 => 'OWNER'
56696                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56697                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56698                                                                           ,p_lookup_code    => l_component_type_code
56699                                                                          )
56700                                     ,p_token_4                 => 'PRODUCT_NAME'
56701                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56702                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56703                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56704                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56705                                     ,p_ae_header_id            =>  NULL
56706                                        );
56707 
56708         IF (C_LEVEL_ERROR>= g_log_level) THEN
56709                  trace
56710                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56711                       ,p_level    => C_LEVEL_ERROR
56712                       ,p_module   => l_log_module);
56713         END IF;
56714       END IF;
56715    END IF;
56716    --
56717    --
56718    ------------------------------------------------------------------------------------------------
56719    -- 4219869 Business Flow
56720    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56721    -- Prior Entry.  Currently, the following code is always generated.
56722    ------------------------------------------------------------------------------------------------
56723    -- No ValidateCurrentLine for business flow method of Prior Entry
56724 
56725    ------------------------------------------------------------------------------------
56726    -- 4219869 Business Flow
56727    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56728    ------------------------------------------------------------------------------------
56729    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56730 
56731    ----------------------------------------------------------------------------------
56732    -- 4219869 Business Flow
56733    -- Update journal entry status -- Need to generate this within IF <condition>
56734    ----------------------------------------------------------------------------------
56735    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56736          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56737          ,p_balance_type_code => l_balance_type_code
56738          );
56739 
56740    -------------------------------------------------------------------------------------------
56741    -- 4262811 - Generate the Accrual Reversal lines
56742    -------------------------------------------------------------------------------------------
56746       IF l_acc_rev_flag IS NULL THEN
56743    BEGIN
56744       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56745                               (g_array_event(p_event_id).array_value_num('header_index'));
56747          l_acc_rev_flag := 'N';
56748       END IF;
56749    EXCEPTION
56750       WHEN OTHERS THEN
56751          l_acc_rev_flag := 'N';
56752    END;
56753    --
56754    IF (l_acc_rev_flag = 'Y') THEN
56755 
56756        -- 4645092  ------------------------------------------------------------------------------
56757        -- To allow MPA report to determine if it should generate report process
56758        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56759        ------------------------------------------------------------------------------------------
56760 
56761        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56762        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56763    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56764    -- call ADRs
56765    -- Bug 4922099
56766    --
56767    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56768         (NVL(l_actual_upg_option, 'N') = 'O') OR
56769         (NVL(l_enc_upg_option, 'N') = 'O')
56770       )
56771    THEN
56772    NULL;
56773    --
56774    --
56775    
56776    --
56777    --
56778    END IF;
56779 
56780        --
56781        -- Update the line information that should be overwritten
56782        --
56783        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56784                                          p_header_num   => 1);
56785        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56786 
56787        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56788 
56789        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56790           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56791        END IF;
56792 
56793       --
56794       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56795       --
56796       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56797           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56798       ELSE
56799           ---------------------------------------------------------------------------------------------------
56800           -- 4262811a Switch Sign
56801           ---------------------------------------------------------------------------------------------------
56802           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56803           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56804                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56805           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56806                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56807           -- 5132302
56808           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56809                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56810 
56811       END IF;
56812 
56813       -- 4955764
56814       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56815       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56816 
56817 
56818       XLA_AE_LINES_PKG.ValidateCurrentLine;
56819       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56820 
56821       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56822                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56823                ,p_balance_type_code => l_balance_type_code);
56824 
56825    END IF;
56826 
56827    -----------------------------------------------------------------------------------------
56828    -- 4262811 Multiperiod Accounting
56829    -----------------------------------------------------------------------------------------
56830      -- No MPA option is assigned.
56831 
56832 
56833 END IF;
56834 END IF;
56835 --
56836 
56837 --
56838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56839    trace
56840       (p_msg      => 'END of AcctLineType_89'
56841       ,p_level    => C_LEVEL_PROCEDURE
56842       ,p_module   => l_log_module);
56843 END IF;
56844 --
56845 EXCEPTION
56846   WHEN xla_exceptions_pkg.application_exception THEN
56847       RAISE;
56848   WHEN OTHERS THEN
56849        xla_exceptions_pkg.raise_message
56850            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_89');
56851 END AcctLineType_89;
56852 --
56853 
56854 ---------------------------------------
56855 --
56856 -- PRIVATE FUNCTION
56857 --         AcctLineType_90
56858 --
56859 ---------------------------------------
56860 PROCEDURE AcctLineType_90 (
56861   p_application_id        IN NUMBER
56862  ,p_event_id              IN NUMBER
56863  ,p_calculate_acctd_flag  IN VARCHAR2
56864  ,p_calculate_g_l_flag    IN VARCHAR2
56865  ,p_actual_flag           IN OUT VARCHAR2
56866  ,p_balance_type_code     OUT VARCHAR2
56867  ,p_gain_or_loss_ref      OUT VARCHAR2
56868  
56872  , p_source_3            IN VARCHAR2
56869 --Document Distribution Type
56870  , p_source_2            IN VARCHAR2
56871 --Project Name
56873 --Task Number
56874  , p_source_4            IN VARCHAR2
56875 --Expenditure Organization
56876  , p_source_5            IN NUMBER
56877 --Budget Account
56878  , p_source_14            IN NUMBER
56879 --Distribution Link Type
56880  , p_source_21            IN VARCHAR2
56881 --Invoice Distribution Identifier
56882  , p_source_30            IN NUMBER
56883 --Invoice Currency Code
56884  , p_source_33            IN VARCHAR2
56885 --Invoice Exchange Date
56886  , p_source_39            IN DATE
56887 --Invoice Exchange Rate
56888  , p_source_40            IN NUMBER
56889 --Invoice Exchange Rate Type
56890  , p_source_41            IN VARCHAR2
56891 --Invoice Distribution Amount
56892  , p_source_57            IN NUMBER
56893 --Document Type
56894  , p_source_83            IN VARCHAR2
56895 --Burden Amount Display Method
56896  , p_source_84            IN VARCHAR2
56897 --Accounting reversal indicator for project invoice burden
56898  , p_source_85            IN VARCHAR2
56899 --Allocated to Application Identifier
56900  , p_source_86            IN NUMBER
56901 --Allocated to Distribution Type
56902  , p_source_87            IN VARCHAR2
56903 --Allocated to Entity Code
56904  , p_source_88            IN VARCHAR2
56905 --Allocated to First Distribution Identifier
56906  , p_source_89            IN NUMBER
56907 --Allocated to First System Transaction Identifier
56908  , p_source_90            IN NUMBER
56909 --Invoice Burden Applied to Application Identifier
56910  , p_source_91            IN NUMBER
56911 --Invoice Burden Applied to Distribution Type
56912  , p_source_92            IN VARCHAR2
56913 --Invoice Burden Applied to Entity Code
56914  , p_source_93            IN VARCHAR2
56915 --Invoice Burden Applied to First Distribution Identifier
56916  , p_source_94            IN NUMBER
56917 --Invoice Burden Applied to System Transaction Identifier
56918  , p_source_95            IN NUMBER
56919 --Invoice Distribution Expenditure Type
56920  , p_source_96            IN VARCHAR2
56921 --Encumbrance Upgrade Credit Accounting Class
56922  , p_source_97            IN VARCHAR2
56923 --Encumbrance Upgrade Credit Account
56924  , p_source_98            IN NUMBER
56925 --Invoice Distribution Ledger Amount Before Rounding
56926  , p_source_99            IN NUMBER
56927 --Encumbrance Upgrade Debit Accounting Class
56928  , p_source_100            IN VARCHAR2
56929 --Encumbrance Upgrade Debit Account
56930  , p_source_101            IN NUMBER
56931 --Use Encumbrances Upgrade Attributes Flag
56932  , p_source_102            IN VARCHAR2
56933 --Accounting reversal first distribution identifier for project invoice burden
56934  , p_source_103            IN NUMBER
56935 --Invoice Burden Applied to Second Distribution Identifier
56936  , p_source_104            IN VARCHAR2
56937 --Accounting reversal distribution type for project invoice burden
56938  , p_source_105            IN VARCHAR2
56939 --Encumbrance Upgrade Credit Encumbrance Type
56940  , p_source_106            IN NUMBER
56941 --Encumbrance Upgrade Debit Encumbrance Type
56942  , p_source_107            IN NUMBER
56943 )
56944 IS
56945 
56946 l_component_type              VARCHAR2(80);
56947 l_component_code              VARCHAR2(30);
56948 l_component_type_code         VARCHAR2(1);
56949 l_component_appl_id           INTEGER;
56950 l_amb_context_code            VARCHAR2(30);
56951 l_entity_code                 VARCHAR2(30);
56952 l_event_class_code            VARCHAR2(30);
56953 l_ae_header_id                NUMBER;
56954 l_event_type_code             VARCHAR2(30);
56955 l_line_definition_code        VARCHAR2(30);
56956 l_line_definition_owner_code  VARCHAR2(1);
56957 --
56958 -- adr variables
56959 l_segment                     VARCHAR2(30);
56960 l_ccid                        NUMBER;
56961 l_adr_transaction_coa_id      NUMBER;
56962 l_adr_accounting_coa_id       NUMBER;
56963 l_adr_flexfield_segment_code  VARCHAR2(30);
56964 l_adr_flex_value_set_id       NUMBER;
56965 l_adr_value_type_code         VARCHAR2(30);
56966 l_adr_value_combination_id    NUMBER;
56967 l_adr_value_segment_code      VARCHAR2(30);
56968 
56969 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56970 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56971 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56972 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56973 
56974 -- 4262811 Variables ------------------------------------------------------------------------------------------
56975 l_entered_amt_idx             NUMBER;
56976 l_accted_amt_idx              NUMBER;
56977 l_acc_rev_flag                VARCHAR2(1);
56978 l_accrual_line_num            NUMBER;
56979 l_tmp_amt                     NUMBER;
56980 l_acc_rev_natural_side_code   VARCHAR2(1);
56981 
56982 l_num_entries                 NUMBER;
56983 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56984 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56985 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56986 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56987 l_recog_line_1                NUMBER;
56988 l_recog_line_2                NUMBER;
56989 
56990 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56994 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56991 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56992 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56993 
56995 
56996 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56997 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56998 
56999 ---------------------------------------------------------------------------------------------------------------
57000 
57001 
57002 --
57003 -- bulk performance
57004 --
57005 l_balance_type_code           VARCHAR2(1);
57006 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57007 l_log_module                  VARCHAR2(240);
57008 
57009 --
57010 -- Upgrade strategy
57011 --
57012 l_actual_upg_option           VARCHAR2(1);
57013 l_enc_upg_option           VARCHAR2(1);
57014 
57015 --
57016 BEGIN
57017 --
57018 IF g_log_enabled THEN
57019       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
57020 END IF;
57021 --
57022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57023 
57024       trace
57025          (p_msg      => 'BEGIN of AcctLineType_90'
57026          ,p_level    => C_LEVEL_PROCEDURE
57027          ,p_module   => l_log_module);
57028 
57029 END IF;
57030 --
57031 l_component_type             := 'AMB_JLT';
57032 l_component_code             := 'PREPAY_BURDENED_ENC';
57033 l_component_type_code        := 'S';
57034 l_component_appl_id          :=  200;
57035 l_amb_context_code           := 'DEFAULT';
57036 l_entity_code                := 'AP_INVOICES';
57037 l_event_class_code           := 'PREPAYMENT_BURDEN';
57038 l_event_type_code            := 'PREPAYMENT_BURDEN_ALL';
57039 l_line_definition_owner_code := 'S';
57040 l_line_definition_code       := 'AP_PREPAY_BURDEN_ENC_ALL';
57041 --
57042 l_balance_type_code          := 'E';
57043 l_segment                     := NULL;
57044 l_ccid                        := NULL;
57045 l_adr_transaction_coa_id      := NULL;
57046 l_adr_accounting_coa_id       := NULL;
57047 l_adr_flexfield_segment_code  := NULL;
57048 l_adr_flex_value_set_id       := NULL;
57049 l_adr_value_type_code         := NULL;
57050 l_adr_value_combination_id    := NULL;
57051 l_adr_value_segment_code      := NULL;
57052 
57053 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57054 l_bflow_class_code           := 'AP_PREPAY_BURDENED_ENC';    -- 4219869 Business Flow
57055 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57056 l_budgetary_control_flag     := 'Y';
57057 
57058 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57059 l_bflow_applied_to_amt       := NULL; -- 5132302
57060 l_entered_amt_idx            := NULL;          -- 4262811
57061 l_accted_amt_idx             := NULL;          -- 4262811
57062 l_acc_rev_flag               := NULL;          -- 4262811
57063 l_accrual_line_num           := NULL;          -- 4262811
57064 l_tmp_amt                    := NULL;          -- 4262811
57065 --
57066  
57067 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57068     l_balance_type_code <> 'B' THEN
57069 IF NVL(p_source_83,'
57070 ') =  'AP' AND 
57071 (NVL(p_source_2,'
57072 ') <>  'PREPAY APPL' OR 
57073 NVL(p_source_2,'
57074 ') <>  'TAX DIFF' OR 
57075 NVL(p_source_2,'
57076 ') <>  'FINAL APPLICATION ROUNDING') AND 
57077 NVL(p_source_84,'
57078 ') =  'S'
57079  THEN 
57080 
57081    --
57082    XLA_AE_LINES_PKG.SetNewLine;
57083 
57084    p_balance_type_code          := l_balance_type_code;
57085    -- set the flag so later we will know whether the gain loss line needs to be created
57086    
57087    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57088      p_actual_flag :='A';
57089    END IF;
57090 
57091    --
57092    -- bulk performance
57093    --
57094    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57095                                       p_header_num   => 0); -- 4262811
57096    --
57097    -- set accounting line options
57098    --
57099    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57100            p_natural_side_code          => 'D'
57101          , p_gain_or_loss_flag          => 'N'
57102          , p_gl_transfer_mode_code      => 'S'
57103          , p_acct_entry_type_code       => 'E'
57104          , p_switch_side_flag           => 'Y'
57105          , p_merge_duplicate_code       => 'N'
57106          );
57107    --
57108    l_acc_rev_natural_side_code := 'C';  -- 4262811
57109    -- 
57110    --
57111    -- set accounting line type info
57112    --
57113    xla_ae_lines_pkg.SetAcctLineType
57114       (p_component_type             => l_component_type
57115       ,p_event_type_code            => l_event_type_code
57116       ,p_line_definition_owner_code => l_line_definition_owner_code
57117       ,p_line_definition_code       => l_line_definition_code
57118       ,p_accounting_line_code       => l_component_code
57119       ,p_accounting_line_type_code  => l_component_type_code
57120       ,p_accounting_line_appl_id    => l_component_appl_id
57121       ,p_amb_context_code           => l_amb_context_code
57122       ,p_entity_code                => l_entity_code
57123       ,p_event_class_code           => l_event_class_code);
57124    --
57128            p_accounting_class_code  => 'AP_PREPAY_BURDEN'
57125    -- set accounting class
57126    --
57127    xla_ae_lines_pkg.SetAcctClass(
57129          , p_ae_header_id           => l_ae_header_id
57130          );
57131 
57132    --
57133    -- set rounding class
57134    --
57135    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57136                       'AP_PREPAY_BURDEN';
57137 
57138    --
57139    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57140    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57141    --
57142    -- bulk performance
57143    --
57144    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57145 
57146    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57147       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57148 
57149    -- 4955764
57150    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57152 
57153    -- 4458381 Public Sector Enh
57154       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
57155    --
57156    -- set accounting attributes for the line type
57157    --
57158    l_entered_amt_idx := 27;
57159    l_accted_amt_idx  := 32;
57160    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57161    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57162    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
57163    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57164    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
57165    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57166    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
57167    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57168    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
57169    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57170    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
57171    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57172    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
57173    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57174    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
57175    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57176    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
57177    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57178    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
57179    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57180    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
57181    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57182    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
57183    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
57184    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
57185    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
57186    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
57187    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
57188    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
57189    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
57190    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
57191    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
57192    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
57193    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
57194    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
57195    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
57196    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
57197    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
57198    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
57199    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
57200    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
57201    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
57202    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
57203    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
57204    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
57205    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
57206    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
57207    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
57208    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
57209    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
57210    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
57211    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
57212    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
57213    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
57214    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
57215    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
57216    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
57217    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_DATE';
57221    l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE_TYPE';
57218    l_rec_acct_attrs.array_date_value(29)  := p_source_39;
57219    l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_RATE';
57220    l_rec_acct_attrs.array_num_value(30)  := p_source_40;
57222    l_rec_acct_attrs.array_char_value(31)  := p_source_41;
57223    l_rec_acct_attrs.array_acct_attr_code(32) := 'LEDGER_AMOUNT';
57224    l_rec_acct_attrs.array_num_value(32)  := p_source_99;
57225    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
57226    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_103);
57227    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID2';
57228    l_rec_acct_attrs.array_char_value(34)  := p_source_104;
57229    l_rec_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_TYPE';
57230    l_rec_acct_attrs.array_char_value(35)  := p_source_105;
57231    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
57232    l_rec_acct_attrs.array_num_value(36)  := p_source_106;
57233    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
57234    l_rec_acct_attrs.array_num_value(37)  := p_source_107;
57235 
57236    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57237    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57238 
57239    ---------------------------------------------------------------------------------------------------------------
57240    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57241    ---------------------------------------------------------------------------------------------------------------
57242    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57243 
57244    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57245    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57246 
57247    IF xla_accounting_cache_pkg.GetValueChar
57248          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57249          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57250    AND l_bflow_method_code = 'PRIOR_ENTRY'
57251 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57252    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57253          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57254        )
57255    THEN
57256          xla_ae_lines_pkg.BflowUpgEntry
57257            (p_business_method_code    => l_bflow_method_code
57258            ,p_business_class_code     => l_bflow_class_code
57259            ,p_balance_type            => l_balance_type_code);
57260    ELSE
57261       NULL;
57262 -- No business flow processing for business flow method of NONE.
57263    END IF;
57264 
57265    --
57266    -- call analytical criteria
57267    --
57268    
57269    --
57270    -- call description
57271    --
57272    
57273 xla_ae_lines_pkg.SetLineDescription(
57274    p_ae_header_id => l_ae_header_id
57275   ,p_description  => Description_3 (
57276      p_application_id         => p_application_id
57277    , p_ae_header_id           => l_ae_header_id 
57278 , p_source_2 => p_source_2
57279 , p_source_3 => p_source_3
57280 , p_source_4 => p_source_4
57281 , p_source_5 => p_source_5
57282    )
57283 );
57284 
57285 
57286    --
57287    -- call ADRs
57288    -- Bug 4922099
57289    --
57290    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57291         (NVL(l_actual_upg_option, 'N') = 'O') OR
57292         (NVL(l_enc_upg_option, 'N') = 'O')
57293       )
57294    THEN
57295    NULL;
57296    --
57297    --
57298    
57299   l_ccid := AcctDerRule_11(
57300            p_application_id           => p_application_id
57301          , p_ae_header_id             => l_ae_header_id 
57302 , p_source_14 => p_source_14
57303          , x_transaction_coa_id       => l_adr_transaction_coa_id
57304          , x_accounting_coa_id        => l_adr_accounting_coa_id
57305          , x_value_type_code          => l_adr_value_type_code
57306          , p_side                     => 'NA'
57307    );
57308 
57309    xla_ae_lines_pkg.set_ccid(
57310     p_code_combination_id          => l_ccid
57311   , p_value_type_code              => l_adr_value_type_code
57312   , p_transaction_coa_id           => l_adr_transaction_coa_id
57313   , p_accounting_coa_id            => l_adr_accounting_coa_id
57314   , p_adr_code                     => 'PROJ_PREPAY_BURDENED_ENC_RULE'
57315   , p_adr_type_code                => 'S'
57316   , p_component_type               => l_component_type
57317   , p_component_code               => l_component_code
57318   , p_component_type_code          => l_component_type_code
57319   , p_component_appl_id            => l_component_appl_id
57320   , p_amb_context_code             => l_amb_context_code
57321   , p_side                         => 'NA'
57322   );
57323 
57324 
57325    --
57326    --
57327    END IF;
57328    --
57329    -- Bug 4922099
57330    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57331           (NVL(l_enc_upg_option, 'N') = 'O')
57332         ) AND
57333         (l_bflow_method_code = 'PRIOR_ENTRY')
57334       )
57335    THEN
57336       IF
57337       --
57338       1 = 2
57339       --
57340       THEN
57341       xla_accounting_err_pkg.build_message
57342                                     (p_appli_s_name            => 'XLA'
57346                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57343                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57344                                     ,p_token_1                 => 'LINE_NUMBER'
57345                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57347                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57348                                                                              l_component_type
57349                                                                             ,l_component_code
57350                                                                             ,l_component_type_code
57351                                                                             ,l_component_appl_id
57352                                                                             ,l_amb_context_code
57353                                                                             ,l_entity_code
57354                                                                             ,l_event_class_code
57355                                                                            )
57356                                     ,p_token_3                 => 'OWNER'
57357                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57358                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57359                                                                           ,p_lookup_code    => l_component_type_code
57360                                                                          )
57361                                     ,p_token_4                 => 'PRODUCT_NAME'
57362                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57363                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57364                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57365                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57366                                     ,p_ae_header_id            =>  NULL
57367                                        );
57368 
57369         IF (C_LEVEL_ERROR>= g_log_level) THEN
57370                  trace
57371                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57372                       ,p_level    => C_LEVEL_ERROR
57373                       ,p_module   => l_log_module);
57374         END IF;
57375       END IF;
57376    END IF;
57377    --
57378    --
57379    ------------------------------------------------------------------------------------------------
57380    -- 4219869 Business Flow
57381    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57382    -- Prior Entry.  Currently, the following code is always generated.
57383    ------------------------------------------------------------------------------------------------
57384    XLA_AE_LINES_PKG.ValidateCurrentLine;
57385 
57386    ------------------------------------------------------------------------------------
57387    -- 4219869 Business Flow
57388    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57389    ------------------------------------------------------------------------------------
57390    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57391 
57392    ----------------------------------------------------------------------------------
57393    -- 4219869 Business Flow
57394    -- Update journal entry status -- Need to generate this within IF <condition>
57395    ----------------------------------------------------------------------------------
57396    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57397          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57398          ,p_balance_type_code => l_balance_type_code
57399          );
57400 
57401    -------------------------------------------------------------------------------------------
57402    -- 4262811 - Generate the Accrual Reversal lines
57403    -------------------------------------------------------------------------------------------
57404    BEGIN
57405       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57406                               (g_array_event(p_event_id).array_value_num('header_index'));
57407       IF l_acc_rev_flag IS NULL THEN
57408          l_acc_rev_flag := 'N';
57409       END IF;
57410    EXCEPTION
57411       WHEN OTHERS THEN
57412          l_acc_rev_flag := 'N';
57413    END;
57414    --
57415    IF (l_acc_rev_flag = 'Y') THEN
57416 
57417        -- 4645092  ------------------------------------------------------------------------------
57418        -- To allow MPA report to determine if it should generate report process
57419        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57420        ------------------------------------------------------------------------------------------
57421 
57422        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57423        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57424    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57425    -- call ADRs
57426    -- Bug 4922099
57427    --
57428    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57429         (NVL(l_actual_upg_option, 'N') = 'O') OR
57430         (NVL(l_enc_upg_option, 'N') = 'O')
57431       )
57432    THEN
57433    NULL;
57434    --
57435    --
57436    
57440 , p_source_14 => p_source_14
57437   l_ccid := AcctDerRule_11(
57438            p_application_id           => p_application_id
57439          , p_ae_header_id             => l_ae_header_id 
57441          , x_transaction_coa_id       => l_adr_transaction_coa_id
57442          , x_accounting_coa_id        => l_adr_accounting_coa_id
57443          , x_value_type_code          => l_adr_value_type_code
57444          , p_side                     => 'NA'
57445    );
57446 
57447    xla_ae_lines_pkg.set_ccid(
57448     p_code_combination_id          => l_ccid
57449   , p_value_type_code              => l_adr_value_type_code
57450   , p_transaction_coa_id           => l_adr_transaction_coa_id
57451   , p_accounting_coa_id            => l_adr_accounting_coa_id
57452   , p_adr_code                     => 'PROJ_PREPAY_BURDENED_ENC_RULE'
57453   , p_adr_type_code                => 'S'
57454   , p_component_type               => l_component_type
57455   , p_component_code               => l_component_code
57456   , p_component_type_code          => l_component_type_code
57457   , p_component_appl_id            => l_component_appl_id
57458   , p_amb_context_code             => l_amb_context_code
57459   , p_side                         => 'NA'
57460   );
57461 
57462 
57463    --
57464    --
57465    END IF;
57466 
57467        --
57468        -- Update the line information that should be overwritten
57469        --
57470        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57471                                          p_header_num   => 1);
57472        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57473 
57474        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57475 
57476        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57477           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57478        END IF;
57479 
57480       --
57481       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57482       --
57483       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57484           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57485       ELSE
57486           ---------------------------------------------------------------------------------------------------
57487           -- 4262811a Switch Sign
57488           ---------------------------------------------------------------------------------------------------
57489           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57490           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57491                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57492           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57493                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57494           -- 5132302
57495           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57496                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57497 
57498       END IF;
57499 
57500       -- 4955764
57501       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57502       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57503 
57504 
57505       XLA_AE_LINES_PKG.ValidateCurrentLine;
57506       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57507 
57508       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57509                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57510                ,p_balance_type_code => l_balance_type_code);
57511 
57512    END IF;
57513 
57514    -----------------------------------------------------------------------------------------
57515    -- 4262811 Multiperiod Accounting
57516    -----------------------------------------------------------------------------------------
57517      -- No MPA option is assigned.
57518 
57519 
57520 END IF;
57521 END IF;
57522 --
57523 
57524 --
57525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57526    trace
57527       (p_msg      => 'END of AcctLineType_90'
57528       ,p_level    => C_LEVEL_PROCEDURE
57529       ,p_module   => l_log_module);
57530 END IF;
57531 --
57532 EXCEPTION
57533   WHEN xla_exceptions_pkg.application_exception THEN
57534       RAISE;
57535   WHEN OTHERS THEN
57536        xla_exceptions_pkg.raise_message
57537            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_90');
57538 END AcctLineType_90;
57539 --
57540 
57541 ---------------------------------------
57542 --
57543 -- PRIVATE FUNCTION
57544 --         AcctLineType_91
57545 --
57546 ---------------------------------------
57547 PROCEDURE AcctLineType_91 (
57548   p_application_id        IN NUMBER
57549  ,p_event_id              IN NUMBER
57550  ,p_calculate_acctd_flag  IN VARCHAR2
57551  ,p_calculate_g_l_flag    IN VARCHAR2
57552  ,p_actual_flag           IN OUT VARCHAR2
57553  ,p_balance_type_code     OUT VARCHAR2
57554  ,p_gain_or_loss_ref      OUT VARCHAR2
57555  
57556 --Document Distribution Type
57557  , p_source_2            IN VARCHAR2
57558 --Project Name
57562 --Expenditure Organization
57559  , p_source_3            IN VARCHAR2
57560 --Task Number
57561  , p_source_4            IN VARCHAR2
57563  , p_source_5            IN NUMBER
57564 --Invoice Distribution Account
57565  , p_source_11            IN NUMBER
57566 --Budget Account
57567  , p_source_14            IN NUMBER
57568 --Distribution Link Type
57569  , p_source_21            IN VARCHAR2
57570 --Invoice Distribution Identifier
57571  , p_source_30            IN NUMBER
57572 --Invoice Currency Code
57573  , p_source_33            IN VARCHAR2
57574 --Invoice Exchange Date
57575  , p_source_39            IN DATE
57576 --Invoice Exchange Rate
57577  , p_source_40            IN NUMBER
57578 --Invoice Exchange Rate Type
57579  , p_source_41            IN VARCHAR2
57580 --Invoice Distribution Amount
57581  , p_source_57            IN NUMBER
57582 --Document Type
57583  , p_source_83            IN VARCHAR2
57584 --Burden Amount Display Method
57585  , p_source_84            IN VARCHAR2
57586 --Accounting reversal indicator for project invoice burden
57587  , p_source_85            IN VARCHAR2
57588 --Allocated to Application Identifier
57589  , p_source_86            IN NUMBER
57590 --Allocated to Distribution Type
57591  , p_source_87            IN VARCHAR2
57592 --Allocated to Entity Code
57593  , p_source_88            IN VARCHAR2
57594 --Allocated to First Distribution Identifier
57595  , p_source_89            IN NUMBER
57596 --Allocated to First System Transaction Identifier
57597  , p_source_90            IN NUMBER
57598 --Invoice Burden Applied to Application Identifier
57599  , p_source_91            IN NUMBER
57600 --Invoice Burden Applied to Distribution Type
57601  , p_source_92            IN VARCHAR2
57602 --Invoice Burden Applied to Entity Code
57603  , p_source_93            IN VARCHAR2
57604 --Invoice Burden Applied to First Distribution Identifier
57605  , p_source_94            IN NUMBER
57606 --Invoice Burden Applied to System Transaction Identifier
57607  , p_source_95            IN NUMBER
57608 --Invoice Distribution Expenditure Type
57609  , p_source_96            IN VARCHAR2
57610 --Encumbrance Upgrade Credit Accounting Class
57611  , p_source_97            IN VARCHAR2
57612 --Encumbrance Upgrade Credit Account
57613  , p_source_98            IN NUMBER
57614 --Invoice Distribution Ledger Amount Before Rounding
57615  , p_source_99            IN NUMBER
57616 --Encumbrance Upgrade Debit Accounting Class
57617  , p_source_100            IN VARCHAR2
57618 --Encumbrance Upgrade Debit Account
57619  , p_source_101            IN NUMBER
57620 --Use Encumbrances Upgrade Attributes Flag
57621  , p_source_102            IN VARCHAR2
57622 --Accounting reversal first distribution identifier for project invoice burden
57623  , p_source_103            IN NUMBER
57624 --Invoice Burden Applied to Second Distribution Identifier
57625  , p_source_104            IN VARCHAR2
57626 --Accounting reversal distribution type for project invoice burden
57627  , p_source_105            IN VARCHAR2
57628 --Encumbrance Upgrade Credit Encumbrance Type
57629  , p_source_106            IN NUMBER
57630 --Encumbrance Upgrade Debit Encumbrance Type
57631  , p_source_107            IN NUMBER
57632 --Burden Record Identifier
57633  , p_source_108            IN VARCHAR2
57634  , p_source_108_meaning    IN VARCHAR2
57635 )
57636 IS
57637 
57638 l_component_type              VARCHAR2(80);
57639 l_component_code              VARCHAR2(30);
57640 l_component_type_code         VARCHAR2(1);
57641 l_component_appl_id           INTEGER;
57642 l_amb_context_code            VARCHAR2(30);
57643 l_entity_code                 VARCHAR2(30);
57644 l_event_class_code            VARCHAR2(30);
57645 l_ae_header_id                NUMBER;
57646 l_event_type_code             VARCHAR2(30);
57647 l_line_definition_code        VARCHAR2(30);
57648 l_line_definition_owner_code  VARCHAR2(1);
57649 --
57650 -- adr variables
57651 l_segment                     VARCHAR2(30);
57652 l_ccid                        NUMBER;
57653 l_adr_transaction_coa_id      NUMBER;
57654 l_adr_accounting_coa_id       NUMBER;
57655 l_adr_flexfield_segment_code  VARCHAR2(30);
57656 l_adr_flex_value_set_id       NUMBER;
57657 l_adr_value_type_code         VARCHAR2(30);
57658 l_adr_value_combination_id    NUMBER;
57659 l_adr_value_segment_code      VARCHAR2(30);
57660 
57661 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57662 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57663 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57664 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57665 
57666 -- 4262811 Variables ------------------------------------------------------------------------------------------
57667 l_entered_amt_idx             NUMBER;
57668 l_accted_amt_idx              NUMBER;
57669 l_acc_rev_flag                VARCHAR2(1);
57670 l_accrual_line_num            NUMBER;
57671 l_tmp_amt                     NUMBER;
57672 l_acc_rev_natural_side_code   VARCHAR2(1);
57673 
57674 l_num_entries                 NUMBER;
57675 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57676 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57677 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57678 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57679 l_recog_line_1                NUMBER;
57680 l_recog_line_2                NUMBER;
57681 
57685 
57682 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57683 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57684 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57686 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57687 
57688 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57689 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57690 
57691 ---------------------------------------------------------------------------------------------------------------
57692 
57693 
57694 --
57695 -- bulk performance
57696 --
57697 l_balance_type_code           VARCHAR2(1);
57698 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57699 l_log_module                  VARCHAR2(240);
57700 
57701 --
57702 -- Upgrade strategy
57703 --
57704 l_actual_upg_option           VARCHAR2(1);
57705 l_enc_upg_option           VARCHAR2(1);
57706 
57707 --
57708 BEGIN
57709 --
57710 IF g_log_enabled THEN
57711       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
57712 END IF;
57713 --
57714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57715 
57716       trace
57717          (p_msg      => 'BEGIN of AcctLineType_91'
57718          ,p_level    => C_LEVEL_PROCEDURE
57719          ,p_module   => l_log_module);
57720 
57721 END IF;
57722 --
57723 l_component_type             := 'AMB_JLT';
57724 l_component_code             := 'PREPAY_BURDEN_ENC';
57725 l_component_type_code        := 'S';
57726 l_component_appl_id          :=  200;
57727 l_amb_context_code           := 'DEFAULT';
57728 l_entity_code                := 'AP_INVOICES';
57729 l_event_class_code           := 'PREPAYMENT_BURDEN';
57730 l_event_type_code            := 'PREPAYMENT_BURDEN_ALL';
57731 l_line_definition_owner_code := 'S';
57732 l_line_definition_code       := 'AP_PREPAY_BURDEN_ENC_ALL';
57733 --
57734 l_balance_type_code          := 'E';
57735 l_segment                     := NULL;
57736 l_ccid                        := NULL;
57737 l_adr_transaction_coa_id      := NULL;
57738 l_adr_accounting_coa_id       := NULL;
57739 l_adr_flexfield_segment_code  := NULL;
57740 l_adr_flex_value_set_id       := NULL;
57741 l_adr_value_type_code         := NULL;
57742 l_adr_value_combination_id    := NULL;
57743 l_adr_value_segment_code      := NULL;
57744 
57745 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57746 l_bflow_class_code           := 'AP_PREPAY_BURDEN_ENC';    -- 4219869 Business Flow
57747 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57748 l_budgetary_control_flag     := 'Y';
57749 
57750 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57751 l_bflow_applied_to_amt       := NULL; -- 5132302
57752 l_entered_amt_idx            := NULL;          -- 4262811
57753 l_accted_amt_idx             := NULL;          -- 4262811
57754 l_acc_rev_flag               := NULL;          -- 4262811
57755 l_accrual_line_num           := NULL;          -- 4262811
57756 l_tmp_amt                    := NULL;          -- 4262811
57757 --
57758  
57759 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57760     l_balance_type_code <> 'B' THEN
57761 IF NVL(p_source_83,'
57762 ') =  'AP' AND 
57763 (NVL(p_source_2,'
57764 ') <>  'PREPAY APPL' OR 
57765 NVL(p_source_2,'
57766 ') <>  'TAX DIFF' OR 
57767 NVL(p_source_2,'
57768 ') <>  'FINAL APPLICATION ROUNDING') AND 
57769 NVL(p_source_84,'
57770 ') =  'D' AND 
57771 NVL(p_source_108,'
57772 ') =  'O' AND 
57773 NVL(TO_NUMBER(p_source_14),9E125) <> NVL(TO_NUMBER(p_source_11),9E125) 
57774  THEN 
57775 
57776    --
57777    XLA_AE_LINES_PKG.SetNewLine;
57778 
57779    p_balance_type_code          := l_balance_type_code;
57780    -- set the flag so later we will know whether the gain loss line needs to be created
57781    
57782    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57783      p_actual_flag :='A';
57784    END IF;
57785 
57786    --
57787    -- bulk performance
57788    --
57789    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57790                                       p_header_num   => 0); -- 4262811
57791    --
57792    -- set accounting line options
57793    --
57794    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57795            p_natural_side_code          => 'D'
57796          , p_gain_or_loss_flag          => 'N'
57797          , p_gl_transfer_mode_code      => 'S'
57798          , p_acct_entry_type_code       => 'E'
57799          , p_switch_side_flag           => 'Y'
57800          , p_merge_duplicate_code       => 'N'
57801          );
57802    --
57803    l_acc_rev_natural_side_code := 'C';  -- 4262811
57804    -- 
57805    --
57806    -- set accounting line type info
57807    --
57808    xla_ae_lines_pkg.SetAcctLineType
57809       (p_component_type             => l_component_type
57810       ,p_event_type_code            => l_event_type_code
57811       ,p_line_definition_owner_code => l_line_definition_owner_code
57812       ,p_line_definition_code       => l_line_definition_code
57813       ,p_accounting_line_code       => l_component_code
57814       ,p_accounting_line_type_code  => l_component_type_code
57818       ,p_event_class_code           => l_event_class_code);
57815       ,p_accounting_line_appl_id    => l_component_appl_id
57816       ,p_amb_context_code           => l_amb_context_code
57817       ,p_entity_code                => l_entity_code
57819    --
57820    -- set accounting class
57821    --
57822    xla_ae_lines_pkg.SetAcctClass(
57823            p_accounting_class_code  => 'AP_PREPAY_BURDEN'
57824          , p_ae_header_id           => l_ae_header_id
57825          );
57826 
57827    --
57828    -- set rounding class
57829    --
57830    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57831                       'AP_PREPAY_BURDEN';
57832 
57833    --
57834    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57835    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57836    --
57837    -- bulk performance
57838    --
57839    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57840 
57841    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57842       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57843 
57844    -- 4955764
57845    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57846       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57847 
57848    -- 4458381 Public Sector Enh
57849       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
57850    --
57851    -- set accounting attributes for the line type
57852    --
57853    l_entered_amt_idx := 27;
57854    l_accted_amt_idx  := 32;
57855    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57856    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57857    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
57858    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57859    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
57860    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57861    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
57862    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57863    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
57864    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57865    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
57866    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57867    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
57868    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57869    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
57870    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57871    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
57872    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57873    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
57874    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57875    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
57876    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57877    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
57878    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
57879    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
57880    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
57881    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
57882    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
57883    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
57884    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
57885    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
57886    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
57887    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
57888    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
57889    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
57890    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
57891    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
57892    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
57893    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
57894    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
57895    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
57896    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
57897    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
57898    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
57899    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
57900    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
57901    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
57902    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
57903    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
57904    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
57905    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
57906    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
57907    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
57908    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
57909    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
57910    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
57914    l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_RATE';
57911    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
57912    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_DATE';
57913    l_rec_acct_attrs.array_date_value(29)  := p_source_39;
57915    l_rec_acct_attrs.array_num_value(30)  := p_source_40;
57916    l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE_TYPE';
57917    l_rec_acct_attrs.array_char_value(31)  := p_source_41;
57918    l_rec_acct_attrs.array_acct_attr_code(32) := 'LEDGER_AMOUNT';
57919    l_rec_acct_attrs.array_num_value(32)  := p_source_99;
57920    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
57921    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_103);
57922    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID2';
57923    l_rec_acct_attrs.array_char_value(34)  := p_source_104;
57924    l_rec_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_TYPE';
57925    l_rec_acct_attrs.array_char_value(35)  := p_source_105;
57926    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
57927    l_rec_acct_attrs.array_num_value(36)  := p_source_106;
57928    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
57929    l_rec_acct_attrs.array_num_value(37)  := p_source_107;
57930 
57931    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57932    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57933 
57934    ---------------------------------------------------------------------------------------------------------------
57935    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57936    ---------------------------------------------------------------------------------------------------------------
57937    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57938 
57939    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57940    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57941 
57942    IF xla_accounting_cache_pkg.GetValueChar
57943          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57944          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57945    AND l_bflow_method_code = 'PRIOR_ENTRY'
57946 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57947    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57948          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57949        )
57950    THEN
57951          xla_ae_lines_pkg.BflowUpgEntry
57952            (p_business_method_code    => l_bflow_method_code
57953            ,p_business_class_code     => l_bflow_class_code
57954            ,p_balance_type            => l_balance_type_code);
57955    ELSE
57956       NULL;
57957 -- No business flow processing for business flow method of NONE.
57958    END IF;
57959 
57960    --
57961    -- call analytical criteria
57962    --
57963    
57964    --
57965    -- call description
57966    --
57967    
57968 xla_ae_lines_pkg.SetLineDescription(
57969    p_ae_header_id => l_ae_header_id
57970   ,p_description  => Description_3 (
57971      p_application_id         => p_application_id
57972    , p_ae_header_id           => l_ae_header_id 
57973 , p_source_2 => p_source_2
57974 , p_source_3 => p_source_3
57975 , p_source_4 => p_source_4
57976 , p_source_5 => p_source_5
57977    )
57978 );
57979 
57980 
57981    --
57982    -- call ADRs
57983    -- Bug 4922099
57984    --
57985    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57986         (NVL(l_actual_upg_option, 'N') = 'O') OR
57987         (NVL(l_enc_upg_option, 'N') = 'O')
57988       )
57989    THEN
57990    NULL;
57991    --
57992    --
57993    
57994   l_ccid := AcctDerRule_13(
57995            p_application_id           => p_application_id
57996          , p_ae_header_id             => l_ae_header_id 
57997 , p_source_14 => p_source_14
57998          , x_transaction_coa_id       => l_adr_transaction_coa_id
57999          , x_accounting_coa_id        => l_adr_accounting_coa_id
58000          , x_value_type_code          => l_adr_value_type_code
58001          , p_side                     => 'NA'
58002    );
58003 
58004    xla_ae_lines_pkg.set_ccid(
58005     p_code_combination_id          => l_ccid
58006   , p_value_type_code              => l_adr_value_type_code
58007   , p_transaction_coa_id           => l_adr_transaction_coa_id
58008   , p_accounting_coa_id            => l_adr_accounting_coa_id
58009   , p_adr_code                     => 'PROJ_PROJ_BURDEN_ENC_ACCT_RULE'
58010   , p_adr_type_code                => 'S'
58011   , p_component_type               => l_component_type
58012   , p_component_code               => l_component_code
58013   , p_component_type_code          => l_component_type_code
58014   , p_component_appl_id            => l_component_appl_id
58015   , p_amb_context_code             => l_amb_context_code
58016   , p_side                         => 'NA'
58017   );
58018 
58019 
58020    --
58021    --
58022    END IF;
58023    --
58024    -- Bug 4922099
58025    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58026           (NVL(l_enc_upg_option, 'N') = 'O')
58027         ) AND
58028         (l_bflow_method_code = 'PRIOR_ENTRY')
58029       )
58030    THEN
58031       IF
58032       --
58036       xla_accounting_err_pkg.build_message
58033       1 = 2
58034       --
58035       THEN
58037                                     (p_appli_s_name            => 'XLA'
58038                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58039                                     ,p_token_1                 => 'LINE_NUMBER'
58040                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58041                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58042                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58043                                                                              l_component_type
58044                                                                             ,l_component_code
58045                                                                             ,l_component_type_code
58046                                                                             ,l_component_appl_id
58047                                                                             ,l_amb_context_code
58048                                                                             ,l_entity_code
58049                                                                             ,l_event_class_code
58050                                                                            )
58051                                     ,p_token_3                 => 'OWNER'
58052                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58053                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58054                                                                           ,p_lookup_code    => l_component_type_code
58055                                                                          )
58056                                     ,p_token_4                 => 'PRODUCT_NAME'
58057                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58058                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58059                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58060                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58061                                     ,p_ae_header_id            =>  NULL
58062                                        );
58063 
58064         IF (C_LEVEL_ERROR>= g_log_level) THEN
58065                  trace
58066                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58067                       ,p_level    => C_LEVEL_ERROR
58068                       ,p_module   => l_log_module);
58069         END IF;
58070       END IF;
58071    END IF;
58072    --
58073    --
58074    ------------------------------------------------------------------------------------------------
58075    -- 4219869 Business Flow
58076    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58077    -- Prior Entry.  Currently, the following code is always generated.
58078    ------------------------------------------------------------------------------------------------
58079    XLA_AE_LINES_PKG.ValidateCurrentLine;
58080 
58081    ------------------------------------------------------------------------------------
58082    -- 4219869 Business Flow
58083    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58084    ------------------------------------------------------------------------------------
58085    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58086 
58087    ----------------------------------------------------------------------------------
58088    -- 4219869 Business Flow
58089    -- Update journal entry status -- Need to generate this within IF <condition>
58090    ----------------------------------------------------------------------------------
58091    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58092          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58093          ,p_balance_type_code => l_balance_type_code
58094          );
58095 
58096    -------------------------------------------------------------------------------------------
58097    -- 4262811 - Generate the Accrual Reversal lines
58098    -------------------------------------------------------------------------------------------
58099    BEGIN
58100       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58101                               (g_array_event(p_event_id).array_value_num('header_index'));
58102       IF l_acc_rev_flag IS NULL THEN
58103          l_acc_rev_flag := 'N';
58104       END IF;
58105    EXCEPTION
58106       WHEN OTHERS THEN
58107          l_acc_rev_flag := 'N';
58108    END;
58109    --
58110    IF (l_acc_rev_flag = 'Y') THEN
58111 
58112        -- 4645092  ------------------------------------------------------------------------------
58113        -- To allow MPA report to determine if it should generate report process
58114        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58115        ------------------------------------------------------------------------------------------
58116 
58117        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58118        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58119    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58120    -- call ADRs
58121    -- Bug 4922099
58122    --
58123    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58124         (NVL(l_actual_upg_option, 'N') = 'O') OR
58128    NULL;
58125         (NVL(l_enc_upg_option, 'N') = 'O')
58126       )
58127    THEN
58129    --
58130    --
58131    
58132   l_ccid := AcctDerRule_13(
58133            p_application_id           => p_application_id
58134          , p_ae_header_id             => l_ae_header_id 
58135 , p_source_14 => p_source_14
58136          , x_transaction_coa_id       => l_adr_transaction_coa_id
58137          , x_accounting_coa_id        => l_adr_accounting_coa_id
58138          , x_value_type_code          => l_adr_value_type_code
58139          , p_side                     => 'NA'
58140    );
58141 
58142    xla_ae_lines_pkg.set_ccid(
58143     p_code_combination_id          => l_ccid
58144   , p_value_type_code              => l_adr_value_type_code
58145   , p_transaction_coa_id           => l_adr_transaction_coa_id
58146   , p_accounting_coa_id            => l_adr_accounting_coa_id
58147   , p_adr_code                     => 'PROJ_PROJ_BURDEN_ENC_ACCT_RULE'
58148   , p_adr_type_code                => 'S'
58149   , p_component_type               => l_component_type
58150   , p_component_code               => l_component_code
58151   , p_component_type_code          => l_component_type_code
58152   , p_component_appl_id            => l_component_appl_id
58153   , p_amb_context_code             => l_amb_context_code
58154   , p_side                         => 'NA'
58155   );
58156 
58157 
58158    --
58159    --
58160    END IF;
58161 
58162        --
58163        -- Update the line information that should be overwritten
58164        --
58165        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58166                                          p_header_num   => 1);
58167        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58168 
58169        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58170 
58171        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58172           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58173        END IF;
58174 
58175       --
58176       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58177       --
58178       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58179           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58180       ELSE
58181           ---------------------------------------------------------------------------------------------------
58182           -- 4262811a Switch Sign
58183           ---------------------------------------------------------------------------------------------------
58184           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58185           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58186                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58187           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58188                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58189           -- 5132302
58190           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58191                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58192 
58193       END IF;
58194 
58195       -- 4955764
58196       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58197       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58198 
58199 
58200       XLA_AE_LINES_PKG.ValidateCurrentLine;
58201       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58202 
58203       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58204                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58205                ,p_balance_type_code => l_balance_type_code);
58206 
58207    END IF;
58208 
58209    -----------------------------------------------------------------------------------------
58210    -- 4262811 Multiperiod Accounting
58211    -----------------------------------------------------------------------------------------
58212      -- No MPA option is assigned.
58213 
58214 
58215 END IF;
58216 END IF;
58217 --
58218 
58219 --
58220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58221    trace
58222       (p_msg      => 'END of AcctLineType_91'
58223       ,p_level    => C_LEVEL_PROCEDURE
58224       ,p_module   => l_log_module);
58225 END IF;
58226 --
58227 EXCEPTION
58228   WHEN xla_exceptions_pkg.application_exception THEN
58229       RAISE;
58230   WHEN OTHERS THEN
58231        xla_exceptions_pkg.raise_message
58232            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_91');
58233 END AcctLineType_91;
58234 --
58235 
58236 ---------------------------------------
58237 --
58238 -- PRIVATE FUNCTION
58239 --         AcctLineType_92
58240 --
58241 ---------------------------------------
58242 PROCEDURE AcctLineType_92 (
58243   p_application_id        IN NUMBER
58244  ,p_event_id              IN NUMBER
58245  ,p_calculate_acctd_flag  IN VARCHAR2
58246  ,p_calculate_g_l_flag    IN VARCHAR2
58247  ,p_actual_flag           IN OUT VARCHAR2
58251 --Document Distribution Type
58248  ,p_balance_type_code     OUT VARCHAR2
58249  ,p_gain_or_loss_ref      OUT VARCHAR2
58250  
58252  , p_source_2            IN VARCHAR2
58253 --Project Name
58254  , p_source_3            IN VARCHAR2
58255 --Task Number
58256  , p_source_4            IN VARCHAR2
58257 --Expenditure Organization
58258  , p_source_5            IN NUMBER
58259 --Budget Account
58260  , p_source_14            IN NUMBER
58261 --Distribution Link Type
58262  , p_source_21            IN VARCHAR2
58263 --Invoice Distribution Identifier
58264  , p_source_30            IN NUMBER
58265 --Invoice Currency Code
58266  , p_source_33            IN VARCHAR2
58267 --Invoice Exchange Date
58268  , p_source_39            IN DATE
58269 --Invoice Exchange Rate
58270  , p_source_40            IN NUMBER
58271 --Invoice Exchange Rate Type
58272  , p_source_41            IN VARCHAR2
58273 --Invoice Distribution Amount
58274  , p_source_57            IN NUMBER
58275 --Document Type
58276  , p_source_83            IN VARCHAR2
58277 --Burden Amount Display Method
58278  , p_source_84            IN VARCHAR2
58279 --Accounting reversal indicator for project invoice burden
58280  , p_source_85            IN VARCHAR2
58281 --Allocated to Application Identifier
58282  , p_source_86            IN NUMBER
58283 --Allocated to Distribution Type
58284  , p_source_87            IN VARCHAR2
58285 --Allocated to Entity Code
58286  , p_source_88            IN VARCHAR2
58287 --Allocated to First Distribution Identifier
58288  , p_source_89            IN NUMBER
58289 --Allocated to First System Transaction Identifier
58290  , p_source_90            IN NUMBER
58291 --Invoice Burden Applied to Application Identifier
58292  , p_source_91            IN NUMBER
58293 --Invoice Burden Applied to Distribution Type
58294  , p_source_92            IN VARCHAR2
58295 --Invoice Burden Applied to Entity Code
58296  , p_source_93            IN VARCHAR2
58297 --Invoice Burden Applied to First Distribution Identifier
58298  , p_source_94            IN NUMBER
58299 --Invoice Burden Applied to System Transaction Identifier
58300  , p_source_95            IN NUMBER
58301 --Invoice Distribution Expenditure Type
58302  , p_source_96            IN VARCHAR2
58303 --Encumbrance Upgrade Credit Accounting Class
58304  , p_source_97            IN VARCHAR2
58305 --Encumbrance Upgrade Credit Account
58306  , p_source_98            IN NUMBER
58307 --Invoice Distribution Ledger Amount Before Rounding
58308  , p_source_99            IN NUMBER
58309 --Encumbrance Upgrade Debit Accounting Class
58310  , p_source_100            IN VARCHAR2
58311 --Encumbrance Upgrade Debit Account
58312  , p_source_101            IN NUMBER
58313 --Use Encumbrances Upgrade Attributes Flag
58314  , p_source_102            IN VARCHAR2
58315 --Accounting reversal first distribution identifier for project invoice burden
58316  , p_source_103            IN NUMBER
58317 --Invoice Burden Applied to Second Distribution Identifier
58318  , p_source_104            IN VARCHAR2
58319 --Accounting reversal distribution type for project invoice burden
58320  , p_source_105            IN VARCHAR2
58321 --Encumbrance Upgrade Credit Encumbrance Type
58322  , p_source_106            IN NUMBER
58323 --Encumbrance Upgrade Debit Encumbrance Type
58324  , p_source_107            IN NUMBER
58325 --Burden Record Identifier
58326  , p_source_108            IN VARCHAR2
58327  , p_source_108_meaning    IN VARCHAR2
58328 )
58329 IS
58330 
58331 l_component_type              VARCHAR2(80);
58332 l_component_code              VARCHAR2(30);
58333 l_component_type_code         VARCHAR2(1);
58334 l_component_appl_id           INTEGER;
58335 l_amb_context_code            VARCHAR2(30);
58336 l_entity_code                 VARCHAR2(30);
58337 l_event_class_code            VARCHAR2(30);
58338 l_ae_header_id                NUMBER;
58339 l_event_type_code             VARCHAR2(30);
58340 l_line_definition_code        VARCHAR2(30);
58341 l_line_definition_owner_code  VARCHAR2(1);
58342 --
58343 -- adr variables
58344 l_segment                     VARCHAR2(30);
58345 l_ccid                        NUMBER;
58346 l_adr_transaction_coa_id      NUMBER;
58347 l_adr_accounting_coa_id       NUMBER;
58348 l_adr_flexfield_segment_code  VARCHAR2(30);
58349 l_adr_flex_value_set_id       NUMBER;
58350 l_adr_value_type_code         VARCHAR2(30);
58351 l_adr_value_combination_id    NUMBER;
58352 l_adr_value_segment_code      VARCHAR2(30);
58353 
58354 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58355 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58356 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58357 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58358 
58359 -- 4262811 Variables ------------------------------------------------------------------------------------------
58360 l_entered_amt_idx             NUMBER;
58361 l_accted_amt_idx              NUMBER;
58362 l_acc_rev_flag                VARCHAR2(1);
58363 l_accrual_line_num            NUMBER;
58364 l_tmp_amt                     NUMBER;
58365 l_acc_rev_natural_side_code   VARCHAR2(1);
58366 
58367 l_num_entries                 NUMBER;
58368 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58369 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58370 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58374 
58371 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58372 l_recog_line_1                NUMBER;
58373 l_recog_line_2                NUMBER;
58375 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58376 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58377 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58378 
58379 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58380 
58381 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58382 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58383 
58384 ---------------------------------------------------------------------------------------------------------------
58385 
58386 
58387 --
58388 -- bulk performance
58389 --
58390 l_balance_type_code           VARCHAR2(1);
58391 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58392 l_log_module                  VARCHAR2(240);
58393 
58394 --
58395 -- Upgrade strategy
58396 --
58397 l_actual_upg_option           VARCHAR2(1);
58398 l_enc_upg_option           VARCHAR2(1);
58399 
58400 --
58401 BEGIN
58402 --
58403 IF g_log_enabled THEN
58404       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
58405 END IF;
58406 --
58407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58408 
58409       trace
58410          (p_msg      => 'BEGIN of AcctLineType_92'
58411          ,p_level    => C_LEVEL_PROCEDURE
58412          ,p_module   => l_log_module);
58413 
58414 END IF;
58415 --
58416 l_component_type             := 'AMB_JLT';
58417 l_component_code             := 'PREPAY_ENCUMBRANCE';
58418 l_component_type_code        := 'S';
58419 l_component_appl_id          :=  200;
58420 l_amb_context_code           := 'DEFAULT';
58421 l_entity_code                := 'AP_INVOICES';
58422 l_event_class_code           := 'PREPAYMENT_BURDEN';
58423 l_event_type_code            := 'PREPAYMENT_BURDEN_ALL';
58424 l_line_definition_owner_code := 'S';
58425 l_line_definition_code       := 'AP_PREPAY_BURDEN_ENC_ALL';
58426 --
58427 l_balance_type_code          := 'E';
58428 l_segment                     := NULL;
58429 l_ccid                        := NULL;
58430 l_adr_transaction_coa_id      := NULL;
58431 l_adr_accounting_coa_id       := NULL;
58432 l_adr_flexfield_segment_code  := NULL;
58433 l_adr_flex_value_set_id       := NULL;
58434 l_adr_value_type_code         := NULL;
58435 l_adr_value_combination_id    := NULL;
58436 l_adr_value_segment_code      := NULL;
58437 
58438 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58439 l_bflow_class_code           := 'AP_PREPAY_PA_ENC';    -- 4219869 Business Flow
58440 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58441 l_budgetary_control_flag     := 'Y';
58442 
58443 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58444 l_bflow_applied_to_amt       := NULL; -- 5132302
58445 l_entered_amt_idx            := NULL;          -- 4262811
58446 l_accted_amt_idx             := NULL;          -- 4262811
58447 l_acc_rev_flag               := NULL;          -- 4262811
58448 l_accrual_line_num           := NULL;          -- 4262811
58449 l_tmp_amt                    := NULL;          -- 4262811
58450 --
58451  
58452 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58453     l_balance_type_code <> 'B' THEN
58454 IF NVL(p_source_83,'
58455 ') =  'AP' AND 
58456 (NVL(p_source_2,'
58457 ') <>  'PREPAY APPL' OR 
58458 NVL(p_source_2,'
58459 ') <>  'TAX DIFF' OR 
58460 NVL(p_source_2,'
58461 ') <>  'FINAL APPLICATION ROUNDING') AND 
58462 (NVL(p_source_84,'
58463 ') =  'N' OR 
58464 (NVL(p_source_84,'
58465 ') =  'D' AND 
58466 NVL(p_source_108,'
58467 ') =  'N')
58468 ) THEN 
58469 
58470    --
58471    XLA_AE_LINES_PKG.SetNewLine;
58472 
58473    p_balance_type_code          := l_balance_type_code;
58474    -- set the flag so later we will know whether the gain loss line needs to be created
58475    
58476    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58477      p_actual_flag :='A';
58478    END IF;
58479 
58480    --
58481    -- bulk performance
58482    --
58483    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58484                                       p_header_num   => 0); -- 4262811
58485    --
58486    -- set accounting line options
58487    --
58488    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58489            p_natural_side_code          => 'D'
58490          , p_gain_or_loss_flag          => 'N'
58491          , p_gl_transfer_mode_code      => 'S'
58492          , p_acct_entry_type_code       => 'E'
58493          , p_switch_side_flag           => 'Y'
58494          , p_merge_duplicate_code       => 'N'
58495          );
58496    --
58497    l_acc_rev_natural_side_code := 'C';  -- 4262811
58498    -- 
58499    --
58500    -- set accounting line type info
58501    --
58502    xla_ae_lines_pkg.SetAcctLineType
58503       (p_component_type             => l_component_type
58504       ,p_event_type_code            => l_event_type_code
58505       ,p_line_definition_owner_code => l_line_definition_owner_code
58506       ,p_line_definition_code       => l_line_definition_code
58510       ,p_amb_context_code           => l_amb_context_code
58507       ,p_accounting_line_code       => l_component_code
58508       ,p_accounting_line_type_code  => l_component_type_code
58509       ,p_accounting_line_appl_id    => l_component_appl_id
58511       ,p_entity_code                => l_entity_code
58512       ,p_event_class_code           => l_event_class_code);
58513    --
58514    -- set accounting class
58515    --
58516    xla_ae_lines_pkg.SetAcctClass(
58517            p_accounting_class_code  => 'AP_PREPAY_BURDEN'
58518          , p_ae_header_id           => l_ae_header_id
58519          );
58520 
58521    --
58522    -- set rounding class
58523    --
58524    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58525                       'AP_PREPAY_BURDEN';
58526 
58527    --
58528    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58529    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58530    --
58531    -- bulk performance
58532    --
58533    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58534 
58535    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58536       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58537 
58538    -- 4955764
58539    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58540       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58541 
58542    -- 4458381 Public Sector Enh
58543       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
58544    --
58545    -- set accounting attributes for the line type
58546    --
58547    l_entered_amt_idx := 27;
58548    l_accted_amt_idx  := 32;
58549    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58550    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58551    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
58552    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58553    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
58554    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58555    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
58556    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58557    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
58558    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58559    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
58560    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58561    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
58562    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58563    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
58564    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58565    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
58566    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58567    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
58568    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58569    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
58570    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58571    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
58572    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
58573    l_rec_acct_attrs.array_char_value(12)  := p_source_104;
58574    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
58575    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
58576    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
58577    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
58578    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
58579    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
58580    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
58581    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
58582    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
58583    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
58584    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
58585    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
58586    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
58587    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
58588    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
58589    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
58590    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
58591    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
58592    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
58593    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
58594    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
58595    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
58596    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
58597    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
58598    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
58599    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
58600    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
58601    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
58602    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
58606    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_DATE';
58603    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
58604    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
58605    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
58607    l_rec_acct_attrs.array_date_value(29)  := p_source_39;
58608    l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_RATE';
58609    l_rec_acct_attrs.array_num_value(30)  := p_source_40;
58610    l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE_TYPE';
58611    l_rec_acct_attrs.array_char_value(31)  := p_source_41;
58612    l_rec_acct_attrs.array_acct_attr_code(32) := 'LEDGER_AMOUNT';
58613    l_rec_acct_attrs.array_num_value(32)  := p_source_99;
58614    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
58615    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_103);
58616    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID2';
58617    l_rec_acct_attrs.array_char_value(34)  := p_source_104;
58618    l_rec_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_TYPE';
58619    l_rec_acct_attrs.array_char_value(35)  := p_source_105;
58620    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
58621    l_rec_acct_attrs.array_num_value(36)  := p_source_106;
58622    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
58623    l_rec_acct_attrs.array_num_value(37)  := p_source_107;
58624 
58625    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58626    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58627 
58628    ---------------------------------------------------------------------------------------------------------------
58629    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58630    ---------------------------------------------------------------------------------------------------------------
58631    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58632 
58633    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58634    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58635 
58636    IF xla_accounting_cache_pkg.GetValueChar
58637          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58638          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58639    AND l_bflow_method_code = 'PRIOR_ENTRY'
58640 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58641    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58642          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58643        )
58644    THEN
58645          xla_ae_lines_pkg.BflowUpgEntry
58646            (p_business_method_code    => l_bflow_method_code
58647            ,p_business_class_code     => l_bflow_class_code
58648            ,p_balance_type            => l_balance_type_code);
58649    ELSE
58650       NULL;
58651 -- No business flow processing for business flow method of NONE.
58652    END IF;
58653 
58654    --
58655    -- call analytical criteria
58656    --
58657    
58658    --
58659    -- call description
58660    --
58661    
58662 xla_ae_lines_pkg.SetLineDescription(
58663    p_ae_header_id => l_ae_header_id
58664   ,p_description  => Description_3 (
58665      p_application_id         => p_application_id
58666    , p_ae_header_id           => l_ae_header_id 
58667 , p_source_2 => p_source_2
58668 , p_source_3 => p_source_3
58669 , p_source_4 => p_source_4
58670 , p_source_5 => p_source_5
58671    )
58672 );
58673 
58674 
58675    --
58676    -- call ADRs
58677    -- Bug 4922099
58678    --
58679    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58680         (NVL(l_actual_upg_option, 'N') = 'O') OR
58681         (NVL(l_enc_upg_option, 'N') = 'O')
58682       )
58683    THEN
58684    NULL;
58685    --
58686    --
58687    
58688   l_ccid := AcctDerRule_12(
58689            p_application_id           => p_application_id
58690          , p_ae_header_id             => l_ae_header_id 
58691 , p_source_14 => p_source_14
58692          , x_transaction_coa_id       => l_adr_transaction_coa_id
58693          , x_accounting_coa_id        => l_adr_accounting_coa_id
58694          , x_value_type_code          => l_adr_value_type_code
58695          , p_side                     => 'NA'
58696    );
58697 
58698    xla_ae_lines_pkg.set_ccid(
58699     p_code_combination_id          => l_ccid
58700   , p_value_type_code              => l_adr_value_type_code
58701   , p_transaction_coa_id           => l_adr_transaction_coa_id
58702   , p_accounting_coa_id            => l_adr_accounting_coa_id
58703   , p_adr_code                     => 'PROJ_PREPAY_ENC_ACCT_RULE'
58704   , p_adr_type_code                => 'S'
58705   , p_component_type               => l_component_type
58706   , p_component_code               => l_component_code
58707   , p_component_type_code          => l_component_type_code
58708   , p_component_appl_id            => l_component_appl_id
58709   , p_amb_context_code             => l_amb_context_code
58710   , p_side                         => 'NA'
58711   );
58712 
58713 
58714    --
58715    --
58716    END IF;
58717    --
58718    -- Bug 4922099
58719    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58720           (NVL(l_enc_upg_option, 'N') = 'O')
58721         ) AND
58725       IF
58722         (l_bflow_method_code = 'PRIOR_ENTRY')
58723       )
58724    THEN
58726       --
58727       1 = 2
58728       --
58729       THEN
58730       xla_accounting_err_pkg.build_message
58731                                     (p_appli_s_name            => 'XLA'
58732                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58733                                     ,p_token_1                 => 'LINE_NUMBER'
58734                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58735                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58736                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58737                                                                              l_component_type
58738                                                                             ,l_component_code
58739                                                                             ,l_component_type_code
58740                                                                             ,l_component_appl_id
58741                                                                             ,l_amb_context_code
58742                                                                             ,l_entity_code
58743                                                                             ,l_event_class_code
58744                                                                            )
58745                                     ,p_token_3                 => 'OWNER'
58746                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58747                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58748                                                                           ,p_lookup_code    => l_component_type_code
58749                                                                          )
58750                                     ,p_token_4                 => 'PRODUCT_NAME'
58751                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58752                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58753                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58754                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58755                                     ,p_ae_header_id            =>  NULL
58756                                        );
58757 
58758         IF (C_LEVEL_ERROR>= g_log_level) THEN
58759                  trace
58760                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58761                       ,p_level    => C_LEVEL_ERROR
58762                       ,p_module   => l_log_module);
58763         END IF;
58764       END IF;
58765    END IF;
58766    --
58767    --
58768    ------------------------------------------------------------------------------------------------
58769    -- 4219869 Business Flow
58770    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58771    -- Prior Entry.  Currently, the following code is always generated.
58772    ------------------------------------------------------------------------------------------------
58773    XLA_AE_LINES_PKG.ValidateCurrentLine;
58774 
58775    ------------------------------------------------------------------------------------
58776    -- 4219869 Business Flow
58777    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58778    ------------------------------------------------------------------------------------
58779    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58780 
58781    ----------------------------------------------------------------------------------
58782    -- 4219869 Business Flow
58783    -- Update journal entry status -- Need to generate this within IF <condition>
58784    ----------------------------------------------------------------------------------
58785    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58786          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58787          ,p_balance_type_code => l_balance_type_code
58788          );
58789 
58790    -------------------------------------------------------------------------------------------
58791    -- 4262811 - Generate the Accrual Reversal lines
58792    -------------------------------------------------------------------------------------------
58793    BEGIN
58794       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58795                               (g_array_event(p_event_id).array_value_num('header_index'));
58796       IF l_acc_rev_flag IS NULL THEN
58797          l_acc_rev_flag := 'N';
58798       END IF;
58799    EXCEPTION
58800       WHEN OTHERS THEN
58801          l_acc_rev_flag := 'N';
58802    END;
58803    --
58804    IF (l_acc_rev_flag = 'Y') THEN
58805 
58806        -- 4645092  ------------------------------------------------------------------------------
58807        -- To allow MPA report to determine if it should generate report process
58808        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58809        ------------------------------------------------------------------------------------------
58810 
58811        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58812        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58813    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58814    -- call ADRs
58815    -- Bug 4922099
58816    --
58820       )
58817    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58818         (NVL(l_actual_upg_option, 'N') = 'O') OR
58819         (NVL(l_enc_upg_option, 'N') = 'O')
58821    THEN
58822    NULL;
58823    --
58824    --
58825    
58826   l_ccid := AcctDerRule_12(
58827            p_application_id           => p_application_id
58828          , p_ae_header_id             => l_ae_header_id 
58829 , p_source_14 => p_source_14
58830          , x_transaction_coa_id       => l_adr_transaction_coa_id
58831          , x_accounting_coa_id        => l_adr_accounting_coa_id
58832          , x_value_type_code          => l_adr_value_type_code
58833          , p_side                     => 'NA'
58834    );
58835 
58836    xla_ae_lines_pkg.set_ccid(
58837     p_code_combination_id          => l_ccid
58838   , p_value_type_code              => l_adr_value_type_code
58839   , p_transaction_coa_id           => l_adr_transaction_coa_id
58840   , p_accounting_coa_id            => l_adr_accounting_coa_id
58841   , p_adr_code                     => 'PROJ_PREPAY_ENC_ACCT_RULE'
58842   , p_adr_type_code                => 'S'
58843   , p_component_type               => l_component_type
58844   , p_component_code               => l_component_code
58845   , p_component_type_code          => l_component_type_code
58846   , p_component_appl_id            => l_component_appl_id
58847   , p_amb_context_code             => l_amb_context_code
58848   , p_side                         => 'NA'
58849   );
58850 
58851 
58852    --
58853    --
58854    END IF;
58855 
58856        --
58857        -- Update the line information that should be overwritten
58858        --
58859        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58860                                          p_header_num   => 1);
58861        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58862 
58863        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58864 
58865        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58866           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58867        END IF;
58868 
58869       --
58870       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58871       --
58872       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58873           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58874       ELSE
58875           ---------------------------------------------------------------------------------------------------
58876           -- 4262811a Switch Sign
58877           ---------------------------------------------------------------------------------------------------
58878           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58879           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58880                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58881           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58882                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58883           -- 5132302
58884           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58885                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58886 
58887       END IF;
58888 
58889       -- 4955764
58890       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58891       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58892 
58893 
58894       XLA_AE_LINES_PKG.ValidateCurrentLine;
58895       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58896 
58897       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58898                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58899                ,p_balance_type_code => l_balance_type_code);
58900 
58901    END IF;
58902 
58903    -----------------------------------------------------------------------------------------
58904    -- 4262811 Multiperiod Accounting
58905    -----------------------------------------------------------------------------------------
58906      -- No MPA option is assigned.
58907 
58908 
58909 END IF;
58910 END IF;
58911 --
58912 
58913 --
58914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58915    trace
58916       (p_msg      => 'END of AcctLineType_92'
58917       ,p_level    => C_LEVEL_PROCEDURE
58918       ,p_module   => l_log_module);
58919 END IF;
58920 --
58921 EXCEPTION
58922   WHEN xla_exceptions_pkg.application_exception THEN
58923       RAISE;
58924   WHEN OTHERS THEN
58925        xla_exceptions_pkg.raise_message
58926            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_92');
58927 END AcctLineType_92;
58928 --
58929 
58930 ---------------------------------------
58931 --
58932 -- PRIVATE FUNCTION
58933 --         AcctLineType_93
58934 --
58935 ---------------------------------------
58936 PROCEDURE AcctLineType_93 (
58937   p_application_id        IN NUMBER
58938  ,p_event_id              IN NUMBER
58942  ,p_balance_type_code     OUT VARCHAR2
58939  ,p_calculate_acctd_flag  IN VARCHAR2
58940  ,p_calculate_g_l_flag    IN VARCHAR2
58941  ,p_actual_flag           IN OUT VARCHAR2
58943  ,p_gain_or_loss_ref      OUT VARCHAR2
58944  
58945 --Document Distribution Type
58946  , p_source_2            IN VARCHAR2
58947 --Project Name
58948  , p_source_3            IN VARCHAR2
58949 --Task Number
58950  , p_source_4            IN VARCHAR2
58951 --Expenditure Organization
58952  , p_source_5            IN NUMBER
58953 --Distribution Link Type
58954  , p_source_21            IN VARCHAR2
58955 --Invoice Distribution Identifier
58956  , p_source_30            IN NUMBER
58957 --Invoice Currency Code
58958  , p_source_33            IN VARCHAR2
58959 --Invoice Distribution Amount
58960  , p_source_57            IN NUMBER
58961 --Document Type
58962  , p_source_83            IN VARCHAR2
58963 --Accounting reversal indicator for project invoice burden
58964  , p_source_85            IN VARCHAR2
58965 --Allocated to Application Identifier
58966  , p_source_86            IN NUMBER
58967 --Allocated to Distribution Type
58968  , p_source_87            IN VARCHAR2
58969 --Allocated to Entity Code
58970  , p_source_88            IN VARCHAR2
58971 --Allocated to First Distribution Identifier
58972  , p_source_89            IN NUMBER
58973 --Allocated to First System Transaction Identifier
58974  , p_source_90            IN NUMBER
58975 --Invoice Distribution Expenditure Type
58976  , p_source_96            IN VARCHAR2
58977 --Encumbrance Upgrade Credit Accounting Class
58978  , p_source_97            IN VARCHAR2
58979 --Encumbrance Upgrade Credit Account
58980  , p_source_98            IN NUMBER
58981 --Invoice Distribution Ledger Amount Before Rounding
58982  , p_source_99            IN NUMBER
58983 --Encumbrance Upgrade Debit Accounting Class
58984  , p_source_100            IN VARCHAR2
58985 --Encumbrance Upgrade Debit Account
58986  , p_source_101            IN NUMBER
58987 --Use Encumbrances Upgrade Attributes Flag
58988  , p_source_102            IN VARCHAR2
58989 --Accounting reversal first distribution identifier for project invoice burden
58990  , p_source_103            IN NUMBER
58991 --Invoice Burden Applied to Second Distribution Identifier
58992  , p_source_104            IN VARCHAR2
58993 --Accounting reversal distribution type for project invoice burden
58994  , p_source_105            IN VARCHAR2
58995 --Encumbrance Upgrade Credit Encumbrance Type
58996  , p_source_106            IN NUMBER
58997 --Encumbrance Upgrade Debit Encumbrance Type
58998  , p_source_107            IN NUMBER
58999 --Project Encumbrance Applied to Application Identifier
59000  , p_source_109            IN NUMBER
59001 --Project Encumbrance Applied to Distribution Type
59002  , p_source_110            IN VARCHAR2
59003 --Project Encumbrance Applied to Entity Code
59004  , p_source_111            IN VARCHAR2
59005 --Project Encumbrance First Distribution Identifier
59006  , p_source_112            IN NUMBER
59007 --Project Encumbrance First System Transaction Identifier
59008  , p_source_113            IN NUMBER
59009 --Project Encumbrance Second Distribution Identifier
59010  , p_source_114            IN VARCHAR2
59011 )
59012 IS
59013 
59014 l_component_type              VARCHAR2(80);
59015 l_component_code              VARCHAR2(30);
59016 l_component_type_code         VARCHAR2(1);
59017 l_component_appl_id           INTEGER;
59018 l_amb_context_code            VARCHAR2(30);
59019 l_entity_code                 VARCHAR2(30);
59020 l_event_class_code            VARCHAR2(30);
59021 l_ae_header_id                NUMBER;
59022 l_event_type_code             VARCHAR2(30);
59023 l_line_definition_code        VARCHAR2(30);
59024 l_line_definition_owner_code  VARCHAR2(1);
59025 --
59026 -- adr variables
59027 l_segment                     VARCHAR2(30);
59028 l_ccid                        NUMBER;
59029 l_adr_transaction_coa_id      NUMBER;
59030 l_adr_accounting_coa_id       NUMBER;
59031 l_adr_flexfield_segment_code  VARCHAR2(30);
59032 l_adr_flex_value_set_id       NUMBER;
59033 l_adr_value_type_code         VARCHAR2(30);
59034 l_adr_value_combination_id    NUMBER;
59035 l_adr_value_segment_code      VARCHAR2(30);
59036 
59037 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59038 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59039 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59040 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59041 
59042 -- 4262811 Variables ------------------------------------------------------------------------------------------
59043 l_entered_amt_idx             NUMBER;
59044 l_accted_amt_idx              NUMBER;
59045 l_acc_rev_flag                VARCHAR2(1);
59046 l_accrual_line_num            NUMBER;
59047 l_tmp_amt                     NUMBER;
59048 l_acc_rev_natural_side_code   VARCHAR2(1);
59049 
59050 l_num_entries                 NUMBER;
59051 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59052 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59053 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59054 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59055 l_recog_line_1                NUMBER;
59056 l_recog_line_2                NUMBER;
59057 
59058 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59062 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59059 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59060 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59061 
59063 
59064 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59065 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59066 
59067 ---------------------------------------------------------------------------------------------------------------
59068 
59069 
59070 --
59071 -- bulk performance
59072 --
59073 l_balance_type_code           VARCHAR2(1);
59074 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59075 l_log_module                  VARCHAR2(240);
59076 
59077 --
59078 -- Upgrade strategy
59079 --
59080 l_actual_upg_option           VARCHAR2(1);
59081 l_enc_upg_option           VARCHAR2(1);
59082 
59083 --
59084 BEGIN
59085 --
59086 IF g_log_enabled THEN
59087       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
59088 END IF;
59089 --
59090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59091 
59092       trace
59093          (p_msg      => 'BEGIN of AcctLineType_93'
59094          ,p_level    => C_LEVEL_PROCEDURE
59095          ,p_module   => l_log_module);
59096 
59097 END IF;
59098 --
59099 l_component_type             := 'AMB_JLT';
59100 l_component_code             := 'RELIEVE_PROJ_ENC';
59101 l_component_type_code        := 'S';
59102 l_component_appl_id          :=  200;
59103 l_amb_context_code           := 'DEFAULT';
59104 l_entity_code                := 'AP_INVOICES';
59105 l_event_class_code           := 'INVOICE_BURDEN';
59106 l_event_type_code            := 'INVOICE_BURDEN_ALL';
59107 l_line_definition_owner_code := 'S';
59108 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
59109 --
59110 l_balance_type_code          := 'E';
59111 l_segment                     := NULL;
59112 l_ccid                        := NULL;
59113 l_adr_transaction_coa_id      := NULL;
59114 l_adr_accounting_coa_id       := NULL;
59115 l_adr_flexfield_segment_code  := NULL;
59116 l_adr_flex_value_set_id       := NULL;
59117 l_adr_value_type_code         := NULL;
59118 l_adr_value_combination_id    := NULL;
59119 l_adr_value_segment_code      := NULL;
59120 
59121 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
59122 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
59123 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59124 l_budgetary_control_flag     := 'Y';
59125 
59126 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59127 l_bflow_applied_to_amt       := NULL; -- 5132302
59128 l_entered_amt_idx            := NULL;          -- 4262811
59129 l_accted_amt_idx             := NULL;          -- 4262811
59130 l_acc_rev_flag               := NULL;          -- 4262811
59131 l_accrual_line_num           := NULL;          -- 4262811
59132 l_tmp_amt                    := NULL;          -- 4262811
59133 --
59134  
59135 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59136     l_balance_type_code <> 'B' THEN
59137 IF NVL(p_source_83,'
59138 ') =  'AP'
59139  THEN 
59140 
59141    --
59142    XLA_AE_LINES_PKG.SetNewLine;
59143 
59144    p_balance_type_code          := l_balance_type_code;
59145    -- set the flag so later we will know whether the gain loss line needs to be created
59146    
59147    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59148      p_actual_flag :='A';
59149    END IF;
59150 
59151    --
59152    -- bulk performance
59153    --
59154    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59155                                       p_header_num   => 0); -- 4262811
59156    --
59157    -- set accounting line options
59158    --
59159    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59160            p_natural_side_code          => 'C'
59161          , p_gain_or_loss_flag          => 'N'
59162          , p_gl_transfer_mode_code      => 'S'
59163          , p_acct_entry_type_code       => 'E'
59164          , p_switch_side_flag           => 'Y'
59165          , p_merge_duplicate_code       => 'N'
59166          );
59167    --
59168    l_acc_rev_natural_side_code := 'D';  -- 4262811
59169    -- 
59170    --
59171    -- set accounting line type info
59172    --
59173    xla_ae_lines_pkg.SetAcctLineType
59174       (p_component_type             => l_component_type
59175       ,p_event_type_code            => l_event_type_code
59176       ,p_line_definition_owner_code => l_line_definition_owner_code
59177       ,p_line_definition_code       => l_line_definition_code
59178       ,p_accounting_line_code       => l_component_code
59179       ,p_accounting_line_type_code  => l_component_type_code
59180       ,p_accounting_line_appl_id    => l_component_appl_id
59181       ,p_amb_context_code           => l_amb_context_code
59182       ,p_entity_code                => l_entity_code
59183       ,p_event_class_code           => l_event_class_code);
59184    --
59185    -- set accounting class
59186    --
59187    xla_ae_lines_pkg.SetAcctClass(
59188            p_accounting_class_code  => 'PA_BUDGET_ENC'
59189          , p_ae_header_id           => l_ae_header_id
59190          );
59194    --
59191 
59192    --
59193    -- set rounding class
59195    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59196                       'PA_BUDGET_ENC';
59197 
59198    --
59199    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59200    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59201    --
59202    -- bulk performance
59203    --
59204    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59205 
59206    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59207       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59208 
59209    -- 4955764
59210    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59211       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59212 
59213    -- 4458381 Public Sector Enh
59214    
59215    --
59216    -- set accounting attributes for the line type
59217    --
59218    l_entered_amt_idx := 27;
59219    l_accted_amt_idx  := 29;
59220    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59221    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59222    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
59223    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59224    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
59225    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59226    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
59227    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59228    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
59229    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59230    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
59231    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59232    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
59233    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
59234    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
59235    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59236    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
59237    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
59238    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
59239    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
59240    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
59241    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59242    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
59243    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
59244    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
59245    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
59246    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
59247    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
59248    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
59249    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
59250    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
59251    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
59252    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
59253    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
59254    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
59255    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
59256    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
59257    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
59258    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
59259    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
59260    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
59261    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
59262    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
59263    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
59264    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
59265    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
59266    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
59267    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
59268    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
59269    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
59270    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
59271    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
59272    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
59273    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
59274    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
59275    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
59276    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
59277    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
59278    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
59279    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
59280    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
59281    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
59282    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
59283    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
59287    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
59284    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
59285    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
59286    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
59288    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
59289 
59290    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59291    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59292 
59293    ---------------------------------------------------------------------------------------------------------------
59294    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59295    ---------------------------------------------------------------------------------------------------------------
59296    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59297 
59298    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59299    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59300 
59301    IF xla_accounting_cache_pkg.GetValueChar
59302          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59303          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59304    AND l_bflow_method_code = 'PRIOR_ENTRY'
59305 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59306    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59307          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59308        )
59309    THEN
59310          xla_ae_lines_pkg.BflowUpgEntry
59311            (p_business_method_code    => l_bflow_method_code
59312            ,p_business_class_code     => l_bflow_class_code
59313            ,p_balance_type            => l_balance_type_code);
59314    ELSE
59315       NULL;
59316 XLA_AE_LINES_PKG.business_flow_validation(
59317                                 p_business_method_code     => l_bflow_method_code
59318                                ,p_business_class_code      => l_bflow_class_code
59319                                ,p_inherit_description_flag => l_inherit_desc_flag);
59320    END IF;
59321 
59322    --
59323    -- call analytical criteria
59324    --
59325    -- Inherited Analytical Criteria for business flow method of Prior Entry.
59326    --
59327    -- call description
59328    --
59329    
59330 xla_ae_lines_pkg.SetLineDescription(
59331    p_ae_header_id => l_ae_header_id
59332   ,p_description  => Description_3 (
59333      p_application_id         => p_application_id
59334    , p_ae_header_id           => l_ae_header_id 
59335 , p_source_2 => p_source_2
59336 , p_source_3 => p_source_3
59337 , p_source_4 => p_source_4
59338 , p_source_5 => p_source_5
59339    )
59340 );
59341 
59342 
59343    --
59344    -- call ADRs
59345    -- Bug 4922099
59346    --
59347    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59348         (NVL(l_actual_upg_option, 'N') = 'O') OR
59349         (NVL(l_enc_upg_option, 'N') = 'O')
59350       )
59351    THEN
59352    NULL;
59353    --
59354    --
59355    
59356    --
59357    --
59358    END IF;
59359    --
59360    -- Bug 4922099
59361    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59362           (NVL(l_enc_upg_option, 'N') = 'O')
59363         ) AND
59364         (l_bflow_method_code = 'PRIOR_ENTRY')
59365       )
59366    THEN
59367       IF
59368       --
59369       1 = 1
59370       --
59371       THEN
59372       xla_accounting_err_pkg.build_message
59373                                     (p_appli_s_name            => 'XLA'
59374                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59375                                     ,p_token_1                 => 'LINE_NUMBER'
59376                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59377                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59378                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59379                                                                              l_component_type
59380                                                                             ,l_component_code
59381                                                                             ,l_component_type_code
59382                                                                             ,l_component_appl_id
59383                                                                             ,l_amb_context_code
59384                                                                             ,l_entity_code
59385                                                                             ,l_event_class_code
59386                                                                            )
59387                                     ,p_token_3                 => 'OWNER'
59388                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59389                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59390                                                                           ,p_lookup_code    => l_component_type_code
59391                                                                          )
59392                                     ,p_token_4                 => 'PRODUCT_NAME'
59396                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59393                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59394                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59395                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59397                                     ,p_ae_header_id            =>  NULL
59398                                        );
59399 
59400         IF (C_LEVEL_ERROR>= g_log_level) THEN
59401                  trace
59402                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59403                       ,p_level    => C_LEVEL_ERROR
59404                       ,p_module   => l_log_module);
59405         END IF;
59406       END IF;
59407    END IF;
59408    --
59409    --
59410    ------------------------------------------------------------------------------------------------
59411    -- 4219869 Business Flow
59412    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59413    -- Prior Entry.  Currently, the following code is always generated.
59414    ------------------------------------------------------------------------------------------------
59415    -- No ValidateCurrentLine for business flow method of Prior Entry
59416 
59417    ------------------------------------------------------------------------------------
59418    -- 4219869 Business Flow
59419    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59420    ------------------------------------------------------------------------------------
59421    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59422 
59423    ----------------------------------------------------------------------------------
59424    -- 4219869 Business Flow
59425    -- Update journal entry status -- Need to generate this within IF <condition>
59426    ----------------------------------------------------------------------------------
59427    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59428          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59429          ,p_balance_type_code => l_balance_type_code
59430          );
59431 
59432    -------------------------------------------------------------------------------------------
59433    -- 4262811 - Generate the Accrual Reversal lines
59434    -------------------------------------------------------------------------------------------
59435    BEGIN
59436       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59437                               (g_array_event(p_event_id).array_value_num('header_index'));
59438       IF l_acc_rev_flag IS NULL THEN
59439          l_acc_rev_flag := 'N';
59440       END IF;
59441    EXCEPTION
59442       WHEN OTHERS THEN
59443          l_acc_rev_flag := 'N';
59444    END;
59445    --
59446    IF (l_acc_rev_flag = 'Y') THEN
59447 
59448        -- 4645092  ------------------------------------------------------------------------------
59449        -- To allow MPA report to determine if it should generate report process
59450        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59451        ------------------------------------------------------------------------------------------
59452 
59453        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59454        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59455    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59456    -- call ADRs
59457    -- Bug 4922099
59458    --
59459    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59460         (NVL(l_actual_upg_option, 'N') = 'O') OR
59461         (NVL(l_enc_upg_option, 'N') = 'O')
59462       )
59463    THEN
59464    NULL;
59465    --
59466    --
59467    
59468    --
59469    --
59470    END IF;
59471 
59472        --
59473        -- Update the line information that should be overwritten
59474        --
59475        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59476                                          p_header_num   => 1);
59477        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59478 
59479        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59480 
59481        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59482           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59483        END IF;
59484 
59485       --
59486       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59487       --
59488       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59489           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59490       ELSE
59491           ---------------------------------------------------------------------------------------------------
59492           -- 4262811a Switch Sign
59493           ---------------------------------------------------------------------------------------------------
59494           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59495           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59496                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59500           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59497           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59498                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59499           -- 5132302
59501                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59502 
59503       END IF;
59504 
59505       -- 4955764
59506       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59507       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59508 
59509 
59510       XLA_AE_LINES_PKG.ValidateCurrentLine;
59511       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59512 
59513       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59514                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59515                ,p_balance_type_code => l_balance_type_code);
59516 
59517    END IF;
59518 
59519    -----------------------------------------------------------------------------------------
59520    -- 4262811 Multiperiod Accounting
59521    -----------------------------------------------------------------------------------------
59522      -- No MPA option is assigned.
59523 
59524 
59525 END IF;
59526 END IF;
59527 --
59528 
59529 --
59530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59531    trace
59532       (p_msg      => 'END of AcctLineType_93'
59533       ,p_level    => C_LEVEL_PROCEDURE
59534       ,p_module   => l_log_module);
59535 END IF;
59536 --
59537 EXCEPTION
59538   WHEN xla_exceptions_pkg.application_exception THEN
59539       RAISE;
59540   WHEN OTHERS THEN
59541        xla_exceptions_pkg.raise_message
59542            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_93');
59543 END AcctLineType_93;
59544 --
59545 
59546 ---------------------------------------
59547 --
59548 -- PRIVATE FUNCTION
59549 --         AcctLineType_94
59550 --
59551 ---------------------------------------
59552 PROCEDURE AcctLineType_94 (
59553   p_application_id        IN NUMBER
59554  ,p_event_id              IN NUMBER
59555  ,p_calculate_acctd_flag  IN VARCHAR2
59556  ,p_calculate_g_l_flag    IN VARCHAR2
59557  ,p_actual_flag           IN OUT VARCHAR2
59558  ,p_balance_type_code     OUT VARCHAR2
59559  ,p_gain_or_loss_ref      OUT VARCHAR2
59560  
59561 --Document Distribution Type
59562  , p_source_2            IN VARCHAR2
59563 --Project Name
59564  , p_source_3            IN VARCHAR2
59565 --Task Number
59566  , p_source_4            IN VARCHAR2
59567 --Expenditure Organization
59568  , p_source_5            IN NUMBER
59569 --Distribution Link Type
59570  , p_source_21            IN VARCHAR2
59571 --Invoice Distribution Identifier
59572  , p_source_30            IN NUMBER
59573 --Invoice Currency Code
59574  , p_source_33            IN VARCHAR2
59575 --Invoice Distribution Amount
59576  , p_source_57            IN NUMBER
59577 --Document Type
59578  , p_source_83            IN VARCHAR2
59579 --Accounting reversal indicator for project invoice burden
59580  , p_source_85            IN VARCHAR2
59581 --Allocated to Application Identifier
59582  , p_source_86            IN NUMBER
59583 --Allocated to Distribution Type
59584  , p_source_87            IN VARCHAR2
59585 --Allocated to Entity Code
59586  , p_source_88            IN VARCHAR2
59587 --Allocated to First Distribution Identifier
59588  , p_source_89            IN NUMBER
59589 --Allocated to First System Transaction Identifier
59590  , p_source_90            IN NUMBER
59591 --Invoice Distribution Expenditure Type
59592  , p_source_96            IN VARCHAR2
59593 --Encumbrance Upgrade Credit Accounting Class
59594  , p_source_97            IN VARCHAR2
59595 --Encumbrance Upgrade Credit Account
59596  , p_source_98            IN NUMBER
59597 --Invoice Distribution Ledger Amount Before Rounding
59598  , p_source_99            IN NUMBER
59599 --Encumbrance Upgrade Debit Accounting Class
59600  , p_source_100            IN VARCHAR2
59601 --Encumbrance Upgrade Debit Account
59602  , p_source_101            IN NUMBER
59603 --Use Encumbrances Upgrade Attributes Flag
59604  , p_source_102            IN VARCHAR2
59605 --Accounting reversal first distribution identifier for project invoice burden
59606  , p_source_103            IN NUMBER
59607 --Invoice Burden Applied to Second Distribution Identifier
59608  , p_source_104            IN VARCHAR2
59609 --Accounting reversal distribution type for project invoice burden
59610  , p_source_105            IN VARCHAR2
59611 --Encumbrance Upgrade Credit Encumbrance Type
59612  , p_source_106            IN NUMBER
59613 --Encumbrance Upgrade Debit Encumbrance Type
59614  , p_source_107            IN NUMBER
59615 --Project Encumbrance Applied to Application Identifier
59616  , p_source_109            IN NUMBER
59617 --Project Encumbrance Applied to Distribution Type
59618  , p_source_110            IN VARCHAR2
59619 --Project Encumbrance Applied to Entity Code
59620  , p_source_111            IN VARCHAR2
59621 --Project Encumbrance First Distribution Identifier
59622  , p_source_112            IN NUMBER
59623 --Project Encumbrance First System Transaction Identifier
59624  , p_source_113            IN NUMBER
59625 --Project Encumbrance Second Distribution Identifier
59629 
59626  , p_source_114            IN VARCHAR2
59627 )
59628 IS
59630 l_component_type              VARCHAR2(80);
59631 l_component_code              VARCHAR2(30);
59632 l_component_type_code         VARCHAR2(1);
59633 l_component_appl_id           INTEGER;
59634 l_amb_context_code            VARCHAR2(30);
59635 l_entity_code                 VARCHAR2(30);
59636 l_event_class_code            VARCHAR2(30);
59637 l_ae_header_id                NUMBER;
59638 l_event_type_code             VARCHAR2(30);
59639 l_line_definition_code        VARCHAR2(30);
59640 l_line_definition_owner_code  VARCHAR2(1);
59641 --
59642 -- adr variables
59643 l_segment                     VARCHAR2(30);
59644 l_ccid                        NUMBER;
59645 l_adr_transaction_coa_id      NUMBER;
59646 l_adr_accounting_coa_id       NUMBER;
59647 l_adr_flexfield_segment_code  VARCHAR2(30);
59648 l_adr_flex_value_set_id       NUMBER;
59649 l_adr_value_type_code         VARCHAR2(30);
59650 l_adr_value_combination_id    NUMBER;
59651 l_adr_value_segment_code      VARCHAR2(30);
59652 
59653 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59654 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59655 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59656 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59657 
59658 -- 4262811 Variables ------------------------------------------------------------------------------------------
59659 l_entered_amt_idx             NUMBER;
59660 l_accted_amt_idx              NUMBER;
59661 l_acc_rev_flag                VARCHAR2(1);
59662 l_accrual_line_num            NUMBER;
59663 l_tmp_amt                     NUMBER;
59664 l_acc_rev_natural_side_code   VARCHAR2(1);
59665 
59666 l_num_entries                 NUMBER;
59667 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59668 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59669 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59670 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59671 l_recog_line_1                NUMBER;
59672 l_recog_line_2                NUMBER;
59673 
59674 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59675 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59676 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59677 
59678 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59679 
59680 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59681 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59682 
59683 ---------------------------------------------------------------------------------------------------------------
59684 
59685 
59686 --
59687 -- bulk performance
59688 --
59689 l_balance_type_code           VARCHAR2(1);
59690 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59691 l_log_module                  VARCHAR2(240);
59692 
59693 --
59694 -- Upgrade strategy
59695 --
59696 l_actual_upg_option           VARCHAR2(1);
59697 l_enc_upg_option           VARCHAR2(1);
59698 
59699 --
59700 BEGIN
59701 --
59702 IF g_log_enabled THEN
59703       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
59704 END IF;
59705 --
59706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59707 
59708       trace
59709          (p_msg      => 'BEGIN of AcctLineType_94'
59710          ,p_level    => C_LEVEL_PROCEDURE
59711          ,p_module   => l_log_module);
59712 
59713 END IF;
59714 --
59715 l_component_type             := 'AMB_JLT';
59716 l_component_code             := 'RELIEVE_PROJ_ENC';
59717 l_component_type_code        := 'S';
59718 l_component_appl_id          :=  200;
59719 l_amb_context_code           := 'DEFAULT';
59720 l_entity_code                := 'AP_INVOICES';
59721 l_event_class_code           := 'PREPAYMENT_BURDEN';
59722 l_event_type_code            := 'PREPAYMENT_BURDEN_ALL';
59723 l_line_definition_owner_code := 'S';
59724 l_line_definition_code       := 'AP_PREPAY_BURDEN_ENC_ALL';
59725 --
59726 l_balance_type_code          := 'E';
59727 l_segment                     := NULL;
59728 l_ccid                        := NULL;
59729 l_adr_transaction_coa_id      := NULL;
59730 l_adr_accounting_coa_id       := NULL;
59731 l_adr_flexfield_segment_code  := NULL;
59732 l_adr_flex_value_set_id       := NULL;
59733 l_adr_value_type_code         := NULL;
59734 l_adr_value_combination_id    := NULL;
59735 l_adr_value_segment_code      := NULL;
59736 
59737 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
59738 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
59739 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59740 l_budgetary_control_flag     := 'Y';
59741 
59742 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59743 l_bflow_applied_to_amt       := NULL; -- 5132302
59744 l_entered_amt_idx            := NULL;          -- 4262811
59745 l_accted_amt_idx             := NULL;          -- 4262811
59746 l_acc_rev_flag               := NULL;          -- 4262811
59747 l_accrual_line_num           := NULL;          -- 4262811
59748 l_tmp_amt                    := NULL;          -- 4262811
59749 --
59750  
59754 ') =  'AP'
59751 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59752     l_balance_type_code <> 'B' THEN
59753 IF NVL(p_source_83,'
59755  THEN 
59756 
59757    --
59758    XLA_AE_LINES_PKG.SetNewLine;
59759 
59760    p_balance_type_code          := l_balance_type_code;
59761    -- set the flag so later we will know whether the gain loss line needs to be created
59762    
59763    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59764      p_actual_flag :='A';
59765    END IF;
59766 
59767    --
59768    -- bulk performance
59769    --
59770    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59771                                       p_header_num   => 0); -- 4262811
59772    --
59773    -- set accounting line options
59774    --
59775    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59776            p_natural_side_code          => 'C'
59777          , p_gain_or_loss_flag          => 'N'
59778          , p_gl_transfer_mode_code      => 'S'
59779          , p_acct_entry_type_code       => 'E'
59780          , p_switch_side_flag           => 'Y'
59781          , p_merge_duplicate_code       => 'N'
59782          );
59783    --
59784    l_acc_rev_natural_side_code := 'D';  -- 4262811
59785    -- 
59786    --
59787    -- set accounting line type info
59788    --
59789    xla_ae_lines_pkg.SetAcctLineType
59790       (p_component_type             => l_component_type
59791       ,p_event_type_code            => l_event_type_code
59792       ,p_line_definition_owner_code => l_line_definition_owner_code
59793       ,p_line_definition_code       => l_line_definition_code
59794       ,p_accounting_line_code       => l_component_code
59795       ,p_accounting_line_type_code  => l_component_type_code
59796       ,p_accounting_line_appl_id    => l_component_appl_id
59797       ,p_amb_context_code           => l_amb_context_code
59798       ,p_entity_code                => l_entity_code
59799       ,p_event_class_code           => l_event_class_code);
59800    --
59801    -- set accounting class
59802    --
59803    xla_ae_lines_pkg.SetAcctClass(
59804            p_accounting_class_code  => 'PA_BUDGET_ENC'
59805          , p_ae_header_id           => l_ae_header_id
59806          );
59807 
59808    --
59809    -- set rounding class
59810    --
59811    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59812                       'PA_BUDGET_ENC';
59813 
59814    --
59815    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59816    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59817    --
59818    -- bulk performance
59819    --
59820    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59821 
59822    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59823       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59824 
59825    -- 4955764
59826    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59827       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59828 
59829    -- 4458381 Public Sector Enh
59830    
59831    --
59832    -- set accounting attributes for the line type
59833    --
59834    l_entered_amt_idx := 27;
59835    l_accted_amt_idx  := 29;
59836    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59837    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59838    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
59839    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59840    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
59841    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59842    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
59843    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59844    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
59845    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59846    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
59847    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59848    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
59849    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
59850    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
59851    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59852    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
59853    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
59854    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
59855    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
59856    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
59857    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59858    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
59859    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
59860    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
59861    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
59862    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
59866    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
59863    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
59864    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
59865    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
59867    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
59868    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
59869    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
59870    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
59871    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
59872    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
59873    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
59874    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
59875    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
59876    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
59877    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
59878    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
59879    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
59880    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
59881    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
59882    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
59883    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
59884    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
59885    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
59886    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
59887    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
59888    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
59889    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
59890    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
59891    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
59892    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
59893    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
59894    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
59895    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
59896    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
59897    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
59898    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
59899    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
59900    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
59901    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
59902    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
59903    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
59904    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
59905 
59906    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59907    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59908 
59909    ---------------------------------------------------------------------------------------------------------------
59910    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59911    ---------------------------------------------------------------------------------------------------------------
59912    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59913 
59914    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59915    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59916 
59917    IF xla_accounting_cache_pkg.GetValueChar
59918          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59919          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59920    AND l_bflow_method_code = 'PRIOR_ENTRY'
59921 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59922    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59923          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59924        )
59925    THEN
59926          xla_ae_lines_pkg.BflowUpgEntry
59927            (p_business_method_code    => l_bflow_method_code
59928            ,p_business_class_code     => l_bflow_class_code
59929            ,p_balance_type            => l_balance_type_code);
59930    ELSE
59931       NULL;
59932 XLA_AE_LINES_PKG.business_flow_validation(
59933                                 p_business_method_code     => l_bflow_method_code
59934                                ,p_business_class_code      => l_bflow_class_code
59935                                ,p_inherit_description_flag => l_inherit_desc_flag);
59936    END IF;
59937 
59938    --
59939    -- call analytical criteria
59940    --
59941    -- Inherited Analytical Criteria for business flow method of Prior Entry.
59942    --
59943    -- call description
59944    --
59945    
59946 xla_ae_lines_pkg.SetLineDescription(
59947    p_ae_header_id => l_ae_header_id
59948   ,p_description  => Description_3 (
59949      p_application_id         => p_application_id
59950    , p_ae_header_id           => l_ae_header_id 
59951 , p_source_2 => p_source_2
59952 , p_source_3 => p_source_3
59953 , p_source_4 => p_source_4
59954 , p_source_5 => p_source_5
59955    )
59956 );
59957 
59958 
59959    --
59960    -- call ADRs
59961    -- Bug 4922099
59962    --
59963    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59964         (NVL(l_actual_upg_option, 'N') = 'O') OR
59968    NULL;
59965         (NVL(l_enc_upg_option, 'N') = 'O')
59966       )
59967    THEN
59969    --
59970    --
59971    
59972    --
59973    --
59974    END IF;
59975    --
59976    -- Bug 4922099
59977    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59978           (NVL(l_enc_upg_option, 'N') = 'O')
59979         ) AND
59980         (l_bflow_method_code = 'PRIOR_ENTRY')
59981       )
59982    THEN
59983       IF
59984       --
59985       1 = 1
59986       --
59987       THEN
59988       xla_accounting_err_pkg.build_message
59989                                     (p_appli_s_name            => 'XLA'
59990                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59991                                     ,p_token_1                 => 'LINE_NUMBER'
59992                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59993                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59994                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59995                                                                              l_component_type
59996                                                                             ,l_component_code
59997                                                                             ,l_component_type_code
59998                                                                             ,l_component_appl_id
59999                                                                             ,l_amb_context_code
60000                                                                             ,l_entity_code
60001                                                                             ,l_event_class_code
60002                                                                            )
60003                                     ,p_token_3                 => 'OWNER'
60004                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60005                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60006                                                                           ,p_lookup_code    => l_component_type_code
60007                                                                          )
60008                                     ,p_token_4                 => 'PRODUCT_NAME'
60009                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60010                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60011                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60012                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60013                                     ,p_ae_header_id            =>  NULL
60014                                        );
60015 
60016         IF (C_LEVEL_ERROR>= g_log_level) THEN
60017                  trace
60018                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60019                       ,p_level    => C_LEVEL_ERROR
60020                       ,p_module   => l_log_module);
60021         END IF;
60022       END IF;
60023    END IF;
60024    --
60025    --
60026    ------------------------------------------------------------------------------------------------
60027    -- 4219869 Business Flow
60028    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60029    -- Prior Entry.  Currently, the following code is always generated.
60030    ------------------------------------------------------------------------------------------------
60031    -- No ValidateCurrentLine for business flow method of Prior Entry
60032 
60033    ------------------------------------------------------------------------------------
60034    -- 4219869 Business Flow
60035    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60036    ------------------------------------------------------------------------------------
60037    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60038 
60039    ----------------------------------------------------------------------------------
60040    -- 4219869 Business Flow
60041    -- Update journal entry status -- Need to generate this within IF <condition>
60042    ----------------------------------------------------------------------------------
60043    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60044          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60045          ,p_balance_type_code => l_balance_type_code
60046          );
60047 
60048    -------------------------------------------------------------------------------------------
60049    -- 4262811 - Generate the Accrual Reversal lines
60050    -------------------------------------------------------------------------------------------
60051    BEGIN
60052       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60053                               (g_array_event(p_event_id).array_value_num('header_index'));
60054       IF l_acc_rev_flag IS NULL THEN
60055          l_acc_rev_flag := 'N';
60056       END IF;
60057    EXCEPTION
60058       WHEN OTHERS THEN
60059          l_acc_rev_flag := 'N';
60060    END;
60061    --
60062    IF (l_acc_rev_flag = 'Y') THEN
60063 
60064        -- 4645092  ------------------------------------------------------------------------------
60068 
60065        -- To allow MPA report to determine if it should generate report process
60066        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60067        ------------------------------------------------------------------------------------------
60069        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60070        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60071    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60072    -- call ADRs
60073    -- Bug 4922099
60074    --
60075    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60076         (NVL(l_actual_upg_option, 'N') = 'O') OR
60077         (NVL(l_enc_upg_option, 'N') = 'O')
60078       )
60079    THEN
60080    NULL;
60081    --
60082    --
60083    
60084    --
60085    --
60086    END IF;
60087 
60088        --
60089        -- Update the line information that should be overwritten
60090        --
60091        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60092                                          p_header_num   => 1);
60093        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60094 
60095        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60096 
60097        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60098           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60099        END IF;
60100 
60101       --
60102       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60103       --
60104       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60105           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60106       ELSE
60107           ---------------------------------------------------------------------------------------------------
60108           -- 4262811a Switch Sign
60109           ---------------------------------------------------------------------------------------------------
60110           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60111           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60112                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60113           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60114                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60115           -- 5132302
60116           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60117                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60118 
60119       END IF;
60120 
60121       -- 4955764
60122       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60123       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60124 
60125 
60126       XLA_AE_LINES_PKG.ValidateCurrentLine;
60127       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60128 
60129       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60130                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60131                ,p_balance_type_code => l_balance_type_code);
60132 
60133    END IF;
60134 
60135    -----------------------------------------------------------------------------------------
60136    -- 4262811 Multiperiod Accounting
60137    -----------------------------------------------------------------------------------------
60138      -- No MPA option is assigned.
60139 
60140 
60141 END IF;
60142 END IF;
60143 --
60144 
60145 --
60146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60147    trace
60148       (p_msg      => 'END of AcctLineType_94'
60149       ,p_level    => C_LEVEL_PROCEDURE
60150       ,p_module   => l_log_module);
60151 END IF;
60152 --
60153 EXCEPTION
60154   WHEN xla_exceptions_pkg.application_exception THEN
60155       RAISE;
60156   WHEN OTHERS THEN
60157        xla_exceptions_pkg.raise_message
60158            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_94');
60159 END AcctLineType_94;
60160 --
60161 
60162 ---------------------------------------
60163 --
60164 -- PRIVATE FUNCTION
60165 --         AcctLineType_95
60166 --
60167 ---------------------------------------
60168 PROCEDURE AcctLineType_95 (
60169   p_application_id        IN NUMBER
60170  ,p_event_id              IN NUMBER
60171  ,p_calculate_acctd_flag  IN VARCHAR2
60172  ,p_calculate_g_l_flag    IN VARCHAR2
60173  ,p_actual_flag           IN OUT VARCHAR2
60174  ,p_balance_type_code     OUT VARCHAR2
60175  ,p_gain_or_loss_ref      OUT VARCHAR2
60176  
60177 --Document Distribution Type
60178  , p_source_2            IN VARCHAR2
60179 --Project Name
60180  , p_source_3            IN VARCHAR2
60181 --Task Number
60182  , p_source_4            IN VARCHAR2
60183 --Expenditure Organization
60184  , p_source_5            IN NUMBER
60185 --Distribution Link Type
60186  , p_source_21            IN VARCHAR2
60187 --Invoice Distribution Identifier
60188  , p_source_30            IN NUMBER
60189 --Invoice Currency Code
60190  , p_source_33            IN VARCHAR2
60191 --Invoice Distribution Amount
60192  , p_source_57            IN NUMBER
60196  , p_source_85            IN VARCHAR2
60193 --Document Type
60194  , p_source_83            IN VARCHAR2
60195 --Accounting reversal indicator for project invoice burden
60197 --Allocated to Application Identifier
60198  , p_source_86            IN NUMBER
60199 --Allocated to Distribution Type
60200  , p_source_87            IN VARCHAR2
60201 --Allocated to Entity Code
60202  , p_source_88            IN VARCHAR2
60203 --Allocated to First Distribution Identifier
60204  , p_source_89            IN NUMBER
60205 --Allocated to First System Transaction Identifier
60206  , p_source_90            IN NUMBER
60207 --Invoice Distribution Expenditure Type
60208  , p_source_96            IN VARCHAR2
60209 --Encumbrance Upgrade Credit Accounting Class
60210  , p_source_97            IN VARCHAR2
60211 --Encumbrance Upgrade Credit Account
60212  , p_source_98            IN NUMBER
60213 --Invoice Distribution Ledger Amount Before Rounding
60214  , p_source_99            IN NUMBER
60215 --Encumbrance Upgrade Debit Accounting Class
60216  , p_source_100            IN VARCHAR2
60217 --Encumbrance Upgrade Debit Account
60218  , p_source_101            IN NUMBER
60219 --Use Encumbrances Upgrade Attributes Flag
60220  , p_source_102            IN VARCHAR2
60221 --Accounting reversal first distribution identifier for project invoice burden
60222  , p_source_103            IN NUMBER
60223 --Invoice Burden Applied to Second Distribution Identifier
60224  , p_source_104            IN VARCHAR2
60225 --Accounting reversal distribution type for project invoice burden
60226  , p_source_105            IN VARCHAR2
60227 --Encumbrance Upgrade Credit Encumbrance Type
60228  , p_source_106            IN NUMBER
60229 --Encumbrance Upgrade Debit Encumbrance Type
60230  , p_source_107            IN NUMBER
60231 --Project Encumbrance Applied to Application Identifier
60232  , p_source_109            IN NUMBER
60233 --Project Encumbrance Applied to Distribution Type
60234  , p_source_110            IN VARCHAR2
60235 --Project Encumbrance Applied to Entity Code
60236  , p_source_111            IN VARCHAR2
60237 --Project Encumbrance First Distribution Identifier
60238  , p_source_112            IN NUMBER
60239 --Project Encumbrance First System Transaction Identifier
60240  , p_source_113            IN NUMBER
60241 --Project Encumbrance Second Distribution Identifier
60242  , p_source_114            IN VARCHAR2
60243 )
60244 IS
60245 
60246 l_component_type              VARCHAR2(80);
60247 l_component_code              VARCHAR2(30);
60248 l_component_type_code         VARCHAR2(1);
60249 l_component_appl_id           INTEGER;
60250 l_amb_context_code            VARCHAR2(30);
60251 l_entity_code                 VARCHAR2(30);
60252 l_event_class_code            VARCHAR2(30);
60253 l_ae_header_id                NUMBER;
60254 l_event_type_code             VARCHAR2(30);
60255 l_line_definition_code        VARCHAR2(30);
60256 l_line_definition_owner_code  VARCHAR2(1);
60257 --
60258 -- adr variables
60259 l_segment                     VARCHAR2(30);
60260 l_ccid                        NUMBER;
60261 l_adr_transaction_coa_id      NUMBER;
60262 l_adr_accounting_coa_id       NUMBER;
60263 l_adr_flexfield_segment_code  VARCHAR2(30);
60264 l_adr_flex_value_set_id       NUMBER;
60265 l_adr_value_type_code         VARCHAR2(30);
60266 l_adr_value_combination_id    NUMBER;
60267 l_adr_value_segment_code      VARCHAR2(30);
60268 
60269 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60270 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60271 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60272 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60273 
60274 -- 4262811 Variables ------------------------------------------------------------------------------------------
60275 l_entered_amt_idx             NUMBER;
60276 l_accted_amt_idx              NUMBER;
60277 l_acc_rev_flag                VARCHAR2(1);
60278 l_accrual_line_num            NUMBER;
60279 l_tmp_amt                     NUMBER;
60280 l_acc_rev_natural_side_code   VARCHAR2(1);
60281 
60282 l_num_entries                 NUMBER;
60283 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60284 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60285 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60286 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60287 l_recog_line_1                NUMBER;
60288 l_recog_line_2                NUMBER;
60289 
60290 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60291 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60292 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60293 
60294 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60295 
60296 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60297 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60298 
60299 ---------------------------------------------------------------------------------------------------------------
60300 
60301 
60302 --
60303 -- bulk performance
60304 --
60305 l_balance_type_code           VARCHAR2(1);
60306 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60307 l_log_module                  VARCHAR2(240);
60308 
60309 --
60310 -- Upgrade strategy
60311 --
60315 --
60312 l_actual_upg_option           VARCHAR2(1);
60313 l_enc_upg_option           VARCHAR2(1);
60314 
60316 BEGIN
60317 --
60318 IF g_log_enabled THEN
60319       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
60320 END IF;
60321 --
60322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60323 
60324       trace
60325          (p_msg      => 'BEGIN of AcctLineType_95'
60326          ,p_level    => C_LEVEL_PROCEDURE
60327          ,p_module   => l_log_module);
60328 
60329 END IF;
60330 --
60331 l_component_type             := 'AMB_JLT';
60332 l_component_code             := 'RELIEVE_PROJ_ENC';
60333 l_component_type_code        := 'S';
60334 l_component_appl_id          :=  200;
60335 l_amb_context_code           := 'DEFAULT';
60336 l_entity_code                := 'AP_INVOICES';
60337 l_event_class_code           := 'PREPAY_APPLICATION_BURDEN';
60338 l_event_type_code            := 'PREPAY_APPLICATION_BURDEN_ALL';
60339 l_line_definition_owner_code := 'S';
60340 l_line_definition_code       := 'AP_PREPAY_APPLY_BURDEN_ENC_ALL';
60341 --
60342 l_balance_type_code          := 'E';
60343 l_segment                     := NULL;
60344 l_ccid                        := NULL;
60345 l_adr_transaction_coa_id      := NULL;
60346 l_adr_accounting_coa_id       := NULL;
60347 l_adr_flexfield_segment_code  := NULL;
60348 l_adr_flex_value_set_id       := NULL;
60349 l_adr_value_type_code         := NULL;
60350 l_adr_value_combination_id    := NULL;
60351 l_adr_value_segment_code      := NULL;
60352 
60353 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
60354 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
60355 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60356 l_budgetary_control_flag     := 'Y';
60357 
60358 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60359 l_bflow_applied_to_amt       := NULL; -- 5132302
60360 l_entered_amt_idx            := NULL;          -- 4262811
60361 l_accted_amt_idx             := NULL;          -- 4262811
60362 l_acc_rev_flag               := NULL;          -- 4262811
60363 l_accrual_line_num           := NULL;          -- 4262811
60364 l_tmp_amt                    := NULL;          -- 4262811
60365 --
60366  
60367 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60368     l_balance_type_code <> 'B' THEN
60369 IF NVL(p_source_83,'
60370 ') =  'PO'
60371  THEN 
60372 
60373    --
60374    XLA_AE_LINES_PKG.SetNewLine;
60375 
60376    p_balance_type_code          := l_balance_type_code;
60377    -- set the flag so later we will know whether the gain loss line needs to be created
60378    
60379    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60380      p_actual_flag :='A';
60381    END IF;
60382 
60383    --
60384    -- bulk performance
60385    --
60386    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60387                                       p_header_num   => 0); -- 4262811
60388    --
60389    -- set accounting line options
60390    --
60391    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60392            p_natural_side_code          => 'C'
60393          , p_gain_or_loss_flag          => 'N'
60394          , p_gl_transfer_mode_code      => 'S'
60395          , p_acct_entry_type_code       => 'E'
60396          , p_switch_side_flag           => 'Y'
60397          , p_merge_duplicate_code       => 'N'
60398          );
60399    --
60400    l_acc_rev_natural_side_code := 'D';  -- 4262811
60401    -- 
60402    --
60403    -- set accounting line type info
60404    --
60405    xla_ae_lines_pkg.SetAcctLineType
60406       (p_component_type             => l_component_type
60407       ,p_event_type_code            => l_event_type_code
60408       ,p_line_definition_owner_code => l_line_definition_owner_code
60409       ,p_line_definition_code       => l_line_definition_code
60410       ,p_accounting_line_code       => l_component_code
60411       ,p_accounting_line_type_code  => l_component_type_code
60412       ,p_accounting_line_appl_id    => l_component_appl_id
60413       ,p_amb_context_code           => l_amb_context_code
60414       ,p_entity_code                => l_entity_code
60415       ,p_event_class_code           => l_event_class_code);
60416    --
60417    -- set accounting class
60418    --
60419    xla_ae_lines_pkg.SetAcctClass(
60420            p_accounting_class_code  => 'PA_BUDGET_ENC'
60421          , p_ae_header_id           => l_ae_header_id
60422          );
60423 
60424    --
60425    -- set rounding class
60426    --
60427    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60428                       'PA_BUDGET_ENC';
60429 
60430    --
60431    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60432    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60433    --
60434    -- bulk performance
60435    --
60436    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60437 
60438    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60439       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60440 
60441    -- 4955764
60445    -- 4458381 Public Sector Enh
60442    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60444 
60446    
60447    --
60448    -- set accounting attributes for the line type
60449    --
60450    l_entered_amt_idx := 27;
60451    l_accted_amt_idx  := 29;
60452    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
60453    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60454    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
60455    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60456    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
60457    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60458    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
60459    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60460    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
60461    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60462    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
60463    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60464    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
60465    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60466    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
60467    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60468    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
60469    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60470    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
60471    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60472    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
60473    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60474    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
60475    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
60476    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
60477    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
60478    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
60479    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
60480    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
60481    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
60482    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
60483    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
60484    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
60485    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
60486    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
60487    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
60488    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
60489    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
60490    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
60491    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
60492    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
60493    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
60494    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
60495    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
60496    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
60497    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
60498    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
60499    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
60500    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
60501    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
60502    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
60503    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
60504    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
60505    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
60506    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
60507    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
60508    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
60509    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
60510    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
60511    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
60512    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
60513    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
60514    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
60515    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
60516    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
60517    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
60518    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
60519    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
60520    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
60521 
60522    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60523    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60524 
60525    ---------------------------------------------------------------------------------------------------------------
60526    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60530    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60527    ---------------------------------------------------------------------------------------------------------------
60528    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60529 
60531    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60532 
60533    IF xla_accounting_cache_pkg.GetValueChar
60534          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60535          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60536    AND l_bflow_method_code = 'PRIOR_ENTRY'
60537 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60538    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60539          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60540        )
60541    THEN
60542          xla_ae_lines_pkg.BflowUpgEntry
60543            (p_business_method_code    => l_bflow_method_code
60544            ,p_business_class_code     => l_bflow_class_code
60545            ,p_balance_type            => l_balance_type_code);
60546    ELSE
60547       NULL;
60548 XLA_AE_LINES_PKG.business_flow_validation(
60549                                 p_business_method_code     => l_bflow_method_code
60550                                ,p_business_class_code      => l_bflow_class_code
60551                                ,p_inherit_description_flag => l_inherit_desc_flag);
60552    END IF;
60553 
60554    --
60555    -- call analytical criteria
60556    --
60557    -- Inherited Analytical Criteria for business flow method of Prior Entry.
60558    --
60559    -- call description
60560    --
60561    
60562 xla_ae_lines_pkg.SetLineDescription(
60563    p_ae_header_id => l_ae_header_id
60564   ,p_description  => Description_3 (
60565      p_application_id         => p_application_id
60566    , p_ae_header_id           => l_ae_header_id 
60567 , p_source_2 => p_source_2
60568 , p_source_3 => p_source_3
60569 , p_source_4 => p_source_4
60570 , p_source_5 => p_source_5
60571    )
60572 );
60573 
60574 
60575    --
60576    -- call ADRs
60577    -- Bug 4922099
60578    --
60579    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60580         (NVL(l_actual_upg_option, 'N') = 'O') OR
60581         (NVL(l_enc_upg_option, 'N') = 'O')
60582       )
60583    THEN
60584    NULL;
60585    --
60586    --
60587    
60588    --
60589    --
60590    END IF;
60591    --
60592    -- Bug 4922099
60593    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60594           (NVL(l_enc_upg_option, 'N') = 'O')
60595         ) AND
60596         (l_bflow_method_code = 'PRIOR_ENTRY')
60597       )
60598    THEN
60599       IF
60600       --
60601       1 = 1
60602       --
60603       THEN
60604       xla_accounting_err_pkg.build_message
60605                                     (p_appli_s_name            => 'XLA'
60606                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60607                                     ,p_token_1                 => 'LINE_NUMBER'
60608                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60609                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60610                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60611                                                                              l_component_type
60612                                                                             ,l_component_code
60613                                                                             ,l_component_type_code
60614                                                                             ,l_component_appl_id
60615                                                                             ,l_amb_context_code
60616                                                                             ,l_entity_code
60617                                                                             ,l_event_class_code
60618                                                                            )
60619                                     ,p_token_3                 => 'OWNER'
60620                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60621                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60622                                                                           ,p_lookup_code    => l_component_type_code
60623                                                                          )
60624                                     ,p_token_4                 => 'PRODUCT_NAME'
60625                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60626                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60627                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60628                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60629                                     ,p_ae_header_id            =>  NULL
60630                                        );
60631 
60632         IF (C_LEVEL_ERROR>= g_log_level) THEN
60633                  trace
60634                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60635                       ,p_level    => C_LEVEL_ERROR
60639    END IF;
60636                       ,p_module   => l_log_module);
60637         END IF;
60638       END IF;
60640    --
60641    --
60642    ------------------------------------------------------------------------------------------------
60643    -- 4219869 Business Flow
60644    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60645    -- Prior Entry.  Currently, the following code is always generated.
60646    ------------------------------------------------------------------------------------------------
60647    -- No ValidateCurrentLine for business flow method of Prior Entry
60648 
60649    ------------------------------------------------------------------------------------
60650    -- 4219869 Business Flow
60651    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60652    ------------------------------------------------------------------------------------
60653    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60654 
60655    ----------------------------------------------------------------------------------
60656    -- 4219869 Business Flow
60657    -- Update journal entry status -- Need to generate this within IF <condition>
60658    ----------------------------------------------------------------------------------
60659    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60660          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60661          ,p_balance_type_code => l_balance_type_code
60662          );
60663 
60664    -------------------------------------------------------------------------------------------
60665    -- 4262811 - Generate the Accrual Reversal lines
60666    -------------------------------------------------------------------------------------------
60667    BEGIN
60668       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60669                               (g_array_event(p_event_id).array_value_num('header_index'));
60670       IF l_acc_rev_flag IS NULL THEN
60671          l_acc_rev_flag := 'N';
60672       END IF;
60673    EXCEPTION
60674       WHEN OTHERS THEN
60675          l_acc_rev_flag := 'N';
60676    END;
60677    --
60678    IF (l_acc_rev_flag = 'Y') THEN
60679 
60680        -- 4645092  ------------------------------------------------------------------------------
60681        -- To allow MPA report to determine if it should generate report process
60682        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60683        ------------------------------------------------------------------------------------------
60684 
60685        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60686        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60687    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60688    -- call ADRs
60689    -- Bug 4922099
60690    --
60691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60692         (NVL(l_actual_upg_option, 'N') = 'O') OR
60693         (NVL(l_enc_upg_option, 'N') = 'O')
60694       )
60695    THEN
60696    NULL;
60697    --
60698    --
60699    
60700    --
60701    --
60702    END IF;
60703 
60704        --
60705        -- Update the line information that should be overwritten
60706        --
60707        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60708                                          p_header_num   => 1);
60709        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60710 
60711        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60712 
60713        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60714           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60715        END IF;
60716 
60717       --
60718       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60719       --
60720       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60721           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60722       ELSE
60723           ---------------------------------------------------------------------------------------------------
60724           -- 4262811a Switch Sign
60725           ---------------------------------------------------------------------------------------------------
60726           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60727           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60728                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60729           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60730                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60731           -- 5132302
60732           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60733                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60734 
60735       END IF;
60736 
60737       -- 4955764
60738       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60739       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60740 
60741 
60742       XLA_AE_LINES_PKG.ValidateCurrentLine;
60746                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60743       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60744 
60745       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60747                ,p_balance_type_code => l_balance_type_code);
60748 
60749    END IF;
60750 
60751    -----------------------------------------------------------------------------------------
60752    -- 4262811 Multiperiod Accounting
60753    -----------------------------------------------------------------------------------------
60754      -- No MPA option is assigned.
60755 
60756 
60757 END IF;
60758 END IF;
60759 --
60760 
60761 --
60762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60763    trace
60764       (p_msg      => 'END of AcctLineType_95'
60765       ,p_level    => C_LEVEL_PROCEDURE
60766       ,p_module   => l_log_module);
60767 END IF;
60768 --
60769 EXCEPTION
60770   WHEN xla_exceptions_pkg.application_exception THEN
60771       RAISE;
60772   WHEN OTHERS THEN
60773        xla_exceptions_pkg.raise_message
60774            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_95');
60775 END AcctLineType_95;
60776 --
60777 
60778 ---------------------------------------
60779 --
60780 -- PRIVATE FUNCTION
60781 --         AcctLineType_96
60782 --
60783 ---------------------------------------
60784 PROCEDURE AcctLineType_96 (
60785   p_application_id        IN NUMBER
60786  ,p_event_id              IN NUMBER
60787  ,p_calculate_acctd_flag  IN VARCHAR2
60788  ,p_calculate_g_l_flag    IN VARCHAR2
60789  ,p_actual_flag           IN OUT VARCHAR2
60790  ,p_balance_type_code     OUT VARCHAR2
60791  ,p_gain_or_loss_ref      OUT VARCHAR2
60792  
60793 --Document Distribution Type
60794  , p_source_2            IN VARCHAR2
60795 --Project Name
60796  , p_source_3            IN VARCHAR2
60797 --Task Number
60798  , p_source_4            IN VARCHAR2
60799 --Expenditure Organization
60800  , p_source_5            IN NUMBER
60801 --Distribution Link Type
60802  , p_source_21            IN VARCHAR2
60803 --Invoice Distribution Identifier
60804  , p_source_30            IN NUMBER
60805 --Invoice Currency Code
60806  , p_source_33            IN VARCHAR2
60807 --Invoice Distribution Amount
60808  , p_source_57            IN NUMBER
60809 --Document Type
60810  , p_source_83            IN VARCHAR2
60811 --Accounting reversal indicator for project invoice burden
60812  , p_source_85            IN VARCHAR2
60813 --Allocated to Application Identifier
60814  , p_source_86            IN NUMBER
60815 --Allocated to Distribution Type
60816  , p_source_87            IN VARCHAR2
60817 --Allocated to Entity Code
60818  , p_source_88            IN VARCHAR2
60819 --Allocated to First Distribution Identifier
60820  , p_source_89            IN NUMBER
60821 --Allocated to First System Transaction Identifier
60822  , p_source_90            IN NUMBER
60823 --Invoice Distribution Expenditure Type
60824  , p_source_96            IN VARCHAR2
60825 --Encumbrance Upgrade Credit Accounting Class
60826  , p_source_97            IN VARCHAR2
60827 --Encumbrance Upgrade Credit Account
60828  , p_source_98            IN NUMBER
60829 --Invoice Distribution Ledger Amount Before Rounding
60830  , p_source_99            IN NUMBER
60831 --Encumbrance Upgrade Debit Accounting Class
60832  , p_source_100            IN VARCHAR2
60833 --Encumbrance Upgrade Debit Account
60834  , p_source_101            IN NUMBER
60835 --Use Encumbrances Upgrade Attributes Flag
60836  , p_source_102            IN VARCHAR2
60837 --Accounting reversal first distribution identifier for project invoice burden
60838  , p_source_103            IN NUMBER
60839 --Invoice Burden Applied to Second Distribution Identifier
60840  , p_source_104            IN VARCHAR2
60841 --Accounting reversal distribution type for project invoice burden
60842  , p_source_105            IN VARCHAR2
60843 --Encumbrance Upgrade Credit Encumbrance Type
60844  , p_source_106            IN NUMBER
60845 --Encumbrance Upgrade Debit Encumbrance Type
60846  , p_source_107            IN NUMBER
60847 --Project Encumbrance Applied to Application Identifier
60848  , p_source_109            IN NUMBER
60849 --Project Encumbrance Applied to Distribution Type
60850  , p_source_110            IN VARCHAR2
60851 --Project Encumbrance Applied to Entity Code
60852  , p_source_111            IN VARCHAR2
60853 --Project Encumbrance First Distribution Identifier
60854  , p_source_112            IN NUMBER
60855 --Project Encumbrance First System Transaction Identifier
60856  , p_source_113            IN NUMBER
60857 --Project Encumbrance Second Distribution Identifier
60858  , p_source_114            IN VARCHAR2
60859 )
60860 IS
60861 
60862 l_component_type              VARCHAR2(80);
60863 l_component_code              VARCHAR2(30);
60864 l_component_type_code         VARCHAR2(1);
60865 l_component_appl_id           INTEGER;
60866 l_amb_context_code            VARCHAR2(30);
60867 l_entity_code                 VARCHAR2(30);
60868 l_event_class_code            VARCHAR2(30);
60869 l_ae_header_id                NUMBER;
60870 l_event_type_code             VARCHAR2(30);
60871 l_line_definition_code        VARCHAR2(30);
60872 l_line_definition_owner_code  VARCHAR2(1);
60873 --
60874 -- adr variables
60875 l_segment                     VARCHAR2(30);
60876 l_ccid                        NUMBER;
60877 l_adr_transaction_coa_id      NUMBER;
60878 l_adr_accounting_coa_id       NUMBER;
60879 l_adr_flexfield_segment_code  VARCHAR2(30);
60883 l_adr_value_segment_code      VARCHAR2(30);
60880 l_adr_flex_value_set_id       NUMBER;
60881 l_adr_value_type_code         VARCHAR2(30);
60882 l_adr_value_combination_id    NUMBER;
60884 
60885 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60886 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60887 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60888 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60889 
60890 -- 4262811 Variables ------------------------------------------------------------------------------------------
60891 l_entered_amt_idx             NUMBER;
60892 l_accted_amt_idx              NUMBER;
60893 l_acc_rev_flag                VARCHAR2(1);
60894 l_accrual_line_num            NUMBER;
60895 l_tmp_amt                     NUMBER;
60896 l_acc_rev_natural_side_code   VARCHAR2(1);
60897 
60898 l_num_entries                 NUMBER;
60899 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60900 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60901 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60902 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60903 l_recog_line_1                NUMBER;
60904 l_recog_line_2                NUMBER;
60905 
60906 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60907 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60908 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60909 
60910 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60911 
60912 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60913 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60914 
60915 ---------------------------------------------------------------------------------------------------------------
60916 
60917 
60918 --
60919 -- bulk performance
60920 --
60921 l_balance_type_code           VARCHAR2(1);
60922 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60923 l_log_module                  VARCHAR2(240);
60924 
60925 --
60926 -- Upgrade strategy
60927 --
60928 l_actual_upg_option           VARCHAR2(1);
60929 l_enc_upg_option           VARCHAR2(1);
60930 
60931 --
60932 BEGIN
60933 --
60934 IF g_log_enabled THEN
60935       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
60936 END IF;
60937 --
60938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60939 
60940       trace
60941          (p_msg      => 'BEGIN of AcctLineType_96'
60942          ,p_level    => C_LEVEL_PROCEDURE
60943          ,p_module   => l_log_module);
60944 
60945 END IF;
60946 --
60947 l_component_type             := 'AMB_JLT';
60948 l_component_code             := 'RESERVE_PROJ_ENC';
60949 l_component_type_code        := 'S';
60950 l_component_appl_id          :=  200;
60951 l_amb_context_code           := 'DEFAULT';
60952 l_entity_code                := 'AP_INVOICES';
60953 l_event_class_code           := 'INVOICE_BURDEN';
60954 l_event_type_code            := 'INVOICE_BURDEN_ALL';
60955 l_line_definition_owner_code := 'S';
60956 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
60957 --
60958 l_balance_type_code          := 'E';
60959 l_segment                     := NULL;
60960 l_ccid                        := NULL;
60961 l_adr_transaction_coa_id      := NULL;
60962 l_adr_accounting_coa_id       := NULL;
60963 l_adr_flexfield_segment_code  := NULL;
60964 l_adr_flex_value_set_id       := NULL;
60965 l_adr_value_type_code         := NULL;
60966 l_adr_value_combination_id    := NULL;
60967 l_adr_value_segment_code      := NULL;
60968 
60969 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
60970 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
60971 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60972 l_budgetary_control_flag     := 'Y';
60973 
60974 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60975 l_bflow_applied_to_amt       := NULL; -- 5132302
60976 l_entered_amt_idx            := NULL;          -- 4262811
60977 l_accted_amt_idx             := NULL;          -- 4262811
60978 l_acc_rev_flag               := NULL;          -- 4262811
60979 l_accrual_line_num           := NULL;          -- 4262811
60980 l_tmp_amt                    := NULL;          -- 4262811
60981 --
60982  
60983 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60984     l_balance_type_code <> 'B' THEN
60985 IF NVL(p_source_83,'
60986 ') =  'PO'
60987  THEN 
60988 
60989    --
60990    XLA_AE_LINES_PKG.SetNewLine;
60991 
60992    p_balance_type_code          := l_balance_type_code;
60993    -- set the flag so later we will know whether the gain loss line needs to be created
60994    
60995    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60996      p_actual_flag :='A';
60997    END IF;
60998 
60999    --
61000    -- bulk performance
61001    --
61002    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61003                                       p_header_num   => 0); -- 4262811
61004    --
61005    -- set accounting line options
61006    --
61007    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61011          , p_acct_entry_type_code       => 'E'
61008            p_natural_side_code          => 'D'
61009          , p_gain_or_loss_flag          => 'N'
61010          , p_gl_transfer_mode_code      => 'S'
61012          , p_switch_side_flag           => 'Y'
61013          , p_merge_duplicate_code       => 'N'
61014          );
61015    --
61016    l_acc_rev_natural_side_code := 'C';  -- 4262811
61017    -- 
61018    --
61019    -- set accounting line type info
61020    --
61021    xla_ae_lines_pkg.SetAcctLineType
61022       (p_component_type             => l_component_type
61023       ,p_event_type_code            => l_event_type_code
61024       ,p_line_definition_owner_code => l_line_definition_owner_code
61025       ,p_line_definition_code       => l_line_definition_code
61026       ,p_accounting_line_code       => l_component_code
61027       ,p_accounting_line_type_code  => l_component_type_code
61028       ,p_accounting_line_appl_id    => l_component_appl_id
61029       ,p_amb_context_code           => l_amb_context_code
61030       ,p_entity_code                => l_entity_code
61031       ,p_event_class_code           => l_event_class_code);
61032    --
61033    -- set accounting class
61034    --
61035    xla_ae_lines_pkg.SetAcctClass(
61036            p_accounting_class_code  => 'PA_BUDGET_ENC'
61037          , p_ae_header_id           => l_ae_header_id
61038          );
61039 
61040    --
61041    -- set rounding class
61042    --
61043    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61044                       'PA_BUDGET_ENC';
61045 
61046    --
61047    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61048    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61049    --
61050    -- bulk performance
61051    --
61052    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61053 
61054    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61055       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61056 
61057    -- 4955764
61058    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61059       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61060 
61061    -- 4458381 Public Sector Enh
61062    
61063    --
61064    -- set accounting attributes for the line type
61065    --
61066    l_entered_amt_idx := 27;
61067    l_accted_amt_idx  := 29;
61068    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
61069    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61070    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
61071    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
61072    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
61073    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
61074    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
61075    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
61076    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
61077    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
61078    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
61079    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
61080    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
61081    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
61082    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
61083    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61084    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
61085    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
61086    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
61087    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
61088    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
61089    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61090    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
61091    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
61092    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
61093    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
61094    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
61095    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
61096    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
61097    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
61098    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
61099    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
61100    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
61101    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
61102    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
61103    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
61104    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
61105    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
61106    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
61107    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
61108    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
61109    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
61113    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
61110    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
61111    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
61112    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
61114    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
61115    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
61116    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
61117    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
61118    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
61119    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
61120    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
61121    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
61122    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
61123    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
61124    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
61125    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
61126    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
61127    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
61128    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
61129    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
61130    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
61131    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
61132    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
61133    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
61134    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
61135    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
61136    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
61137 
61138    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61139    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61140 
61141    ---------------------------------------------------------------------------------------------------------------
61142    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61143    ---------------------------------------------------------------------------------------------------------------
61144    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61145 
61146    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61147    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61148 
61149    IF xla_accounting_cache_pkg.GetValueChar
61150          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61151          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61152    AND l_bflow_method_code = 'PRIOR_ENTRY'
61153 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61154    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61155          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61156        )
61157    THEN
61158          xla_ae_lines_pkg.BflowUpgEntry
61159            (p_business_method_code    => l_bflow_method_code
61160            ,p_business_class_code     => l_bflow_class_code
61161            ,p_balance_type            => l_balance_type_code);
61162    ELSE
61163       NULL;
61164 XLA_AE_LINES_PKG.business_flow_validation(
61165                                 p_business_method_code     => l_bflow_method_code
61166                                ,p_business_class_code      => l_bflow_class_code
61167                                ,p_inherit_description_flag => l_inherit_desc_flag);
61168    END IF;
61169 
61170    --
61171    -- call analytical criteria
61172    --
61173    -- Inherited Analytical Criteria for business flow method of Prior Entry.
61174    --
61175    -- call description
61176    --
61177    
61178 xla_ae_lines_pkg.SetLineDescription(
61179    p_ae_header_id => l_ae_header_id
61180   ,p_description  => Description_3 (
61181      p_application_id         => p_application_id
61182    , p_ae_header_id           => l_ae_header_id 
61183 , p_source_2 => p_source_2
61184 , p_source_3 => p_source_3
61185 , p_source_4 => p_source_4
61186 , p_source_5 => p_source_5
61187    )
61188 );
61189 
61190 
61191    --
61192    -- call ADRs
61193    -- Bug 4922099
61194    --
61195    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61196         (NVL(l_actual_upg_option, 'N') = 'O') OR
61197         (NVL(l_enc_upg_option, 'N') = 'O')
61198       )
61199    THEN
61200    NULL;
61201    --
61202    --
61203    
61204    --
61205    --
61206    END IF;
61207    --
61208    -- Bug 4922099
61209    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61210           (NVL(l_enc_upg_option, 'N') = 'O')
61211         ) AND
61212         (l_bflow_method_code = 'PRIOR_ENTRY')
61213       )
61214    THEN
61215       IF
61216       --
61217       1 = 1
61218       --
61219       THEN
61220       xla_accounting_err_pkg.build_message
61221                                     (p_appli_s_name            => 'XLA'
61222                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61223                                     ,p_token_1                 => 'LINE_NUMBER'
61227                                                                              l_component_type
61224                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61225                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61226                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61228                                                                             ,l_component_code
61229                                                                             ,l_component_type_code
61230                                                                             ,l_component_appl_id
61231                                                                             ,l_amb_context_code
61232                                                                             ,l_entity_code
61233                                                                             ,l_event_class_code
61234                                                                            )
61235                                     ,p_token_3                 => 'OWNER'
61236                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61237                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61238                                                                           ,p_lookup_code    => l_component_type_code
61239                                                                          )
61240                                     ,p_token_4                 => 'PRODUCT_NAME'
61241                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61242                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61243                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61244                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61245                                     ,p_ae_header_id            =>  NULL
61246                                        );
61247 
61248         IF (C_LEVEL_ERROR>= g_log_level) THEN
61249                  trace
61250                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61251                       ,p_level    => C_LEVEL_ERROR
61252                       ,p_module   => l_log_module);
61253         END IF;
61254       END IF;
61255    END IF;
61256    --
61257    --
61258    ------------------------------------------------------------------------------------------------
61259    -- 4219869 Business Flow
61260    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61261    -- Prior Entry.  Currently, the following code is always generated.
61262    ------------------------------------------------------------------------------------------------
61263    -- No ValidateCurrentLine for business flow method of Prior Entry
61264 
61265    ------------------------------------------------------------------------------------
61266    -- 4219869 Business Flow
61267    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61268    ------------------------------------------------------------------------------------
61269    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61270 
61271    ----------------------------------------------------------------------------------
61272    -- 4219869 Business Flow
61273    -- Update journal entry status -- Need to generate this within IF <condition>
61274    ----------------------------------------------------------------------------------
61275    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61276          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61277          ,p_balance_type_code => l_balance_type_code
61278          );
61279 
61280    -------------------------------------------------------------------------------------------
61281    -- 4262811 - Generate the Accrual Reversal lines
61282    -------------------------------------------------------------------------------------------
61283    BEGIN
61284       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61285                               (g_array_event(p_event_id).array_value_num('header_index'));
61286       IF l_acc_rev_flag IS NULL THEN
61287          l_acc_rev_flag := 'N';
61288       END IF;
61289    EXCEPTION
61290       WHEN OTHERS THEN
61291          l_acc_rev_flag := 'N';
61292    END;
61293    --
61294    IF (l_acc_rev_flag = 'Y') THEN
61295 
61296        -- 4645092  ------------------------------------------------------------------------------
61297        -- To allow MPA report to determine if it should generate report process
61298        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61299        ------------------------------------------------------------------------------------------
61300 
61301        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61302        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61303    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61304    -- call ADRs
61305    -- Bug 4922099
61306    --
61307    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61308         (NVL(l_actual_upg_option, 'N') = 'O') OR
61309         (NVL(l_enc_upg_option, 'N') = 'O')
61310       )
61311    THEN
61312    NULL;
61313    --
61314    --
61315    
61316    --
61317    --
61318    END IF;
61319 
61320        --
61321        -- Update the line information that should be overwritten
61322        --
61326 
61323        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61324                                          p_header_num   => 1);
61325        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61327        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61328 
61329        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61330           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61331        END IF;
61332 
61333       --
61334       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61335       --
61336       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61337           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61338       ELSE
61339           ---------------------------------------------------------------------------------------------------
61340           -- 4262811a Switch Sign
61341           ---------------------------------------------------------------------------------------------------
61342           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61343           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61344                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61345           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61346                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61347           -- 5132302
61348           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61349                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61350 
61351       END IF;
61352 
61353       -- 4955764
61354       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61355       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61356 
61357 
61358       XLA_AE_LINES_PKG.ValidateCurrentLine;
61359       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61360 
61361       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61362                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61363                ,p_balance_type_code => l_balance_type_code);
61364 
61365    END IF;
61366 
61367    -----------------------------------------------------------------------------------------
61368    -- 4262811 Multiperiod Accounting
61369    -----------------------------------------------------------------------------------------
61370      -- No MPA option is assigned.
61371 
61372 
61373 END IF;
61374 END IF;
61375 --
61376 
61377 --
61378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61379    trace
61380       (p_msg      => 'END of AcctLineType_96'
61381       ,p_level    => C_LEVEL_PROCEDURE
61382       ,p_module   => l_log_module);
61383 END IF;
61384 --
61385 EXCEPTION
61386   WHEN xla_exceptions_pkg.application_exception THEN
61387       RAISE;
61388   WHEN OTHERS THEN
61389        xla_exceptions_pkg.raise_message
61390            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_96');
61391 END AcctLineType_96;
61392 --
61393 
61394 ---------------------------------------
61395 --
61396 -- PRIVATE FUNCTION
61397 --         AcctLineType_97
61398 --
61399 ---------------------------------------
61400 PROCEDURE AcctLineType_97 (
61401   p_application_id        IN NUMBER
61402  ,p_event_id              IN NUMBER
61403  ,p_calculate_acctd_flag  IN VARCHAR2
61404  ,p_calculate_g_l_flag    IN VARCHAR2
61405  ,p_actual_flag           IN OUT VARCHAR2
61406  ,p_balance_type_code     OUT VARCHAR2
61407  ,p_gain_or_loss_ref      OUT VARCHAR2
61408  
61409 --Document Distribution Type
61410  , p_source_2            IN VARCHAR2
61411 --Project Name
61412  , p_source_3            IN VARCHAR2
61413 --Task Number
61414  , p_source_4            IN VARCHAR2
61415 --Expenditure Organization
61416  , p_source_5            IN NUMBER
61417 --Distribution Link Type
61418  , p_source_21            IN VARCHAR2
61419 --Invoice Distribution Identifier
61420  , p_source_30            IN NUMBER
61421 --Invoice Currency Code
61422  , p_source_33            IN VARCHAR2
61423 --Invoice Distribution Amount
61424  , p_source_57            IN NUMBER
61425 --Document Type
61426  , p_source_83            IN VARCHAR2
61427 --Accounting reversal indicator for project invoice burden
61428  , p_source_85            IN VARCHAR2
61429 --Allocated to Application Identifier
61430  , p_source_86            IN NUMBER
61431 --Allocated to Distribution Type
61432  , p_source_87            IN VARCHAR2
61433 --Allocated to Entity Code
61434  , p_source_88            IN VARCHAR2
61435 --Allocated to First Distribution Identifier
61436  , p_source_89            IN NUMBER
61437 --Allocated to First System Transaction Identifier
61438  , p_source_90            IN NUMBER
61439 --Invoice Distribution Expenditure Type
61440  , p_source_96            IN VARCHAR2
61441 --Encumbrance Upgrade Credit Accounting Class
61442  , p_source_97            IN VARCHAR2
61443 --Encumbrance Upgrade Credit Account
61444  , p_source_98            IN NUMBER
61448  , p_source_100            IN VARCHAR2
61445 --Invoice Distribution Ledger Amount Before Rounding
61446  , p_source_99            IN NUMBER
61447 --Encumbrance Upgrade Debit Accounting Class
61449 --Encumbrance Upgrade Debit Account
61450  , p_source_101            IN NUMBER
61451 --Use Encumbrances Upgrade Attributes Flag
61452  , p_source_102            IN VARCHAR2
61453 --Accounting reversal first distribution identifier for project invoice burden
61454  , p_source_103            IN NUMBER
61455 --Invoice Burden Applied to Second Distribution Identifier
61456  , p_source_104            IN VARCHAR2
61457 --Accounting reversal distribution type for project invoice burden
61458  , p_source_105            IN VARCHAR2
61459 --Encumbrance Upgrade Credit Encumbrance Type
61460  , p_source_106            IN NUMBER
61461 --Encumbrance Upgrade Debit Encumbrance Type
61462  , p_source_107            IN NUMBER
61463 --Project Encumbrance Applied to Application Identifier
61464  , p_source_109            IN NUMBER
61465 --Project Encumbrance Applied to Distribution Type
61466  , p_source_110            IN VARCHAR2
61467 --Project Encumbrance Applied to Entity Code
61468  , p_source_111            IN VARCHAR2
61469 --Project Encumbrance First Distribution Identifier
61470  , p_source_112            IN NUMBER
61471 --Project Encumbrance First System Transaction Identifier
61472  , p_source_113            IN NUMBER
61473 --Project Encumbrance Second Distribution Identifier
61474  , p_source_114            IN VARCHAR2
61475 )
61476 IS
61477 
61478 l_component_type              VARCHAR2(80);
61479 l_component_code              VARCHAR2(30);
61480 l_component_type_code         VARCHAR2(1);
61481 l_component_appl_id           INTEGER;
61482 l_amb_context_code            VARCHAR2(30);
61483 l_entity_code                 VARCHAR2(30);
61484 l_event_class_code            VARCHAR2(30);
61485 l_ae_header_id                NUMBER;
61486 l_event_type_code             VARCHAR2(30);
61487 l_line_definition_code        VARCHAR2(30);
61488 l_line_definition_owner_code  VARCHAR2(1);
61489 --
61490 -- adr variables
61491 l_segment                     VARCHAR2(30);
61492 l_ccid                        NUMBER;
61493 l_adr_transaction_coa_id      NUMBER;
61494 l_adr_accounting_coa_id       NUMBER;
61495 l_adr_flexfield_segment_code  VARCHAR2(30);
61496 l_adr_flex_value_set_id       NUMBER;
61497 l_adr_value_type_code         VARCHAR2(30);
61498 l_adr_value_combination_id    NUMBER;
61499 l_adr_value_segment_code      VARCHAR2(30);
61500 
61501 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61502 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61503 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61504 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61505 
61506 -- 4262811 Variables ------------------------------------------------------------------------------------------
61507 l_entered_amt_idx             NUMBER;
61508 l_accted_amt_idx              NUMBER;
61509 l_acc_rev_flag                VARCHAR2(1);
61510 l_accrual_line_num            NUMBER;
61511 l_tmp_amt                     NUMBER;
61512 l_acc_rev_natural_side_code   VARCHAR2(1);
61513 
61514 l_num_entries                 NUMBER;
61515 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61516 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61517 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61518 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61519 l_recog_line_1                NUMBER;
61520 l_recog_line_2                NUMBER;
61521 
61522 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61523 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61524 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61525 
61526 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61527 
61528 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61529 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61530 
61531 ---------------------------------------------------------------------------------------------------------------
61532 
61533 
61534 --
61535 -- bulk performance
61536 --
61537 l_balance_type_code           VARCHAR2(1);
61538 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61539 l_log_module                  VARCHAR2(240);
61540 
61541 --
61542 -- Upgrade strategy
61543 --
61544 l_actual_upg_option           VARCHAR2(1);
61545 l_enc_upg_option           VARCHAR2(1);
61546 
61547 --
61548 BEGIN
61549 --
61550 IF g_log_enabled THEN
61551       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
61552 END IF;
61553 --
61554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61555 
61556       trace
61557          (p_msg      => 'BEGIN of AcctLineType_97'
61558          ,p_level    => C_LEVEL_PROCEDURE
61559          ,p_module   => l_log_module);
61560 
61561 END IF;
61562 --
61563 l_component_type             := 'AMB_JLT';
61564 l_component_code             := 'RESERVE_PROJ_ENC';
61565 l_component_type_code        := 'S';
61566 l_component_appl_id          :=  200;
61567 l_amb_context_code           := 'DEFAULT';
61568 l_entity_code                := 'AP_INVOICES';
61569 l_event_class_code           := 'PREPAY_APPLICATION_BURDEN';
61570 l_event_type_code            := 'PREPAY_APPLICATION_BURDEN_ALL';
61574 l_balance_type_code          := 'E';
61571 l_line_definition_owner_code := 'S';
61572 l_line_definition_code       := 'AP_PREPAY_APPLY_BURDEN_ENC_ALL';
61573 --
61575 l_segment                     := NULL;
61576 l_ccid                        := NULL;
61577 l_adr_transaction_coa_id      := NULL;
61578 l_adr_accounting_coa_id       := NULL;
61579 l_adr_flexfield_segment_code  := NULL;
61580 l_adr_flex_value_set_id       := NULL;
61581 l_adr_value_type_code         := NULL;
61582 l_adr_value_combination_id    := NULL;
61583 l_adr_value_segment_code      := NULL;
61584 
61585 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
61586 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
61587 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61588 l_budgetary_control_flag     := 'Y';
61589 
61590 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61591 l_bflow_applied_to_amt       := NULL; -- 5132302
61592 l_entered_amt_idx            := NULL;          -- 4262811
61593 l_accted_amt_idx             := NULL;          -- 4262811
61594 l_acc_rev_flag               := NULL;          -- 4262811
61595 l_accrual_line_num           := NULL;          -- 4262811
61596 l_tmp_amt                    := NULL;          -- 4262811
61597 --
61598  
61599 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61600     l_balance_type_code <> 'B' THEN
61601 IF NVL(p_source_83,'
61602 ') =  'PO' OR 
61603 (NVL(p_source_83,'
61604 ') =  'AP' AND 
61605 NVL(p_source_2,'
61606 ') =  'PREPAY APPL' OR 
61607 NVL(p_source_2,'
61608 ') =  'PREPAY APPL NONREC TAX')
61609  THEN 
61610 
61611    --
61612    XLA_AE_LINES_PKG.SetNewLine;
61613 
61614    p_balance_type_code          := l_balance_type_code;
61615    -- set the flag so later we will know whether the gain loss line needs to be created
61616    
61617    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61618      p_actual_flag :='A';
61619    END IF;
61620 
61621    --
61622    -- bulk performance
61623    --
61624    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61625                                       p_header_num   => 0); -- 4262811
61626    --
61627    -- set accounting line options
61628    --
61629    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61630            p_natural_side_code          => 'D'
61631          , p_gain_or_loss_flag          => 'N'
61632          , p_gl_transfer_mode_code      => 'S'
61633          , p_acct_entry_type_code       => 'E'
61634          , p_switch_side_flag           => 'Y'
61635          , p_merge_duplicate_code       => 'N'
61636          );
61637    --
61638    l_acc_rev_natural_side_code := 'C';  -- 4262811
61639    -- 
61640    --
61641    -- set accounting line type info
61642    --
61643    xla_ae_lines_pkg.SetAcctLineType
61644       (p_component_type             => l_component_type
61645       ,p_event_type_code            => l_event_type_code
61646       ,p_line_definition_owner_code => l_line_definition_owner_code
61647       ,p_line_definition_code       => l_line_definition_code
61648       ,p_accounting_line_code       => l_component_code
61649       ,p_accounting_line_type_code  => l_component_type_code
61650       ,p_accounting_line_appl_id    => l_component_appl_id
61651       ,p_amb_context_code           => l_amb_context_code
61652       ,p_entity_code                => l_entity_code
61653       ,p_event_class_code           => l_event_class_code);
61654    --
61655    -- set accounting class
61656    --
61657    xla_ae_lines_pkg.SetAcctClass(
61658            p_accounting_class_code  => 'PA_BUDGET_ENC'
61659          , p_ae_header_id           => l_ae_header_id
61660          );
61661 
61662    --
61663    -- set rounding class
61664    --
61665    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61666                       'PA_BUDGET_ENC';
61667 
61668    --
61669    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61670    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61671    --
61672    -- bulk performance
61673    --
61674    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61675 
61676    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61677       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61678 
61679    -- 4955764
61680    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61681       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61682 
61683    -- 4458381 Public Sector Enh
61684    
61685    --
61686    -- set accounting attributes for the line type
61687    --
61688    l_entered_amt_idx := 27;
61689    l_accted_amt_idx  := 29;
61690    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
61691    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61692    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
61693    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
61694    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
61695    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
61699    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
61696    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
61697    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
61698    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
61700    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
61701    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
61702    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
61703    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
61704    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
61705    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61706    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
61707    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
61708    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
61709    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
61710    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
61711    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61712    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
61713    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
61714    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
61715    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
61716    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
61717    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
61718    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
61719    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
61720    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
61721    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
61722    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
61723    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
61724    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
61725    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
61726    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
61727    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
61728    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
61729    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
61730    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
61731    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
61732    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
61733    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
61734    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
61735    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
61736    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
61737    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
61738    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
61739    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
61740    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
61741    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
61742    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
61743    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
61744    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
61745    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
61746    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
61747    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
61748    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
61749    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
61750    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
61751    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
61752    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
61753    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
61754    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
61755    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
61756    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
61757    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
61758    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
61759 
61760    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61761    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61762 
61763    ---------------------------------------------------------------------------------------------------------------
61764    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61765    ---------------------------------------------------------------------------------------------------------------
61766    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61767 
61768    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61769    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61770 
61771    IF xla_accounting_cache_pkg.GetValueChar
61772          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61773          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61774    AND l_bflow_method_code = 'PRIOR_ENTRY'
61775 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61776    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61780          xla_ae_lines_pkg.BflowUpgEntry
61777          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61778        )
61779    THEN
61781            (p_business_method_code    => l_bflow_method_code
61782            ,p_business_class_code     => l_bflow_class_code
61783            ,p_balance_type            => l_balance_type_code);
61784    ELSE
61785       NULL;
61786 XLA_AE_LINES_PKG.business_flow_validation(
61787                                 p_business_method_code     => l_bflow_method_code
61788                                ,p_business_class_code      => l_bflow_class_code
61789                                ,p_inherit_description_flag => l_inherit_desc_flag);
61790    END IF;
61791 
61792    --
61793    -- call analytical criteria
61794    --
61795    -- Inherited Analytical Criteria for business flow method of Prior Entry.
61796    --
61797    -- call description
61798    --
61799    
61800 xla_ae_lines_pkg.SetLineDescription(
61801    p_ae_header_id => l_ae_header_id
61802   ,p_description  => Description_3 (
61803      p_application_id         => p_application_id
61804    , p_ae_header_id           => l_ae_header_id 
61805 , p_source_2 => p_source_2
61806 , p_source_3 => p_source_3
61807 , p_source_4 => p_source_4
61808 , p_source_5 => p_source_5
61809    )
61810 );
61811 
61812 
61813    --
61814    -- call ADRs
61815    -- Bug 4922099
61816    --
61817    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61818         (NVL(l_actual_upg_option, 'N') = 'O') OR
61819         (NVL(l_enc_upg_option, 'N') = 'O')
61820       )
61821    THEN
61822    NULL;
61823    --
61824    --
61825    
61826    --
61827    --
61828    END IF;
61829    --
61830    -- Bug 4922099
61831    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61832           (NVL(l_enc_upg_option, 'N') = 'O')
61833         ) AND
61834         (l_bflow_method_code = 'PRIOR_ENTRY')
61835       )
61836    THEN
61837       IF
61838       --
61839       1 = 1
61840       --
61841       THEN
61842       xla_accounting_err_pkg.build_message
61843                                     (p_appli_s_name            => 'XLA'
61844                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61845                                     ,p_token_1                 => 'LINE_NUMBER'
61846                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61847                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61848                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61849                                                                              l_component_type
61850                                                                             ,l_component_code
61851                                                                             ,l_component_type_code
61852                                                                             ,l_component_appl_id
61853                                                                             ,l_amb_context_code
61854                                                                             ,l_entity_code
61855                                                                             ,l_event_class_code
61856                                                                            )
61857                                     ,p_token_3                 => 'OWNER'
61858                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61859                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61860                                                                           ,p_lookup_code    => l_component_type_code
61861                                                                          )
61862                                     ,p_token_4                 => 'PRODUCT_NAME'
61863                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61864                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61865                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61866                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61867                                     ,p_ae_header_id            =>  NULL
61868                                        );
61869 
61870         IF (C_LEVEL_ERROR>= g_log_level) THEN
61871                  trace
61872                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61873                       ,p_level    => C_LEVEL_ERROR
61874                       ,p_module   => l_log_module);
61875         END IF;
61876       END IF;
61877    END IF;
61878    --
61879    --
61880    ------------------------------------------------------------------------------------------------
61881    -- 4219869 Business Flow
61882    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61883    -- Prior Entry.  Currently, the following code is always generated.
61884    ------------------------------------------------------------------------------------------------
61885    -- No ValidateCurrentLine for business flow method of Prior Entry
61886 
61887    ------------------------------------------------------------------------------------
61888    -- 4219869 Business Flow
61892 
61889    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61890    ------------------------------------------------------------------------------------
61891    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61893    ----------------------------------------------------------------------------------
61894    -- 4219869 Business Flow
61895    -- Update journal entry status -- Need to generate this within IF <condition>
61896    ----------------------------------------------------------------------------------
61897    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61898          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61899          ,p_balance_type_code => l_balance_type_code
61900          );
61901 
61902    -------------------------------------------------------------------------------------------
61903    -- 4262811 - Generate the Accrual Reversal lines
61904    -------------------------------------------------------------------------------------------
61905    BEGIN
61906       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61907                               (g_array_event(p_event_id).array_value_num('header_index'));
61908       IF l_acc_rev_flag IS NULL THEN
61909          l_acc_rev_flag := 'N';
61910       END IF;
61911    EXCEPTION
61912       WHEN OTHERS THEN
61913          l_acc_rev_flag := 'N';
61914    END;
61915    --
61916    IF (l_acc_rev_flag = 'Y') THEN
61917 
61918        -- 4645092  ------------------------------------------------------------------------------
61919        -- To allow MPA report to determine if it should generate report process
61920        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61921        ------------------------------------------------------------------------------------------
61922 
61923        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61924        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61925    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61926    -- call ADRs
61927    -- Bug 4922099
61928    --
61929    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61930         (NVL(l_actual_upg_option, 'N') = 'O') OR
61931         (NVL(l_enc_upg_option, 'N') = 'O')
61932       )
61933    THEN
61934    NULL;
61935    --
61936    --
61937    
61938    --
61939    --
61940    END IF;
61941 
61942        --
61943        -- Update the line information that should be overwritten
61944        --
61945        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61946                                          p_header_num   => 1);
61947        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61948 
61949        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61950 
61951        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61952           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61953        END IF;
61954 
61955       --
61956       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61957       --
61958       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61959           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61960       ELSE
61961           ---------------------------------------------------------------------------------------------------
61962           -- 4262811a Switch Sign
61963           ---------------------------------------------------------------------------------------------------
61964           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61965           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61966                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61967           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61968                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61969           -- 5132302
61970           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61971                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61972 
61973       END IF;
61974 
61975       -- 4955764
61976       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61977       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61978 
61979 
61980       XLA_AE_LINES_PKG.ValidateCurrentLine;
61981       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61982 
61983       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61984                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61985                ,p_balance_type_code => l_balance_type_code);
61986 
61987    END IF;
61988 
61989    -----------------------------------------------------------------------------------------
61990    -- 4262811 Multiperiod Accounting
61991    -----------------------------------------------------------------------------------------
61992      -- No MPA option is assigned.
61993 
61994 
61995 END IF;
61996 END IF;
61997 --
61998 
61999 --
62000 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62001    trace
62002       (p_msg      => 'END of AcctLineType_97'
62006 --
62003       ,p_level    => C_LEVEL_PROCEDURE
62004       ,p_module   => l_log_module);
62005 END IF;
62007 EXCEPTION
62008   WHEN xla_exceptions_pkg.application_exception THEN
62009       RAISE;
62010   WHEN OTHERS THEN
62011        xla_exceptions_pkg.raise_message
62012            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_97');
62013 END AcctLineType_97;
62014 --
62015 
62016 ---------------------------------------
62017 --
62018 -- PRIVATE FUNCTION
62019 --         AcctLineType_98
62020 --
62021 ---------------------------------------
62022 PROCEDURE AcctLineType_98 (
62023   p_application_id        IN NUMBER
62024  ,p_event_id              IN NUMBER
62025  ,p_calculate_acctd_flag  IN VARCHAR2
62026  ,p_calculate_g_l_flag    IN VARCHAR2
62027  ,p_actual_flag           IN OUT VARCHAR2
62028  ,p_balance_type_code     OUT VARCHAR2
62029  ,p_gain_or_loss_ref      OUT VARCHAR2
62030  
62031 --Document Distribution Type
62032  , p_source_2            IN VARCHAR2
62033 --Project Name
62034  , p_source_3            IN VARCHAR2
62035 --Task Number
62036  , p_source_4            IN VARCHAR2
62037 --Expenditure Organization
62038  , p_source_5            IN NUMBER
62039 --Distribution Link Type
62040  , p_source_21            IN VARCHAR2
62041 --Invoice Distribution Identifier
62042  , p_source_30            IN NUMBER
62043 --Invoice Currency Code
62044  , p_source_33            IN VARCHAR2
62045 --Invoice Distribution Amount
62046  , p_source_57            IN NUMBER
62047 --Document Type
62048  , p_source_83            IN VARCHAR2
62049 --Accounting reversal indicator for project invoice burden
62050  , p_source_85            IN VARCHAR2
62051 --Allocated to Application Identifier
62052  , p_source_86            IN NUMBER
62053 --Allocated to Distribution Type
62054  , p_source_87            IN VARCHAR2
62055 --Allocated to Entity Code
62056  , p_source_88            IN VARCHAR2
62057 --Allocated to First Distribution Identifier
62058  , p_source_89            IN NUMBER
62059 --Allocated to First System Transaction Identifier
62060  , p_source_90            IN NUMBER
62061 --Invoice Distribution Expenditure Type
62062  , p_source_96            IN VARCHAR2
62063 --Encumbrance Upgrade Credit Accounting Class
62064  , p_source_97            IN VARCHAR2
62065 --Encumbrance Upgrade Credit Account
62066  , p_source_98            IN NUMBER
62067 --Invoice Distribution Ledger Amount Before Rounding
62068  , p_source_99            IN NUMBER
62069 --Encumbrance Upgrade Debit Accounting Class
62070  , p_source_100            IN VARCHAR2
62071 --Encumbrance Upgrade Debit Account
62072  , p_source_101            IN NUMBER
62073 --Use Encumbrances Upgrade Attributes Flag
62074  , p_source_102            IN VARCHAR2
62075 --Accounting reversal first distribution identifier for project invoice burden
62076  , p_source_103            IN NUMBER
62077 --Invoice Burden Applied to Second Distribution Identifier
62078  , p_source_104            IN VARCHAR2
62079 --Accounting reversal distribution type for project invoice burden
62080  , p_source_105            IN VARCHAR2
62081 --Encumbrance Upgrade Credit Encumbrance Type
62082  , p_source_106            IN NUMBER
62083 --Encumbrance Upgrade Debit Encumbrance Type
62084  , p_source_107            IN NUMBER
62085 --Project Encumbrance Applied to Application Identifier
62086  , p_source_109            IN NUMBER
62087 --Project Encumbrance Applied to Distribution Type
62088  , p_source_110            IN VARCHAR2
62089 --Project Encumbrance Applied to Entity Code
62090  , p_source_111            IN VARCHAR2
62091 --Project Encumbrance First Distribution Identifier
62092  , p_source_112            IN NUMBER
62093 --Project Encumbrance First System Transaction Identifier
62094  , p_source_113            IN NUMBER
62095 --Project Encumbrance Second Distribution Identifier
62096  , p_source_114            IN VARCHAR2
62097 )
62098 IS
62099 
62100 l_component_type              VARCHAR2(80);
62101 l_component_code              VARCHAR2(30);
62102 l_component_type_code         VARCHAR2(1);
62103 l_component_appl_id           INTEGER;
62104 l_amb_context_code            VARCHAR2(30);
62105 l_entity_code                 VARCHAR2(30);
62106 l_event_class_code            VARCHAR2(30);
62107 l_ae_header_id                NUMBER;
62108 l_event_type_code             VARCHAR2(30);
62109 l_line_definition_code        VARCHAR2(30);
62110 l_line_definition_owner_code  VARCHAR2(1);
62111 --
62112 -- adr variables
62113 l_segment                     VARCHAR2(30);
62114 l_ccid                        NUMBER;
62115 l_adr_transaction_coa_id      NUMBER;
62116 l_adr_accounting_coa_id       NUMBER;
62117 l_adr_flexfield_segment_code  VARCHAR2(30);
62118 l_adr_flex_value_set_id       NUMBER;
62119 l_adr_value_type_code         VARCHAR2(30);
62120 l_adr_value_combination_id    NUMBER;
62121 l_adr_value_segment_code      VARCHAR2(30);
62122 
62123 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62124 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62125 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62126 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62127 
62128 -- 4262811 Variables ------------------------------------------------------------------------------------------
62129 l_entered_amt_idx             NUMBER;
62130 l_accted_amt_idx              NUMBER;
62131 l_acc_rev_flag                VARCHAR2(1);
62132 l_accrual_line_num            NUMBER;
62136 l_num_entries                 NUMBER;
62133 l_tmp_amt                     NUMBER;
62134 l_acc_rev_natural_side_code   VARCHAR2(1);
62135 
62137 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62138 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62139 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62140 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62141 l_recog_line_1                NUMBER;
62142 l_recog_line_2                NUMBER;
62143 
62144 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62145 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62146 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62147 
62148 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62149 
62150 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62151 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62152 
62153 ---------------------------------------------------------------------------------------------------------------
62154 
62155 
62156 --
62157 -- bulk performance
62158 --
62159 l_balance_type_code           VARCHAR2(1);
62160 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62161 l_log_module                  VARCHAR2(240);
62162 
62163 --
62164 -- Upgrade strategy
62165 --
62166 l_actual_upg_option           VARCHAR2(1);
62167 l_enc_upg_option           VARCHAR2(1);
62168 
62169 --
62170 BEGIN
62171 --
62172 IF g_log_enabled THEN
62173       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
62174 END IF;
62175 --
62176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62177 
62178       trace
62179          (p_msg      => 'BEGIN of AcctLineType_98'
62180          ,p_level    => C_LEVEL_PROCEDURE
62181          ,p_module   => l_log_module);
62182 
62183 END IF;
62184 --
62185 l_component_type             := 'AMB_JLT';
62186 l_component_code             := 'RESERVE_PROJ_ENC';
62187 l_component_type_code        := 'S';
62188 l_component_appl_id          :=  200;
62189 l_amb_context_code           := 'DEFAULT';
62190 l_entity_code                := 'AP_INVOICES';
62191 l_event_class_code           := 'PREPAYMENT_BURDEN';
62192 l_event_type_code            := 'PREPAYMENT_BURDEN_ALL';
62193 l_line_definition_owner_code := 'S';
62194 l_line_definition_code       := 'AP_PREPAY_BURDEN_ENC_ALL';
62195 --
62196 l_balance_type_code          := 'E';
62197 l_segment                     := NULL;
62198 l_ccid                        := NULL;
62199 l_adr_transaction_coa_id      := NULL;
62200 l_adr_accounting_coa_id       := NULL;
62201 l_adr_flexfield_segment_code  := NULL;
62202 l_adr_flex_value_set_id       := NULL;
62203 l_adr_value_type_code         := NULL;
62204 l_adr_value_combination_id    := NULL;
62205 l_adr_value_segment_code      := NULL;
62206 
62207 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
62208 l_bflow_class_code           := 'PA_BUDGET_ENC';    -- 4219869 Business Flow
62209 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62210 l_budgetary_control_flag     := 'Y';
62211 
62212 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62213 l_bflow_applied_to_amt       := NULL; -- 5132302
62214 l_entered_amt_idx            := NULL;          -- 4262811
62215 l_accted_amt_idx             := NULL;          -- 4262811
62216 l_acc_rev_flag               := NULL;          -- 4262811
62217 l_accrual_line_num           := NULL;          -- 4262811
62218 l_tmp_amt                    := NULL;          -- 4262811
62219 --
62220  
62221 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62222     l_balance_type_code <> 'B' THEN
62223 IF NVL(p_source_83,'
62224 ') =  'PO'
62225  THEN 
62226 
62227    --
62228    XLA_AE_LINES_PKG.SetNewLine;
62229 
62230    p_balance_type_code          := l_balance_type_code;
62231    -- set the flag so later we will know whether the gain loss line needs to be created
62232    
62233    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62234      p_actual_flag :='A';
62235    END IF;
62236 
62237    --
62238    -- bulk performance
62239    --
62240    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62241                                       p_header_num   => 0); -- 4262811
62242    --
62243    -- set accounting line options
62244    --
62245    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62246            p_natural_side_code          => 'D'
62247          , p_gain_or_loss_flag          => 'N'
62248          , p_gl_transfer_mode_code      => 'S'
62249          , p_acct_entry_type_code       => 'E'
62250          , p_switch_side_flag           => 'Y'
62251          , p_merge_duplicate_code       => 'N'
62252          );
62253    --
62254    l_acc_rev_natural_side_code := 'C';  -- 4262811
62255    -- 
62256    --
62257    -- set accounting line type info
62258    --
62259    xla_ae_lines_pkg.SetAcctLineType
62260       (p_component_type             => l_component_type
62261       ,p_event_type_code            => l_event_type_code
62262       ,p_line_definition_owner_code => l_line_definition_owner_code
62263       ,p_line_definition_code       => l_line_definition_code
62264       ,p_accounting_line_code       => l_component_code
62265       ,p_accounting_line_type_code  => l_component_type_code
62269       ,p_event_class_code           => l_event_class_code);
62266       ,p_accounting_line_appl_id    => l_component_appl_id
62267       ,p_amb_context_code           => l_amb_context_code
62268       ,p_entity_code                => l_entity_code
62270    --
62271    -- set accounting class
62272    --
62273    xla_ae_lines_pkg.SetAcctClass(
62274            p_accounting_class_code  => 'PA_BUDGET_ENC'
62275          , p_ae_header_id           => l_ae_header_id
62276          );
62277 
62278    --
62279    -- set rounding class
62280    --
62281    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62282                       'PA_BUDGET_ENC';
62283 
62284    --
62285    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62286    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62287    --
62288    -- bulk performance
62289    --
62290    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62291 
62292    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62293       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62294 
62295    -- 4955764
62296    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62297       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62298 
62299    -- 4458381 Public Sector Enh
62300    
62301    --
62302    -- set accounting attributes for the line type
62303    --
62304    l_entered_amt_idx := 27;
62305    l_accted_amt_idx  := 29;
62306    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62307    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62308    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
62309    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
62310    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
62311    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
62312    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
62313    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
62314    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
62315    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
62316    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
62317    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
62318    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
62319    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
62320    l_rec_acct_attrs.array_num_value(7)  := p_source_109;
62321    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62322    l_rec_acct_attrs.array_char_value(8)  := p_source_110;
62323    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
62324    l_rec_acct_attrs.array_char_value(9)  := p_source_111;
62325    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
62326    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_112);
62327    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62328    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_113);
62329    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
62330    l_rec_acct_attrs.array_char_value(12)  := p_source_114;
62331    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
62332    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
62333    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
62334    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
62335    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
62336    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
62337    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
62338    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
62339    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
62340    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
62341    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
62342    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
62343    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
62344    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
62345    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
62346    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
62347    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
62348    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
62349    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
62350    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
62351    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
62352    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
62353    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
62354    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
62355    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
62356    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
62357    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
62358    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
62359    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
62360    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
62364    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
62361    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
62362    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
62363    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
62365    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
62366    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
62367    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
62368    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
62369    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
62370    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
62371    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
62372    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
62373    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
62374    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
62375 
62376    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62377    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62378 
62379    ---------------------------------------------------------------------------------------------------------------
62380    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62381    ---------------------------------------------------------------------------------------------------------------
62382    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62383 
62384    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62385    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62386 
62387    IF xla_accounting_cache_pkg.GetValueChar
62388          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62389          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62390    AND l_bflow_method_code = 'PRIOR_ENTRY'
62391 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62392    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62393          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62394        )
62395    THEN
62396          xla_ae_lines_pkg.BflowUpgEntry
62397            (p_business_method_code    => l_bflow_method_code
62398            ,p_business_class_code     => l_bflow_class_code
62399            ,p_balance_type            => l_balance_type_code);
62400    ELSE
62401       NULL;
62402 XLA_AE_LINES_PKG.business_flow_validation(
62403                                 p_business_method_code     => l_bflow_method_code
62404                                ,p_business_class_code      => l_bflow_class_code
62405                                ,p_inherit_description_flag => l_inherit_desc_flag);
62406    END IF;
62407 
62408    --
62409    -- call analytical criteria
62410    --
62411    -- Inherited Analytical Criteria for business flow method of Prior Entry.
62412    --
62413    -- call description
62414    --
62415    
62416 xla_ae_lines_pkg.SetLineDescription(
62417    p_ae_header_id => l_ae_header_id
62418   ,p_description  => Description_3 (
62419      p_application_id         => p_application_id
62420    , p_ae_header_id           => l_ae_header_id 
62421 , p_source_2 => p_source_2
62422 , p_source_3 => p_source_3
62423 , p_source_4 => p_source_4
62424 , p_source_5 => p_source_5
62425    )
62426 );
62427 
62428 
62429    --
62430    -- call ADRs
62431    -- Bug 4922099
62432    --
62433    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62434         (NVL(l_actual_upg_option, 'N') = 'O') OR
62435         (NVL(l_enc_upg_option, 'N') = 'O')
62436       )
62437    THEN
62438    NULL;
62439    --
62440    --
62441    
62442    --
62443    --
62444    END IF;
62445    --
62446    -- Bug 4922099
62447    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62448           (NVL(l_enc_upg_option, 'N') = 'O')
62449         ) AND
62450         (l_bflow_method_code = 'PRIOR_ENTRY')
62451       )
62452    THEN
62453       IF
62454       --
62455       1 = 1
62456       --
62457       THEN
62458       xla_accounting_err_pkg.build_message
62459                                     (p_appli_s_name            => 'XLA'
62460                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62461                                     ,p_token_1                 => 'LINE_NUMBER'
62462                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62463                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62464                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62465                                                                              l_component_type
62466                                                                             ,l_component_code
62467                                                                             ,l_component_type_code
62468                                                                             ,l_component_appl_id
62469                                                                             ,l_amb_context_code
62470                                                                             ,l_entity_code
62474                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62471                                                                             ,l_event_class_code
62472                                                                            )
62473                                     ,p_token_3                 => 'OWNER'
62475                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62476                                                                           ,p_lookup_code    => l_component_type_code
62477                                                                          )
62478                                     ,p_token_4                 => 'PRODUCT_NAME'
62479                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62480                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62481                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62482                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62483                                     ,p_ae_header_id            =>  NULL
62484                                        );
62485 
62486         IF (C_LEVEL_ERROR>= g_log_level) THEN
62487                  trace
62488                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62489                       ,p_level    => C_LEVEL_ERROR
62490                       ,p_module   => l_log_module);
62491         END IF;
62492       END IF;
62493    END IF;
62494    --
62495    --
62496    ------------------------------------------------------------------------------------------------
62497    -- 4219869 Business Flow
62498    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62499    -- Prior Entry.  Currently, the following code is always generated.
62500    ------------------------------------------------------------------------------------------------
62501    -- No ValidateCurrentLine for business flow method of Prior Entry
62502 
62503    ------------------------------------------------------------------------------------
62504    -- 4219869 Business Flow
62505    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62506    ------------------------------------------------------------------------------------
62507    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62508 
62509    ----------------------------------------------------------------------------------
62510    -- 4219869 Business Flow
62511    -- Update journal entry status -- Need to generate this within IF <condition>
62512    ----------------------------------------------------------------------------------
62513    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62514          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62515          ,p_balance_type_code => l_balance_type_code
62516          );
62517 
62518    -------------------------------------------------------------------------------------------
62519    -- 4262811 - Generate the Accrual Reversal lines
62520    -------------------------------------------------------------------------------------------
62521    BEGIN
62522       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62523                               (g_array_event(p_event_id).array_value_num('header_index'));
62524       IF l_acc_rev_flag IS NULL THEN
62525          l_acc_rev_flag := 'N';
62526       END IF;
62527    EXCEPTION
62528       WHEN OTHERS THEN
62529          l_acc_rev_flag := 'N';
62530    END;
62531    --
62532    IF (l_acc_rev_flag = 'Y') THEN
62533 
62534        -- 4645092  ------------------------------------------------------------------------------
62535        -- To allow MPA report to determine if it should generate report process
62536        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62537        ------------------------------------------------------------------------------------------
62538 
62539        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62540        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62541    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62542    -- call ADRs
62543    -- Bug 4922099
62544    --
62545    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62546         (NVL(l_actual_upg_option, 'N') = 'O') OR
62547         (NVL(l_enc_upg_option, 'N') = 'O')
62548       )
62549    THEN
62550    NULL;
62551    --
62552    --
62553    
62554    --
62555    --
62556    END IF;
62557 
62558        --
62559        -- Update the line information that should be overwritten
62560        --
62561        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62562                                          p_header_num   => 1);
62563        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62564 
62565        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62566 
62567        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62568           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62569        END IF;
62570 
62571       --
62572       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62573       --
62577           ---------------------------------------------------------------------------------------------------
62574       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62575           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62576       ELSE
62578           -- 4262811a Switch Sign
62579           ---------------------------------------------------------------------------------------------------
62580           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62581           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62582                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62583           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62584                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62585           -- 5132302
62586           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62587                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62588 
62589       END IF;
62590 
62591       -- 4955764
62592       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62593       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62594 
62595 
62596       XLA_AE_LINES_PKG.ValidateCurrentLine;
62597       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62598 
62599       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62600                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62601                ,p_balance_type_code => l_balance_type_code);
62602 
62603    END IF;
62604 
62605    -----------------------------------------------------------------------------------------
62606    -- 4262811 Multiperiod Accounting
62607    -----------------------------------------------------------------------------------------
62608      -- No MPA option is assigned.
62609 
62610 
62611 END IF;
62612 END IF;
62613 --
62614 
62615 --
62616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62617    trace
62618       (p_msg      => 'END of AcctLineType_98'
62619       ,p_level    => C_LEVEL_PROCEDURE
62620       ,p_module   => l_log_module);
62621 END IF;
62622 --
62623 EXCEPTION
62624   WHEN xla_exceptions_pkg.application_exception THEN
62625       RAISE;
62626   WHEN OTHERS THEN
62627        xla_exceptions_pkg.raise_message
62628            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_98');
62629 END AcctLineType_98;
62630 --
62631 
62632 ---------------------------------------
62633 --
62634 -- PRIVATE FUNCTION
62635 --         AcctLineType_99
62636 --
62637 ---------------------------------------
62638 PROCEDURE AcctLineType_99 (
62639   p_application_id        IN NUMBER
62640  ,p_event_id              IN NUMBER
62641  ,p_calculate_acctd_flag  IN VARCHAR2
62642  ,p_calculate_g_l_flag    IN VARCHAR2
62643  ,p_actual_flag           IN OUT VARCHAR2
62644  ,p_balance_type_code     OUT VARCHAR2
62645  ,p_gain_or_loss_ref      OUT VARCHAR2
62646  
62647 --Document Distribution Type
62648  , p_source_2            IN VARCHAR2
62649 --Project Name
62650  , p_source_3            IN VARCHAR2
62651 --Task Number
62652  , p_source_4            IN VARCHAR2
62653 --Expenditure Organization
62654  , p_source_5            IN NUMBER
62655 --Distribution Link Type
62656  , p_source_21            IN VARCHAR2
62657 --Invoice Distribution Identifier
62658  , p_source_30            IN NUMBER
62659 --Invoice Currency Code
62660  , p_source_33            IN VARCHAR2
62661 --Invoice Distribution Amount
62662  , p_source_57            IN NUMBER
62663 --Document Type
62664  , p_source_83            IN VARCHAR2
62665 --Burden Amount Display Method
62666  , p_source_84            IN VARCHAR2
62667 --Accounting reversal indicator for project invoice burden
62668  , p_source_85            IN VARCHAR2
62669 --Allocated to Application Identifier
62670  , p_source_86            IN NUMBER
62671 --Allocated to Distribution Type
62672  , p_source_87            IN VARCHAR2
62673 --Allocated to Entity Code
62674  , p_source_88            IN VARCHAR2
62675 --Allocated to First Distribution Identifier
62676  , p_source_89            IN NUMBER
62677 --Allocated to First System Transaction Identifier
62678  , p_source_90            IN NUMBER
62679 --Invoice Distribution Expenditure Type
62680  , p_source_96            IN VARCHAR2
62681 --Encumbrance Upgrade Credit Accounting Class
62682  , p_source_97            IN VARCHAR2
62683 --Encumbrance Upgrade Credit Account
62684  , p_source_98            IN NUMBER
62685 --Invoice Distribution Ledger Amount Before Rounding
62686  , p_source_99            IN NUMBER
62687 --Encumbrance Upgrade Debit Accounting Class
62688  , p_source_100            IN VARCHAR2
62689 --Encumbrance Upgrade Debit Account
62690  , p_source_101            IN NUMBER
62691 --Use Encumbrances Upgrade Attributes Flag
62692  , p_source_102            IN VARCHAR2
62693 --Accounting reversal first distribution identifier for project invoice burden
62694  , p_source_103            IN NUMBER
62695 --Invoice Burden Applied to Second Distribution Identifier
62696  , p_source_104            IN VARCHAR2
62700  , p_source_106            IN NUMBER
62697 --Accounting reversal distribution type for project invoice burden
62698  , p_source_105            IN VARCHAR2
62699 --Encumbrance Upgrade Credit Encumbrance Type
62701 --Encumbrance Upgrade Debit Encumbrance Type
62702  , p_source_107            IN NUMBER
62703 --Release Identifier
62704  , p_source_115            IN NUMBER
62705 --Purchase Order Burden Applied to Application Identifier
62706  , p_source_116            IN NUMBER
62707 --Purchase Order Burden Applied to Distribution Type
62708  , p_source_117            IN VARCHAR2
62709 --Purchase Order Burden Applied to Entity Code
62710  , p_source_118            IN VARCHAR2
62711 --Purchase Order Burden Applied to First Distribution Identifier
62712  , p_source_119            IN NUMBER
62713 --Purchase Order Burden Applied to First System Transaction Identifier
62714  , p_source_120            IN NUMBER
62715 --Purchase Order Burden Applied to Second Distribution Identifier
62716  , p_source_121            IN VARCHAR2
62717 )
62718 IS
62719 
62720 l_component_type              VARCHAR2(80);
62721 l_component_code              VARCHAR2(30);
62722 l_component_type_code         VARCHAR2(1);
62723 l_component_appl_id           INTEGER;
62724 l_amb_context_code            VARCHAR2(30);
62725 l_entity_code                 VARCHAR2(30);
62726 l_event_class_code            VARCHAR2(30);
62727 l_ae_header_id                NUMBER;
62728 l_event_type_code             VARCHAR2(30);
62729 l_line_definition_code        VARCHAR2(30);
62730 l_line_definition_owner_code  VARCHAR2(1);
62731 --
62732 -- adr variables
62733 l_segment                     VARCHAR2(30);
62734 l_ccid                        NUMBER;
62735 l_adr_transaction_coa_id      NUMBER;
62736 l_adr_accounting_coa_id       NUMBER;
62737 l_adr_flexfield_segment_code  VARCHAR2(30);
62738 l_adr_flex_value_set_id       NUMBER;
62739 l_adr_value_type_code         VARCHAR2(30);
62740 l_adr_value_combination_id    NUMBER;
62741 l_adr_value_segment_code      VARCHAR2(30);
62742 
62743 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62744 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62745 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62746 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62747 
62748 -- 4262811 Variables ------------------------------------------------------------------------------------------
62749 l_entered_amt_idx             NUMBER;
62750 l_accted_amt_idx              NUMBER;
62751 l_acc_rev_flag                VARCHAR2(1);
62752 l_accrual_line_num            NUMBER;
62753 l_tmp_amt                     NUMBER;
62754 l_acc_rev_natural_side_code   VARCHAR2(1);
62755 
62756 l_num_entries                 NUMBER;
62757 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62758 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62759 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62760 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62761 l_recog_line_1                NUMBER;
62762 l_recog_line_2                NUMBER;
62763 
62764 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62765 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62766 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62767 
62768 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62769 
62770 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62771 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62772 
62773 ---------------------------------------------------------------------------------------------------------------
62774 
62775 
62776 --
62777 -- bulk performance
62778 --
62779 l_balance_type_code           VARCHAR2(1);
62780 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62781 l_log_module                  VARCHAR2(240);
62782 
62783 --
62784 -- Upgrade strategy
62785 --
62786 l_actual_upg_option           VARCHAR2(1);
62787 l_enc_upg_option           VARCHAR2(1);
62788 
62789 --
62790 BEGIN
62791 --
62792 IF g_log_enabled THEN
62793       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
62794 END IF;
62795 --
62796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62797 
62798       trace
62799          (p_msg      => 'BEGIN of AcctLineType_99'
62800          ,p_level    => C_LEVEL_PROCEDURE
62801          ,p_module   => l_log_module);
62802 
62803 END IF;
62804 --
62805 l_component_type             := 'AMB_JLT';
62806 l_component_code             := 'REVERSE_PO_BURDENED_ENC';
62807 l_component_type_code        := 'S';
62808 l_component_appl_id          :=  200;
62809 l_amb_context_code           := 'DEFAULT';
62810 l_entity_code                := 'AP_INVOICES';
62811 l_event_class_code           := 'INVOICE_BURDEN';
62812 l_event_type_code            := 'INVOICE_BURDEN_ALL';
62813 l_line_definition_owner_code := 'S';
62814 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
62815 --
62816 l_balance_type_code          := 'E';
62817 l_segment                     := NULL;
62818 l_ccid                        := NULL;
62819 l_adr_transaction_coa_id      := NULL;
62820 l_adr_accounting_coa_id       := NULL;
62821 l_adr_flexfield_segment_code  := NULL;
62822 l_adr_flex_value_set_id       := NULL;
62823 l_adr_value_type_code         := NULL;
62827 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
62824 l_adr_value_combination_id    := NULL;
62825 l_adr_value_segment_code      := NULL;
62826 
62828 l_bflow_class_code           := 'PO_PA_BURDENED_ENC';    -- 4219869 Business Flow
62829 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62830 l_budgetary_control_flag     := 'Y';
62831 
62832 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62833 l_bflow_applied_to_amt       := NULL; -- 5132302
62834 l_entered_amt_idx            := NULL;          -- 4262811
62835 l_accted_amt_idx             := NULL;          -- 4262811
62836 l_acc_rev_flag               := NULL;          -- 4262811
62837 l_accrual_line_num           := NULL;          -- 4262811
62838 l_tmp_amt                    := NULL;          -- 4262811
62839 --
62840  
62841 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62842     l_balance_type_code <> 'B' THEN
62843 IF NVL(p_source_83,'
62844 ') =  'PO' AND 
62845 NVL(p_source_84,'
62846 ') =  'S' AND 
62847 p_source_115 IS NULL 
62848  THEN 
62849 
62850    --
62851    XLA_AE_LINES_PKG.SetNewLine;
62852 
62853    p_balance_type_code          := l_balance_type_code;
62854    -- set the flag so later we will know whether the gain loss line needs to be created
62855    
62856    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62857      p_actual_flag :='A';
62858    END IF;
62859 
62860    --
62861    -- bulk performance
62862    --
62863    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62864                                       p_header_num   => 0); -- 4262811
62865    --
62866    -- set accounting line options
62867    --
62868    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62869            p_natural_side_code          => 'C'
62870          , p_gain_or_loss_flag          => 'N'
62871          , p_gl_transfer_mode_code      => 'S'
62872          , p_acct_entry_type_code       => 'E'
62873          , p_switch_side_flag           => 'Y'
62874          , p_merge_duplicate_code       => 'N'
62875          );
62876    --
62877    l_acc_rev_natural_side_code := 'D';  -- 4262811
62878    -- 
62879    --
62880    -- set accounting line type info
62881    --
62882    xla_ae_lines_pkg.SetAcctLineType
62883       (p_component_type             => l_component_type
62884       ,p_event_type_code            => l_event_type_code
62885       ,p_line_definition_owner_code => l_line_definition_owner_code
62886       ,p_line_definition_code       => l_line_definition_code
62887       ,p_accounting_line_code       => l_component_code
62888       ,p_accounting_line_type_code  => l_component_type_code
62889       ,p_accounting_line_appl_id    => l_component_appl_id
62890       ,p_amb_context_code           => l_amb_context_code
62891       ,p_entity_code                => l_entity_code
62892       ,p_event_class_code           => l_event_class_code);
62893    --
62894    -- set accounting class
62895    --
62896    xla_ae_lines_pkg.SetAcctClass(
62897            p_accounting_class_code  => 'PO_PA_BURDENED'
62898          , p_ae_header_id           => l_ae_header_id
62899          );
62900 
62901    --
62902    -- set rounding class
62903    --
62904    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62905                       'PO_PA_BURDENED';
62906 
62907    --
62908    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62909    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62910    --
62911    -- bulk performance
62912    --
62913    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62914 
62915    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62916       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62917 
62918    -- 4955764
62919    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62920       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62921 
62922    -- 4458381 Public Sector Enh
62923    
62924    --
62925    -- set accounting attributes for the line type
62926    --
62927    l_entered_amt_idx := 27;
62928    l_accted_amt_idx  := 29;
62929    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62930    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62931    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
62932    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
62933    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
62934    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
62935    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
62936    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
62937    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
62938    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
62939    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
62940    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
62941    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
62942    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
62943    l_rec_acct_attrs.array_num_value(7)  := p_source_116;
62947    l_rec_acct_attrs.array_char_value(9)  := p_source_118;
62944    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62945    l_rec_acct_attrs.array_char_value(8)  := p_source_117;
62946    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
62948    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
62949    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_119);
62950    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62951    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_120);
62952    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
62953    l_rec_acct_attrs.array_char_value(12)  := p_source_121;
62954    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
62955    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
62956    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
62957    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
62958    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
62959    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
62960    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
62961    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
62962    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
62963    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
62964    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
62965    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
62966    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
62967    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
62968    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
62969    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
62970    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
62971    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
62972    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
62973    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
62974    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
62975    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
62976    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
62977    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
62978    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
62979    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
62980    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
62981    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
62982    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
62983    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
62984    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
62985    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
62986    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
62987    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
62988    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
62989    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
62990    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
62991    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
62992    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
62993    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
62994    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
62995    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
62996    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
62997    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
62998 
62999    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63000    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63001 
63002    ---------------------------------------------------------------------------------------------------------------
63003    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63004    ---------------------------------------------------------------------------------------------------------------
63005    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63006 
63007    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63008    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63009 
63010    IF xla_accounting_cache_pkg.GetValueChar
63011          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63012          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63013    AND l_bflow_method_code = 'PRIOR_ENTRY'
63014 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63015    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63016          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63017        )
63018    THEN
63019          xla_ae_lines_pkg.BflowUpgEntry
63020            (p_business_method_code    => l_bflow_method_code
63021            ,p_business_class_code     => l_bflow_class_code
63022            ,p_balance_type            => l_balance_type_code);
63023    ELSE
63024       NULL;
63025 XLA_AE_LINES_PKG.business_flow_validation(
63026                                 p_business_method_code     => l_bflow_method_code
63027                                ,p_business_class_code      => l_bflow_class_code
63031    --
63028                                ,p_inherit_description_flag => l_inherit_desc_flag);
63029    END IF;
63030 
63032    -- call analytical criteria
63033    --
63034    -- Inherited Analytical Criteria for business flow method of Prior Entry.
63035    --
63036    -- call description
63037    --
63038    
63039 xla_ae_lines_pkg.SetLineDescription(
63040    p_ae_header_id => l_ae_header_id
63041   ,p_description  => Description_3 (
63042      p_application_id         => p_application_id
63043    , p_ae_header_id           => l_ae_header_id 
63044 , p_source_2 => p_source_2
63045 , p_source_3 => p_source_3
63046 , p_source_4 => p_source_4
63047 , p_source_5 => p_source_5
63048    )
63049 );
63050 
63051 
63052    --
63053    -- call ADRs
63054    -- Bug 4922099
63055    --
63056    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63057         (NVL(l_actual_upg_option, 'N') = 'O') OR
63058         (NVL(l_enc_upg_option, 'N') = 'O')
63059       )
63060    THEN
63061    NULL;
63062    --
63063    --
63064    
63065    --
63066    --
63067    END IF;
63068    --
63069    -- Bug 4922099
63070    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63071           (NVL(l_enc_upg_option, 'N') = 'O')
63072         ) AND
63073         (l_bflow_method_code = 'PRIOR_ENTRY')
63074       )
63075    THEN
63076       IF
63077       --
63078       1 = 1
63079       --
63080       THEN
63081       xla_accounting_err_pkg.build_message
63082                                     (p_appli_s_name            => 'XLA'
63083                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63084                                     ,p_token_1                 => 'LINE_NUMBER'
63085                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63086                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63087                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63088                                                                              l_component_type
63089                                                                             ,l_component_code
63090                                                                             ,l_component_type_code
63091                                                                             ,l_component_appl_id
63092                                                                             ,l_amb_context_code
63093                                                                             ,l_entity_code
63094                                                                             ,l_event_class_code
63095                                                                            )
63096                                     ,p_token_3                 => 'OWNER'
63097                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63098                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63099                                                                           ,p_lookup_code    => l_component_type_code
63100                                                                          )
63101                                     ,p_token_4                 => 'PRODUCT_NAME'
63102                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63103                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63104                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63105                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63106                                     ,p_ae_header_id            =>  NULL
63107                                        );
63108 
63109         IF (C_LEVEL_ERROR>= g_log_level) THEN
63110                  trace
63111                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63112                       ,p_level    => C_LEVEL_ERROR
63113                       ,p_module   => l_log_module);
63114         END IF;
63115       END IF;
63116    END IF;
63117    --
63118    --
63119    ------------------------------------------------------------------------------------------------
63120    -- 4219869 Business Flow
63121    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63122    -- Prior Entry.  Currently, the following code is always generated.
63123    ------------------------------------------------------------------------------------------------
63124    -- No ValidateCurrentLine for business flow method of Prior Entry
63125 
63126    ------------------------------------------------------------------------------------
63127    -- 4219869 Business Flow
63128    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63129    ------------------------------------------------------------------------------------
63130    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63131 
63132    ----------------------------------------------------------------------------------
63133    -- 4219869 Business Flow
63134    -- Update journal entry status -- Need to generate this within IF <condition>
63135    ----------------------------------------------------------------------------------
63136    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63140 
63137          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63138          ,p_balance_type_code => l_balance_type_code
63139          );
63141    -------------------------------------------------------------------------------------------
63142    -- 4262811 - Generate the Accrual Reversal lines
63143    -------------------------------------------------------------------------------------------
63144    BEGIN
63145       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63146                               (g_array_event(p_event_id).array_value_num('header_index'));
63147       IF l_acc_rev_flag IS NULL THEN
63148          l_acc_rev_flag := 'N';
63149       END IF;
63150    EXCEPTION
63151       WHEN OTHERS THEN
63152          l_acc_rev_flag := 'N';
63153    END;
63154    --
63155    IF (l_acc_rev_flag = 'Y') THEN
63156 
63157        -- 4645092  ------------------------------------------------------------------------------
63158        -- To allow MPA report to determine if it should generate report process
63159        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63160        ------------------------------------------------------------------------------------------
63161 
63162        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63163        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63164    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63165    -- call ADRs
63166    -- Bug 4922099
63167    --
63168    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63169         (NVL(l_actual_upg_option, 'N') = 'O') OR
63170         (NVL(l_enc_upg_option, 'N') = 'O')
63171       )
63172    THEN
63173    NULL;
63174    --
63175    --
63176    
63177    --
63178    --
63179    END IF;
63180 
63181        --
63182        -- Update the line information that should be overwritten
63183        --
63184        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63185                                          p_header_num   => 1);
63186        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63187 
63188        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63189 
63190        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63191           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63192        END IF;
63193 
63194       --
63195       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63196       --
63197       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63198           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63199       ELSE
63200           ---------------------------------------------------------------------------------------------------
63201           -- 4262811a Switch Sign
63202           ---------------------------------------------------------------------------------------------------
63203           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63204           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63205                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63206           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63207                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63208           -- 5132302
63209           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63210                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63211 
63212       END IF;
63213 
63214       -- 4955764
63215       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63216       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63217 
63218 
63219       XLA_AE_LINES_PKG.ValidateCurrentLine;
63220       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63221 
63222       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63223                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63224                ,p_balance_type_code => l_balance_type_code);
63225 
63226    END IF;
63227 
63228    -----------------------------------------------------------------------------------------
63229    -- 4262811 Multiperiod Accounting
63230    -----------------------------------------------------------------------------------------
63231      -- No MPA option is assigned.
63232 
63233 
63234 END IF;
63235 END IF;
63236 --
63237 
63238 --
63239 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63240    trace
63241       (p_msg      => 'END of AcctLineType_99'
63242       ,p_level    => C_LEVEL_PROCEDURE
63243       ,p_module   => l_log_module);
63244 END IF;
63245 --
63246 EXCEPTION
63247   WHEN xla_exceptions_pkg.application_exception THEN
63248       RAISE;
63249   WHEN OTHERS THEN
63250        xla_exceptions_pkg.raise_message
63251            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_99');
63252 END AcctLineType_99;
63253 --
63254 
63255 ---------------------------------------
63256 --
63257 -- PRIVATE FUNCTION
63258 --         AcctLineType_100
63262   p_application_id        IN NUMBER
63259 --
63260 ---------------------------------------
63261 PROCEDURE AcctLineType_100 (
63263  ,p_event_id              IN NUMBER
63264  ,p_calculate_acctd_flag  IN VARCHAR2
63265  ,p_calculate_g_l_flag    IN VARCHAR2
63266  ,p_actual_flag           IN OUT VARCHAR2
63267  ,p_balance_type_code     OUT VARCHAR2
63268  ,p_gain_or_loss_ref      OUT VARCHAR2
63269  
63270 --Document Distribution Type
63271  , p_source_2            IN VARCHAR2
63272 --Project Name
63273  , p_source_3            IN VARCHAR2
63274 --Task Number
63275  , p_source_4            IN VARCHAR2
63276 --Expenditure Organization
63277  , p_source_5            IN NUMBER
63278 --Distribution Link Type
63279  , p_source_21            IN VARCHAR2
63280 --Invoice Distribution Identifier
63281  , p_source_30            IN NUMBER
63282 --Invoice Currency Code
63283  , p_source_33            IN VARCHAR2
63284 --Invoice Distribution Amount
63285  , p_source_57            IN NUMBER
63286 --Document Type
63287  , p_source_83            IN VARCHAR2
63288 --Burden Amount Display Method
63289  , p_source_84            IN VARCHAR2
63290 --Accounting reversal indicator for project invoice burden
63291  , p_source_85            IN VARCHAR2
63292 --Allocated to Application Identifier
63293  , p_source_86            IN NUMBER
63294 --Allocated to Distribution Type
63295  , p_source_87            IN VARCHAR2
63296 --Allocated to Entity Code
63297  , p_source_88            IN VARCHAR2
63298 --Allocated to First Distribution Identifier
63299  , p_source_89            IN NUMBER
63300 --Allocated to First System Transaction Identifier
63301  , p_source_90            IN NUMBER
63302 --Invoice Distribution Expenditure Type
63303  , p_source_96            IN VARCHAR2
63304 --Encumbrance Upgrade Credit Accounting Class
63305  , p_source_97            IN VARCHAR2
63306 --Encumbrance Upgrade Credit Account
63307  , p_source_98            IN NUMBER
63308 --Invoice Distribution Ledger Amount Before Rounding
63309  , p_source_99            IN NUMBER
63310 --Encumbrance Upgrade Debit Accounting Class
63311  , p_source_100            IN VARCHAR2
63312 --Encumbrance Upgrade Debit Account
63313  , p_source_101            IN NUMBER
63314 --Use Encumbrances Upgrade Attributes Flag
63315  , p_source_102            IN VARCHAR2
63316 --Accounting reversal first distribution identifier for project invoice burden
63317  , p_source_103            IN NUMBER
63318 --Invoice Burden Applied to Second Distribution Identifier
63319  , p_source_104            IN VARCHAR2
63320 --Accounting reversal distribution type for project invoice burden
63321  , p_source_105            IN VARCHAR2
63322 --Encumbrance Upgrade Credit Encumbrance Type
63323  , p_source_106            IN NUMBER
63324 --Encumbrance Upgrade Debit Encumbrance Type
63325  , p_source_107            IN NUMBER
63326 --Burden Record Identifier
63327  , p_source_108            IN VARCHAR2
63328  , p_source_108_meaning    IN VARCHAR2
63329 --Release Identifier
63330  , p_source_115            IN NUMBER
63331 --Purchase Order Burden Applied to Application Identifier
63332  , p_source_116            IN NUMBER
63333 --Purchase Order Burden Applied to Distribution Type
63334  , p_source_117            IN VARCHAR2
63335 --Purchase Order Burden Applied to Entity Code
63336  , p_source_118            IN VARCHAR2
63337 --Purchase Order Burden Applied to First Distribution Identifier
63338  , p_source_119            IN NUMBER
63339 --Purchase Order Burden Applied to First System Transaction Identifier
63340  , p_source_120            IN NUMBER
63341 --Purchase Order Burden Applied to Second Distribution Identifier
63342  , p_source_121            IN VARCHAR2
63343 )
63344 IS
63345 
63346 l_component_type              VARCHAR2(80);
63347 l_component_code              VARCHAR2(30);
63348 l_component_type_code         VARCHAR2(1);
63349 l_component_appl_id           INTEGER;
63350 l_amb_context_code            VARCHAR2(30);
63351 l_entity_code                 VARCHAR2(30);
63352 l_event_class_code            VARCHAR2(30);
63353 l_ae_header_id                NUMBER;
63354 l_event_type_code             VARCHAR2(30);
63355 l_line_definition_code        VARCHAR2(30);
63356 l_line_definition_owner_code  VARCHAR2(1);
63357 --
63358 -- adr variables
63359 l_segment                     VARCHAR2(30);
63360 l_ccid                        NUMBER;
63361 l_adr_transaction_coa_id      NUMBER;
63362 l_adr_accounting_coa_id       NUMBER;
63363 l_adr_flexfield_segment_code  VARCHAR2(30);
63364 l_adr_flex_value_set_id       NUMBER;
63365 l_adr_value_type_code         VARCHAR2(30);
63366 l_adr_value_combination_id    NUMBER;
63367 l_adr_value_segment_code      VARCHAR2(30);
63368 
63369 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63370 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63371 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63372 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63373 
63374 -- 4262811 Variables ------------------------------------------------------------------------------------------
63375 l_entered_amt_idx             NUMBER;
63376 l_accted_amt_idx              NUMBER;
63377 l_acc_rev_flag                VARCHAR2(1);
63378 l_accrual_line_num            NUMBER;
63379 l_tmp_amt                     NUMBER;
63380 l_acc_rev_natural_side_code   VARCHAR2(1);
63381 
63382 l_num_entries                 NUMBER;
63386 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63383 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63384 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63385 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63387 l_recog_line_1                NUMBER;
63388 l_recog_line_2                NUMBER;
63389 
63390 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63391 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63392 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63393 
63394 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63395 
63396 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63397 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63398 
63399 ---------------------------------------------------------------------------------------------------------------
63400 
63401 
63402 --
63403 -- bulk performance
63404 --
63405 l_balance_type_code           VARCHAR2(1);
63406 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63407 l_log_module                  VARCHAR2(240);
63408 
63409 --
63410 -- Upgrade strategy
63411 --
63412 l_actual_upg_option           VARCHAR2(1);
63413 l_enc_upg_option           VARCHAR2(1);
63414 
63415 --
63416 BEGIN
63417 --
63418 IF g_log_enabled THEN
63419       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
63420 END IF;
63421 --
63422 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63423 
63424       trace
63425          (p_msg      => 'BEGIN of AcctLineType_100'
63426          ,p_level    => C_LEVEL_PROCEDURE
63427          ,p_module   => l_log_module);
63428 
63429 END IF;
63430 --
63431 l_component_type             := 'AMB_JLT';
63432 l_component_code             := 'REVERSE_PO_BURDEN_ENC';
63433 l_component_type_code        := 'S';
63434 l_component_appl_id          :=  200;
63435 l_amb_context_code           := 'DEFAULT';
63436 l_entity_code                := 'AP_INVOICES';
63437 l_event_class_code           := 'INVOICE_BURDEN';
63438 l_event_type_code            := 'INVOICE_BURDEN_ALL';
63439 l_line_definition_owner_code := 'S';
63440 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
63441 --
63442 l_balance_type_code          := 'E';
63443 l_segment                     := NULL;
63444 l_ccid                        := NULL;
63445 l_adr_transaction_coa_id      := NULL;
63446 l_adr_accounting_coa_id       := NULL;
63447 l_adr_flexfield_segment_code  := NULL;
63448 l_adr_flex_value_set_id       := NULL;
63449 l_adr_value_type_code         := NULL;
63450 l_adr_value_combination_id    := NULL;
63451 l_adr_value_segment_code      := NULL;
63452 
63453 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
63454 l_bflow_class_code           := 'PO_PA_BURDEN_ENC';    -- 4219869 Business Flow
63455 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63456 l_budgetary_control_flag     := 'Y';
63457 
63458 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63459 l_bflow_applied_to_amt       := NULL; -- 5132302
63460 l_entered_amt_idx            := NULL;          -- 4262811
63461 l_accted_amt_idx             := NULL;          -- 4262811
63462 l_acc_rev_flag               := NULL;          -- 4262811
63463 l_accrual_line_num           := NULL;          -- 4262811
63464 l_tmp_amt                    := NULL;          -- 4262811
63465 --
63466  
63467 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63468     l_balance_type_code <> 'B' THEN
63469 IF NVL(p_source_83,'
63470 ') =  'PO' AND 
63471 NVL(p_source_108,'
63472 ') =  'O' AND 
63473 NVL(p_source_84,'
63474 ') =  'D' AND 
63475 p_source_115 IS NULL 
63476  THEN 
63477 
63478    --
63479    XLA_AE_LINES_PKG.SetNewLine;
63480 
63481    p_balance_type_code          := l_balance_type_code;
63482    -- set the flag so later we will know whether the gain loss line needs to be created
63483    
63484    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63485      p_actual_flag :='A';
63486    END IF;
63487 
63488    --
63489    -- bulk performance
63490    --
63491    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63492                                       p_header_num   => 0); -- 4262811
63493    --
63494    -- set accounting line options
63495    --
63496    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63497            p_natural_side_code          => 'C'
63498          , p_gain_or_loss_flag          => 'N'
63499          , p_gl_transfer_mode_code      => 'S'
63500          , p_acct_entry_type_code       => 'E'
63501          , p_switch_side_flag           => 'Y'
63502          , p_merge_duplicate_code       => 'N'
63503          );
63504    --
63505    l_acc_rev_natural_side_code := 'D';  -- 4262811
63506    -- 
63507    --
63508    -- set accounting line type info
63509    --
63510    xla_ae_lines_pkg.SetAcctLineType
63511       (p_component_type             => l_component_type
63512       ,p_event_type_code            => l_event_type_code
63513       ,p_line_definition_owner_code => l_line_definition_owner_code
63514       ,p_line_definition_code       => l_line_definition_code
63515       ,p_accounting_line_code       => l_component_code
63516       ,p_accounting_line_type_code  => l_component_type_code
63517       ,p_accounting_line_appl_id    => l_component_appl_id
63521    --
63518       ,p_amb_context_code           => l_amb_context_code
63519       ,p_entity_code                => l_entity_code
63520       ,p_event_class_code           => l_event_class_code);
63522    -- set accounting class
63523    --
63524    xla_ae_lines_pkg.SetAcctClass(
63525            p_accounting_class_code  => 'PO_PA_BURDEN'
63526          , p_ae_header_id           => l_ae_header_id
63527          );
63528 
63529    --
63530    -- set rounding class
63531    --
63532    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63533                       'PO_PA_BURDEN';
63534 
63535    --
63536    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63537    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63538    --
63539    -- bulk performance
63540    --
63541    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63542 
63543    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63544       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63545 
63546    -- 4955764
63547    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63549 
63550    -- 4458381 Public Sector Enh
63551    
63552    --
63553    -- set accounting attributes for the line type
63554    --
63555    l_entered_amt_idx := 27;
63556    l_accted_amt_idx  := 29;
63557    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63558    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63559    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
63560    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
63561    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
63562    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
63563    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
63564    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
63565    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
63566    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
63567    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
63568    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
63569    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
63570    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
63571    l_rec_acct_attrs.array_num_value(7)  := p_source_116;
63572    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63573    l_rec_acct_attrs.array_char_value(8)  := p_source_117;
63574    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
63575    l_rec_acct_attrs.array_char_value(9)  := p_source_118;
63576    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
63577    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_119);
63578    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63579    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_120);
63580    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
63581    l_rec_acct_attrs.array_char_value(12)  := p_source_121;
63582    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
63583    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
63584    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
63585    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
63586    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
63587    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
63588    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
63589    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
63590    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
63591    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
63592    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
63593    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
63594    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
63595    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
63596    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
63597    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
63598    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
63599    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
63600    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
63601    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
63602    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
63603    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
63604    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
63605    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
63606    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
63607    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
63608    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
63609    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
63610    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
63611    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
63612    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
63616    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
63613    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
63614    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
63615    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
63617    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
63618    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
63619    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
63620    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
63621    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
63622    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
63623    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
63624    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
63625    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
63626 
63627    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63628    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63629 
63630    ---------------------------------------------------------------------------------------------------------------
63631    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63632    ---------------------------------------------------------------------------------------------------------------
63633    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63634 
63635    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63636    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63637 
63638    IF xla_accounting_cache_pkg.GetValueChar
63639          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63640          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63641    AND l_bflow_method_code = 'PRIOR_ENTRY'
63642 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63643    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63644          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63645        )
63646    THEN
63647          xla_ae_lines_pkg.BflowUpgEntry
63648            (p_business_method_code    => l_bflow_method_code
63649            ,p_business_class_code     => l_bflow_class_code
63650            ,p_balance_type            => l_balance_type_code);
63651    ELSE
63652       NULL;
63653 XLA_AE_LINES_PKG.business_flow_validation(
63654                                 p_business_method_code     => l_bflow_method_code
63655                                ,p_business_class_code      => l_bflow_class_code
63656                                ,p_inherit_description_flag => l_inherit_desc_flag);
63657    END IF;
63658 
63659    --
63660    -- call analytical criteria
63661    --
63662    -- Inherited Analytical Criteria for business flow method of Prior Entry.
63663    --
63664    -- call description
63665    --
63666    
63667 xla_ae_lines_pkg.SetLineDescription(
63668    p_ae_header_id => l_ae_header_id
63669   ,p_description  => Description_3 (
63670      p_application_id         => p_application_id
63671    , p_ae_header_id           => l_ae_header_id 
63672 , p_source_2 => p_source_2
63673 , p_source_3 => p_source_3
63674 , p_source_4 => p_source_4
63675 , p_source_5 => p_source_5
63676    )
63677 );
63678 
63679 
63680    --
63681    -- call ADRs
63682    -- Bug 4922099
63683    --
63684    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63685         (NVL(l_actual_upg_option, 'N') = 'O') OR
63686         (NVL(l_enc_upg_option, 'N') = 'O')
63687       )
63688    THEN
63689    NULL;
63690    --
63691    --
63692    
63693    --
63694    --
63695    END IF;
63696    --
63697    -- Bug 4922099
63698    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63699           (NVL(l_enc_upg_option, 'N') = 'O')
63700         ) AND
63701         (l_bflow_method_code = 'PRIOR_ENTRY')
63702       )
63703    THEN
63704       IF
63705       --
63706       1 = 1
63707       --
63708       THEN
63709       xla_accounting_err_pkg.build_message
63710                                     (p_appli_s_name            => 'XLA'
63711                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63712                                     ,p_token_1                 => 'LINE_NUMBER'
63713                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63714                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63715                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63716                                                                              l_component_type
63717                                                                             ,l_component_code
63718                                                                             ,l_component_type_code
63719                                                                             ,l_component_appl_id
63720                                                                             ,l_amb_context_code
63721                                                                             ,l_entity_code
63722                                                                             ,l_event_class_code
63726                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63723                                                                            )
63724                                     ,p_token_3                 => 'OWNER'
63725                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63727                                                                           ,p_lookup_code    => l_component_type_code
63728                                                                          )
63729                                     ,p_token_4                 => 'PRODUCT_NAME'
63730                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63731                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63732                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63733                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63734                                     ,p_ae_header_id            =>  NULL
63735                                        );
63736 
63737         IF (C_LEVEL_ERROR>= g_log_level) THEN
63738                  trace
63739                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63740                       ,p_level    => C_LEVEL_ERROR
63741                       ,p_module   => l_log_module);
63742         END IF;
63743       END IF;
63744    END IF;
63745    --
63746    --
63747    ------------------------------------------------------------------------------------------------
63748    -- 4219869 Business Flow
63749    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63750    -- Prior Entry.  Currently, the following code is always generated.
63751    ------------------------------------------------------------------------------------------------
63752    -- No ValidateCurrentLine for business flow method of Prior Entry
63753 
63754    ------------------------------------------------------------------------------------
63755    -- 4219869 Business Flow
63756    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63757    ------------------------------------------------------------------------------------
63758    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63759 
63760    ----------------------------------------------------------------------------------
63761    -- 4219869 Business Flow
63762    -- Update journal entry status -- Need to generate this within IF <condition>
63763    ----------------------------------------------------------------------------------
63764    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63765          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63766          ,p_balance_type_code => l_balance_type_code
63767          );
63768 
63769    -------------------------------------------------------------------------------------------
63770    -- 4262811 - Generate the Accrual Reversal lines
63771    -------------------------------------------------------------------------------------------
63772    BEGIN
63773       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63774                               (g_array_event(p_event_id).array_value_num('header_index'));
63775       IF l_acc_rev_flag IS NULL THEN
63776          l_acc_rev_flag := 'N';
63777       END IF;
63778    EXCEPTION
63779       WHEN OTHERS THEN
63780          l_acc_rev_flag := 'N';
63781    END;
63782    --
63783    IF (l_acc_rev_flag = 'Y') THEN
63784 
63785        -- 4645092  ------------------------------------------------------------------------------
63786        -- To allow MPA report to determine if it should generate report process
63787        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63788        ------------------------------------------------------------------------------------------
63789 
63790        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63791        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63792    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63793    -- call ADRs
63794    -- Bug 4922099
63795    --
63796    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63797         (NVL(l_actual_upg_option, 'N') = 'O') OR
63798         (NVL(l_enc_upg_option, 'N') = 'O')
63799       )
63800    THEN
63801    NULL;
63802    --
63803    --
63804    
63805    --
63806    --
63807    END IF;
63808 
63809        --
63810        -- Update the line information that should be overwritten
63811        --
63812        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63813                                          p_header_num   => 1);
63814        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63815 
63816        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63817 
63818        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63819           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63820        END IF;
63821 
63822       --
63823       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63824       --
63825       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63829           -- 4262811a Switch Sign
63826           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63827       ELSE
63828           ---------------------------------------------------------------------------------------------------
63830           ---------------------------------------------------------------------------------------------------
63831           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63832           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63833                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63834           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63835                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63836           -- 5132302
63837           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63838                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63839 
63840       END IF;
63841 
63842       -- 4955764
63843       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63844       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63845 
63846 
63847       XLA_AE_LINES_PKG.ValidateCurrentLine;
63848       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63849 
63850       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63851                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63852                ,p_balance_type_code => l_balance_type_code);
63853 
63854    END IF;
63855 
63856    -----------------------------------------------------------------------------------------
63857    -- 4262811 Multiperiod Accounting
63858    -----------------------------------------------------------------------------------------
63859      -- No MPA option is assigned.
63860 
63861 
63862 END IF;
63863 END IF;
63864 --
63865 
63866 --
63867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63868    trace
63869       (p_msg      => 'END of AcctLineType_100'
63870       ,p_level    => C_LEVEL_PROCEDURE
63871       ,p_module   => l_log_module);
63872 END IF;
63873 --
63874 EXCEPTION
63875   WHEN xla_exceptions_pkg.application_exception THEN
63876       RAISE;
63877   WHEN OTHERS THEN
63878        xla_exceptions_pkg.raise_message
63879            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_100');
63880 END AcctLineType_100;
63881 --
63882 
63883 ---------------------------------------
63884 --
63885 -- PRIVATE FUNCTION
63886 --         AcctLineType_101
63887 --
63888 ---------------------------------------
63889 PROCEDURE AcctLineType_101 (
63890   p_application_id        IN NUMBER
63891  ,p_event_id              IN NUMBER
63892  ,p_calculate_acctd_flag  IN VARCHAR2
63893  ,p_calculate_g_l_flag    IN VARCHAR2
63894  ,p_actual_flag           IN OUT VARCHAR2
63895  ,p_balance_type_code     OUT VARCHAR2
63896  ,p_gain_or_loss_ref      OUT VARCHAR2
63897  
63898 --Document Distribution Type
63899  , p_source_2            IN VARCHAR2
63900 --Project Name
63901  , p_source_3            IN VARCHAR2
63902 --Task Number
63903  , p_source_4            IN VARCHAR2
63904 --Expenditure Organization
63905  , p_source_5            IN NUMBER
63906 --Distribution Link Type
63907  , p_source_21            IN VARCHAR2
63908 --Invoice Distribution Identifier
63909  , p_source_30            IN NUMBER
63910 --Invoice Currency Code
63911  , p_source_33            IN VARCHAR2
63912 --Invoice Distribution Amount
63913  , p_source_57            IN NUMBER
63914 --Document Type
63915  , p_source_83            IN VARCHAR2
63916 --Burden Amount Display Method
63917  , p_source_84            IN VARCHAR2
63918 --Accounting reversal indicator for project invoice burden
63919  , p_source_85            IN VARCHAR2
63920 --Allocated to Application Identifier
63921  , p_source_86            IN NUMBER
63922 --Allocated to Distribution Type
63923  , p_source_87            IN VARCHAR2
63924 --Allocated to Entity Code
63925  , p_source_88            IN VARCHAR2
63926 --Allocated to First Distribution Identifier
63927  , p_source_89            IN NUMBER
63928 --Allocated to First System Transaction Identifier
63929  , p_source_90            IN NUMBER
63930 --Invoice Distribution Expenditure Type
63931  , p_source_96            IN VARCHAR2
63932 --Encumbrance Upgrade Credit Accounting Class
63933  , p_source_97            IN VARCHAR2
63934 --Encumbrance Upgrade Credit Account
63935  , p_source_98            IN NUMBER
63936 --Invoice Distribution Ledger Amount Before Rounding
63937  , p_source_99            IN NUMBER
63938 --Encumbrance Upgrade Debit Accounting Class
63939  , p_source_100            IN VARCHAR2
63940 --Encumbrance Upgrade Debit Account
63941  , p_source_101            IN NUMBER
63942 --Use Encumbrances Upgrade Attributes Flag
63943  , p_source_102            IN VARCHAR2
63944 --Accounting reversal first distribution identifier for project invoice burden
63945  , p_source_103            IN NUMBER
63946 --Invoice Burden Applied to Second Distribution Identifier
63947  , p_source_104            IN VARCHAR2
63948 --Accounting reversal distribution type for project invoice burden
63949  , p_source_105            IN VARCHAR2
63953  , p_source_107            IN NUMBER
63950 --Encumbrance Upgrade Credit Encumbrance Type
63951  , p_source_106            IN NUMBER
63952 --Encumbrance Upgrade Debit Encumbrance Type
63954 --Release Identifier
63955  , p_source_115            IN NUMBER
63956 --Purchase Order Burden Applied to Application Identifier
63957  , p_source_116            IN NUMBER
63958 --Purchase Order Burden Applied to Distribution Type
63959  , p_source_117            IN VARCHAR2
63960 --Purchase Order Burden Applied to Entity Code
63961  , p_source_118            IN VARCHAR2
63962 --Purchase Order Burden Applied to First Distribution Identifier
63963  , p_source_119            IN NUMBER
63964 --Purchase Order Burden Applied to First System Transaction Identifier
63965  , p_source_120            IN NUMBER
63966 --Purchase Order Burden Applied to Second Distribution Identifier
63967  , p_source_121            IN VARCHAR2
63968 )
63969 IS
63970 
63971 l_component_type              VARCHAR2(80);
63972 l_component_code              VARCHAR2(30);
63973 l_component_type_code         VARCHAR2(1);
63974 l_component_appl_id           INTEGER;
63975 l_amb_context_code            VARCHAR2(30);
63976 l_entity_code                 VARCHAR2(30);
63977 l_event_class_code            VARCHAR2(30);
63978 l_ae_header_id                NUMBER;
63979 l_event_type_code             VARCHAR2(30);
63980 l_line_definition_code        VARCHAR2(30);
63981 l_line_definition_owner_code  VARCHAR2(1);
63982 --
63983 -- adr variables
63984 l_segment                     VARCHAR2(30);
63985 l_ccid                        NUMBER;
63986 l_adr_transaction_coa_id      NUMBER;
63987 l_adr_accounting_coa_id       NUMBER;
63988 l_adr_flexfield_segment_code  VARCHAR2(30);
63989 l_adr_flex_value_set_id       NUMBER;
63990 l_adr_value_type_code         VARCHAR2(30);
63991 l_adr_value_combination_id    NUMBER;
63992 l_adr_value_segment_code      VARCHAR2(30);
63993 
63994 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63995 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63996 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63997 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63998 
63999 -- 4262811 Variables ------------------------------------------------------------------------------------------
64000 l_entered_amt_idx             NUMBER;
64001 l_accted_amt_idx              NUMBER;
64002 l_acc_rev_flag                VARCHAR2(1);
64003 l_accrual_line_num            NUMBER;
64004 l_tmp_amt                     NUMBER;
64005 l_acc_rev_natural_side_code   VARCHAR2(1);
64006 
64007 l_num_entries                 NUMBER;
64008 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64009 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64010 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64011 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64012 l_recog_line_1                NUMBER;
64013 l_recog_line_2                NUMBER;
64014 
64015 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64016 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64017 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64018 
64019 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64020 
64021 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64022 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64023 
64024 ---------------------------------------------------------------------------------------------------------------
64025 
64026 
64027 --
64028 -- bulk performance
64029 --
64030 l_balance_type_code           VARCHAR2(1);
64031 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64032 l_log_module                  VARCHAR2(240);
64033 
64034 --
64035 -- Upgrade strategy
64036 --
64037 l_actual_upg_option           VARCHAR2(1);
64038 l_enc_upg_option           VARCHAR2(1);
64039 
64040 --
64041 BEGIN
64042 --
64043 IF g_log_enabled THEN
64044       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
64045 END IF;
64046 --
64047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64048 
64049       trace
64050          (p_msg      => 'BEGIN of AcctLineType_101'
64051          ,p_level    => C_LEVEL_PROCEDURE
64052          ,p_module   => l_log_module);
64053 
64054 END IF;
64055 --
64056 l_component_type             := 'AMB_JLT';
64057 l_component_code             := 'REVERSE_REL_BURDENED_ENC';
64058 l_component_type_code        := 'S';
64059 l_component_appl_id          :=  200;
64060 l_amb_context_code           := 'DEFAULT';
64061 l_entity_code                := 'AP_INVOICES';
64062 l_event_class_code           := 'INVOICE_BURDEN';
64063 l_event_type_code            := 'INVOICE_BURDEN_ALL';
64064 l_line_definition_owner_code := 'S';
64065 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
64066 --
64067 l_balance_type_code          := 'E';
64068 l_segment                     := NULL;
64069 l_ccid                        := NULL;
64070 l_adr_transaction_coa_id      := NULL;
64071 l_adr_accounting_coa_id       := NULL;
64072 l_adr_flexfield_segment_code  := NULL;
64073 l_adr_flex_value_set_id       := NULL;
64074 l_adr_value_type_code         := NULL;
64075 l_adr_value_combination_id    := NULL;
64076 l_adr_value_segment_code      := NULL;
64077 
64081 l_budgetary_control_flag     := 'Y';
64078 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
64079 l_bflow_class_code           := 'REL_PA_BURDENED_ENC';    -- 4219869 Business Flow
64080 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64082 
64083 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64084 l_bflow_applied_to_amt       := NULL; -- 5132302
64085 l_entered_amt_idx            := NULL;          -- 4262811
64086 l_accted_amt_idx             := NULL;          -- 4262811
64087 l_acc_rev_flag               := NULL;          -- 4262811
64088 l_accrual_line_num           := NULL;          -- 4262811
64089 l_tmp_amt                    := NULL;          -- 4262811
64090 --
64091  
64092 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64093     l_balance_type_code <> 'B' THEN
64094 IF NVL(p_source_83,'
64095 ') =  'PO' AND 
64096 NVL(p_source_84,'
64097 ') =  'S' AND 
64098 p_source_115 IS NOT NULL 
64099  THEN 
64100 
64101    --
64102    XLA_AE_LINES_PKG.SetNewLine;
64103 
64104    p_balance_type_code          := l_balance_type_code;
64105    -- set the flag so later we will know whether the gain loss line needs to be created
64106    
64107    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64108      p_actual_flag :='A';
64109    END IF;
64110 
64111    --
64112    -- bulk performance
64113    --
64114    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64115                                       p_header_num   => 0); -- 4262811
64116    --
64117    -- set accounting line options
64118    --
64119    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64120            p_natural_side_code          => 'C'
64121          , p_gain_or_loss_flag          => 'N'
64122          , p_gl_transfer_mode_code      => 'S'
64123          , p_acct_entry_type_code       => 'E'
64124          , p_switch_side_flag           => 'Y'
64125          , p_merge_duplicate_code       => 'N'
64126          );
64127    --
64128    l_acc_rev_natural_side_code := 'D';  -- 4262811
64129    -- 
64130    --
64131    -- set accounting line type info
64132    --
64133    xla_ae_lines_pkg.SetAcctLineType
64134       (p_component_type             => l_component_type
64135       ,p_event_type_code            => l_event_type_code
64136       ,p_line_definition_owner_code => l_line_definition_owner_code
64137       ,p_line_definition_code       => l_line_definition_code
64138       ,p_accounting_line_code       => l_component_code
64139       ,p_accounting_line_type_code  => l_component_type_code
64140       ,p_accounting_line_appl_id    => l_component_appl_id
64141       ,p_amb_context_code           => l_amb_context_code
64142       ,p_entity_code                => l_entity_code
64143       ,p_event_class_code           => l_event_class_code);
64144    --
64145    -- set accounting class
64146    --
64147    xla_ae_lines_pkg.SetAcctClass(
64148            p_accounting_class_code  => 'PO_PA_BURDENED'
64149          , p_ae_header_id           => l_ae_header_id
64150          );
64151 
64152    --
64153    -- set rounding class
64154    --
64155    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64156                       'PO_PA_BURDENED';
64157 
64158    --
64159    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64160    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64161    --
64162    -- bulk performance
64163    --
64164    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64165 
64166    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64167       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64168 
64169    -- 4955764
64170    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64171       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64172 
64173    -- 4458381 Public Sector Enh
64174    
64175    --
64176    -- set accounting attributes for the line type
64177    --
64178    l_entered_amt_idx := 27;
64179    l_accted_amt_idx  := 29;
64180    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
64181    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64182    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
64183    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
64184    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
64185    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
64186    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
64187    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
64188    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
64189    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
64190    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
64191    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
64192    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
64193    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
64194    l_rec_acct_attrs.array_num_value(7)  := p_source_116;
64195    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64196    l_rec_acct_attrs.array_char_value(8)  := p_source_117;
64197    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
64201    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64198    l_rec_acct_attrs.array_char_value(9)  := p_source_118;
64199    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
64200    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_119);
64202    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_120);
64203    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
64204    l_rec_acct_attrs.array_char_value(12)  := p_source_121;
64205    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
64206    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
64207    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
64208    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
64209    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
64210    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
64211    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
64212    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
64213    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
64214    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
64215    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
64216    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
64217    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
64218    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
64219    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
64220    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
64221    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
64222    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
64223    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
64224    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
64225    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
64226    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
64227    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
64228    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
64229    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
64230    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
64231    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
64232    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
64233    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
64234    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
64235    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
64236    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
64237    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
64238    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
64239    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
64240    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
64241    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
64242    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
64243    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
64244    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
64245    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
64246    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
64247    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
64248    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
64249 
64250    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64251    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64252 
64253    ---------------------------------------------------------------------------------------------------------------
64254    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64255    ---------------------------------------------------------------------------------------------------------------
64256    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64257 
64258    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64259    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64260 
64261    IF xla_accounting_cache_pkg.GetValueChar
64262          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64263          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64264    AND l_bflow_method_code = 'PRIOR_ENTRY'
64265 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64266    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64267          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64268        )
64269    THEN
64270          xla_ae_lines_pkg.BflowUpgEntry
64271            (p_business_method_code    => l_bflow_method_code
64272            ,p_business_class_code     => l_bflow_class_code
64273            ,p_balance_type            => l_balance_type_code);
64274    ELSE
64275       NULL;
64276 XLA_AE_LINES_PKG.business_flow_validation(
64277                                 p_business_method_code     => l_bflow_method_code
64278                                ,p_business_class_code      => l_bflow_class_code
64279                                ,p_inherit_description_flag => l_inherit_desc_flag);
64280    END IF;
64281 
64282    --
64283    -- call analytical criteria
64284    --
64288    --
64285    -- Inherited Analytical Criteria for business flow method of Prior Entry.
64286    --
64287    -- call description
64289    
64290 xla_ae_lines_pkg.SetLineDescription(
64291    p_ae_header_id => l_ae_header_id
64292   ,p_description  => Description_3 (
64293      p_application_id         => p_application_id
64294    , p_ae_header_id           => l_ae_header_id 
64295 , p_source_2 => p_source_2
64296 , p_source_3 => p_source_3
64297 , p_source_4 => p_source_4
64298 , p_source_5 => p_source_5
64299    )
64300 );
64301 
64302 
64303    --
64304    -- call ADRs
64305    -- Bug 4922099
64306    --
64307    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64308         (NVL(l_actual_upg_option, 'N') = 'O') OR
64309         (NVL(l_enc_upg_option, 'N') = 'O')
64310       )
64311    THEN
64312    NULL;
64313    --
64314    --
64315    
64316    --
64317    --
64318    END IF;
64319    --
64320    -- Bug 4922099
64321    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64322           (NVL(l_enc_upg_option, 'N') = 'O')
64323         ) AND
64324         (l_bflow_method_code = 'PRIOR_ENTRY')
64325       )
64326    THEN
64327       IF
64328       --
64329       1 = 1
64330       --
64331       THEN
64332       xla_accounting_err_pkg.build_message
64333                                     (p_appli_s_name            => 'XLA'
64334                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64335                                     ,p_token_1                 => 'LINE_NUMBER'
64336                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64337                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64338                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64339                                                                              l_component_type
64340                                                                             ,l_component_code
64341                                                                             ,l_component_type_code
64342                                                                             ,l_component_appl_id
64343                                                                             ,l_amb_context_code
64344                                                                             ,l_entity_code
64345                                                                             ,l_event_class_code
64346                                                                            )
64347                                     ,p_token_3                 => 'OWNER'
64348                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64349                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64350                                                                           ,p_lookup_code    => l_component_type_code
64351                                                                          )
64352                                     ,p_token_4                 => 'PRODUCT_NAME'
64353                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64354                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64355                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64356                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64357                                     ,p_ae_header_id            =>  NULL
64358                                        );
64359 
64360         IF (C_LEVEL_ERROR>= g_log_level) THEN
64361                  trace
64362                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64363                       ,p_level    => C_LEVEL_ERROR
64364                       ,p_module   => l_log_module);
64365         END IF;
64366       END IF;
64367    END IF;
64368    --
64369    --
64370    ------------------------------------------------------------------------------------------------
64371    -- 4219869 Business Flow
64372    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64373    -- Prior Entry.  Currently, the following code is always generated.
64374    ------------------------------------------------------------------------------------------------
64375    -- No ValidateCurrentLine for business flow method of Prior Entry
64376 
64377    ------------------------------------------------------------------------------------
64378    -- 4219869 Business Flow
64379    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64380    ------------------------------------------------------------------------------------
64381    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64382 
64383    ----------------------------------------------------------------------------------
64384    -- 4219869 Business Flow
64385    -- Update journal entry status -- Need to generate this within IF <condition>
64386    ----------------------------------------------------------------------------------
64387    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64388          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64389          ,p_balance_type_code => l_balance_type_code
64390          );
64391 
64395    BEGIN
64392    -------------------------------------------------------------------------------------------
64393    -- 4262811 - Generate the Accrual Reversal lines
64394    -------------------------------------------------------------------------------------------
64396       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64397                               (g_array_event(p_event_id).array_value_num('header_index'));
64398       IF l_acc_rev_flag IS NULL THEN
64399          l_acc_rev_flag := 'N';
64400       END IF;
64401    EXCEPTION
64402       WHEN OTHERS THEN
64403          l_acc_rev_flag := 'N';
64404    END;
64405    --
64406    IF (l_acc_rev_flag = 'Y') THEN
64407 
64408        -- 4645092  ------------------------------------------------------------------------------
64409        -- To allow MPA report to determine if it should generate report process
64410        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64411        ------------------------------------------------------------------------------------------
64412 
64413        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64414        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64415    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64416    -- call ADRs
64417    -- Bug 4922099
64418    --
64419    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64420         (NVL(l_actual_upg_option, 'N') = 'O') OR
64421         (NVL(l_enc_upg_option, 'N') = 'O')
64422       )
64423    THEN
64424    NULL;
64425    --
64426    --
64427    
64428    --
64429    --
64430    END IF;
64431 
64432        --
64433        -- Update the line information that should be overwritten
64434        --
64435        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64436                                          p_header_num   => 1);
64437        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64438 
64439        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64440 
64441        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64442           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64443        END IF;
64444 
64445       --
64446       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64447       --
64448       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64449           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64450       ELSE
64451           ---------------------------------------------------------------------------------------------------
64452           -- 4262811a Switch Sign
64453           ---------------------------------------------------------------------------------------------------
64454           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64455           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64456                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64457           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64458                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64459           -- 5132302
64460           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64461                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64462 
64463       END IF;
64464 
64465       -- 4955764
64466       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64467       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64468 
64469 
64470       XLA_AE_LINES_PKG.ValidateCurrentLine;
64471       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64472 
64473       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64474                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64475                ,p_balance_type_code => l_balance_type_code);
64476 
64477    END IF;
64478 
64479    -----------------------------------------------------------------------------------------
64480    -- 4262811 Multiperiod Accounting
64481    -----------------------------------------------------------------------------------------
64482      -- No MPA option is assigned.
64483 
64484 
64485 END IF;
64486 END IF;
64487 --
64488 
64489 --
64490 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64491    trace
64492       (p_msg      => 'END of AcctLineType_101'
64493       ,p_level    => C_LEVEL_PROCEDURE
64494       ,p_module   => l_log_module);
64495 END IF;
64496 --
64497 EXCEPTION
64498   WHEN xla_exceptions_pkg.application_exception THEN
64499       RAISE;
64500   WHEN OTHERS THEN
64501        xla_exceptions_pkg.raise_message
64502            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_101');
64503 END AcctLineType_101;
64504 --
64505 
64506 ---------------------------------------
64507 --
64508 -- PRIVATE FUNCTION
64509 --         AcctLineType_102
64510 --
64511 ---------------------------------------
64512 PROCEDURE AcctLineType_102 (
64516  ,p_calculate_g_l_flag    IN VARCHAR2
64513   p_application_id        IN NUMBER
64514  ,p_event_id              IN NUMBER
64515  ,p_calculate_acctd_flag  IN VARCHAR2
64517  ,p_actual_flag           IN OUT VARCHAR2
64518  ,p_balance_type_code     OUT VARCHAR2
64519  ,p_gain_or_loss_ref      OUT VARCHAR2
64520  
64521 --Document Distribution Type
64522  , p_source_2            IN VARCHAR2
64523 --Project Name
64524  , p_source_3            IN VARCHAR2
64525 --Task Number
64526  , p_source_4            IN VARCHAR2
64527 --Expenditure Organization
64528  , p_source_5            IN NUMBER
64529 --Distribution Link Type
64530  , p_source_21            IN VARCHAR2
64531 --Invoice Distribution Identifier
64532  , p_source_30            IN NUMBER
64533 --Invoice Currency Code
64534  , p_source_33            IN VARCHAR2
64535 --Invoice Distribution Amount
64536  , p_source_57            IN NUMBER
64537 --Document Type
64538  , p_source_83            IN VARCHAR2
64539 --Burden Amount Display Method
64540  , p_source_84            IN VARCHAR2
64541 --Accounting reversal indicator for project invoice burden
64542  , p_source_85            IN VARCHAR2
64543 --Allocated to Application Identifier
64544  , p_source_86            IN NUMBER
64545 --Allocated to Distribution Type
64546  , p_source_87            IN VARCHAR2
64547 --Allocated to Entity Code
64548  , p_source_88            IN VARCHAR2
64549 --Allocated to First Distribution Identifier
64550  , p_source_89            IN NUMBER
64551 --Allocated to First System Transaction Identifier
64552  , p_source_90            IN NUMBER
64553 --Invoice Distribution Expenditure Type
64554  , p_source_96            IN VARCHAR2
64555 --Encumbrance Upgrade Credit Accounting Class
64556  , p_source_97            IN VARCHAR2
64557 --Encumbrance Upgrade Credit Account
64558  , p_source_98            IN NUMBER
64559 --Invoice Distribution Ledger Amount Before Rounding
64560  , p_source_99            IN NUMBER
64561 --Encumbrance Upgrade Debit Accounting Class
64562  , p_source_100            IN VARCHAR2
64563 --Encumbrance Upgrade Debit Account
64564  , p_source_101            IN NUMBER
64565 --Use Encumbrances Upgrade Attributes Flag
64566  , p_source_102            IN VARCHAR2
64567 --Accounting reversal first distribution identifier for project invoice burden
64568  , p_source_103            IN NUMBER
64569 --Invoice Burden Applied to Second Distribution Identifier
64570  , p_source_104            IN VARCHAR2
64571 --Accounting reversal distribution type for project invoice burden
64572  , p_source_105            IN VARCHAR2
64573 --Encumbrance Upgrade Credit Encumbrance Type
64574  , p_source_106            IN NUMBER
64575 --Encumbrance Upgrade Debit Encumbrance Type
64576  , p_source_107            IN NUMBER
64577 --Burden Record Identifier
64578  , p_source_108            IN VARCHAR2
64579  , p_source_108_meaning    IN VARCHAR2
64580 --Release Identifier
64581  , p_source_115            IN NUMBER
64582 --Purchase Order Burden Applied to Application Identifier
64583  , p_source_116            IN NUMBER
64584 --Purchase Order Burden Applied to Distribution Type
64585  , p_source_117            IN VARCHAR2
64586 --Purchase Order Burden Applied to Entity Code
64587  , p_source_118            IN VARCHAR2
64588 --Purchase Order Burden Applied to First Distribution Identifier
64589  , p_source_119            IN NUMBER
64590 --Purchase Order Burden Applied to First System Transaction Identifier
64591  , p_source_120            IN NUMBER
64592 --Purchase Order Burden Applied to Second Distribution Identifier
64593  , p_source_121            IN VARCHAR2
64594 )
64595 IS
64596 
64597 l_component_type              VARCHAR2(80);
64598 l_component_code              VARCHAR2(30);
64599 l_component_type_code         VARCHAR2(1);
64600 l_component_appl_id           INTEGER;
64601 l_amb_context_code            VARCHAR2(30);
64602 l_entity_code                 VARCHAR2(30);
64603 l_event_class_code            VARCHAR2(30);
64604 l_ae_header_id                NUMBER;
64605 l_event_type_code             VARCHAR2(30);
64606 l_line_definition_code        VARCHAR2(30);
64607 l_line_definition_owner_code  VARCHAR2(1);
64608 --
64609 -- adr variables
64610 l_segment                     VARCHAR2(30);
64611 l_ccid                        NUMBER;
64612 l_adr_transaction_coa_id      NUMBER;
64613 l_adr_accounting_coa_id       NUMBER;
64614 l_adr_flexfield_segment_code  VARCHAR2(30);
64615 l_adr_flex_value_set_id       NUMBER;
64616 l_adr_value_type_code         VARCHAR2(30);
64617 l_adr_value_combination_id    NUMBER;
64618 l_adr_value_segment_code      VARCHAR2(30);
64619 
64620 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64621 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64622 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64623 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64624 
64625 -- 4262811 Variables ------------------------------------------------------------------------------------------
64626 l_entered_amt_idx             NUMBER;
64627 l_accted_amt_idx              NUMBER;
64628 l_acc_rev_flag                VARCHAR2(1);
64629 l_accrual_line_num            NUMBER;
64630 l_tmp_amt                     NUMBER;
64631 l_acc_rev_natural_side_code   VARCHAR2(1);
64632 
64633 l_num_entries                 NUMBER;
64634 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64635 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64639 l_recog_line_2                NUMBER;
64636 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64637 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64638 l_recog_line_1                NUMBER;
64640 
64641 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64642 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64643 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64644 
64645 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64646 
64647 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64648 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64649 
64650 ---------------------------------------------------------------------------------------------------------------
64651 
64652 
64653 --
64654 -- bulk performance
64655 --
64656 l_balance_type_code           VARCHAR2(1);
64657 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64658 l_log_module                  VARCHAR2(240);
64659 
64660 --
64661 -- Upgrade strategy
64662 --
64663 l_actual_upg_option           VARCHAR2(1);
64664 l_enc_upg_option           VARCHAR2(1);
64665 
64666 --
64667 BEGIN
64668 --
64669 IF g_log_enabled THEN
64670       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
64671 END IF;
64672 --
64673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64674 
64675       trace
64676          (p_msg      => 'BEGIN of AcctLineType_102'
64677          ,p_level    => C_LEVEL_PROCEDURE
64678          ,p_module   => l_log_module);
64679 
64680 END IF;
64681 --
64682 l_component_type             := 'AMB_JLT';
64683 l_component_code             := 'REVERSE_REL_BURDEN_ENC';
64684 l_component_type_code        := 'S';
64685 l_component_appl_id          :=  200;
64686 l_amb_context_code           := 'DEFAULT';
64687 l_entity_code                := 'AP_INVOICES';
64688 l_event_class_code           := 'INVOICE_BURDEN';
64689 l_event_type_code            := 'INVOICE_BURDEN_ALL';
64690 l_line_definition_owner_code := 'S';
64691 l_line_definition_code       := 'AP_INV_BURDEN_ENC_ALL';
64692 --
64693 l_balance_type_code          := 'E';
64694 l_segment                     := NULL;
64695 l_ccid                        := NULL;
64696 l_adr_transaction_coa_id      := NULL;
64697 l_adr_accounting_coa_id       := NULL;
64698 l_adr_flexfield_segment_code  := NULL;
64699 l_adr_flex_value_set_id       := NULL;
64700 l_adr_value_type_code         := NULL;
64701 l_adr_value_combination_id    := NULL;
64702 l_adr_value_segment_code      := NULL;
64703 
64704 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
64705 l_bflow_class_code           := 'REL_PA_BURDEN_ENC';    -- 4219869 Business Flow
64706 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64707 l_budgetary_control_flag     := 'Y';
64708 
64709 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64710 l_bflow_applied_to_amt       := NULL; -- 5132302
64711 l_entered_amt_idx            := NULL;          -- 4262811
64712 l_accted_amt_idx             := NULL;          -- 4262811
64713 l_acc_rev_flag               := NULL;          -- 4262811
64714 l_accrual_line_num           := NULL;          -- 4262811
64715 l_tmp_amt                    := NULL;          -- 4262811
64716 --
64717  
64718 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64719     l_balance_type_code <> 'B' THEN
64720 IF NVL(p_source_83,'
64721 ') =  'PO' AND 
64722 NVL(p_source_108,'
64723 ') =  'O' AND 
64724 NVL(p_source_84,'
64725 ') =  'D' AND 
64726 p_source_115 IS NOT NULL 
64727  THEN 
64728 
64729    --
64730    XLA_AE_LINES_PKG.SetNewLine;
64731 
64732    p_balance_type_code          := l_balance_type_code;
64733    -- set the flag so later we will know whether the gain loss line needs to be created
64734    
64735    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64736      p_actual_flag :='A';
64737    END IF;
64738 
64739    --
64740    -- bulk performance
64741    --
64742    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64743                                       p_header_num   => 0); -- 4262811
64744    --
64745    -- set accounting line options
64746    --
64747    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64748            p_natural_side_code          => 'C'
64749          , p_gain_or_loss_flag          => 'N'
64750          , p_gl_transfer_mode_code      => 'S'
64751          , p_acct_entry_type_code       => 'E'
64752          , p_switch_side_flag           => 'Y'
64753          , p_merge_duplicate_code       => 'N'
64754          );
64755    --
64756    l_acc_rev_natural_side_code := 'D';  -- 4262811
64757    -- 
64758    --
64759    -- set accounting line type info
64760    --
64761    xla_ae_lines_pkg.SetAcctLineType
64762       (p_component_type             => l_component_type
64763       ,p_event_type_code            => l_event_type_code
64764       ,p_line_definition_owner_code => l_line_definition_owner_code
64765       ,p_line_definition_code       => l_line_definition_code
64766       ,p_accounting_line_code       => l_component_code
64767       ,p_accounting_line_type_code  => l_component_type_code
64768       ,p_accounting_line_appl_id    => l_component_appl_id
64769       ,p_amb_context_code           => l_amb_context_code
64770       ,p_entity_code                => l_entity_code
64774    --
64771       ,p_event_class_code           => l_event_class_code);
64772    --
64773    -- set accounting class
64775    xla_ae_lines_pkg.SetAcctClass(
64776            p_accounting_class_code  => 'PO_PA_BURDEN'
64777          , p_ae_header_id           => l_ae_header_id
64778          );
64779 
64780    --
64781    -- set rounding class
64782    --
64783    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64784                       'PO_PA_BURDEN';
64785 
64786    --
64787    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64788    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64789    --
64790    -- bulk performance
64791    --
64792    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64793 
64794    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64795       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64796 
64797    -- 4955764
64798    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64799       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64800 
64801    -- 4458381 Public Sector Enh
64802    
64803    --
64804    -- set accounting attributes for the line type
64805    --
64806    l_entered_amt_idx := 27;
64807    l_accted_amt_idx  := 29;
64808    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
64809    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64810    l_rec_acct_attrs.array_char_value(1)  := p_source_85;
64811    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
64812    l_rec_acct_attrs.array_num_value(2)  := p_source_86;
64813    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
64814    l_rec_acct_attrs.array_char_value(3)  := p_source_87;
64815    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
64816    l_rec_acct_attrs.array_char_value(4)  := p_source_88;
64817    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
64818    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_89);
64819    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
64820    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_90);
64821    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
64822    l_rec_acct_attrs.array_num_value(7)  := p_source_116;
64823    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64824    l_rec_acct_attrs.array_char_value(8)  := p_source_117;
64825    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
64826    l_rec_acct_attrs.array_char_value(9)  := p_source_118;
64827    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
64828    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_119);
64829    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64830    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_120);
64831    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
64832    l_rec_acct_attrs.array_char_value(12)  := p_source_121;
64833    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
64834    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_30);
64835    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
64836    l_rec_acct_attrs.array_char_value(14)  := p_source_96;
64837    l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
64838    l_rec_acct_attrs.array_char_value(15)  := p_source_21;
64839    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
64840    l_rec_acct_attrs.array_char_value(16)  := p_source_97;
64841    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
64842    l_rec_acct_attrs.array_num_value(17)  := p_source_98;
64843    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
64844    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
64845    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
64846    l_rec_acct_attrs.array_char_value(19)  := p_source_33;
64847    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
64848    l_rec_acct_attrs.array_num_value(20)  := p_source_99;
64849    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
64850    l_rec_acct_attrs.array_char_value(21)  := p_source_100;
64851    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
64852    l_rec_acct_attrs.array_num_value(22)  := p_source_101;
64853    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
64854    l_rec_acct_attrs.array_num_value(23)  := p_source_57;
64855    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
64856    l_rec_acct_attrs.array_char_value(24)  := p_source_33;
64857    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
64858    l_rec_acct_attrs.array_num_value(25)  := p_source_99;
64859    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
64860    l_rec_acct_attrs.array_char_value(26)  := p_source_102;
64861    l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
64862    l_rec_acct_attrs.array_num_value(27)  := p_source_57;
64863    l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
64864    l_rec_acct_attrs.array_char_value(28)  := p_source_33;
64865    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
64869    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
64866    l_rec_acct_attrs.array_num_value(29)  := p_source_99;
64867    l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
64868    l_rec_acct_attrs.array_num_value(30)  :=  to_char(p_source_103);
64870    l_rec_acct_attrs.array_char_value(31)  := p_source_104;
64871    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
64872    l_rec_acct_attrs.array_char_value(32)  := p_source_105;
64873    l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
64874    l_rec_acct_attrs.array_num_value(33)  := p_source_106;
64875    l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
64876    l_rec_acct_attrs.array_num_value(34)  := p_source_107;
64877 
64878    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64879    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64880 
64881    ---------------------------------------------------------------------------------------------------------------
64882    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64883    ---------------------------------------------------------------------------------------------------------------
64884    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64885 
64886    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64887    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64888 
64889    IF xla_accounting_cache_pkg.GetValueChar
64890          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64891          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64892    AND l_bflow_method_code = 'PRIOR_ENTRY'
64893 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64894    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64895          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64896        )
64897    THEN
64898          xla_ae_lines_pkg.BflowUpgEntry
64899            (p_business_method_code    => l_bflow_method_code
64900            ,p_business_class_code     => l_bflow_class_code
64901            ,p_balance_type            => l_balance_type_code);
64902    ELSE
64903       NULL;
64904 XLA_AE_LINES_PKG.business_flow_validation(
64905                                 p_business_method_code     => l_bflow_method_code
64906                                ,p_business_class_code      => l_bflow_class_code
64907                                ,p_inherit_description_flag => l_inherit_desc_flag);
64908    END IF;
64909 
64910    --
64911    -- call analytical criteria
64912    --
64913    -- Inherited Analytical Criteria for business flow method of Prior Entry.
64914    --
64915    -- call description
64916    --
64917    
64918 xla_ae_lines_pkg.SetLineDescription(
64919    p_ae_header_id => l_ae_header_id
64920   ,p_description  => Description_3 (
64921      p_application_id         => p_application_id
64922    , p_ae_header_id           => l_ae_header_id 
64923 , p_source_2 => p_source_2
64924 , p_source_3 => p_source_3
64925 , p_source_4 => p_source_4
64926 , p_source_5 => p_source_5
64927    )
64928 );
64929 
64930 
64931    --
64932    -- call ADRs
64933    -- Bug 4922099
64934    --
64935    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64936         (NVL(l_actual_upg_option, 'N') = 'O') OR
64937         (NVL(l_enc_upg_option, 'N') = 'O')
64938       )
64939    THEN
64940    NULL;
64941    --
64942    --
64943    
64944    --
64945    --
64946    END IF;
64947    --
64948    -- Bug 4922099
64949    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64950           (NVL(l_enc_upg_option, 'N') = 'O')
64951         ) AND
64952         (l_bflow_method_code = 'PRIOR_ENTRY')
64953       )
64954    THEN
64955       IF
64956       --
64957       1 = 1
64958       --
64959       THEN
64960       xla_accounting_err_pkg.build_message
64961                                     (p_appli_s_name            => 'XLA'
64962                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64963                                     ,p_token_1                 => 'LINE_NUMBER'
64964                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64965                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64966                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64967                                                                              l_component_type
64968                                                                             ,l_component_code
64969                                                                             ,l_component_type_code
64970                                                                             ,l_component_appl_id
64971                                                                             ,l_amb_context_code
64972                                                                             ,l_entity_code
64973                                                                             ,l_event_class_code
64974                                                                            )
64975                                     ,p_token_3                 => 'OWNER'
64979                                                                          )
64976                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64977                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64978                                                                           ,p_lookup_code    => l_component_type_code
64980                                     ,p_token_4                 => 'PRODUCT_NAME'
64981                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64982                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64983                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64984                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64985                                     ,p_ae_header_id            =>  NULL
64986                                        );
64987 
64988         IF (C_LEVEL_ERROR>= g_log_level) THEN
64989                  trace
64990                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64991                       ,p_level    => C_LEVEL_ERROR
64992                       ,p_module   => l_log_module);
64993         END IF;
64994       END IF;
64995    END IF;
64996    --
64997    --
64998    ------------------------------------------------------------------------------------------------
64999    -- 4219869 Business Flow
65000    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65001    -- Prior Entry.  Currently, the following code is always generated.
65002    ------------------------------------------------------------------------------------------------
65003    -- No ValidateCurrentLine for business flow method of Prior Entry
65004 
65005    ------------------------------------------------------------------------------------
65006    -- 4219869 Business Flow
65007    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65008    ------------------------------------------------------------------------------------
65009    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65010 
65011    ----------------------------------------------------------------------------------
65012    -- 4219869 Business Flow
65013    -- Update journal entry status -- Need to generate this within IF <condition>
65014    ----------------------------------------------------------------------------------
65015    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65016          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65017          ,p_balance_type_code => l_balance_type_code
65018          );
65019 
65020    -------------------------------------------------------------------------------------------
65021    -- 4262811 - Generate the Accrual Reversal lines
65022    -------------------------------------------------------------------------------------------
65023    BEGIN
65024       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65025                               (g_array_event(p_event_id).array_value_num('header_index'));
65026       IF l_acc_rev_flag IS NULL THEN
65027          l_acc_rev_flag := 'N';
65028       END IF;
65029    EXCEPTION
65030       WHEN OTHERS THEN
65031          l_acc_rev_flag := 'N';
65032    END;
65033    --
65034    IF (l_acc_rev_flag = 'Y') THEN
65035 
65036        -- 4645092  ------------------------------------------------------------------------------
65037        -- To allow MPA report to determine if it should generate report process
65038        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65039        ------------------------------------------------------------------------------------------
65040 
65041        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65042        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65043    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65044    -- call ADRs
65045    -- Bug 4922099
65046    --
65047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65048         (NVL(l_actual_upg_option, 'N') = 'O') OR
65049         (NVL(l_enc_upg_option, 'N') = 'O')
65050       )
65051    THEN
65052    NULL;
65053    --
65054    --
65055    
65056    --
65057    --
65058    END IF;
65059 
65060        --
65061        -- Update the line information that should be overwritten
65062        --
65063        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65064                                          p_header_num   => 1);
65065        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65066 
65067        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65068 
65069        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65070           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65071        END IF;
65072 
65073       --
65074       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65075       --
65076       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65077           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65081           ---------------------------------------------------------------------------------------------------
65078       ELSE
65079           ---------------------------------------------------------------------------------------------------
65080           -- 4262811a Switch Sign
65082           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65083           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65084                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65085           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65086                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65087           -- 5132302
65088           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65089                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65090 
65091       END IF;
65092 
65093       -- 4955764
65094       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65095       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65096 
65097 
65098       XLA_AE_LINES_PKG.ValidateCurrentLine;
65099       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65100 
65101       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65102                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65103                ,p_balance_type_code => l_balance_type_code);
65104 
65105    END IF;
65106 
65107    -----------------------------------------------------------------------------------------
65108    -- 4262811 Multiperiod Accounting
65109    -----------------------------------------------------------------------------------------
65110      -- No MPA option is assigned.
65111 
65112 
65113 END IF;
65114 END IF;
65115 --
65116 
65117 --
65118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65119    trace
65120       (p_msg      => 'END of AcctLineType_102'
65121       ,p_level    => C_LEVEL_PROCEDURE
65122       ,p_module   => l_log_module);
65123 END IF;
65124 --
65125 EXCEPTION
65126   WHEN xla_exceptions_pkg.application_exception THEN
65127       RAISE;
65128   WHEN OTHERS THEN
65129        xla_exceptions_pkg.raise_message
65130            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.AcctLineType_102');
65131 END AcctLineType_102;
65132 --
65133 
65134 ---------------------------------------
65135 --
65136 -- PRIVATE PROCEDURE
65137 --         insert_sources_103
65138 --
65139 ----------------------------------------
65140 --
65141 PROCEDURE insert_sources_103(
65142                                 p_target_ledger_id       IN NUMBER
65143                               , p_language               IN VARCHAR2
65144                               , p_sla_ledger_id          IN NUMBER
65145                               , p_pad_start_date         IN DATE
65146                               , p_pad_end_date           IN DATE
65147                          )
65148 IS
65149 
65150 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
65151 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
65152 p_apps_owner                   VARCHAR2(30);
65153 l_log_module                   VARCHAR2(240);
65154 BEGIN
65155 IF g_log_enabled THEN
65156       l_log_module := C_DEFAULT_MODULE||'.insert_sources_103';
65157 END IF;
65158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65159 
65160       trace
65161          (p_msg      => 'BEGIN of insert_sources_103'
65162          ,p_level    => C_LEVEL_PROCEDURE
65163          ,p_module   => l_log_module);
65164 
65165 END IF;
65166 
65167 -- select APPS owner
65168 SELECT oracle_username
65169   INTO p_apps_owner
65170   FROM fnd_oracle_userid
65171  WHERE read_only_flag = 'U'
65172 ;
65173 
65174 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65175       trace
65176          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
65177                         ' - p_language = '||p_language||
65178                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
65179                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
65180                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
65181                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
65182          ,p_level    => C_LEVEL_STATEMENT
65183          ,p_module   => l_log_module);
65184 END IF;
65185 
65186 
65187 --
65188 INSERT INTO xla_diag_sources --hdr2
65189 (
65190         event_id
65191       , ledger_id
65192       , sla_ledger_id
65193       , description_language
65194       , object_name
65195       , object_type_code
65196       , line_number
65197       , source_application_id
65198       , source_type_code
65199       , source_code
65200       , source_value
65201       , source_meaning
65202       , created_by
65203       , creation_date
65204       , last_update_date
65205       , last_updated_by
65206       , last_update_login
65207       , program_update_date
65208       , program_application_id
65209       , program_id
65210       , request_id
65211 )
65212 SELECT
65213         event_id
65214       , p_target_ledger_id
65215       , p_sla_ledger_id
65216       , p_language
65217       , object_name
65221       , source_type_code
65218       , object_type_code
65219       , line_number
65220       , source_application_id
65222       , source_code
65223       , SUBSTR(source_value ,1,1996)
65224       , SUBSTR(source_meaning ,1,200)
65225       , xla_environment_pkg.g_Usr_Id
65226       , TRUNC(SYSDATE)
65227       , TRUNC(SYSDATE)
65228       , xla_environment_pkg.g_Usr_Id
65229       , xla_environment_pkg.g_Login_Id
65230       , TRUNC(SYSDATE)
65231       , xla_environment_pkg.g_Prog_Appl_Id
65232       , xla_environment_pkg.g_Prog_Id
65233       , xla_environment_pkg.g_Req_Id
65234   FROM (
65235        SELECT xet.event_id                  event_id
65236             , 0                          line_number
65237             , CASE r
65238                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
65239                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
65240                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
65241                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
65242                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
65243                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65244                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65245                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65246                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65247                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65248                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65249                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65250                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65251                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65252                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65253                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
65254                 
65255                ELSE null
65256               END                           object_name
65257             , CASE r
65258                 WHEN 1 THEN 'HEADER' 
65259                 WHEN 2 THEN 'HEADER' 
65260                 WHEN 3 THEN 'HEADER' 
65261                 WHEN 4 THEN 'HEADER' 
65262                 WHEN 5 THEN 'HEADER' 
65263                 WHEN 6 THEN 'HEADER' 
65264                 WHEN 7 THEN 'HEADER' 
65265                 WHEN 8 THEN 'HEADER' 
65266                 WHEN 9 THEN 'HEADER' 
65267                 WHEN 10 THEN 'HEADER' 
65268                 WHEN 11 THEN 'HEADER' 
65269                 WHEN 12 THEN 'HEADER' 
65270                 WHEN 13 THEN 'HEADER' 
65271                 WHEN 14 THEN 'HEADER' 
65272                 WHEN 15 THEN 'HEADER' 
65273                 WHEN 16 THEN 'HEADER' 
65274                 
65275                 ELSE null
65276               END                           object_type_code
65277             , CASE r
65278                 WHEN 1 THEN '200' 
65279                 WHEN 2 THEN '200' 
65280                 WHEN 3 THEN '200' 
65281                 WHEN 4 THEN '200' 
65282                 WHEN 5 THEN '200' 
65283                 WHEN 6 THEN '200' 
65284                 WHEN 7 THEN '200' 
65285                 WHEN 8 THEN '200' 
65286                 WHEN 9 THEN '200' 
65287                 WHEN 10 THEN '200' 
65288                 WHEN 11 THEN '200' 
65289                 WHEN 12 THEN '200' 
65290                 WHEN 13 THEN '200' 
65291                 WHEN 14 THEN '200' 
65292                 WHEN 15 THEN '200' 
65293                 WHEN 16 THEN '200' 
65294                 
65295                 ELSE null
65296               END                           source_application_id
65297             , 'S'             source_type_code
65298             , CASE r
65299                 WHEN 1 THEN 'ASP_RATE_VAR_GAIN_CCID' 
65300                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
65301                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
65302                 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG' 
65303                 WHEN 5 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
65304                 WHEN 6 THEN 'AI_INVOICE_ID' 
65305                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
65306                 WHEN 8 THEN 'INV_EXCHANGE_DATE' 
65307                 WHEN 9 THEN 'INV_EXCHANGE_RATE' 
65308                 WHEN 10 THEN 'INV_EXCHANGE_RATE_TYPE' 
65309                 WHEN 11 THEN 'AI_VENDOR_ID' 
65310                 WHEN 12 THEN 'AI_VENDOR_SITE_ID' 
65311                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
65312                 WHEN 14 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
65313                 WHEN 15 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
65314                 WHEN 16 THEN 'INV_DOC_SEQUENCE_VALUE' 
65315                 
65316                 ELSE null
65317               END                           source_code
65318             , CASE r
65319                 WHEN 1 THEN TO_CHAR(h3.ASP_RATE_VAR_GAIN_CCID)
65320                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
65321                 WHEN 3 THEN TO_CHAR(h3.ASP_RATE_VAR_LOSS_CCID)
65322                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
65323                 WHEN 5 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
65324                 WHEN 6 THEN TO_CHAR(h2.AI_INVOICE_ID)
65325                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
65326                 WHEN 8 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
65327                 WHEN 9 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
65328                 WHEN 10 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
65329                 WHEN 11 THEN TO_CHAR(h2.AI_VENDOR_ID)
65330                 WHEN 12 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
65331                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
65335                 
65332                 WHEN 14 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
65333                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
65334                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
65336                 ELSE null
65337               END                           source_value
65338             , CASE r
65339                 WHEN 2 THEN fvl7.meaning
65340                 WHEN 4 THEN fvl12.meaning
65341                 WHEN 5 THEN fvl17.meaning
65342                 
65343                 ELSE null
65344               END               source_meaning
65345          FROM xla_events_gt     xet  
65346       , AP_INVOICE_EXTRACT_HEADER_V  h2
65347       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
65348   , fnd_lookup_values    fvl7
65349   , fnd_lookup_values    fvl12
65350   , fnd_lookup_values    fvl17
65351              ,(select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
65352          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65353            AND xet.event_class_code = C_EVENT_CLASS_CODE
65354               AND h2.event_id = xet.event_id
65355  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
65356   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
65357   AND fvl7.view_application_id(+) = 200
65358   AND fvl7.language(+)            = USERENV('LANG')
65359      AND fvl12.lookup_type(+)         = 'YES_NO'
65360   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
65361   AND fvl12.view_application_id(+) = 0
65362   AND fvl12.language(+)            = USERENV('LANG')
65363      AND fvl17.lookup_type(+)         = 'YES_NO'
65364   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
65365   AND fvl17.view_application_id(+) = 0
65366   AND fvl17.language(+)            = USERENV('LANG')
65367   
65368 )
65369 ;
65370 --
65371 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65372 
65373       trace
65374          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
65375          ,p_level    => C_LEVEL_STATEMENT
65376          ,p_module   => l_log_module);
65377 
65378 END IF;
65379 --
65380 
65381 
65382 
65383 --
65384 INSERT INTO xla_diag_sources  --line2
65385 (
65386         event_id
65387       , ledger_id
65388       , sla_ledger_id
65389       , description_language
65390       , object_name
65391       , object_type_code
65392       , line_number
65393       , source_application_id
65394       , source_type_code
65395       , source_code
65396       , source_value
65397       , source_meaning
65398       , created_by
65399       , creation_date
65400       , last_update_date
65401       , last_updated_by
65402       , last_update_login
65403       , program_update_date
65404       , program_application_id
65405       , program_id
65406       , request_id
65407 )
65408 SELECT  event_id
65409       , p_target_ledger_id
65410       , p_sla_ledger_id
65411       , p_language
65412       , object_name
65413       , object_type_code
65414       , line_number
65415       , source_application_id
65416       , source_type_code
65417       , source_code
65418       , SUBSTR(source_value,1,1996)
65419       , SUBSTR(source_meaning ,1,200)
65420       , xla_environment_pkg.g_Usr_Id
65421       , TRUNC(SYSDATE)
65422       , TRUNC(SYSDATE)
65423       , xla_environment_pkg.g_Usr_Id
65424       , xla_environment_pkg.g_Login_Id
65425       , TRUNC(SYSDATE)
65426       , xla_environment_pkg.g_Prog_Appl_Id
65427       , xla_environment_pkg.g_Prog_Id
65428       , xla_environment_pkg.g_Req_Id
65429   FROM (
65430        SELECT xet.event_id                  event_id
65431             , l1.line_number                 line_number
65432             , CASE r
65433                WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65434                 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65435                 WHEN 3 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65436                 WHEN 4 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65437                 WHEN 5 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65438                 WHEN 6 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65439                 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65440                 WHEN 8 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65441                 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65442                 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65443                 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65444                 WHEN 12 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65445                 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65446                 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65447                 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65448                 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65449                 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65450                 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65451                 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65452                 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65453                 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65454                 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65455                 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65456                 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65457                 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65458                 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65459                 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65463                 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65460                 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65461                 WHEN 29 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65462                 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65464                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
65465                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
65466                 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65467                 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65468                 WHEN 36 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65469                 WHEN 37 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65470                 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65471                 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65472                 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65473                 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65474                 WHEN 42 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65475                 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65476                 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65477                 WHEN 45 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65478                 WHEN 46 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65479                 WHEN 47 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
65480                 
65481                ELSE null
65482               END                           object_name
65483             , CASE r
65484                 WHEN 1 THEN 'LINE' 
65485                 WHEN 2 THEN 'LINE' 
65486                 WHEN 3 THEN 'LINE' 
65487                 WHEN 4 THEN 'LINE' 
65488                 WHEN 5 THEN 'LINE' 
65489                 WHEN 6 THEN 'LINE' 
65490                 WHEN 7 THEN 'LINE' 
65491                 WHEN 8 THEN 'LINE' 
65492                 WHEN 9 THEN 'LINE' 
65493                 WHEN 10 THEN 'LINE' 
65494                 WHEN 11 THEN 'LINE' 
65495                 WHEN 12 THEN 'LINE' 
65496                 WHEN 13 THEN 'LINE' 
65497                 WHEN 14 THEN 'LINE' 
65498                 WHEN 15 THEN 'LINE' 
65499                 WHEN 16 THEN 'LINE' 
65500                 WHEN 17 THEN 'LINE' 
65501                 WHEN 18 THEN 'LINE' 
65502                 WHEN 19 THEN 'LINE' 
65503                 WHEN 20 THEN 'LINE' 
65504                 WHEN 21 THEN 'LINE' 
65505                 WHEN 22 THEN 'LINE' 
65506                 WHEN 23 THEN 'LINE' 
65507                 WHEN 24 THEN 'LINE' 
65508                 WHEN 25 THEN 'LINE' 
65509                 WHEN 26 THEN 'LINE' 
65510                 WHEN 27 THEN 'LINE' 
65511                 WHEN 28 THEN 'LINE' 
65512                 WHEN 29 THEN 'LINE' 
65513                 WHEN 30 THEN 'LINE' 
65514                 WHEN 31 THEN 'LINE' 
65515                 WHEN 32 THEN 'LINE' 
65516                 WHEN 33 THEN 'LINE' 
65517                 WHEN 34 THEN 'LINE' 
65518                 WHEN 35 THEN 'LINE' 
65519                 WHEN 36 THEN 'LINE' 
65520                 WHEN 37 THEN 'LINE' 
65521                 WHEN 38 THEN 'LINE' 
65522                 WHEN 39 THEN 'LINE' 
65523                 WHEN 40 THEN 'LINE' 
65524                 WHEN 41 THEN 'LINE' 
65525                 WHEN 42 THEN 'LINE' 
65526                 WHEN 43 THEN 'LINE' 
65527                 WHEN 44 THEN 'LINE' 
65528                 WHEN 45 THEN 'LINE' 
65529                 WHEN 46 THEN 'LINE' 
65530                 WHEN 47 THEN 'LINE' 
65531                 
65532                 ELSE null
65533               END                           object_type_code
65534             , CASE r
65535                 WHEN 1 THEN '200' 
65536                 WHEN 2 THEN '200' 
65537                 WHEN 3 THEN '200' 
65538                 WHEN 4 THEN '200' 
65539                 WHEN 5 THEN '200' 
65540                 WHEN 6 THEN '200' 
65541                 WHEN 7 THEN '200' 
65542                 WHEN 8 THEN '200' 
65543                 WHEN 9 THEN '200' 
65544                 WHEN 10 THEN '200' 
65545                 WHEN 11 THEN '200' 
65546                 WHEN 12 THEN '200' 
65547                 WHEN 13 THEN '200' 
65548                 WHEN 14 THEN '200' 
65549                 WHEN 15 THEN '200' 
65550                 WHEN 16 THEN '200' 
65551                 WHEN 17 THEN '200' 
65552                 WHEN 18 THEN '200' 
65553                 WHEN 19 THEN '200' 
65554                 WHEN 20 THEN '200' 
65555                 WHEN 21 THEN '200' 
65556                 WHEN 22 THEN '200' 
65557                 WHEN 23 THEN '200' 
65558                 WHEN 24 THEN '200' 
65559                 WHEN 25 THEN '200' 
65560                 WHEN 26 THEN '200' 
65561                 WHEN 27 THEN '200' 
65562                 WHEN 28 THEN '200' 
65563                 WHEN 29 THEN '200' 
65564                 WHEN 30 THEN '200' 
65565                 WHEN 31 THEN '200' 
65566                 WHEN 32 THEN '200' 
65567                 WHEN 33 THEN '200' 
65568                 WHEN 34 THEN '200' 
65569                 WHEN 35 THEN '200' 
65570                 WHEN 36 THEN '200' 
65571                 WHEN 37 THEN '200' 
65572                 WHEN 38 THEN '200' 
65573                 WHEN 39 THEN '200' 
65574                 WHEN 40 THEN '200' 
65575                 WHEN 41 THEN '200' 
65576                 WHEN 42 THEN '200' 
65577                 WHEN 43 THEN '200' 
65578                 WHEN 44 THEN '200' 
65579                 WHEN 45 THEN '200' 
65580                 WHEN 46 THEN '200' 
65584               END                           source_application_id
65581                 WHEN 47 THEN '200' 
65582                 
65583                 ELSE null
65585             , 'S'             source_type_code
65586             , CASE r
65587                 WHEN 1 THEN 'AID_DESCRIPTION' 
65588                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
65589                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
65590                 WHEN 4 THEN 'AID_DIST_CCID' 
65591                 WHEN 5 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
65592                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
65593                 WHEN 7 THEN 'AID_AMOUNT_VARIANCE' 
65594                 WHEN 8 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
65595                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
65596                 WHEN 10 THEN 'DISTRIBUTION_LINK_TYPE' 
65597                 WHEN 11 THEN 'ALLOC_TO_MAIN_DIST_ID' 
65598                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
65599                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
65600                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
65601                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
65602                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
65603                 WHEN 17 THEN 'AID_INVOICE_DIST_ID' 
65604                 WHEN 18 THEN 'UPG_ENC_CR_CCID' 
65605                 WHEN 19 THEN 'UPG_ENC_CR_AMT' 
65606                 WHEN 20 THEN 'UPG_ENC_CR_BASE_AMT' 
65607                 WHEN 21 THEN 'UPG_ENC_DR_CCID' 
65608                 WHEN 22 THEN 'UPG_ENC_DR_AMT' 
65609                 WHEN 23 THEN 'UPG_ENC_DR_BASE_AMT' 
65610                 WHEN 24 THEN 'UPG_AP_ENCUM_OPTION' 
65611                 WHEN 25 THEN 'AID_BASE_AMOUNT_VARIANCE' 
65612                 WHEN 26 THEN 'DEFERRED_END_DATE' 
65613                 WHEN 27 THEN 'DEFERRED_OPTION' 
65614                 WHEN 28 THEN 'DEFERRED_START_DATE' 
65615                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
65616                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
65617                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
65618                 WHEN 32 THEN 'TAX_LINE_ID' 
65619                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
65620                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
65621                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
65622                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
65623                 WHEN 37 THEN 'PO_DISTRIBUTION_ID' 
65624                 WHEN 38 THEN 'SELF_ASSESSED_TAX_FLAG' 
65625                 WHEN 39 THEN 'BUS_FLOW_PO_APP_ID' 
65626                 WHEN 40 THEN 'BUS_FLOW_PO_DIST_TYPE' 
65627                 WHEN 41 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
65628                 WHEN 42 THEN 'BUS_FLOW_PO_DIST_ID' 
65629                 WHEN 43 THEN 'BUS_FLOW_PO_DOC_ID' 
65630                 WHEN 44 THEN 'ENCUMBRANCE_AMOUNT' 
65631                 WHEN 45 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
65632                 WHEN 46 THEN 'AID_QUANTITY_VARIANCE' 
65633                 WHEN 47 THEN 'AID_BASE_QUANTITY_VARIANCE' 
65634                 
65635                 ELSE null
65636               END                           source_code
65637             , CASE r
65638                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
65639                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
65640                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
65641                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
65642                 WHEN 5 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
65643                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
65644                 WHEN 7 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
65645                 WHEN 8 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
65646                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
65647                 WHEN 10 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
65648                 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
65649                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
65650                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
65651                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
65652                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
65653                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
65654                 WHEN 17 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
65655                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
65656                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
65657                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
65658                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
65659                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
65660                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
65661                 WHEN 24 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
65662                 WHEN 25 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
65663                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
65664                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
65665                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
65666                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
65667                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
65668                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
65669                 WHEN 32 THEN TO_CHAR(l4.TAX_LINE_ID)
65670                 WHEN 33 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
65671                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
65672                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
65673                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
65674                 WHEN 37 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
65675                 WHEN 38 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
65676                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
65680                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
65677                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
65678                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
65679                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
65681                 WHEN 44 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
65682                 WHEN 45 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
65683                 WHEN 46 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
65684                 WHEN 47 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
65685                 
65686                 ELSE null
65687               END                           source_value
65688             , CASE r
65689                 WHEN 3 THEN fvl9.meaning
65690                 WHEN 6 THEN fvl15.meaning
65691                 WHEN 8 THEN fvl18.meaning
65692                 WHEN 29 THEN fvl46.meaning
65693                 WHEN 38 THEN fvl59.meaning
65694                 
65695                 ELSE null
65696               END               source_meaning
65697          FROM  xla_events_gt     xet  
65698         , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
65699         , ZX_AP_DEF_TAX_EXTRACT_V  l4
65700         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
65701   , fnd_lookup_values    fvl9
65702   , fnd_lookup_values    fvl15
65703   , fnd_lookup_values    fvl18
65704   , fnd_lookup_values    fvl46
65705   , fnd_lookup_values    fvl59
65706             , (select rownum r from all_objects where rownum <= 47 and owner = p_apps_owner)
65707         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65708           AND xet.event_class_code = C_EVENT_CLASS_CODE
65709             AND l1.event_id          = xet.event_id
65710  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
65711   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
65712   AND fvl9.view_application_id(+) = 201
65713   AND fvl9.language(+)            = USERENV('LANG')
65714      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
65715   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
65716   AND fvl15.view_application_id(+) = 200
65717   AND fvl15.language(+)            = USERENV('LANG')
65718      AND fvl18.lookup_type(+)         = 'YES_NO'
65719   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
65720   AND fvl18.view_application_id(+) = 0
65721   AND fvl18.language(+)            = USERENV('LANG')
65722      AND fvl46.lookup_type(+)         = 'YES_NO'
65723   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
65724   AND fvl46.view_application_id(+) = 0
65725   AND fvl46.language(+)            = USERENV('LANG')
65726      AND fvl59.lookup_type(+)         = 'YES_NO'
65727   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
65728   AND fvl59.view_application_id(+) = 0
65729   AND fvl59.language(+)            = USERENV('LANG')
65730   
65731 )
65732 ;
65733 --
65734 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65735 
65736       trace
65737          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
65738          ,p_level    => C_LEVEL_STATEMENT
65739          ,p_module   => l_log_module);
65740 
65741 END IF;
65742 
65743 
65744 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65745       trace
65746          (p_msg      => 'END of insert_sources_103'
65747          ,p_level    => C_LEVEL_PROCEDURE
65748          ,p_module   => l_log_module);
65749 END IF;
65750 EXCEPTION
65751   WHEN xla_exceptions_pkg.application_exception THEN
65752       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65753             trace
65754                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65755                ,p_level    => C_LEVEL_EXCEPTION
65756                ,p_module   => l_log_module);
65757       END IF;
65758       RAISE;
65759   WHEN OTHERS THEN
65760       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65761             trace
65762                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65763                ,p_level    => C_LEVEL_EXCEPTION
65764                ,p_module   => l_log_module);
65765        END IF;
65766        xla_exceptions_pkg.raise_message
65767            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_103');
65768 END insert_sources_103;
65769 --
65770 
65771 ---------------------------------------
65772 --
65773 -- PRIVATE FUNCTION
65774 --         EventClass_103
65775 --
65776 ----------------------------------------
65777 --
65778 FUNCTION EventClass_103
65779        (p_application_id         IN NUMBER
65780        ,p_base_ledger_id         IN NUMBER
65781        ,p_target_ledger_id       IN NUMBER
65782        ,p_language               IN VARCHAR2
65783        ,p_currency_code          IN VARCHAR2
65784        ,p_sla_ledger_id          IN NUMBER
65785        ,p_pad_start_date         IN DATE
65786        ,p_pad_end_date           IN DATE
65787        ,p_primary_ledger_id      IN NUMBER)
65788 RETURN BOOLEAN IS
65789 --
65790 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
65791 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
65792 
65793 l_calculate_acctd_flag   VARCHAR2(1) :='N';
65794 l_calculate_g_l_flag     VARCHAR2(1) :='N';
65795 --
65796 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65797 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65801 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65798 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65799 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65800 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65802 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65803 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65804 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65805 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65806 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65807 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65808 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65809 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65810 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65811 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65812 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65813 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65814 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65815 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65816 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65817 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65818 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
65819 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65820 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
65821 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
65822 
65823 l_event_id                             NUMBER;
65824 l_previous_event_id                    NUMBER;
65825 l_first_event_id                       NUMBER;
65826 l_last_event_id                        NUMBER;
65827 
65828 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
65829 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
65830 --
65831 --
65832 l_result                    BOOLEAN := TRUE;
65833 l_rows                      NUMBER  := 1000;
65834 l_event_type_name           VARCHAR2(80) := 'All';
65835 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
65836 l_description               VARCHAR2(4000);
65837 l_transaction_reversal      NUMBER;
65838 l_ae_header_id              NUMBER;
65839 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
65840 l_log_module                VARCHAR2(240);
65841 --
65842 l_acct_reversal_source      VARCHAR2(30);
65843 l_trx_reversal_source       VARCHAR2(30);
65844 
65845 l_continue_with_lines       BOOLEAN := TRUE;
65846 --
65847 l_acc_rev_gl_date_source    DATE;                      -- 4262811
65848 --
65849 type t_array_event_id is table of number index by binary_integer;
65850 
65851 l_rec_array_event                    t_rec_array_event;
65852 l_null_rec_array_event               t_rec_array_event;
65853 l_array_ae_header_id                 xla_number_array_type;
65854 l_actual_flag                        VARCHAR2(1) := NULL;
65855 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
65856 l_balance_type_code                  VARCHAR2(1) :=NULL;
65857 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
65858 
65859 --
65860 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
65861 --
65862 
65863 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
65864 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
65865 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
65866 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
65867 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
65868 TYPE t_array_source_24 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
65869 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
65870 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
65871 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
65872 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
65873 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
65874 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
65875 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
65876 TYPE t_array_source_122 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
65877 TYPE t_array_source_123 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
65878 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
65879 
65880 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
65884 TYPE t_array_source_13 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
65881 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
65882 TYPE t_array_source_9 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
65883 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
65885 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
65886 TYPE t_array_source_16 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
65887 TYPE t_array_source_18 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
65888 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
65889 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
65890 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
65891 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
65892 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
65893 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
65894 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
65895 TYPE t_array_source_29 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
65896 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
65897 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
65898 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
65899 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
65900 TYPE t_array_source_35 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
65901 TYPE t_array_source_36 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
65902 TYPE t_array_source_37 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
65903 TYPE t_array_source_38 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
65904 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
65905 TYPE t_array_source_43 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
65906 TYPE t_array_source_44 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
65907 TYPE t_array_source_45 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
65908 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
65909 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
65910 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
65911 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
65912 TYPE t_array_source_53 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
65913 TYPE t_array_source_54 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
65914 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
65915 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
65916 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
65917 TYPE t_array_source_59 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
65918 TYPE t_array_source_60 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
65919 TYPE t_array_source_61 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
65920 TYPE t_array_source_62 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
65921 TYPE t_array_source_63 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
65922 TYPE t_array_source_64 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
65923 TYPE t_array_source_65 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
65924 TYPE t_array_source_66 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
65925 TYPE t_array_source_81 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
65926 TYPE t_array_source_82 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
65927 
65928 l_array_source_6              t_array_source_6;
65929 l_array_source_7              t_array_source_7;
65930 l_array_source_7_meaning      t_array_lookup_meaning;
65931 l_array_source_10              t_array_source_10;
65932 l_array_source_12              t_array_source_12;
65933 l_array_source_12_meaning      t_array_lookup_meaning;
65934 l_array_source_17              t_array_source_17;
65935 l_array_source_17_meaning      t_array_lookup_meaning;
65936 l_array_source_24              t_array_source_24;
65940 l_array_source_41              t_array_source_41;
65937 l_array_source_33              t_array_source_33;
65938 l_array_source_39              t_array_source_39;
65939 l_array_source_40              t_array_source_40;
65941 l_array_source_47              t_array_source_47;
65942 l_array_source_48              t_array_source_48;
65943 l_array_source_49              t_array_source_49;
65944 l_array_source_122              t_array_source_122;
65945 l_array_source_123              t_array_source_123;
65946 l_array_source_124              t_array_source_124;
65947 
65948 l_array_source_1      t_array_source_1;
65949 l_array_source_8      t_array_source_8;
65950 l_array_source_9      t_array_source_9;
65951 l_array_source_9_meaning      t_array_lookup_meaning;
65952 l_array_source_11      t_array_source_11;
65953 l_array_source_13      t_array_source_13;
65954 l_array_source_15      t_array_source_15;
65955 l_array_source_15_meaning      t_array_lookup_meaning;
65956 l_array_source_16      t_array_source_16;
65957 l_array_source_18      t_array_source_18;
65958 l_array_source_18_meaning      t_array_lookup_meaning;
65959 l_array_source_19      t_array_source_19;
65960 l_array_source_21      t_array_source_21;
65961 l_array_source_23      t_array_source_23;
65962 l_array_source_25      t_array_source_25;
65963 l_array_source_26      t_array_source_26;
65964 l_array_source_27      t_array_source_27;
65965 l_array_source_28      t_array_source_28;
65966 l_array_source_29      t_array_source_29;
65967 l_array_source_30      t_array_source_30;
65968 l_array_source_31      t_array_source_31;
65969 l_array_source_32      t_array_source_32;
65970 l_array_source_34      t_array_source_34;
65971 l_array_source_35      t_array_source_35;
65972 l_array_source_36      t_array_source_36;
65973 l_array_source_37      t_array_source_37;
65974 l_array_source_38      t_array_source_38;
65975 l_array_source_42      t_array_source_42;
65976 l_array_source_43      t_array_source_43;
65977 l_array_source_44      t_array_source_44;
65978 l_array_source_45      t_array_source_45;
65979 l_array_source_46      t_array_source_46;
65980 l_array_source_46_meaning      t_array_lookup_meaning;
65981 l_array_source_50      t_array_source_50;
65982 l_array_source_51      t_array_source_51;
65983 l_array_source_52      t_array_source_52;
65984 l_array_source_53      t_array_source_53;
65985 l_array_source_54      t_array_source_54;
65986 l_array_source_55      t_array_source_55;
65987 l_array_source_56      t_array_source_56;
65988 l_array_source_58      t_array_source_58;
65989 l_array_source_59      t_array_source_59;
65990 l_array_source_59_meaning      t_array_lookup_meaning;
65991 l_array_source_60      t_array_source_60;
65992 l_array_source_61      t_array_source_61;
65993 l_array_source_62      t_array_source_62;
65994 l_array_source_63      t_array_source_63;
65995 l_array_source_64      t_array_source_64;
65996 l_array_source_65      t_array_source_65;
65997 l_array_source_66      t_array_source_66;
65998 l_array_source_81      t_array_source_81;
65999 l_array_source_82      t_array_source_82;
66000 
66001 --
66002 CURSOR header_cur
66003 IS
66004 SELECT /*+ leading(xet) cardinality(xet,1) */
66005 -- Event Class Code: CREDIT MEMOS
66006     xet.entity_id
66007    ,xet.legal_entity_id
66008    ,xet.entity_code
66009    ,xet.transaction_number
66010    ,xet.event_id
66011    ,xet.event_class_code
66012    ,xet.event_type_code
66013    ,xet.event_number
66014    ,xet.event_date
66015    ,xet.transaction_date
66016    ,xet.reference_num_1
66017    ,xet.reference_num_2
66018    ,xet.reference_num_3
66019    ,xet.reference_num_4
66020    ,xet.reference_char_1
66021    ,xet.reference_char_2
66022    ,xet.reference_char_3
66023    ,xet.reference_char_4
66024    ,xet.reference_date_1
66025    ,xet.reference_date_2
66026    ,xet.reference_date_3
66027    ,xet.reference_date_4
66028    ,xet.event_created_by
66029    ,xet.budgetary_control_flag 
66030   , h3.ASP_RATE_VAR_GAIN_CCID    source_6
66031   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_7
66032   , fvl7.meaning   source_7_meaning
66033   , h3.ASP_RATE_VAR_LOSS_CCID    source_10
66034   , h3.ASP_AUTO_OFFSET_FLAG    source_12
66035   , fvl12.meaning   source_12_meaning
66036   , h3.FSP_PURCH_ENCUMBRANCE_FLAG    source_17
66037   , fvl17.meaning   source_17_meaning
66038   , h2.AI_INVOICE_ID    source_24
66039   , h2.AI_INVOICE_CURRENCY_CODE    source_33
66040   , h2.INV_EXCHANGE_DATE    source_39
66041   , h2.INV_EXCHANGE_RATE    source_40
66042   , h2.INV_EXCHANGE_RATE_TYPE    source_41
66043   , h2.AI_VENDOR_ID    source_47
66044   , h2.AI_VENDOR_SITE_ID    source_48
66045   , h2.THIRD_PARTY_TYPE    source_49
66046   , h2.INV_DOC_SEQUENCE_CATEGORY    source_122
66047   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_123
66048   , h2.INV_DOC_SEQUENCE_VALUE    source_124
66049   FROM xla_events_gt     xet 
66050   , AP_INVOICE_EXTRACT_HEADER_V  h2
66051   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
66052   , fnd_lookup_values    fvl7
66053   , fnd_lookup_values    fvl12
66054   , fnd_lookup_values    fvl17
66055  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
66056    and xet.event_class_code = C_EVENT_CLASS_CODE
66057    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
66058  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
66059   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
66060   AND fvl7.view_application_id(+) = 200
66061   AND fvl7.language(+)            = USERENV('LANG')
66065   AND fvl12.language(+)            = USERENV('LANG')
66062      AND fvl12.lookup_type(+)         = 'YES_NO'
66063   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
66064   AND fvl12.view_application_id(+) = 0
66066      AND fvl17.lookup_type(+)         = 'YES_NO'
66067   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
66068   AND fvl17.view_application_id(+) = 0
66069   AND fvl17.language(+)            = USERENV('LANG')
66070   
66071  ORDER BY event_id
66072 ;
66073 
66074 
66075 --
66076 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
66077 IS
66078 SELECT  /*+ leading(xet) cardinality(xet,1) */
66079 -- Event Class Code: CREDIT MEMOS
66080     xet.entity_id
66081    ,xet.legal_entity_id
66082    ,xet.entity_code
66083    ,xet.transaction_number
66084    ,xet.event_id
66085    ,xet.event_class_code
66086    ,xet.event_type_code
66087    ,xet.event_number
66088    ,xet.event_date
66089    ,xet.transaction_date
66090    ,xet.reference_num_1
66091    ,xet.reference_num_2
66092    ,xet.reference_num_3
66093    ,xet.reference_num_4
66094    ,xet.reference_char_1
66095    ,xet.reference_char_2
66096    ,xet.reference_char_3
66097    ,xet.reference_char_4
66098    ,xet.reference_date_1
66099    ,xet.reference_date_2
66100    ,xet.reference_date_3
66101    ,xet.reference_date_4
66102    ,xet.event_created_by
66103    ,xet.budgetary_control_flag
66104  , l1.LINE_NUMBER  
66105   , l1.AID_DESCRIPTION    source_1
66106   , l1.INV_DIST_BASE_AMOUNT    source_8
66107   , l1.RELATED_INV_DIST_DEST_TYPE    source_9
66108   , fvl9.meaning   source_9_meaning
66109   , l1.AID_DIST_CCID    source_11
66110   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_13
66111   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_15
66112   , fvl15.meaning   source_15_meaning
66113   , l1.AID_AMOUNT_VARIANCE    source_16
66114   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_18
66115   , fvl18.meaning   source_18_meaning
66116   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_19
66117   , l1.DISTRIBUTION_LINK_TYPE    source_21
66118   , l1.ALLOC_TO_MAIN_DIST_ID    source_23
66119   , l1.BUS_FLOW_AP_APP_ID    source_25
66120   , l1.BUS_FLOW_INV_DIST_TYPE    source_26
66121   , l1.BUS_FLOW_INV_ENTITY_CODE    source_27
66122   , l1.BUS_FLOW_INV_DIST_ID    source_28
66123   , l1.BUS_FLOW_INV_ID    source_29
66124   , l1.AID_INVOICE_DIST_ID    source_30
66125   , l1.UPG_ENC_CR_CCID    source_31
66126   , l1.UPG_ENC_CR_AMT    source_32
66127   , l1.UPG_ENC_CR_BASE_AMT    source_34
66128   , l1.UPG_ENC_DR_CCID    source_35
66129   , l1.UPG_ENC_DR_AMT    source_36
66130   , l1.UPG_ENC_DR_BASE_AMT    source_37
66131   , l1.UPG_AP_ENCUM_OPTION    source_38
66132   , l1.AID_BASE_AMOUNT_VARIANCE    source_42
66133   , l1.DEFERRED_END_DATE    source_43
66134   , l1.DEFERRED_OPTION    source_44
66135   , l1.DEFERRED_START_DATE    source_45
66136   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_46
66137   , fvl46.meaning   source_46_meaning
66138   , l1.AID_PARENT_REVERSAL_ID    source_50
66139   , l1.AID_STAT_AMOUNT    source_51
66140   , l4.TAX_LINE_ID    source_52
66141   , l5.REC_NREC_TAX_DIST_ID    source_53
66142   , l1.SUMMARY_TAX_LINE_ID    source_54
66143   , l1.UPG_CR_ENC_TYPE_ID    source_55
66144   , l1.UPG_DR_ENC_TYPE_ID    source_56
66145   , l1.PO_DISTRIBUTION_ID    source_58
66146   , l1.SELF_ASSESSED_TAX_FLAG    source_59
66147   , fvl59.meaning   source_59_meaning
66148   , l1.BUS_FLOW_PO_APP_ID    source_60
66149   , l1.BUS_FLOW_PO_DIST_TYPE    source_61
66150   , l1.BUS_FLOW_PO_ENTITY_CODE    source_62
66151   , l1.BUS_FLOW_PO_DIST_ID    source_63
66152   , l1.BUS_FLOW_PO_DOC_ID    source_64
66153   , l1.ENCUMBRANCE_AMOUNT    source_65
66154   , l1.ENCUMBRANCE_BASE_AMOUNT    source_66
66155   , l1.AID_QUANTITY_VARIANCE    source_81
66156   , l1.AID_BASE_QUANTITY_VARIANCE    source_82
66157   FROM xla_events_gt     xet 
66158   , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
66159   , ZX_AP_DEF_TAX_EXTRACT_V  l4
66160   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
66161   , fnd_lookup_values    fvl9
66162   , fnd_lookup_values    fvl15
66163   , fnd_lookup_values    fvl18
66164   , fnd_lookup_values    fvl46
66165   , fnd_lookup_values    fvl59
66166  WHERE xet.event_id between x_first_event_id and x_last_event_id
66167    and xet.event_date between p_pad_start_date and p_pad_end_date
66168    and xet.event_class_code = C_EVENT_CLASS_CODE
66169    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
66170  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
66171   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
66172   AND fvl9.view_application_id(+) = 201
66173   AND fvl9.language(+)            = USERENV('LANG')
66174      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
66175   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
66176   AND fvl15.view_application_id(+) = 200
66177   AND fvl15.language(+)            = USERENV('LANG')
66178      AND fvl18.lookup_type(+)         = 'YES_NO'
66179   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
66180   AND fvl18.view_application_id(+) = 0
66181   AND fvl18.language(+)            = USERENV('LANG')
66182      AND fvl46.lookup_type(+)         = 'YES_NO'
66183   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
66184   AND fvl46.view_application_id(+) = 0
66188   AND fvl59.view_application_id(+) = 0
66185   AND fvl46.language(+)            = USERENV('LANG')
66186      AND fvl59.lookup_type(+)         = 'YES_NO'
66187   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
66189   AND fvl59.language(+)            = USERENV('LANG')
66190   ;
66191 
66192 --
66193 BEGIN
66194 IF g_log_enabled THEN
66195    l_log_module := C_DEFAULT_MODULE||'.EventClass_103';
66196 END IF;
66197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66198    trace
66199       (p_msg      => 'BEGIN of EventClass_103'
66200       ,p_level    => C_LEVEL_PROCEDURE
66201       ,p_module   => l_log_module);
66202 END IF;
66203 
66204 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66205    trace
66206       (p_msg      => 'p_application_id = '||p_application_id||
66207                      ' - p_base_ledger_id = '||p_base_ledger_id||
66208                      ' - p_target_ledger_id  = '||p_target_ledger_id||
66209                      ' - p_language = '||p_language||
66210                      ' - p_currency_code = '||p_currency_code||
66211                      ' - p_sla_ledger_id = '||p_sla_ledger_id
66212       ,p_level    => C_LEVEL_STATEMENT
66213       ,p_module   => l_log_module);
66214 END IF;
66215 --
66216 -- initialze arrays
66217 --
66218 g_array_event.DELETE;
66219 l_rec_array_event := l_null_rec_array_event;
66220 --
66221 --------------------------------------
66222 -- 4262811 Initialze MPA Line Number
66223 --------------------------------------
66224 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
66225 
66226 --
66227 
66228 --
66229 OPEN header_cur;
66230 --
66231 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66232    trace
66233    (p_msg      => 'SQL - FETCH header_cur'
66234    ,p_level    => C_LEVEL_STATEMENT
66235    ,p_module   => l_log_module);
66236 END IF;
66237 --
66238 LOOP
66239 FETCH header_cur BULK COLLECT INTO
66240         l_array_entity_id
66241       , l_array_legal_entity_id
66242       , l_array_entity_code
66243       , l_array_transaction_num
66244       , l_array_event_id
66245       , l_array_class_code
66246       , l_array_event_type
66247       , l_array_event_number
66248       , l_array_event_date
66249       , l_array_transaction_date
66250       , l_array_reference_num_1
66251       , l_array_reference_num_2
66252       , l_array_reference_num_3
66253       , l_array_reference_num_4
66254       , l_array_reference_char_1
66255       , l_array_reference_char_2
66256       , l_array_reference_char_3
66257       , l_array_reference_char_4
66258       , l_array_reference_date_1
66259       , l_array_reference_date_2
66260       , l_array_reference_date_3
66261       , l_array_reference_date_4
66262       , l_array_event_created_by
66263       , l_array_budgetary_control_flag 
66264       , l_array_source_6
66265       , l_array_source_7
66266       , l_array_source_7_meaning
66267       , l_array_source_10
66268       , l_array_source_12
66269       , l_array_source_12_meaning
66270       , l_array_source_17
66271       , l_array_source_17_meaning
66272       , l_array_source_24
66273       , l_array_source_33
66274       , l_array_source_39
66275       , l_array_source_40
66276       , l_array_source_41
66277       , l_array_source_47
66278       , l_array_source_48
66279       , l_array_source_49
66280       , l_array_source_122
66281       , l_array_source_123
66282       , l_array_source_124
66283       LIMIT l_rows;
66284 --
66285 IF (C_LEVEL_EVENT >= g_log_level) THEN
66286    trace
66287    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
66288    ,p_level    => C_LEVEL_EVENT
66289    ,p_module   => l_log_module);
66290 END IF;
66291 --
66292 EXIT WHEN l_array_entity_id.COUNT = 0;
66293 
66294 -- initialize arrays
66295 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
66296 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
66297 
66298 --
66299 -- Bug 4458708
66300 --
66301 XLA_AE_LINES_PKG.g_LineNumber := 0;
66302 
66303 
66304 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
66305 g_last_hdr_idx := l_array_event_id.LAST;
66306 --
66307 -- loop for the headers. Each iteration is for each header extract row
66308 -- fetched in header cursor
66309 --
66310 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
66311 
66312 --
66313 -- set event info as cache for other routines to refer event attributes
66314 --
66315 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66316    (p_application_id           => p_application_id
66317    ,p_primary_ledger_id        => p_primary_ledger_id
66318    ,p_base_ledger_id           => p_base_ledger_id
66319    ,p_target_ledger_id         => p_target_ledger_id
66320    ,p_entity_id                => l_array_entity_id(hdr_idx)
66321    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
66322    ,p_entity_code              => l_array_entity_code(hdr_idx)
66323    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
66324    ,p_event_id                 => l_array_event_id(hdr_idx)
66325    ,p_event_class_code         => l_array_class_code(hdr_idx)
66326    ,p_event_type_code          => l_array_event_type(hdr_idx)
66327    ,p_event_number             => l_array_event_number(hdr_idx)
66331    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
66328    ,p_event_date               => l_array_event_date(hdr_idx)
66329    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
66330    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
66332    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
66333    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
66334    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
66335    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
66336    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
66337    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
66338    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
66339    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
66340    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
66341    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
66342    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
66343    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
66344 
66345 --
66346 -- set the status of entry to C_VALID (0)
66347 --
66348 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66349 
66350 --
66351 -- initialize a row for ae header
66352 --
66353 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
66354 
66355 l_event_id := l_array_event_id(hdr_idx);
66356 
66357 --
66358 -- storing the hdr_idx for event. May be used by line cursor.
66359 --
66360 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
66361 
66362 --
66363 -- store sources from header extract. This can be improved to
66364 -- store only those sources from header extract that may be used in lines
66365 --
66366 
66367 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
66368 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
66369 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
66370 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
66371 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
66372 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
66373 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
66374 g_array_event(l_event_id).array_value_char('source_17_meaning') := l_array_source_17_meaning(hdr_idx);
66375 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
66376 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
66377 g_array_event(l_event_id).array_value_date('source_39') := l_array_source_39(hdr_idx);
66378 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
66379 g_array_event(l_event_id).array_value_char('source_41') := l_array_source_41(hdr_idx);
66380 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
66381 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
66382 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
66383 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
66384 g_array_event(l_event_id).array_value_num('source_123') := l_array_source_123(hdr_idx);
66385 g_array_event(l_event_id).array_value_num('source_124') := l_array_source_124(hdr_idx);
66386 
66387 --
66388 -- initilaize the status of ae headers for diffrent balance types
66389 -- the status is initialised to C_NOT_CREATED (2)
66390 --
66391 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66392 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66393 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66394 
66395 --
66396 -- call api to validate and store accounting attributes for header
66397 --
66398 
66399 ------------------------------------------------------------
66400 -- Accrual Reversal : to get date for Standard Source (NONE)
66401 ------------------------------------------------------------
66402 l_acc_rev_gl_date_source := NULL;
66403 
66404      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
66405       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_122');
66406      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
66407       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_123');
66408      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
66409       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_124');
66410      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
66411       l_rec_acct_attrs.array_date_value(4) := 
66412 xla_ae_sources_pkg.GetSystemSourceDate(
66413    p_source_code           => 'XLA_EVENT_DATE'
66414  , p_source_type_code      => 'Y'
66415  , p_source_application_id =>  602
66416 );
66417 
66418 
66419 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
66420 
66421 XLA_AE_HEADER_PKG.SetJeCategoryName;
66422 
66423 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
66424 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
66425 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
66429 
66426 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
66427 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
66428 
66430 --
66431 xla_ae_header_pkg.SetHdrDescription(
66432    p_description => Description_1 (
66433    p_application_id => p_application_id 
66434    )
66435 );
66436 --
66437 
66438 -- No header level analytical criteria
66439 
66440 --
66441 --accounting attribute enhancement, bug 3612931
66442 --
66443 l_trx_reversal_source := SUBSTR(NULL, 1,30);
66444 
66445 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
66446    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
66447 
66448    xla_accounting_err_pkg.build_message
66449       (p_appli_s_name            => 'XLA'
66450       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
66451       ,p_token_1                 => 'ACCT_ATTR_NAME'
66452       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
66453       ,p_token_2                 => 'PRODUCT_NAME'
66454       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66455       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66456       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
66457       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66458 
66459 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
66460    --
66461    -- following sets the accounting attributes needed to reverse
66462    -- accounting for a distributeion
66463    --
66464    xla_ae_lines_pkg.SetTrxReversalAttrs
66465       (p_event_id              => l_event_id
66466       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
66467       ,p_trx_reversal_source   => l_trx_reversal_source);
66468 
66469 END IF;
66470 
66471 
66472 ----------------------------------------------------------------
66473 -- 4262811 -  update the header statuses to invalid in need be
66474 ----------------------------------------------------------------
66475 --
66476 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
66477 
66478 
66479   -----------------------------------------------
66480   -- No accrual reversal for the event class/type
66481   -----------------------------------------------
66482 ----------------------------------------------------------------
66483 
66484 --
66485 -- this ends the header loop iteration for one bulk fetch
66486 --
66487 END LOOP;
66488 
66489 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
66490 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
66491 
66492 --
66493 -- insert dummy rows into lines gt table that were created due to
66494 -- transaction reversals
66495 --
66496 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
66497    l_result := XLA_AE_LINES_PKG.InsertLines;
66498 END IF;
66499 
66500 --
66501 -- reset the temp_line_num for each set of events fetched from header
66502 -- cursor rather than doing it for each new event in line cursor
66503 -- Bug 3939231
66504 --
66505 xla_ae_lines_pkg.g_temp_line_num := 0;
66506 
66507 
66508 
66509 --
66510 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
66511 --
66512 --
66513 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66514 
66515       trace
66516          (p_msg      => 'SQL - FETCH line_cur'
66517          ,p_level    => C_LEVEL_STATEMENT
66518          ,p_module   => l_log_module);
66519 
66520 END IF;
66521 --
66522 --
66523 LOOP
66524   --
66525   FETCH line_cur BULK COLLECT INTO
66526         l_array_entity_id
66527       , l_array_legal_entity_id
66528       , l_array_entity_code
66529       , l_array_transaction_num
66530       , l_array_event_id
66531       , l_array_class_code
66532       , l_array_event_type
66533       , l_array_event_number
66534       , l_array_event_date
66535       , l_array_transaction_date
66536       , l_array_reference_num_1
66537       , l_array_reference_num_2
66538       , l_array_reference_num_3
66539       , l_array_reference_num_4
66540       , l_array_reference_char_1
66541       , l_array_reference_char_2
66542       , l_array_reference_char_3
66543       , l_array_reference_char_4
66544       , l_array_reference_date_1
66545       , l_array_reference_date_2
66546       , l_array_reference_date_3
66547       , l_array_reference_date_4
66548       , l_array_event_created_by
66549       , l_array_budgetary_control_flag
66550       , l_array_extract_line_num 
66551       , l_array_source_1
66552       , l_array_source_8
66553       , l_array_source_9
66554       , l_array_source_9_meaning
66555       , l_array_source_11
66556       , l_array_source_13
66557       , l_array_source_15
66558       , l_array_source_15_meaning
66559       , l_array_source_16
66560       , l_array_source_18
66561       , l_array_source_18_meaning
66562       , l_array_source_19
66563       , l_array_source_21
66564       , l_array_source_23
66565       , l_array_source_25
66566       , l_array_source_26
66567       , l_array_source_27
66568       , l_array_source_28
66569       , l_array_source_29
66570       , l_array_source_30
66571       , l_array_source_31
66575       , l_array_source_36
66572       , l_array_source_32
66573       , l_array_source_34
66574       , l_array_source_35
66576       , l_array_source_37
66577       , l_array_source_38
66578       , l_array_source_42
66579       , l_array_source_43
66580       , l_array_source_44
66581       , l_array_source_45
66582       , l_array_source_46
66583       , l_array_source_46_meaning
66584       , l_array_source_50
66585       , l_array_source_51
66586       , l_array_source_52
66587       , l_array_source_53
66588       , l_array_source_54
66589       , l_array_source_55
66590       , l_array_source_56
66591       , l_array_source_58
66592       , l_array_source_59
66593       , l_array_source_59_meaning
66594       , l_array_source_60
66595       , l_array_source_61
66596       , l_array_source_62
66597       , l_array_source_63
66598       , l_array_source_64
66599       , l_array_source_65
66600       , l_array_source_66
66601       , l_array_source_81
66602       , l_array_source_82
66603       LIMIT l_rows;
66604 
66605   --
66606   IF (C_LEVEL_EVENT >= g_log_level) THEN
66607             trace
66608                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
66609                ,p_level    => C_LEVEL_EVENT
66610                ,p_module   => l_log_module);
66611   END IF;
66612   --
66613   EXIT WHEN l_array_entity_id.count = 0;
66614 
66615   XLA_AE_LINES_PKG.g_rec_lines := null;
66616 
66617 --
66618 -- Bug 4458708
66619 --
66620 XLA_AE_LINES_PKG.g_LineNumber := 0;
66621 --
66622 --
66623 
66624 FOR Idx IN 1..l_array_event_id.count LOOP
66625    --
66626    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
66627    --
66628    l_event_id := l_array_event_id(idx);  -- 5648433
66629 
66630    --
66631    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66632    --
66633 
66634    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
66635              (g_array_event(l_event_id).array_value_num('header_index'))
66636          ,'N'
66637          ) <> 'Y'
66638    THEN
66639       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66640          trace
66641             (p_msg      => 'Trancaction revesal option is not Y '
66642             ,p_level    => C_LEVEL_STATEMENT
66643             ,p_module   => l_log_module);
66644       END IF;
66645 
66646 --
66647 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
66648 --
66649 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66650 --
66651 -- set event info as cache for other routines to refer event attributes
66652 --
66653 
66654 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
66655    l_previous_event_id := l_event_id;
66656 
66657    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66658       (p_application_id           => p_application_id
66659       ,p_primary_ledger_id        => p_primary_ledger_id
66660       ,p_base_ledger_id           => p_base_ledger_id
66661       ,p_target_ledger_id         => p_target_ledger_id
66662       ,p_entity_id                => l_array_entity_id(Idx)
66663       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
66664       ,p_entity_code              => l_array_entity_code(Idx)
66665       ,p_transaction_num          => l_array_transaction_num(Idx)
66666       ,p_event_id                 => l_array_event_id(Idx)
66667       ,p_event_class_code         => l_array_class_code(Idx)
66668       ,p_event_type_code          => l_array_event_type(Idx)
66669       ,p_event_number             => l_array_event_number(Idx)
66670       ,p_event_date               => l_array_event_date(Idx)
66671       ,p_transaction_date         => l_array_transaction_date(Idx)
66672       ,p_reference_num_1          => l_array_reference_num_1(Idx)
66673       ,p_reference_num_2          => l_array_reference_num_2(Idx)
66674       ,p_reference_num_3          => l_array_reference_num_3(Idx)
66675       ,p_reference_num_4          => l_array_reference_num_4(Idx)
66676       ,p_reference_char_1         => l_array_reference_char_1(Idx)
66677       ,p_reference_char_2         => l_array_reference_char_2(Idx)
66678       ,p_reference_char_3         => l_array_reference_char_3(Idx)
66679       ,p_reference_char_4         => l_array_reference_char_4(Idx)
66680       ,p_reference_date_1         => l_array_reference_date_1(Idx)
66681       ,p_reference_date_2         => l_array_reference_date_2(Idx)
66682       ,p_reference_date_3         => l_array_reference_date_3(Idx)
66683       ,p_reference_date_4         => l_array_reference_date_4(Idx)
66684       ,p_event_created_by         => l_array_event_created_by(Idx)
66685       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
66686        --
66687 END IF;
66688 
66689 
66690 
66691 --
66692 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
66693 
66694 l_acct_reversal_source := SUBSTR(l_array_source_19(Idx), 1,30);
66695 
66696 IF l_continue_with_lines THEN
66697    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
66698       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
66699 
66700       xla_accounting_err_pkg.build_message
66701          (p_appli_s_name            => 'XLA'
66702          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
66703          ,p_token_1                 => 'LINE_NUMBER'
66707          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66704          ,p_value_1                 => l_array_extract_line_num(Idx)
66705          ,p_token_2                 => 'PRODUCT_NAME'
66706          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66708          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
66709          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66710 
66711    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
66712       --
66713       -- following sets the accounting attributes needed to reverse
66714       -- accounting for a distributeion
66715       --
66716 
66717       --
66718       -- 5217187
66719       --
66720       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
66721       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
66722                                        g_array_event(l_event_id).array_value_num('header_index'));
66723       --
66724       --
66725 
66726       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
66727       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_19(Idx);
66728       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
66729       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
66730       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
66731       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_21(Idx);
66732       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
66733       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_31(Idx);
66734       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
66735       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_32(Idx);
66736       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
66737       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_33');
66738       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
66739       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_34(Idx);
66740       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
66741       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_35(Idx);
66742       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
66743       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_36(Idx);
66744       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
66745       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_33');
66746       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
66747       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_37(Idx);
66748       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
66749       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_38(Idx);
66750       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
66751       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_49');
66752       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
66753       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_50(Idx);
66754       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
66755       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_21(Idx);
66756       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
66757       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_52(Idx);
66758       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
66759       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_53(Idx);
66760       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
66761       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_54(Idx);
66762       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
66763       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_55(Idx);
66764       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
66765       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_56(Idx);
66766 
66767 
66768       xla_ae_lines_pkg.SetAcctReversalAttrs
66769          (p_event_id             => l_event_id
66770          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
66771          ,p_calculate_acctd_flag => l_calculate_acctd_flag
66772          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
66773    END IF;
66774 
66775    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
66776        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
66777 
66778 --
66779 AcctLineType_14 (
66780  p_application_id  => p_application_id
66781  ,p_event_id     => l_event_id
66782  ,p_calculate_acctd_flag => l_calculate_acctd_flag
66783  ,p_calculate_g_l_flag => l_calculate_g_l_flag
66784  ,p_actual_flag => l_actual_flag
66785  ,p_balance_type_code => l_balance_type_code
66786  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66787  
66788  , p_source_1 => l_array_source_1(Idx)
66789  , p_source_11 => l_array_source_11(Idx)
66790  , p_source_15 => l_array_source_15(Idx)
66791  , p_source_15_meaning => l_array_source_15_meaning(Idx)
66792  , p_source_16 => l_array_source_16(Idx)
66793  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
66794  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
66795  , p_source_18 => l_array_source_18(Idx)
66799  , p_source_23 => l_array_source_23(Idx)
66796  , p_source_18_meaning => l_array_source_18_meaning(Idx)
66797  , p_source_19 => l_array_source_19(Idx)
66798  , p_source_21 => l_array_source_21(Idx)
66800  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
66801  , p_source_25 => l_array_source_25(Idx)
66802  , p_source_26 => l_array_source_26(Idx)
66803  , p_source_27 => l_array_source_27(Idx)
66804  , p_source_28 => l_array_source_28(Idx)
66805  , p_source_29 => l_array_source_29(Idx)
66806  , p_source_30 => l_array_source_30(Idx)
66807  , p_source_31 => l_array_source_31(Idx)
66808  , p_source_32 => l_array_source_32(Idx)
66809  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
66810  , p_source_34 => l_array_source_34(Idx)
66811  , p_source_35 => l_array_source_35(Idx)
66812  , p_source_36 => l_array_source_36(Idx)
66813  , p_source_37 => l_array_source_37(Idx)
66814  , p_source_38 => l_array_source_38(Idx)
66815  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
66816  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
66817  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
66818  , p_source_42 => l_array_source_42(Idx)
66819  , p_source_43 => l_array_source_43(Idx)
66820  , p_source_44 => l_array_source_44(Idx)
66821  , p_source_45 => l_array_source_45(Idx)
66822  , p_source_46 => l_array_source_46(Idx)
66823  , p_source_46_meaning => l_array_source_46_meaning(Idx)
66824  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
66825  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
66826  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
66827  , p_source_50 => l_array_source_50(Idx)
66828  , p_source_51 => l_array_source_51(Idx)
66829  , p_source_52 => l_array_source_52(Idx)
66830  , p_source_53 => l_array_source_53(Idx)
66831  , p_source_54 => l_array_source_54(Idx)
66832  , p_source_55 => l_array_source_55(Idx)
66833  , p_source_56 => l_array_source_56(Idx)
66834  );
66835 If(l_balance_type_code = 'A') THEN
66836   l_actual_gain_loss_ref := l_gain_or_loss_ref;
66837 END IF;
66838 
66839 --
66840 
66841 
66842 --
66843 AcctLineType_18 (
66844  p_application_id  => p_application_id
66845  ,p_event_id     => l_event_id
66846  ,p_calculate_acctd_flag => l_calculate_acctd_flag
66847  ,p_calculate_g_l_flag => l_calculate_g_l_flag
66848  ,p_actual_flag => l_actual_flag
66849  ,p_balance_type_code => l_balance_type_code
66850  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66851  
66852  , p_source_15 => l_array_source_15(Idx)
66853  , p_source_15_meaning => l_array_source_15_meaning(Idx)
66854  , p_source_18 => l_array_source_18(Idx)
66855  , p_source_18_meaning => l_array_source_18_meaning(Idx)
66856  , p_source_19 => l_array_source_19(Idx)
66857  , p_source_21 => l_array_source_21(Idx)
66858  , p_source_23 => l_array_source_23(Idx)
66859  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
66860  , p_source_30 => l_array_source_30(Idx)
66861  , p_source_31 => l_array_source_31(Idx)
66862  , p_source_32 => l_array_source_32(Idx)
66863  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
66864  , p_source_34 => l_array_source_34(Idx)
66865  , p_source_35 => l_array_source_35(Idx)
66866  , p_source_36 => l_array_source_36(Idx)
66867  , p_source_37 => l_array_source_37(Idx)
66868  , p_source_38 => l_array_source_38(Idx)
66869  , p_source_43 => l_array_source_43(Idx)
66870  , p_source_44 => l_array_source_44(Idx)
66871  , p_source_45 => l_array_source_45(Idx)
66872  , p_source_46 => l_array_source_46(Idx)
66873  , p_source_46_meaning => l_array_source_46_meaning(Idx)
66874  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
66875  , p_source_50 => l_array_source_50(Idx)
66876  , p_source_51 => l_array_source_51(Idx)
66877  , p_source_52 => l_array_source_52(Idx)
66878  , p_source_53 => l_array_source_53(Idx)
66879  , p_source_54 => l_array_source_54(Idx)
66880  , p_source_55 => l_array_source_55(Idx)
66881  , p_source_56 => l_array_source_56(Idx)
66882  , p_source_58 => l_array_source_58(Idx)
66883  , p_source_59 => l_array_source_59(Idx)
66884  , p_source_59_meaning => l_array_source_59_meaning(Idx)
66885  , p_source_60 => l_array_source_60(Idx)
66886  , p_source_61 => l_array_source_61(Idx)
66887  , p_source_62 => l_array_source_62(Idx)
66888  , p_source_63 => l_array_source_63(Idx)
66889  , p_source_64 => l_array_source_64(Idx)
66890  , p_source_65 => l_array_source_65(Idx)
66891  , p_source_66 => l_array_source_66(Idx)
66892  );
66893 If(l_balance_type_code = 'A') THEN
66894   l_actual_gain_loss_ref := l_gain_or_loss_ref;
66895 END IF;
66896 
66897 --
66898 
66899 
66900 --
66901 AcctLineType_19 (
66902  p_application_id  => p_application_id
66903  ,p_event_id     => l_event_id
66904  ,p_calculate_acctd_flag => l_calculate_acctd_flag
66905  ,p_calculate_g_l_flag => l_calculate_g_l_flag
66906  ,p_actual_flag => l_actual_flag
66907  ,p_balance_type_code => l_balance_type_code
66908  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66909  
66910  , p_source_15 => l_array_source_15(Idx)
66911  , p_source_15_meaning => l_array_source_15_meaning(Idx)
66912  , p_source_18 => l_array_source_18(Idx)
66913  , p_source_18_meaning => l_array_source_18_meaning(Idx)
66914  , p_source_19 => l_array_source_19(Idx)
66915  , p_source_21 => l_array_source_21(Idx)
66916  , p_source_23 => l_array_source_23(Idx)
66920  , p_source_32 => l_array_source_32(Idx)
66917  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
66918  , p_source_30 => l_array_source_30(Idx)
66919  , p_source_31 => l_array_source_31(Idx)
66921  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
66922  , p_source_34 => l_array_source_34(Idx)
66923  , p_source_35 => l_array_source_35(Idx)
66924  , p_source_36 => l_array_source_36(Idx)
66925  , p_source_37 => l_array_source_37(Idx)
66926  , p_source_38 => l_array_source_38(Idx)
66927  , p_source_43 => l_array_source_43(Idx)
66928  , p_source_44 => l_array_source_44(Idx)
66929  , p_source_45 => l_array_source_45(Idx)
66930  , p_source_46 => l_array_source_46(Idx)
66931  , p_source_46_meaning => l_array_source_46_meaning(Idx)
66932  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
66933  , p_source_50 => l_array_source_50(Idx)
66934  , p_source_51 => l_array_source_51(Idx)
66935  , p_source_52 => l_array_source_52(Idx)
66936  , p_source_53 => l_array_source_53(Idx)
66937  , p_source_54 => l_array_source_54(Idx)
66938  , p_source_55 => l_array_source_55(Idx)
66939  , p_source_56 => l_array_source_56(Idx)
66940  , p_source_58 => l_array_source_58(Idx)
66941  , p_source_60 => l_array_source_60(Idx)
66942  , p_source_61 => l_array_source_61(Idx)
66943  , p_source_62 => l_array_source_62(Idx)
66944  , p_source_63 => l_array_source_63(Idx)
66945  , p_source_64 => l_array_source_64(Idx)
66946  , p_source_65 => l_array_source_65(Idx)
66947  , p_source_66 => l_array_source_66(Idx)
66948  );
66949 If(l_balance_type_code = 'A') THEN
66950   l_actual_gain_loss_ref := l_gain_or_loss_ref;
66951 END IF;
66952 
66953 --
66954 
66955 
66956 --
66957 AcctLineType_22 (
66958  p_application_id  => p_application_id
66959  ,p_event_id     => l_event_id
66960  ,p_calculate_acctd_flag => l_calculate_acctd_flag
66961  ,p_calculate_g_l_flag => l_calculate_g_l_flag
66962  ,p_actual_flag => l_actual_flag
66963  ,p_balance_type_code => l_balance_type_code
66964  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66965  
66966  , p_source_1 => l_array_source_1(Idx)
66967  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
66968  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
66969  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
66970  , p_source_8 => l_array_source_8(Idx)
66971  , p_source_9 => l_array_source_9(Idx)
66972  , p_source_9_meaning => l_array_source_9_meaning(Idx)
66973  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
66974  , p_source_11 => l_array_source_11(Idx)
66975  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
66976  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
66977  , p_source_15 => l_array_source_15(Idx)
66978  , p_source_15_meaning => l_array_source_15_meaning(Idx)
66979  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
66980  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
66981  , p_source_19 => l_array_source_19(Idx)
66982  , p_source_21 => l_array_source_21(Idx)
66983  , p_source_23 => l_array_source_23(Idx)
66984  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
66985  , p_source_25 => l_array_source_25(Idx)
66986  , p_source_26 => l_array_source_26(Idx)
66987  , p_source_27 => l_array_source_27(Idx)
66988  , p_source_28 => l_array_source_28(Idx)
66989  , p_source_29 => l_array_source_29(Idx)
66990  , p_source_30 => l_array_source_30(Idx)
66991  , p_source_31 => l_array_source_31(Idx)
66992  , p_source_32 => l_array_source_32(Idx)
66993  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
66994  , p_source_34 => l_array_source_34(Idx)
66995  , p_source_35 => l_array_source_35(Idx)
66996  , p_source_36 => l_array_source_36(Idx)
66997  , p_source_37 => l_array_source_37(Idx)
66998  , p_source_38 => l_array_source_38(Idx)
66999  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67000  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67001  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67002  , p_source_43 => l_array_source_43(Idx)
67003  , p_source_44 => l_array_source_44(Idx)
67004  , p_source_45 => l_array_source_45(Idx)
67005  , p_source_46 => l_array_source_46(Idx)
67006  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67007  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67008  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67009  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67010  , p_source_50 => l_array_source_50(Idx)
67011  , p_source_51 => l_array_source_51(Idx)
67012  , p_source_52 => l_array_source_52(Idx)
67013  , p_source_53 => l_array_source_53(Idx)
67014  , p_source_54 => l_array_source_54(Idx)
67015  , p_source_55 => l_array_source_55(Idx)
67016  , p_source_56 => l_array_source_56(Idx)
67017  , p_source_65 => l_array_source_65(Idx)
67018  , p_source_66 => l_array_source_66(Idx)
67019  );
67020 If(l_balance_type_code = 'A') THEN
67021   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67022 END IF;
67023 
67024 --
67025 
67026 
67027 --
67028 AcctLineType_26 (
67029  p_application_id  => p_application_id
67030  ,p_event_id     => l_event_id
67031  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67032  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67033  ,p_actual_flag => l_actual_flag
67037  , p_source_1 => l_array_source_1(Idx)
67034  ,p_balance_type_code => l_balance_type_code
67035  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67036  
67038  , p_source_11 => l_array_source_11(Idx)
67039  , p_source_15 => l_array_source_15(Idx)
67040  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67041  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67042  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67043  , p_source_19 => l_array_source_19(Idx)
67044  , p_source_21 => l_array_source_21(Idx)
67045  , p_source_23 => l_array_source_23(Idx)
67046  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67047  , p_source_25 => l_array_source_25(Idx)
67048  , p_source_26 => l_array_source_26(Idx)
67049  , p_source_27 => l_array_source_27(Idx)
67050  , p_source_28 => l_array_source_28(Idx)
67051  , p_source_29 => l_array_source_29(Idx)
67052  , p_source_30 => l_array_source_30(Idx)
67053  , p_source_31 => l_array_source_31(Idx)
67054  , p_source_32 => l_array_source_32(Idx)
67055  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67056  , p_source_34 => l_array_source_34(Idx)
67057  , p_source_35 => l_array_source_35(Idx)
67058  , p_source_36 => l_array_source_36(Idx)
67059  , p_source_37 => l_array_source_37(Idx)
67060  , p_source_38 => l_array_source_38(Idx)
67061  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67062  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67063  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67064  , p_source_43 => l_array_source_43(Idx)
67065  , p_source_44 => l_array_source_44(Idx)
67066  , p_source_45 => l_array_source_45(Idx)
67067  , p_source_46 => l_array_source_46(Idx)
67068  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67069  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67070  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67071  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67072  , p_source_50 => l_array_source_50(Idx)
67073  , p_source_51 => l_array_source_51(Idx)
67074  , p_source_52 => l_array_source_52(Idx)
67075  , p_source_53 => l_array_source_53(Idx)
67076  , p_source_54 => l_array_source_54(Idx)
67077  , p_source_55 => l_array_source_55(Idx)
67078  , p_source_56 => l_array_source_56(Idx)
67079  , p_source_65 => l_array_source_65(Idx)
67080  , p_source_66 => l_array_source_66(Idx)
67081  );
67082 If(l_balance_type_code = 'A') THEN
67083   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67084 END IF;
67085 
67086 --
67087 
67088 
67089 --
67090 AcctLineType_33 (
67091  p_application_id  => p_application_id
67092  ,p_event_id     => l_event_id
67093  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67094  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67095  ,p_actual_flag => l_actual_flag
67096  ,p_balance_type_code => l_balance_type_code
67097  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67098  
67099  , p_source_1 => l_array_source_1(Idx)
67100  , p_source_11 => l_array_source_11(Idx)
67101  , p_source_15 => l_array_source_15(Idx)
67102  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67103  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67104  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67105  , p_source_19 => l_array_source_19(Idx)
67106  , p_source_21 => l_array_source_21(Idx)
67107  , p_source_23 => l_array_source_23(Idx)
67108  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67109  , p_source_25 => l_array_source_25(Idx)
67110  , p_source_26 => l_array_source_26(Idx)
67111  , p_source_27 => l_array_source_27(Idx)
67112  , p_source_28 => l_array_source_28(Idx)
67113  , p_source_29 => l_array_source_29(Idx)
67114  , p_source_30 => l_array_source_30(Idx)
67115  , p_source_31 => l_array_source_31(Idx)
67116  , p_source_32 => l_array_source_32(Idx)
67117  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67118  , p_source_34 => l_array_source_34(Idx)
67119  , p_source_35 => l_array_source_35(Idx)
67120  , p_source_36 => l_array_source_36(Idx)
67121  , p_source_37 => l_array_source_37(Idx)
67122  , p_source_38 => l_array_source_38(Idx)
67123  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67124  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67125  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67126  , p_source_43 => l_array_source_43(Idx)
67127  , p_source_44 => l_array_source_44(Idx)
67128  , p_source_45 => l_array_source_45(Idx)
67129  , p_source_46 => l_array_source_46(Idx)
67130  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67131  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67132  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67133  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67134  , p_source_50 => l_array_source_50(Idx)
67135  , p_source_51 => l_array_source_51(Idx)
67136  , p_source_52 => l_array_source_52(Idx)
67137  , p_source_53 => l_array_source_53(Idx)
67138  , p_source_54 => l_array_source_54(Idx)
67139  , p_source_55 => l_array_source_55(Idx)
67140  , p_source_56 => l_array_source_56(Idx)
67141  , p_source_65 => l_array_source_65(Idx)
67142  , p_source_66 => l_array_source_66(Idx)
67143  );
67144 If(l_balance_type_code = 'A') THEN
67145   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67146 END IF;
67147 
67148 --
67152 AcctLineType_37 (
67149 
67150 
67151 --
67153  p_application_id  => p_application_id
67154  ,p_event_id     => l_event_id
67155  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67156  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67157  ,p_actual_flag => l_actual_flag
67158  ,p_balance_type_code => l_balance_type_code
67159  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67160  
67161  , p_source_1 => l_array_source_1(Idx)
67162  , p_source_11 => l_array_source_11(Idx)
67163  , p_source_15 => l_array_source_15(Idx)
67164  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67165  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67166  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67167  , p_source_18 => l_array_source_18(Idx)
67168  , p_source_18_meaning => l_array_source_18_meaning(Idx)
67169  , p_source_19 => l_array_source_19(Idx)
67170  , p_source_21 => l_array_source_21(Idx)
67171  , p_source_23 => l_array_source_23(Idx)
67172  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67173  , p_source_25 => l_array_source_25(Idx)
67174  , p_source_26 => l_array_source_26(Idx)
67175  , p_source_27 => l_array_source_27(Idx)
67176  , p_source_28 => l_array_source_28(Idx)
67177  , p_source_29 => l_array_source_29(Idx)
67178  , p_source_30 => l_array_source_30(Idx)
67179  , p_source_31 => l_array_source_31(Idx)
67180  , p_source_32 => l_array_source_32(Idx)
67181  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67182  , p_source_34 => l_array_source_34(Idx)
67183  , p_source_35 => l_array_source_35(Idx)
67184  , p_source_36 => l_array_source_36(Idx)
67185  , p_source_37 => l_array_source_37(Idx)
67186  , p_source_38 => l_array_source_38(Idx)
67187  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67188  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67189  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67190  , p_source_43 => l_array_source_43(Idx)
67191  , p_source_44 => l_array_source_44(Idx)
67192  , p_source_45 => l_array_source_45(Idx)
67193  , p_source_46 => l_array_source_46(Idx)
67194  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67195  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67196  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67197  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67198  , p_source_50 => l_array_source_50(Idx)
67199  , p_source_51 => l_array_source_51(Idx)
67200  , p_source_52 => l_array_source_52(Idx)
67201  , p_source_53 => l_array_source_53(Idx)
67202  , p_source_54 => l_array_source_54(Idx)
67203  , p_source_55 => l_array_source_55(Idx)
67204  , p_source_56 => l_array_source_56(Idx)
67205  , p_source_65 => l_array_source_65(Idx)
67206  , p_source_66 => l_array_source_66(Idx)
67207  );
67208 If(l_balance_type_code = 'A') THEN
67209   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67210 END IF;
67211 
67212 --
67213 
67214 
67215 --
67216 AcctLineType_41 (
67217  p_application_id  => p_application_id
67218  ,p_event_id     => l_event_id
67219  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67220  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67221  ,p_actual_flag => l_actual_flag
67222  ,p_balance_type_code => l_balance_type_code
67223  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67224  
67225  , p_source_1 => l_array_source_1(Idx)
67226  , p_source_11 => l_array_source_11(Idx)
67227  , p_source_15 => l_array_source_15(Idx)
67228  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67229  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67230  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67231  , p_source_19 => l_array_source_19(Idx)
67232  , p_source_21 => l_array_source_21(Idx)
67233  , p_source_23 => l_array_source_23(Idx)
67234  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67235  , p_source_25 => l_array_source_25(Idx)
67236  , p_source_26 => l_array_source_26(Idx)
67237  , p_source_27 => l_array_source_27(Idx)
67238  , p_source_28 => l_array_source_28(Idx)
67239  , p_source_29 => l_array_source_29(Idx)
67240  , p_source_30 => l_array_source_30(Idx)
67241  , p_source_31 => l_array_source_31(Idx)
67242  , p_source_32 => l_array_source_32(Idx)
67243  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67244  , p_source_34 => l_array_source_34(Idx)
67245  , p_source_35 => l_array_source_35(Idx)
67246  , p_source_36 => l_array_source_36(Idx)
67247  , p_source_37 => l_array_source_37(Idx)
67248  , p_source_38 => l_array_source_38(Idx)
67249  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67250  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67251  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67252  , p_source_43 => l_array_source_43(Idx)
67253  , p_source_44 => l_array_source_44(Idx)
67254  , p_source_45 => l_array_source_45(Idx)
67255  , p_source_46 => l_array_source_46(Idx)
67256  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67257  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67258  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67259  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67260  , p_source_50 => l_array_source_50(Idx)
67261  , p_source_51 => l_array_source_51(Idx)
67262  , p_source_52 => l_array_source_52(Idx)
67263  , p_source_53 => l_array_source_53(Idx)
67264  , p_source_54 => l_array_source_54(Idx)
67268  , p_source_66 => l_array_source_66(Idx)
67265  , p_source_55 => l_array_source_55(Idx)
67266  , p_source_56 => l_array_source_56(Idx)
67267  , p_source_65 => l_array_source_65(Idx)
67269  );
67270 If(l_balance_type_code = 'A') THEN
67271   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67272 END IF;
67273 
67274 --
67275 
67276 
67277 --
67278 AcctLineType_45 (
67279  p_application_id  => p_application_id
67280  ,p_event_id     => l_event_id
67281  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67282  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67283  ,p_actual_flag => l_actual_flag
67284  ,p_balance_type_code => l_balance_type_code
67285  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67286  
67287  , p_source_1 => l_array_source_1(Idx)
67288  , p_source_11 => l_array_source_11(Idx)
67289  , p_source_15 => l_array_source_15(Idx)
67290  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67291  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67292  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67293  , p_source_18 => l_array_source_18(Idx)
67294  , p_source_18_meaning => l_array_source_18_meaning(Idx)
67295  , p_source_19 => l_array_source_19(Idx)
67296  , p_source_21 => l_array_source_21(Idx)
67297  , p_source_23 => l_array_source_23(Idx)
67298  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67299  , p_source_25 => l_array_source_25(Idx)
67300  , p_source_26 => l_array_source_26(Idx)
67301  , p_source_27 => l_array_source_27(Idx)
67302  , p_source_28 => l_array_source_28(Idx)
67303  , p_source_29 => l_array_source_29(Idx)
67304  , p_source_30 => l_array_source_30(Idx)
67305  , p_source_31 => l_array_source_31(Idx)
67306  , p_source_32 => l_array_source_32(Idx)
67307  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67308  , p_source_34 => l_array_source_34(Idx)
67309  , p_source_35 => l_array_source_35(Idx)
67310  , p_source_36 => l_array_source_36(Idx)
67311  , p_source_37 => l_array_source_37(Idx)
67312  , p_source_38 => l_array_source_38(Idx)
67313  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67314  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67315  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67316  , p_source_43 => l_array_source_43(Idx)
67317  , p_source_44 => l_array_source_44(Idx)
67318  , p_source_45 => l_array_source_45(Idx)
67319  , p_source_46 => l_array_source_46(Idx)
67320  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67321  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67322  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67323  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67324  , p_source_50 => l_array_source_50(Idx)
67325  , p_source_51 => l_array_source_51(Idx)
67326  , p_source_52 => l_array_source_52(Idx)
67327  , p_source_53 => l_array_source_53(Idx)
67328  , p_source_54 => l_array_source_54(Idx)
67329  , p_source_55 => l_array_source_55(Idx)
67330  , p_source_56 => l_array_source_56(Idx)
67331  , p_source_59 => l_array_source_59(Idx)
67332  , p_source_59_meaning => l_array_source_59_meaning(Idx)
67333  , p_source_65 => l_array_source_65(Idx)
67334  , p_source_66 => l_array_source_66(Idx)
67335  );
67336 If(l_balance_type_code = 'A') THEN
67337   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67338 END IF;
67339 
67340 --
67341 
67342 
67343 --
67344 AcctLineType_54 (
67345  p_application_id  => p_application_id
67346  ,p_event_id     => l_event_id
67347  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67348  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67349  ,p_actual_flag => l_actual_flag
67350  ,p_balance_type_code => l_balance_type_code
67351  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67352  
67353  , p_source_1 => l_array_source_1(Idx)
67354  , p_source_11 => l_array_source_11(Idx)
67355  , p_source_15 => l_array_source_15(Idx)
67356  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67357  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67358  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67359  , p_source_18 => l_array_source_18(Idx)
67360  , p_source_18_meaning => l_array_source_18_meaning(Idx)
67361  , p_source_19 => l_array_source_19(Idx)
67362  , p_source_21 => l_array_source_21(Idx)
67363  , p_source_23 => l_array_source_23(Idx)
67364  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67365  , p_source_25 => l_array_source_25(Idx)
67366  , p_source_26 => l_array_source_26(Idx)
67367  , p_source_27 => l_array_source_27(Idx)
67368  , p_source_28 => l_array_source_28(Idx)
67369  , p_source_29 => l_array_source_29(Idx)
67370  , p_source_30 => l_array_source_30(Idx)
67371  , p_source_31 => l_array_source_31(Idx)
67372  , p_source_32 => l_array_source_32(Idx)
67373  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67374  , p_source_34 => l_array_source_34(Idx)
67375  , p_source_35 => l_array_source_35(Idx)
67376  , p_source_36 => l_array_source_36(Idx)
67377  , p_source_37 => l_array_source_37(Idx)
67378  , p_source_38 => l_array_source_38(Idx)
67379  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67380  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67381  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67382  , p_source_43 => l_array_source_43(Idx)
67383  , p_source_44 => l_array_source_44(Idx)
67387  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67384  , p_source_45 => l_array_source_45(Idx)
67385  , p_source_46 => l_array_source_46(Idx)
67386  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67388  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67389  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67390  , p_source_50 => l_array_source_50(Idx)
67391  , p_source_51 => l_array_source_51(Idx)
67392  , p_source_52 => l_array_source_52(Idx)
67393  , p_source_53 => l_array_source_53(Idx)
67394  , p_source_54 => l_array_source_54(Idx)
67395  , p_source_55 => l_array_source_55(Idx)
67396  , p_source_56 => l_array_source_56(Idx)
67397  , p_source_81 => l_array_source_81(Idx)
67398  , p_source_82 => l_array_source_82(Idx)
67399  );
67400 If(l_balance_type_code = 'A') THEN
67401   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67402 END IF;
67403 
67404 --
67405 
67406 
67407 --
67408 AcctLineType_57 (
67409  p_application_id  => p_application_id
67410  ,p_event_id     => l_event_id
67411  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67412  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67413  ,p_actual_flag => l_actual_flag
67414  ,p_balance_type_code => l_balance_type_code
67415  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67416  
67417  , p_source_1 => l_array_source_1(Idx)
67418  , p_source_11 => l_array_source_11(Idx)
67419  , p_source_15 => l_array_source_15(Idx)
67420  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67421  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67422  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67423  , p_source_19 => l_array_source_19(Idx)
67424  , p_source_21 => l_array_source_21(Idx)
67425  , p_source_23 => l_array_source_23(Idx)
67426  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67427  , p_source_25 => l_array_source_25(Idx)
67428  , p_source_26 => l_array_source_26(Idx)
67429  , p_source_27 => l_array_source_27(Idx)
67430  , p_source_28 => l_array_source_28(Idx)
67431  , p_source_29 => l_array_source_29(Idx)
67432  , p_source_30 => l_array_source_30(Idx)
67433  , p_source_31 => l_array_source_31(Idx)
67434  , p_source_32 => l_array_source_32(Idx)
67435  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67436  , p_source_34 => l_array_source_34(Idx)
67437  , p_source_35 => l_array_source_35(Idx)
67438  , p_source_36 => l_array_source_36(Idx)
67439  , p_source_37 => l_array_source_37(Idx)
67440  , p_source_38 => l_array_source_38(Idx)
67441  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67442  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67443  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67444  , p_source_43 => l_array_source_43(Idx)
67445  , p_source_44 => l_array_source_44(Idx)
67446  , p_source_45 => l_array_source_45(Idx)
67447  , p_source_46 => l_array_source_46(Idx)
67448  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67449  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67450  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67451  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67452  , p_source_50 => l_array_source_50(Idx)
67453  , p_source_51 => l_array_source_51(Idx)
67454  , p_source_52 => l_array_source_52(Idx)
67455  , p_source_53 => l_array_source_53(Idx)
67456  , p_source_54 => l_array_source_54(Idx)
67457  , p_source_55 => l_array_source_55(Idx)
67458  , p_source_56 => l_array_source_56(Idx)
67459  , p_source_59 => l_array_source_59(Idx)
67460  , p_source_59_meaning => l_array_source_59_meaning(Idx)
67461  , p_source_65 => l_array_source_65(Idx)
67462  , p_source_66 => l_array_source_66(Idx)
67463  );
67464 If(l_balance_type_code = 'A') THEN
67465   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67466 END IF;
67467 
67468 --
67469 
67470 
67471 --
67472 AcctLineType_61 (
67473  p_application_id  => p_application_id
67474  ,p_event_id     => l_event_id
67475  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67476  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67477  ,p_actual_flag => l_actual_flag
67478  ,p_balance_type_code => l_balance_type_code
67479  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67480  
67481  , p_source_1 => l_array_source_1(Idx)
67482  , p_source_13 => l_array_source_13(Idx)
67483  , p_source_15 => l_array_source_15(Idx)
67484  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67485  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67486  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67487  , p_source_19 => l_array_source_19(Idx)
67488  , p_source_21 => l_array_source_21(Idx)
67489  , p_source_23 => l_array_source_23(Idx)
67490  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67491  , p_source_25 => l_array_source_25(Idx)
67492  , p_source_26 => l_array_source_26(Idx)
67493  , p_source_27 => l_array_source_27(Idx)
67494  , p_source_28 => l_array_source_28(Idx)
67495  , p_source_29 => l_array_source_29(Idx)
67496  , p_source_30 => l_array_source_30(Idx)
67497  , p_source_31 => l_array_source_31(Idx)
67498  , p_source_32 => l_array_source_32(Idx)
67499  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67500  , p_source_34 => l_array_source_34(Idx)
67501  , p_source_35 => l_array_source_35(Idx)
67505  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67502  , p_source_36 => l_array_source_36(Idx)
67503  , p_source_37 => l_array_source_37(Idx)
67504  , p_source_38 => l_array_source_38(Idx)
67506  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67507  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67508  , p_source_43 => l_array_source_43(Idx)
67509  , p_source_44 => l_array_source_44(Idx)
67510  , p_source_45 => l_array_source_45(Idx)
67511  , p_source_46 => l_array_source_46(Idx)
67512  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67513  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67514  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67515  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67516  , p_source_50 => l_array_source_50(Idx)
67517  , p_source_51 => l_array_source_51(Idx)
67518  , p_source_52 => l_array_source_52(Idx)
67519  , p_source_53 => l_array_source_53(Idx)
67520  , p_source_54 => l_array_source_54(Idx)
67521  , p_source_55 => l_array_source_55(Idx)
67522  , p_source_56 => l_array_source_56(Idx)
67523  , p_source_59 => l_array_source_59(Idx)
67524  , p_source_59_meaning => l_array_source_59_meaning(Idx)
67525  , p_source_65 => l_array_source_65(Idx)
67526  , p_source_66 => l_array_source_66(Idx)
67527  );
67528 If(l_balance_type_code = 'A') THEN
67529   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67530 END IF;
67531 
67532 --
67533 
67534 
67535 --
67536 AcctLineType_66 (
67537  p_application_id  => p_application_id
67538  ,p_event_id     => l_event_id
67539  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67540  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67541  ,p_actual_flag => l_actual_flag
67542  ,p_balance_type_code => l_balance_type_code
67543  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67544  
67545  , p_source_1 => l_array_source_1(Idx)
67546  , p_source_11 => l_array_source_11(Idx)
67547  , p_source_15 => l_array_source_15(Idx)
67548  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67549  , p_source_16 => l_array_source_16(Idx)
67550  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67551  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67552  , p_source_18 => l_array_source_18(Idx)
67553  , p_source_18_meaning => l_array_source_18_meaning(Idx)
67554  , p_source_19 => l_array_source_19(Idx)
67555  , p_source_21 => l_array_source_21(Idx)
67556  , p_source_23 => l_array_source_23(Idx)
67557  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67558  , p_source_25 => l_array_source_25(Idx)
67559  , p_source_26 => l_array_source_26(Idx)
67560  , p_source_27 => l_array_source_27(Idx)
67561  , p_source_28 => l_array_source_28(Idx)
67562  , p_source_29 => l_array_source_29(Idx)
67563  , p_source_30 => l_array_source_30(Idx)
67564  , p_source_31 => l_array_source_31(Idx)
67565  , p_source_32 => l_array_source_32(Idx)
67566  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67567  , p_source_34 => l_array_source_34(Idx)
67568  , p_source_35 => l_array_source_35(Idx)
67569  , p_source_36 => l_array_source_36(Idx)
67570  , p_source_37 => l_array_source_37(Idx)
67571  , p_source_38 => l_array_source_38(Idx)
67572  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67573  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67574  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67575  , p_source_42 => l_array_source_42(Idx)
67576  , p_source_43 => l_array_source_43(Idx)
67577  , p_source_44 => l_array_source_44(Idx)
67578  , p_source_45 => l_array_source_45(Idx)
67579  , p_source_46 => l_array_source_46(Idx)
67580  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67581  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67582  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67583  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67584  , p_source_50 => l_array_source_50(Idx)
67585  , p_source_51 => l_array_source_51(Idx)
67586  , p_source_52 => l_array_source_52(Idx)
67587  , p_source_53 => l_array_source_53(Idx)
67588  , p_source_54 => l_array_source_54(Idx)
67589  , p_source_55 => l_array_source_55(Idx)
67590  , p_source_56 => l_array_source_56(Idx)
67591  );
67592 If(l_balance_type_code = 'A') THEN
67593   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67594 END IF;
67595 
67596 --
67597 
67598 
67599 --
67600 AcctLineType_70 (
67601  p_application_id  => p_application_id
67602  ,p_event_id     => l_event_id
67603  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67604  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67605  ,p_actual_flag => l_actual_flag
67606  ,p_balance_type_code => l_balance_type_code
67607  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67608  
67609  , p_source_1 => l_array_source_1(Idx)
67610  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
67611  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
67612  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
67613  , p_source_8 => l_array_source_8(Idx)
67614  , p_source_9 => l_array_source_9(Idx)
67615  , p_source_9_meaning => l_array_source_9_meaning(Idx)
67616  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
67617  , p_source_11 => l_array_source_11(Idx)
67621  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67618  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
67619  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
67620  , p_source_15 => l_array_source_15(Idx)
67622  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67623  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67624  , p_source_19 => l_array_source_19(Idx)
67625  , p_source_21 => l_array_source_21(Idx)
67626  , p_source_23 => l_array_source_23(Idx)
67627  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67628  , p_source_25 => l_array_source_25(Idx)
67629  , p_source_26 => l_array_source_26(Idx)
67630  , p_source_27 => l_array_source_27(Idx)
67631  , p_source_28 => l_array_source_28(Idx)
67632  , p_source_29 => l_array_source_29(Idx)
67633  , p_source_30 => l_array_source_30(Idx)
67634  , p_source_31 => l_array_source_31(Idx)
67635  , p_source_32 => l_array_source_32(Idx)
67636  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67637  , p_source_34 => l_array_source_34(Idx)
67638  , p_source_35 => l_array_source_35(Idx)
67639  , p_source_36 => l_array_source_36(Idx)
67640  , p_source_37 => l_array_source_37(Idx)
67641  , p_source_38 => l_array_source_38(Idx)
67642  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67643  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67644  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67645  , p_source_43 => l_array_source_43(Idx)
67646  , p_source_44 => l_array_source_44(Idx)
67647  , p_source_45 => l_array_source_45(Idx)
67648  , p_source_46 => l_array_source_46(Idx)
67649  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67650  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67651  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67652  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67653  , p_source_50 => l_array_source_50(Idx)
67654  , p_source_51 => l_array_source_51(Idx)
67655  , p_source_52 => l_array_source_52(Idx)
67656  , p_source_53 => l_array_source_53(Idx)
67657  , p_source_54 => l_array_source_54(Idx)
67658  , p_source_55 => l_array_source_55(Idx)
67659  , p_source_56 => l_array_source_56(Idx)
67660  , p_source_65 => l_array_source_65(Idx)
67661  , p_source_66 => l_array_source_66(Idx)
67662  );
67663 If(l_balance_type_code = 'A') THEN
67664   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67665 END IF;
67666 
67667 --
67668 
67669 
67670 --
67671 AcctLineType_73 (
67672  p_application_id  => p_application_id
67673  ,p_event_id     => l_event_id
67674  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67675  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67676  ,p_actual_flag => l_actual_flag
67677  ,p_balance_type_code => l_balance_type_code
67678  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67679  
67680  , p_source_1 => l_array_source_1(Idx)
67681  , p_source_11 => l_array_source_11(Idx)
67682  , p_source_15 => l_array_source_15(Idx)
67683  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67684  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67685  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67686  , p_source_19 => l_array_source_19(Idx)
67687  , p_source_21 => l_array_source_21(Idx)
67688  , p_source_23 => l_array_source_23(Idx)
67689  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67690  , p_source_25 => l_array_source_25(Idx)
67691  , p_source_26 => l_array_source_26(Idx)
67692  , p_source_27 => l_array_source_27(Idx)
67693  , p_source_28 => l_array_source_28(Idx)
67694  , p_source_29 => l_array_source_29(Idx)
67695  , p_source_30 => l_array_source_30(Idx)
67696  , p_source_31 => l_array_source_31(Idx)
67697  , p_source_32 => l_array_source_32(Idx)
67698  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67699  , p_source_34 => l_array_source_34(Idx)
67700  , p_source_35 => l_array_source_35(Idx)
67701  , p_source_36 => l_array_source_36(Idx)
67702  , p_source_37 => l_array_source_37(Idx)
67703  , p_source_38 => l_array_source_38(Idx)
67704  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67705  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67706  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67707  , p_source_43 => l_array_source_43(Idx)
67708  , p_source_44 => l_array_source_44(Idx)
67709  , p_source_45 => l_array_source_45(Idx)
67710  , p_source_46 => l_array_source_46(Idx)
67711  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67712  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67713  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67714  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67715  , p_source_50 => l_array_source_50(Idx)
67716  , p_source_51 => l_array_source_51(Idx)
67717  , p_source_52 => l_array_source_52(Idx)
67718  , p_source_53 => l_array_source_53(Idx)
67719  , p_source_54 => l_array_source_54(Idx)
67720  , p_source_55 => l_array_source_55(Idx)
67721  , p_source_56 => l_array_source_56(Idx)
67722  , p_source_65 => l_array_source_65(Idx)
67723  , p_source_66 => l_array_source_66(Idx)
67724  );
67725 If(l_balance_type_code = 'A') THEN
67726   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67727 END IF;
67728 
67732 --
67729 --
67730 
67731 
67733 AcctLineType_77 (
67734  p_application_id  => p_application_id
67735  ,p_event_id     => l_event_id
67736  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67737  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67738  ,p_actual_flag => l_actual_flag
67739  ,p_balance_type_code => l_balance_type_code
67740  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67741  
67742  , p_source_1 => l_array_source_1(Idx)
67743  , p_source_11 => l_array_source_11(Idx)
67744  , p_source_15 => l_array_source_15(Idx)
67745  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67746  , p_source_16 => l_array_source_16(Idx)
67747  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67748  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67749  , p_source_18 => l_array_source_18(Idx)
67750  , p_source_18_meaning => l_array_source_18_meaning(Idx)
67751  , p_source_19 => l_array_source_19(Idx)
67752  , p_source_21 => l_array_source_21(Idx)
67753  , p_source_23 => l_array_source_23(Idx)
67754  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67755  , p_source_25 => l_array_source_25(Idx)
67756  , p_source_26 => l_array_source_26(Idx)
67757  , p_source_27 => l_array_source_27(Idx)
67758  , p_source_28 => l_array_source_28(Idx)
67759  , p_source_29 => l_array_source_29(Idx)
67760  , p_source_30 => l_array_source_30(Idx)
67761  , p_source_31 => l_array_source_31(Idx)
67762  , p_source_32 => l_array_source_32(Idx)
67763  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67764  , p_source_34 => l_array_source_34(Idx)
67765  , p_source_35 => l_array_source_35(Idx)
67766  , p_source_36 => l_array_source_36(Idx)
67767  , p_source_37 => l_array_source_37(Idx)
67768  , p_source_38 => l_array_source_38(Idx)
67769  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67770  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67771  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67772  , p_source_43 => l_array_source_43(Idx)
67773  , p_source_44 => l_array_source_44(Idx)
67774  , p_source_45 => l_array_source_45(Idx)
67775  , p_source_46 => l_array_source_46(Idx)
67776  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67777  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67778  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67779  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67780  , p_source_50 => l_array_source_50(Idx)
67781  , p_source_51 => l_array_source_51(Idx)
67782  , p_source_52 => l_array_source_52(Idx)
67783  , p_source_53 => l_array_source_53(Idx)
67784  , p_source_54 => l_array_source_54(Idx)
67785  , p_source_55 => l_array_source_55(Idx)
67786  , p_source_56 => l_array_source_56(Idx)
67787  , p_source_81 => l_array_source_81(Idx)
67788  , p_source_82 => l_array_source_82(Idx)
67789  );
67790 If(l_balance_type_code = 'A') THEN
67791   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67792 END IF;
67793 
67794 --
67795 
67796 
67797 --
67798 AcctLineType_81 (
67799  p_application_id  => p_application_id
67800  ,p_event_id     => l_event_id
67801  ,p_calculate_acctd_flag => l_calculate_acctd_flag
67802  ,p_calculate_g_l_flag => l_calculate_g_l_flag
67803  ,p_actual_flag => l_actual_flag
67804  ,p_balance_type_code => l_balance_type_code
67805  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67806  
67807  , p_source_1 => l_array_source_1(Idx)
67808  , p_source_11 => l_array_source_11(Idx)
67809  , p_source_15 => l_array_source_15(Idx)
67810  , p_source_15_meaning => l_array_source_15_meaning(Idx)
67811  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
67812  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
67813  , p_source_19 => l_array_source_19(Idx)
67814  , p_source_21 => l_array_source_21(Idx)
67815  , p_source_23 => l_array_source_23(Idx)
67816  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
67817  , p_source_25 => l_array_source_25(Idx)
67818  , p_source_26 => l_array_source_26(Idx)
67819  , p_source_27 => l_array_source_27(Idx)
67820  , p_source_28 => l_array_source_28(Idx)
67821  , p_source_29 => l_array_source_29(Idx)
67822  , p_source_30 => l_array_source_30(Idx)
67823  , p_source_31 => l_array_source_31(Idx)
67824  , p_source_32 => l_array_source_32(Idx)
67825  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
67826  , p_source_34 => l_array_source_34(Idx)
67827  , p_source_35 => l_array_source_35(Idx)
67828  , p_source_36 => l_array_source_36(Idx)
67829  , p_source_37 => l_array_source_37(Idx)
67830  , p_source_38 => l_array_source_38(Idx)
67831  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
67832  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
67833  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
67834  , p_source_43 => l_array_source_43(Idx)
67835  , p_source_44 => l_array_source_44(Idx)
67836  , p_source_45 => l_array_source_45(Idx)
67837  , p_source_46 => l_array_source_46(Idx)
67838  , p_source_46_meaning => l_array_source_46_meaning(Idx)
67839  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
67840  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
67841  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
67842  , p_source_50 => l_array_source_50(Idx)
67843  , p_source_51 => l_array_source_51(Idx)
67844  , p_source_52 => l_array_source_52(Idx)
67848  , p_source_56 => l_array_source_56(Idx)
67845  , p_source_53 => l_array_source_53(Idx)
67846  , p_source_54 => l_array_source_54(Idx)
67847  , p_source_55 => l_array_source_55(Idx)
67849  , p_source_65 => l_array_source_65(Idx)
67850  , p_source_66 => l_array_source_66(Idx)
67851  );
67852 If(l_balance_type_code = 'A') THEN
67853   l_actual_gain_loss_ref := l_gain_or_loss_ref;
67854 END IF;
67855 
67856 --
67857 
67858       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
67859       -- or secondary ledger that has different currency with primary
67860       -- or alc that is calculated by sla
67861       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67862             (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'))
67863 
67864 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
67865 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
67866           AND (l_actual_flag = 'A')) THEN
67867         XLA_AE_LINES_PKG.CreateGainOrLossLines(
67868           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
67869          ,p_application_id   => p_application_id
67870          ,p_amb_context_code => 'DEFAULT'
67871          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
67872          ,p_event_class_code => C_EVENT_CLASS_CODE
67873          ,p_event_type_code  => C_EVENT_TYPE_CODE
67874          
67875          ,p_gain_ccid        => -1
67876          ,p_loss_ccid        => -1
67877 
67878          ,p_actual_flag      => l_actual_flag
67879          ,p_enc_flag         => null
67880          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
67881          ,p_enc_g_l_ref      => null
67882          );
67883       END IF;
67884    END IF;
67885 END IF;
67886 
67887    ELSE
67888       --
67889       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67890       --
67891       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67892          trace
67893             (p_msg      => 'Trancaction revesal option is Y'
67894             ,p_level    => C_LEVEL_STATEMENT
67895             ,p_module   => l_log_module);
67896       END IF;
67897    END IF;
67898 
67899 END LOOP;
67900 l_result := XLA_AE_LINES_PKG.InsertLines ;
67901 end loop;
67902 close line_cur;
67903 
67904 
67905 --
67906 -- insert headers into xla_ae_headers_gt table
67907 --
67908 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
67909 
67910 -- insert into errors table here.
67911 
67912 END LOOP;
67913 
67914 --
67915 -- 4865292
67916 --
67917 -- Compare g_hdr_extract_count with event count in
67918 -- CreateHeadersAndLines.
67919 --
67920 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
67921 
67922 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67923    trace (p_msg     => '# rows extracted from header extract objects '
67924                     || ' (running total): '
67925                     || g_hdr_extract_count
67926          ,p_level   => C_LEVEL_STATEMENT
67927          ,p_module  => l_log_module);
67928 END IF;
67929 
67930 CLOSE header_cur;
67931 --
67932 
67933 --
67934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67935    trace
67936       (p_msg      => 'END of EventClass_103'
67937       ,p_level    => C_LEVEL_PROCEDURE
67938       ,p_module   => l_log_module);
67939 END IF;
67940 --
67941 RETURN l_result;
67942 EXCEPTION
67943 WHEN xla_exceptions_pkg.application_exception THEN
67944    
67945 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67946 
67947    
67948 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
67949 
67950    RAISE;
67951 
67952 WHEN NO_DATA_FOUND THEN
67953 
67954 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67955 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
67956 
67957 FOR header_record IN header_cur
67958 LOOP
67959     l_array_header_events(header_record.event_id) := header_record.event_id;
67960 END LOOP;
67961 
67962 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
67963 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
67964 
67965 fnd_file.put_line(fnd_file.LOG, '                    ');
67966 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
67967 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
67968 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
67969 
67970 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
67971 LOOP
67972 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
67973 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
67974         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
67975 	END IF;
67976 END LOOP;
67977 
67978 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
67979 fnd_file.put_line(fnd_file.LOG, '                    ');
67980 
67981 
67982 xla_exceptions_pkg.raise_message
67986 WHEN OTHERS THEN
67983       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_103');
67984 
67985 
67987    xla_exceptions_pkg.raise_message
67988       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_103');
67989 END EventClass_103;
67990 --
67991 
67992 ---------------------------------------
67993 --
67994 -- PRIVATE PROCEDURE
67995 --         insert_sources_104
67996 --
67997 ----------------------------------------
67998 --
67999 PROCEDURE insert_sources_104(
68000                                 p_target_ledger_id       IN NUMBER
68001                               , p_language               IN VARCHAR2
68002                               , p_sla_ledger_id          IN NUMBER
68003                               , p_pad_start_date         IN DATE
68004                               , p_pad_end_date           IN DATE
68005                          )
68006 IS
68007 
68008 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
68009 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
68010 p_apps_owner                   VARCHAR2(30);
68011 l_log_module                   VARCHAR2(240);
68012 BEGIN
68013 IF g_log_enabled THEN
68014       l_log_module := C_DEFAULT_MODULE||'.insert_sources_104';
68015 END IF;
68016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68017 
68018       trace
68019          (p_msg      => 'BEGIN of insert_sources_104'
68020          ,p_level    => C_LEVEL_PROCEDURE
68021          ,p_module   => l_log_module);
68022 
68023 END IF;
68024 
68025 -- select APPS owner
68026 SELECT oracle_username
68027   INTO p_apps_owner
68028   FROM fnd_oracle_userid
68029  WHERE read_only_flag = 'U'
68030 ;
68031 
68032 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68033       trace
68034          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
68035                         ' - p_language = '||p_language||
68036                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
68037                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
68038                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
68039                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
68040          ,p_level    => C_LEVEL_STATEMENT
68041          ,p_module   => l_log_module);
68042 END IF;
68043 
68044 
68045 --
68046 INSERT INTO xla_diag_sources --hdr2
68047 (
68048         event_id
68049       , ledger_id
68050       , sla_ledger_id
68051       , description_language
68052       , object_name
68053       , object_type_code
68054       , line_number
68055       , source_application_id
68056       , source_type_code
68057       , source_code
68058       , source_value
68059       , source_meaning
68060       , created_by
68061       , creation_date
68062       , last_update_date
68063       , last_updated_by
68064       , last_update_login
68065       , program_update_date
68066       , program_application_id
68067       , program_id
68068       , request_id
68069 )
68070 SELECT
68071         event_id
68072       , p_target_ledger_id
68073       , p_sla_ledger_id
68074       , p_language
68075       , object_name
68076       , object_type_code
68077       , line_number
68078       , source_application_id
68079       , source_type_code
68080       , source_code
68081       , SUBSTR(source_value ,1,1996)
68082       , SUBSTR(source_meaning ,1,200)
68083       , xla_environment_pkg.g_Usr_Id
68084       , TRUNC(SYSDATE)
68085       , TRUNC(SYSDATE)
68086       , xla_environment_pkg.g_Usr_Id
68087       , xla_environment_pkg.g_Login_Id
68088       , TRUNC(SYSDATE)
68089       , xla_environment_pkg.g_Prog_Appl_Id
68090       , xla_environment_pkg.g_Prog_Id
68091       , xla_environment_pkg.g_Req_Id
68092   FROM (
68093        SELECT xet.event_id                  event_id
68094             , 0                          line_number
68095             , CASE r
68096                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
68097                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
68098                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
68099                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
68100                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
68101                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68102                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68103                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68104                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68105                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68106                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68107                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68108                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68109                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68110                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68111                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
68112                 
68113                ELSE null
68114               END                           object_name
68115             , CASE r
68116                 WHEN 1 THEN 'HEADER' 
68117                 WHEN 2 THEN 'HEADER' 
68118                 WHEN 3 THEN 'HEADER' 
68119                 WHEN 4 THEN 'HEADER' 
68120                 WHEN 5 THEN 'HEADER' 
68121                 WHEN 6 THEN 'HEADER' 
68122                 WHEN 7 THEN 'HEADER' 
68123                 WHEN 8 THEN 'HEADER' 
68124                 WHEN 9 THEN 'HEADER' 
68128                 WHEN 13 THEN 'HEADER' 
68125                 WHEN 10 THEN 'HEADER' 
68126                 WHEN 11 THEN 'HEADER' 
68127                 WHEN 12 THEN 'HEADER' 
68129                 WHEN 14 THEN 'HEADER' 
68130                 WHEN 15 THEN 'HEADER' 
68131                 WHEN 16 THEN 'HEADER' 
68132                 
68133                 ELSE null
68134               END                           object_type_code
68135             , CASE r
68136                 WHEN 1 THEN '200' 
68137                 WHEN 2 THEN '200' 
68138                 WHEN 3 THEN '200' 
68139                 WHEN 4 THEN '200' 
68140                 WHEN 5 THEN '200' 
68141                 WHEN 6 THEN '200' 
68142                 WHEN 7 THEN '200' 
68143                 WHEN 8 THEN '200' 
68144                 WHEN 9 THEN '200' 
68145                 WHEN 10 THEN '200' 
68146                 WHEN 11 THEN '200' 
68147                 WHEN 12 THEN '200' 
68148                 WHEN 13 THEN '200' 
68149                 WHEN 14 THEN '200' 
68150                 WHEN 15 THEN '200' 
68151                 WHEN 16 THEN '200' 
68152                 
68153                 ELSE null
68154               END                           source_application_id
68155             , 'S'             source_type_code
68156             , CASE r
68157                 WHEN 1 THEN 'ASP_RATE_VAR_GAIN_CCID' 
68158                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
68159                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
68160                 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG' 
68161                 WHEN 5 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
68162                 WHEN 6 THEN 'AI_INVOICE_ID' 
68163                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
68164                 WHEN 8 THEN 'INV_EXCHANGE_DATE' 
68165                 WHEN 9 THEN 'INV_EXCHANGE_RATE' 
68166                 WHEN 10 THEN 'INV_EXCHANGE_RATE_TYPE' 
68167                 WHEN 11 THEN 'AI_VENDOR_ID' 
68168                 WHEN 12 THEN 'AI_VENDOR_SITE_ID' 
68169                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
68170                 WHEN 14 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
68171                 WHEN 15 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
68172                 WHEN 16 THEN 'INV_DOC_SEQUENCE_VALUE' 
68173                 
68174                 ELSE null
68175               END                           source_code
68176             , CASE r
68177                 WHEN 1 THEN TO_CHAR(h3.ASP_RATE_VAR_GAIN_CCID)
68178                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
68179                 WHEN 3 THEN TO_CHAR(h3.ASP_RATE_VAR_LOSS_CCID)
68180                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
68181                 WHEN 5 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
68182                 WHEN 6 THEN TO_CHAR(h2.AI_INVOICE_ID)
68183                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
68184                 WHEN 8 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
68185                 WHEN 9 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
68186                 WHEN 10 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
68187                 WHEN 11 THEN TO_CHAR(h2.AI_VENDOR_ID)
68188                 WHEN 12 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
68189                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
68190                 WHEN 14 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
68191                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
68192                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
68193                 
68194                 ELSE null
68195               END                           source_value
68196             , CASE r
68197                 WHEN 2 THEN fvl7.meaning
68198                 WHEN 4 THEN fvl12.meaning
68199                 WHEN 5 THEN fvl17.meaning
68200                 
68201                 ELSE null
68202               END               source_meaning
68203          FROM xla_events_gt     xet  
68204       , AP_INVOICE_EXTRACT_HEADER_V  h2
68205       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
68206   , fnd_lookup_values    fvl7
68207   , fnd_lookup_values    fvl12
68208   , fnd_lookup_values    fvl17
68209              ,(select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
68210          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68211            AND xet.event_class_code = C_EVENT_CLASS_CODE
68212               AND h2.event_id = xet.event_id
68213  AND h3.asp_org_id= h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
68214   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
68215   AND fvl7.view_application_id(+) = 200
68216   AND fvl7.language(+)            = USERENV('LANG')
68217      AND fvl12.lookup_type(+)         = 'YES_NO'
68218   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
68219   AND fvl12.view_application_id(+) = 0
68220   AND fvl12.language(+)            = USERENV('LANG')
68221      AND fvl17.lookup_type(+)         = 'YES_NO'
68222   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
68223   AND fvl17.view_application_id(+) = 0
68224   AND fvl17.language(+)            = USERENV('LANG')
68225   
68226 )
68227 ;
68228 --
68229 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68230 
68231       trace
68232          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
68233          ,p_level    => C_LEVEL_STATEMENT
68234          ,p_module   => l_log_module);
68235 
68236 END IF;
68237 --
68238 
68239 
68240 
68241 --
68242 INSERT INTO xla_diag_sources  --line2
68243 (
68244         event_id
68248       , object_name
68245       , ledger_id
68246       , sla_ledger_id
68247       , description_language
68249       , object_type_code
68250       , line_number
68251       , source_application_id
68252       , source_type_code
68253       , source_code
68254       , source_value
68255       , source_meaning
68256       , created_by
68257       , creation_date
68258       , last_update_date
68259       , last_updated_by
68260       , last_update_login
68261       , program_update_date
68262       , program_application_id
68263       , program_id
68264       , request_id
68265 )
68266 SELECT  event_id
68267       , p_target_ledger_id
68268       , p_sla_ledger_id
68269       , p_language
68270       , object_name
68271       , object_type_code
68272       , line_number
68273       , source_application_id
68274       , source_type_code
68275       , source_code
68276       , SUBSTR(source_value,1,1996)
68277       , SUBSTR(source_meaning ,1,200)
68278       , xla_environment_pkg.g_Usr_Id
68279       , TRUNC(SYSDATE)
68280       , TRUNC(SYSDATE)
68281       , xla_environment_pkg.g_Usr_Id
68282       , xla_environment_pkg.g_Login_Id
68283       , TRUNC(SYSDATE)
68284       , xla_environment_pkg.g_Prog_Appl_Id
68285       , xla_environment_pkg.g_Prog_Id
68286       , xla_environment_pkg.g_Req_Id
68287   FROM (
68288        SELECT xet.event_id                  event_id
68289             , l1.line_number                 line_number
68290             , CASE r
68291                WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68292                 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68293                 WHEN 3 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68294                 WHEN 4 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68295                 WHEN 5 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68296                 WHEN 6 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68297                 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68298                 WHEN 8 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68299                 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68300                 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68301                 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68302                 WHEN 12 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68303                 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68304                 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68305                 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68306                 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68307                 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68308                 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68309                 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68310                 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68311                 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68312                 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68313                 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68314                 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68315                 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68316                 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68317                 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68318                 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68319                 WHEN 29 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68320                 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68321                 WHEN 31 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
68322                 WHEN 32 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
68323                 WHEN 33 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68324                 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68325                 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68326                 WHEN 36 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68327                 WHEN 37 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68328                 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68329                 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68330                 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68331                 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68332                 WHEN 42 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68333                 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68334                 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68335                 WHEN 45 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68336                 WHEN 46 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
68337                 
68338                ELSE null
68339               END                           object_name
68340             , CASE r
68341                 WHEN 1 THEN 'LINE' 
68342                 WHEN 2 THEN 'LINE' 
68343                 WHEN 3 THEN 'LINE' 
68344                 WHEN 4 THEN 'LINE' 
68345                 WHEN 5 THEN 'LINE' 
68346                 WHEN 6 THEN 'LINE' 
68347                 WHEN 7 THEN 'LINE' 
68348                 WHEN 8 THEN 'LINE' 
68349                 WHEN 9 THEN 'LINE' 
68350                 WHEN 10 THEN 'LINE' 
68351                 WHEN 11 THEN 'LINE' 
68352                 WHEN 12 THEN 'LINE' 
68353                 WHEN 13 THEN 'LINE' 
68354                 WHEN 14 THEN 'LINE' 
68355                 WHEN 15 THEN 'LINE' 
68356                 WHEN 16 THEN 'LINE' 
68357                 WHEN 17 THEN 'LINE' 
68358                 WHEN 18 THEN 'LINE' 
68359                 WHEN 19 THEN 'LINE' 
68360                 WHEN 20 THEN 'LINE' 
68361                 WHEN 21 THEN 'LINE' 
68365                 WHEN 25 THEN 'LINE' 
68362                 WHEN 22 THEN 'LINE' 
68363                 WHEN 23 THEN 'LINE' 
68364                 WHEN 24 THEN 'LINE' 
68366                 WHEN 26 THEN 'LINE' 
68367                 WHEN 27 THEN 'LINE' 
68368                 WHEN 28 THEN 'LINE' 
68369                 WHEN 29 THEN 'LINE' 
68370                 WHEN 30 THEN 'LINE' 
68371                 WHEN 31 THEN 'LINE' 
68372                 WHEN 32 THEN 'LINE' 
68373                 WHEN 33 THEN 'LINE' 
68374                 WHEN 34 THEN 'LINE' 
68375                 WHEN 35 THEN 'LINE' 
68376                 WHEN 36 THEN 'LINE' 
68377                 WHEN 37 THEN 'LINE' 
68378                 WHEN 38 THEN 'LINE' 
68379                 WHEN 39 THEN 'LINE' 
68380                 WHEN 40 THEN 'LINE' 
68381                 WHEN 41 THEN 'LINE' 
68382                 WHEN 42 THEN 'LINE' 
68383                 WHEN 43 THEN 'LINE' 
68384                 WHEN 44 THEN 'LINE' 
68385                 WHEN 45 THEN 'LINE' 
68386                 WHEN 46 THEN 'LINE' 
68387                 
68388                 ELSE null
68389               END                           object_type_code
68390             , CASE r
68391                 WHEN 1 THEN '200' 
68392                 WHEN 2 THEN '200' 
68393                 WHEN 3 THEN '200' 
68394                 WHEN 4 THEN '200' 
68395                 WHEN 5 THEN '200' 
68396                 WHEN 6 THEN '200' 
68397                 WHEN 7 THEN '200' 
68398                 WHEN 8 THEN '200' 
68399                 WHEN 9 THEN '200' 
68400                 WHEN 10 THEN '200' 
68401                 WHEN 11 THEN '200' 
68402                 WHEN 12 THEN '200' 
68403                 WHEN 13 THEN '200' 
68404                 WHEN 14 THEN '200' 
68405                 WHEN 15 THEN '200' 
68406                 WHEN 16 THEN '200' 
68407                 WHEN 17 THEN '200' 
68408                 WHEN 18 THEN '200' 
68409                 WHEN 19 THEN '200' 
68410                 WHEN 20 THEN '200' 
68411                 WHEN 21 THEN '200' 
68412                 WHEN 22 THEN '200' 
68413                 WHEN 23 THEN '200' 
68414                 WHEN 24 THEN '200' 
68415                 WHEN 25 THEN '200' 
68416                 WHEN 26 THEN '200' 
68417                 WHEN 27 THEN '200' 
68418                 WHEN 28 THEN '200' 
68419                 WHEN 29 THEN '200' 
68420                 WHEN 30 THEN '200' 
68421                 WHEN 31 THEN '200' 
68422                 WHEN 32 THEN '200' 
68423                 WHEN 33 THEN '200' 
68424                 WHEN 34 THEN '200' 
68425                 WHEN 35 THEN '200' 
68426                 WHEN 36 THEN '200' 
68427                 WHEN 37 THEN '200' 
68428                 WHEN 38 THEN '200' 
68429                 WHEN 39 THEN '200' 
68430                 WHEN 40 THEN '200' 
68431                 WHEN 41 THEN '200' 
68432                 WHEN 42 THEN '200' 
68433                 WHEN 43 THEN '200' 
68434                 WHEN 44 THEN '200' 
68435                 WHEN 45 THEN '200' 
68436                 WHEN 46 THEN '200' 
68437                 
68438                 ELSE null
68439               END                           source_application_id
68440             , 'S'             source_type_code
68441             , CASE r
68442                 WHEN 1 THEN 'AID_DESCRIPTION' 
68443                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
68444                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
68445                 WHEN 4 THEN 'AID_DIST_CCID' 
68446                 WHEN 5 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
68447                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
68448                 WHEN 7 THEN 'AID_AMOUNT_VARIANCE' 
68449                 WHEN 8 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
68450                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
68451                 WHEN 10 THEN 'DISTRIBUTION_LINK_TYPE' 
68452                 WHEN 11 THEN 'ALLOC_TO_MAIN_DIST_ID' 
68453                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
68454                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
68455                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
68456                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
68457                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
68458                 WHEN 17 THEN 'AID_INVOICE_DIST_ID' 
68459                 WHEN 18 THEN 'UPG_ENC_CR_CCID' 
68460                 WHEN 19 THEN 'UPG_ENC_CR_AMT' 
68461                 WHEN 20 THEN 'UPG_ENC_CR_BASE_AMT' 
68462                 WHEN 21 THEN 'UPG_ENC_DR_CCID' 
68463                 WHEN 22 THEN 'UPG_ENC_DR_AMT' 
68464                 WHEN 23 THEN 'UPG_ENC_DR_BASE_AMT' 
68465                 WHEN 24 THEN 'UPG_AP_ENCUM_OPTION' 
68466                 WHEN 25 THEN 'AID_BASE_AMOUNT_VARIANCE' 
68467                 WHEN 26 THEN 'DEFERRED_END_DATE' 
68468                 WHEN 27 THEN 'DEFERRED_OPTION' 
68469                 WHEN 28 THEN 'DEFERRED_START_DATE' 
68470                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
68471                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
68472                 WHEN 31 THEN 'TAX_LINE_ID' 
68473                 WHEN 32 THEN 'REC_NREC_TAX_DIST_ID' 
68474                 WHEN 33 THEN 'SUMMARY_TAX_LINE_ID' 
68475                 WHEN 34 THEN 'UPG_CR_ENC_TYPE_ID' 
68476                 WHEN 35 THEN 'UPG_DR_ENC_TYPE_ID' 
68477                 WHEN 36 THEN 'PO_DISTRIBUTION_ID' 
68478                 WHEN 37 THEN 'SELF_ASSESSED_TAX_FLAG' 
68482                 WHEN 41 THEN 'BUS_FLOW_PO_DIST_ID' 
68479                 WHEN 38 THEN 'BUS_FLOW_PO_APP_ID' 
68480                 WHEN 39 THEN 'BUS_FLOW_PO_DIST_TYPE' 
68481                 WHEN 40 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
68483                 WHEN 42 THEN 'BUS_FLOW_PO_DOC_ID' 
68484                 WHEN 43 THEN 'ENCUMBRANCE_AMOUNT' 
68485                 WHEN 44 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
68486                 WHEN 45 THEN 'AID_QUANTITY_VARIANCE' 
68487                 WHEN 46 THEN 'AID_BASE_QUANTITY_VARIANCE' 
68488                 
68489                 ELSE null
68490               END                           source_code
68491             , CASE r
68492                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
68493                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
68494                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
68495                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
68496                 WHEN 5 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
68497                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
68498                 WHEN 7 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
68499                 WHEN 8 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
68500                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
68501                 WHEN 10 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
68502                 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
68503                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
68504                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
68505                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
68506                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
68507                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
68508                 WHEN 17 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
68509                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
68510                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
68511                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
68512                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
68513                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
68514                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
68515                 WHEN 24 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
68516                 WHEN 25 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
68517                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
68518                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
68519                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
68520                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
68521                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
68522                 WHEN 31 THEN TO_CHAR(l4.TAX_LINE_ID)
68523                 WHEN 32 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
68524                 WHEN 33 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
68525                 WHEN 34 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
68526                 WHEN 35 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
68527                 WHEN 36 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
68528                 WHEN 37 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
68529                 WHEN 38 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
68530                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
68531                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
68532                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
68533                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
68534                 WHEN 43 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
68535                 WHEN 44 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
68536                 WHEN 45 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
68537                 WHEN 46 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
68538                 
68539                 ELSE null
68540               END                           source_value
68541             , CASE r
68542                 WHEN 3 THEN fvl9.meaning
68543                 WHEN 6 THEN fvl15.meaning
68544                 WHEN 8 THEN fvl18.meaning
68545                 WHEN 29 THEN fvl46.meaning
68546                 WHEN 37 THEN fvl59.meaning
68547                 
68548                 ELSE null
68549               END               source_meaning
68550          FROM  xla_events_gt     xet  
68551         , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
68552         , ZX_AP_DEF_TAX_EXTRACT_V  l4
68553         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
68554   , fnd_lookup_values    fvl9
68555   , fnd_lookup_values    fvl15
68556   , fnd_lookup_values    fvl18
68557   , fnd_lookup_values    fvl46
68558   , fnd_lookup_values    fvl59
68559             , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
68560         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68561           AND xet.event_class_code = C_EVENT_CLASS_CODE
68562             AND l1.event_id          = xet.event_id
68563  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
68564   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
68565   AND fvl9.view_application_id(+) = 201
68566   AND fvl9.language(+)            = USERENV('LANG')
68567      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
68568   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
68569   AND fvl15.view_application_id(+) = 200
68570   AND fvl15.language(+)            = USERENV('LANG')
68571      AND fvl18.lookup_type(+)         = 'YES_NO'
68572   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
68573   AND fvl18.view_application_id(+) = 0
68574   AND fvl18.language(+)            = USERENV('LANG')
68578   AND fvl46.language(+)            = USERENV('LANG')
68575      AND fvl46.lookup_type(+)         = 'YES_NO'
68576   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
68577   AND fvl46.view_application_id(+) = 0
68579      AND fvl59.lookup_type(+)         = 'YES_NO'
68580   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
68581   AND fvl59.view_application_id(+) = 0
68582   AND fvl59.language(+)            = USERENV('LANG')
68583   
68584 )
68585 ;
68586 --
68587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68588 
68589       trace
68590          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
68591          ,p_level    => C_LEVEL_STATEMENT
68592          ,p_module   => l_log_module);
68593 
68594 END IF;
68595 
68596 
68597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68598       trace
68599          (p_msg      => 'END of insert_sources_104'
68600          ,p_level    => C_LEVEL_PROCEDURE
68601          ,p_module   => l_log_module);
68602 END IF;
68603 EXCEPTION
68604   WHEN xla_exceptions_pkg.application_exception THEN
68605       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68606             trace
68607                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68608                ,p_level    => C_LEVEL_EXCEPTION
68609                ,p_module   => l_log_module);
68610       END IF;
68611       RAISE;
68612   WHEN OTHERS THEN
68613       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68614             trace
68615                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68616                ,p_level    => C_LEVEL_EXCEPTION
68617                ,p_module   => l_log_module);
68618        END IF;
68619        xla_exceptions_pkg.raise_message
68620            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_104');
68621 END insert_sources_104;
68622 --
68623 
68624 ---------------------------------------
68625 --
68626 -- PRIVATE FUNCTION
68627 --         EventClass_104
68628 --
68629 ----------------------------------------
68630 --
68631 FUNCTION EventClass_104
68632        (p_application_id         IN NUMBER
68633        ,p_base_ledger_id         IN NUMBER
68634        ,p_target_ledger_id       IN NUMBER
68635        ,p_language               IN VARCHAR2
68636        ,p_currency_code          IN VARCHAR2
68637        ,p_sla_ledger_id          IN NUMBER
68638        ,p_pad_start_date         IN DATE
68639        ,p_pad_end_date           IN DATE
68640        ,p_primary_ledger_id      IN NUMBER)
68641 RETURN BOOLEAN IS
68642 --
68643 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
68644 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
68645 
68646 l_calculate_acctd_flag   VARCHAR2(1) :='N';
68647 l_calculate_g_l_flag     VARCHAR2(1) :='N';
68648 --
68649 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68650 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68651 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68652 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68653 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68654 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68655 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68656 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68657 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68658 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68659 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68660 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68661 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68662 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68663 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68664 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68665 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68666 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68667 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68668 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68669 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68670 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68671 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
68672 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68673 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
68674 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
68675 
68676 l_event_id                             NUMBER;
68677 l_previous_event_id                    NUMBER;
68678 l_first_event_id                       NUMBER;
68679 l_last_event_id                        NUMBER;
68680 
68681 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
68682 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
68683 --
68684 --
68685 l_result                    BOOLEAN := TRUE;
68686 l_rows                      NUMBER  := 1000;
68687 l_event_type_name           VARCHAR2(80) := 'All';
68688 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
68689 l_description               VARCHAR2(4000);
68693 l_log_module                VARCHAR2(240);
68690 l_transaction_reversal      NUMBER;
68691 l_ae_header_id              NUMBER;
68692 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
68694 --
68695 l_acct_reversal_source      VARCHAR2(30);
68696 l_trx_reversal_source       VARCHAR2(30);
68697 
68698 l_continue_with_lines       BOOLEAN := TRUE;
68699 --
68700 l_acc_rev_gl_date_source    DATE;                      -- 4262811
68701 --
68702 type t_array_event_id is table of number index by binary_integer;
68703 
68704 l_rec_array_event                    t_rec_array_event;
68705 l_null_rec_array_event               t_rec_array_event;
68706 l_array_ae_header_id                 xla_number_array_type;
68707 l_actual_flag                        VARCHAR2(1) := NULL;
68708 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
68709 l_balance_type_code                  VARCHAR2(1) :=NULL;
68710 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
68711 
68712 --
68713 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
68714 --
68715 
68716 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
68717 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
68718 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
68719 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
68720 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
68721 TYPE t_array_source_24 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
68722 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
68723 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
68724 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
68725 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68726 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
68727 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
68728 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
68729 TYPE t_array_source_122 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
68730 TYPE t_array_source_123 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
68731 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
68732 
68733 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
68734 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
68735 TYPE t_array_source_9 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
68736 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
68737 TYPE t_array_source_13 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
68738 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
68739 TYPE t_array_source_16 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
68740 TYPE t_array_source_18 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
68741 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
68742 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
68743 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
68744 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
68745 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
68746 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
68747 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
68748 TYPE t_array_source_29 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
68749 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
68750 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
68751 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
68752 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
68753 TYPE t_array_source_35 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
68754 TYPE t_array_source_36 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
68755 TYPE t_array_source_37 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
68759 TYPE t_array_source_44 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
68756 TYPE t_array_source_38 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
68757 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
68758 TYPE t_array_source_43 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
68760 TYPE t_array_source_45 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
68761 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
68762 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
68763 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
68764 TYPE t_array_source_53 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
68765 TYPE t_array_source_54 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
68766 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
68767 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
68768 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
68769 TYPE t_array_source_59 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
68770 TYPE t_array_source_60 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
68771 TYPE t_array_source_61 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
68772 TYPE t_array_source_62 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
68773 TYPE t_array_source_63 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
68774 TYPE t_array_source_64 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
68775 TYPE t_array_source_65 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
68776 TYPE t_array_source_66 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
68777 TYPE t_array_source_81 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
68778 TYPE t_array_source_82 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
68779 
68780 l_array_source_6              t_array_source_6;
68781 l_array_source_7              t_array_source_7;
68782 l_array_source_7_meaning      t_array_lookup_meaning;
68783 l_array_source_10              t_array_source_10;
68784 l_array_source_12              t_array_source_12;
68785 l_array_source_12_meaning      t_array_lookup_meaning;
68786 l_array_source_17              t_array_source_17;
68787 l_array_source_17_meaning      t_array_lookup_meaning;
68788 l_array_source_24              t_array_source_24;
68789 l_array_source_33              t_array_source_33;
68790 l_array_source_39              t_array_source_39;
68791 l_array_source_40              t_array_source_40;
68792 l_array_source_41              t_array_source_41;
68793 l_array_source_47              t_array_source_47;
68794 l_array_source_48              t_array_source_48;
68795 l_array_source_49              t_array_source_49;
68796 l_array_source_122              t_array_source_122;
68797 l_array_source_123              t_array_source_123;
68798 l_array_source_124              t_array_source_124;
68799 
68800 l_array_source_1      t_array_source_1;
68801 l_array_source_8      t_array_source_8;
68802 l_array_source_9      t_array_source_9;
68803 l_array_source_9_meaning      t_array_lookup_meaning;
68804 l_array_source_11      t_array_source_11;
68805 l_array_source_13      t_array_source_13;
68806 l_array_source_15      t_array_source_15;
68807 l_array_source_15_meaning      t_array_lookup_meaning;
68808 l_array_source_16      t_array_source_16;
68809 l_array_source_18      t_array_source_18;
68810 l_array_source_18_meaning      t_array_lookup_meaning;
68811 l_array_source_19      t_array_source_19;
68812 l_array_source_21      t_array_source_21;
68813 l_array_source_23      t_array_source_23;
68814 l_array_source_25      t_array_source_25;
68815 l_array_source_26      t_array_source_26;
68816 l_array_source_27      t_array_source_27;
68817 l_array_source_28      t_array_source_28;
68818 l_array_source_29      t_array_source_29;
68819 l_array_source_30      t_array_source_30;
68820 l_array_source_31      t_array_source_31;
68821 l_array_source_32      t_array_source_32;
68822 l_array_source_34      t_array_source_34;
68823 l_array_source_35      t_array_source_35;
68824 l_array_source_36      t_array_source_36;
68825 l_array_source_37      t_array_source_37;
68826 l_array_source_38      t_array_source_38;
68827 l_array_source_42      t_array_source_42;
68828 l_array_source_43      t_array_source_43;
68829 l_array_source_44      t_array_source_44;
68830 l_array_source_45      t_array_source_45;
68831 l_array_source_46      t_array_source_46;
68832 l_array_source_46_meaning      t_array_lookup_meaning;
68833 l_array_source_50      t_array_source_50;
68834 l_array_source_52      t_array_source_52;
68835 l_array_source_53      t_array_source_53;
68836 l_array_source_54      t_array_source_54;
68837 l_array_source_55      t_array_source_55;
68838 l_array_source_56      t_array_source_56;
68839 l_array_source_58      t_array_source_58;
68840 l_array_source_59      t_array_source_59;
68841 l_array_source_59_meaning      t_array_lookup_meaning;
68842 l_array_source_60      t_array_source_60;
68843 l_array_source_61      t_array_source_61;
68847 l_array_source_65      t_array_source_65;
68844 l_array_source_62      t_array_source_62;
68845 l_array_source_63      t_array_source_63;
68846 l_array_source_64      t_array_source_64;
68848 l_array_source_66      t_array_source_66;
68849 l_array_source_81      t_array_source_81;
68850 l_array_source_82      t_array_source_82;
68851 
68852 --
68853 CURSOR header_cur
68854 IS
68855 SELECT /*+ leading(xet) cardinality(xet,1) */
68856 -- Event Class Code: DEBIT MEMOS
68857     xet.entity_id
68858    ,xet.legal_entity_id
68859    ,xet.entity_code
68860    ,xet.transaction_number
68861    ,xet.event_id
68862    ,xet.event_class_code
68863    ,xet.event_type_code
68864    ,xet.event_number
68865    ,xet.event_date
68866    ,xet.transaction_date
68867    ,xet.reference_num_1
68868    ,xet.reference_num_2
68869    ,xet.reference_num_3
68870    ,xet.reference_num_4
68871    ,xet.reference_char_1
68872    ,xet.reference_char_2
68873    ,xet.reference_char_3
68874    ,xet.reference_char_4
68875    ,xet.reference_date_1
68876    ,xet.reference_date_2
68877    ,xet.reference_date_3
68878    ,xet.reference_date_4
68879    ,xet.event_created_by
68880    ,xet.budgetary_control_flag 
68881   , h3.ASP_RATE_VAR_GAIN_CCID    source_6
68882   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_7
68883   , fvl7.meaning   source_7_meaning
68884   , h3.ASP_RATE_VAR_LOSS_CCID    source_10
68885   , h3.ASP_AUTO_OFFSET_FLAG    source_12
68886   , fvl12.meaning   source_12_meaning
68887   , h3.FSP_PURCH_ENCUMBRANCE_FLAG    source_17
68888   , fvl17.meaning   source_17_meaning
68889   , h2.AI_INVOICE_ID    source_24
68890   , h2.AI_INVOICE_CURRENCY_CODE    source_33
68891   , h2.INV_EXCHANGE_DATE    source_39
68892   , h2.INV_EXCHANGE_RATE    source_40
68893   , h2.INV_EXCHANGE_RATE_TYPE    source_41
68894   , h2.AI_VENDOR_ID    source_47
68895   , h2.AI_VENDOR_SITE_ID    source_48
68896   , h2.THIRD_PARTY_TYPE    source_49
68897   , h2.INV_DOC_SEQUENCE_CATEGORY    source_122
68898   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_123
68899   , h2.INV_DOC_SEQUENCE_VALUE    source_124
68900   FROM xla_events_gt     xet 
68901   , AP_INVOICE_EXTRACT_HEADER_V  h2
68902   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
68903   , fnd_lookup_values    fvl7
68904   , fnd_lookup_values    fvl12
68905   , fnd_lookup_values    fvl17
68906  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
68907    and xet.event_class_code = C_EVENT_CLASS_CODE
68908    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
68909  AND h3.asp_org_id= h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
68910   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
68911   AND fvl7.view_application_id(+) = 200
68912   AND fvl7.language(+)            = USERENV('LANG')
68913      AND fvl12.lookup_type(+)         = 'YES_NO'
68914   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
68915   AND fvl12.view_application_id(+) = 0
68916   AND fvl12.language(+)            = USERENV('LANG')
68917      AND fvl17.lookup_type(+)         = 'YES_NO'
68918   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
68919   AND fvl17.view_application_id(+) = 0
68920   AND fvl17.language(+)            = USERENV('LANG')
68921   
68922  ORDER BY event_id
68923 ;
68924 
68925 
68926 --
68927 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
68928 IS
68929 SELECT  /*+ leading(xet) cardinality(xet,1) */
68930 -- Event Class Code: DEBIT MEMOS
68931     xet.entity_id
68932    ,xet.legal_entity_id
68933    ,xet.entity_code
68934    ,xet.transaction_number
68935    ,xet.event_id
68936    ,xet.event_class_code
68937    ,xet.event_type_code
68938    ,xet.event_number
68939    ,xet.event_date
68940    ,xet.transaction_date
68941    ,xet.reference_num_1
68942    ,xet.reference_num_2
68943    ,xet.reference_num_3
68944    ,xet.reference_num_4
68945    ,xet.reference_char_1
68946    ,xet.reference_char_2
68947    ,xet.reference_char_3
68948    ,xet.reference_char_4
68949    ,xet.reference_date_1
68950    ,xet.reference_date_2
68951    ,xet.reference_date_3
68952    ,xet.reference_date_4
68953    ,xet.event_created_by
68954    ,xet.budgetary_control_flag
68955  , l1.LINE_NUMBER  
68956   , l1.AID_DESCRIPTION    source_1
68957   , l1.INV_DIST_BASE_AMOUNT    source_8
68958   , l1.RELATED_INV_DIST_DEST_TYPE    source_9
68959   , fvl9.meaning   source_9_meaning
68960   , l1.AID_DIST_CCID    source_11
68961   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_13
68962   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_15
68963   , fvl15.meaning   source_15_meaning
68964   , l1.AID_AMOUNT_VARIANCE    source_16
68965   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_18
68966   , fvl18.meaning   source_18_meaning
68967   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_19
68968   , l1.DISTRIBUTION_LINK_TYPE    source_21
68969   , l1.ALLOC_TO_MAIN_DIST_ID    source_23
68970   , l1.BUS_FLOW_AP_APP_ID    source_25
68971   , l1.BUS_FLOW_INV_DIST_TYPE    source_26
68972   , l1.BUS_FLOW_INV_ENTITY_CODE    source_27
68973   , l1.BUS_FLOW_INV_DIST_ID    source_28
68974   , l1.BUS_FLOW_INV_ID    source_29
68975   , l1.AID_INVOICE_DIST_ID    source_30
68976   , l1.UPG_ENC_CR_CCID    source_31
68977   , l1.UPG_ENC_CR_AMT    source_32
68978   , l1.UPG_ENC_CR_BASE_AMT    source_34
68979   , l1.UPG_ENC_DR_CCID    source_35
68980   , l1.UPG_ENC_DR_AMT    source_36
68984   , l1.DEFERRED_END_DATE    source_43
68981   , l1.UPG_ENC_DR_BASE_AMT    source_37
68982   , l1.UPG_AP_ENCUM_OPTION    source_38
68983   , l1.AID_BASE_AMOUNT_VARIANCE    source_42
68985   , l1.DEFERRED_OPTION    source_44
68986   , l1.DEFERRED_START_DATE    source_45
68987   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_46
68988   , fvl46.meaning   source_46_meaning
68989   , l1.AID_PARENT_REVERSAL_ID    source_50
68990   , l4.TAX_LINE_ID    source_52
68991   , l5.REC_NREC_TAX_DIST_ID    source_53
68992   , l1.SUMMARY_TAX_LINE_ID    source_54
68993   , l1.UPG_CR_ENC_TYPE_ID    source_55
68994   , l1.UPG_DR_ENC_TYPE_ID    source_56
68995   , l1.PO_DISTRIBUTION_ID    source_58
68996   , l1.SELF_ASSESSED_TAX_FLAG    source_59
68997   , fvl59.meaning   source_59_meaning
68998   , l1.BUS_FLOW_PO_APP_ID    source_60
68999   , l1.BUS_FLOW_PO_DIST_TYPE    source_61
69000   , l1.BUS_FLOW_PO_ENTITY_CODE    source_62
69001   , l1.BUS_FLOW_PO_DIST_ID    source_63
69002   , l1.BUS_FLOW_PO_DOC_ID    source_64
69003   , l1.ENCUMBRANCE_AMOUNT    source_65
69004   , l1.ENCUMBRANCE_BASE_AMOUNT    source_66
69005   , l1.AID_QUANTITY_VARIANCE    source_81
69006   , l1.AID_BASE_QUANTITY_VARIANCE    source_82
69007   FROM xla_events_gt     xet 
69008   , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
69009   , ZX_AP_DEF_TAX_EXTRACT_V  l4
69010   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
69011   , fnd_lookup_values    fvl9
69012   , fnd_lookup_values    fvl15
69013   , fnd_lookup_values    fvl18
69014   , fnd_lookup_values    fvl46
69015   , fnd_lookup_values    fvl59
69016  WHERE xet.event_id between x_first_event_id and x_last_event_id
69017    and xet.event_date between p_pad_start_date and p_pad_end_date
69018    and xet.event_class_code = C_EVENT_CLASS_CODE
69019    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
69020  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
69021   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
69022   AND fvl9.view_application_id(+) = 201
69023   AND fvl9.language(+)            = USERENV('LANG')
69024      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
69025   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
69026   AND fvl15.view_application_id(+) = 200
69027   AND fvl15.language(+)            = USERENV('LANG')
69028      AND fvl18.lookup_type(+)         = 'YES_NO'
69029   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
69030   AND fvl18.view_application_id(+) = 0
69031   AND fvl18.language(+)            = USERENV('LANG')
69032      AND fvl46.lookup_type(+)         = 'YES_NO'
69033   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
69034   AND fvl46.view_application_id(+) = 0
69035   AND fvl46.language(+)            = USERENV('LANG')
69036      AND fvl59.lookup_type(+)         = 'YES_NO'
69037   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
69038   AND fvl59.view_application_id(+) = 0
69039   AND fvl59.language(+)            = USERENV('LANG')
69040   ;
69041 
69042 --
69043 BEGIN
69044 IF g_log_enabled THEN
69045    l_log_module := C_DEFAULT_MODULE||'.EventClass_104';
69046 END IF;
69047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69048    trace
69049       (p_msg      => 'BEGIN of EventClass_104'
69050       ,p_level    => C_LEVEL_PROCEDURE
69051       ,p_module   => l_log_module);
69052 END IF;
69053 
69054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69055    trace
69056       (p_msg      => 'p_application_id = '||p_application_id||
69057                      ' - p_base_ledger_id = '||p_base_ledger_id||
69058                      ' - p_target_ledger_id  = '||p_target_ledger_id||
69059                      ' - p_language = '||p_language||
69060                      ' - p_currency_code = '||p_currency_code||
69061                      ' - p_sla_ledger_id = '||p_sla_ledger_id
69062       ,p_level    => C_LEVEL_STATEMENT
69063       ,p_module   => l_log_module);
69064 END IF;
69065 --
69066 -- initialze arrays
69067 --
69068 g_array_event.DELETE;
69069 l_rec_array_event := l_null_rec_array_event;
69070 --
69071 --------------------------------------
69072 -- 4262811 Initialze MPA Line Number
69073 --------------------------------------
69074 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
69075 
69076 --
69077 
69078 --
69079 OPEN header_cur;
69080 --
69081 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69082    trace
69083    (p_msg      => 'SQL - FETCH header_cur'
69084    ,p_level    => C_LEVEL_STATEMENT
69085    ,p_module   => l_log_module);
69086 END IF;
69087 --
69088 LOOP
69089 FETCH header_cur BULK COLLECT INTO
69090         l_array_entity_id
69091       , l_array_legal_entity_id
69092       , l_array_entity_code
69093       , l_array_transaction_num
69094       , l_array_event_id
69095       , l_array_class_code
69096       , l_array_event_type
69097       , l_array_event_number
69098       , l_array_event_date
69099       , l_array_transaction_date
69100       , l_array_reference_num_1
69101       , l_array_reference_num_2
69102       , l_array_reference_num_3
69103       , l_array_reference_num_4
69104       , l_array_reference_char_1
69105       , l_array_reference_char_2
69106       , l_array_reference_char_3
69107       , l_array_reference_char_4
69108       , l_array_reference_date_1
69109       , l_array_reference_date_2
69113       , l_array_budgetary_control_flag 
69110       , l_array_reference_date_3
69111       , l_array_reference_date_4
69112       , l_array_event_created_by
69114       , l_array_source_6
69115       , l_array_source_7
69116       , l_array_source_7_meaning
69117       , l_array_source_10
69118       , l_array_source_12
69119       , l_array_source_12_meaning
69120       , l_array_source_17
69121       , l_array_source_17_meaning
69122       , l_array_source_24
69123       , l_array_source_33
69124       , l_array_source_39
69125       , l_array_source_40
69126       , l_array_source_41
69127       , l_array_source_47
69128       , l_array_source_48
69129       , l_array_source_49
69130       , l_array_source_122
69131       , l_array_source_123
69132       , l_array_source_124
69133       LIMIT l_rows;
69134 --
69135 IF (C_LEVEL_EVENT >= g_log_level) THEN
69136    trace
69137    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
69138    ,p_level    => C_LEVEL_EVENT
69139    ,p_module   => l_log_module);
69140 END IF;
69141 --
69142 EXIT WHEN l_array_entity_id.COUNT = 0;
69143 
69144 -- initialize arrays
69145 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
69146 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
69147 
69148 --
69149 -- Bug 4458708
69150 --
69151 XLA_AE_LINES_PKG.g_LineNumber := 0;
69152 
69153 
69154 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
69155 g_last_hdr_idx := l_array_event_id.LAST;
69156 --
69157 -- loop for the headers. Each iteration is for each header extract row
69158 -- fetched in header cursor
69159 --
69160 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
69161 
69162 --
69163 -- set event info as cache for other routines to refer event attributes
69164 --
69165 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69166    (p_application_id           => p_application_id
69167    ,p_primary_ledger_id        => p_primary_ledger_id
69168    ,p_base_ledger_id           => p_base_ledger_id
69169    ,p_target_ledger_id         => p_target_ledger_id
69170    ,p_entity_id                => l_array_entity_id(hdr_idx)
69171    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
69172    ,p_entity_code              => l_array_entity_code(hdr_idx)
69173    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
69174    ,p_event_id                 => l_array_event_id(hdr_idx)
69175    ,p_event_class_code         => l_array_class_code(hdr_idx)
69176    ,p_event_type_code          => l_array_event_type(hdr_idx)
69177    ,p_event_number             => l_array_event_number(hdr_idx)
69178    ,p_event_date               => l_array_event_date(hdr_idx)
69179    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
69180    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
69181    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
69182    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
69183    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
69184    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
69185    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
69186    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
69187    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
69188    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
69189    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
69190    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
69191    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
69192    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
69193    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
69194 
69195 --
69196 -- set the status of entry to C_VALID (0)
69197 --
69198 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69199 
69200 --
69201 -- initialize a row for ae header
69202 --
69203 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
69204 
69205 l_event_id := l_array_event_id(hdr_idx);
69206 
69207 --
69208 -- storing the hdr_idx for event. May be used by line cursor.
69209 --
69210 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
69211 
69212 --
69213 -- store sources from header extract. This can be improved to
69214 -- store only those sources from header extract that may be used in lines
69215 --
69216 
69217 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
69218 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
69219 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
69220 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
69221 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
69222 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
69223 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
69224 g_array_event(l_event_id).array_value_char('source_17_meaning') := l_array_source_17_meaning(hdr_idx);
69225 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
69226 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
69230 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
69227 g_array_event(l_event_id).array_value_date('source_39') := l_array_source_39(hdr_idx);
69228 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
69229 g_array_event(l_event_id).array_value_char('source_41') := l_array_source_41(hdr_idx);
69231 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
69232 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
69233 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
69234 g_array_event(l_event_id).array_value_num('source_123') := l_array_source_123(hdr_idx);
69235 g_array_event(l_event_id).array_value_num('source_124') := l_array_source_124(hdr_idx);
69236 
69237 --
69238 -- initilaize the status of ae headers for diffrent balance types
69239 -- the status is initialised to C_NOT_CREATED (2)
69240 --
69241 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69242 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69243 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69244 
69245 --
69246 -- call api to validate and store accounting attributes for header
69247 --
69248 
69249 ------------------------------------------------------------
69250 -- Accrual Reversal : to get date for Standard Source (NONE)
69251 ------------------------------------------------------------
69252 l_acc_rev_gl_date_source := NULL;
69253 
69254      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
69255       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_122');
69256      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
69257       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_123');
69258      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
69259       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_124');
69260      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
69261       l_rec_acct_attrs.array_date_value(4) := 
69262 xla_ae_sources_pkg.GetSystemSourceDate(
69263    p_source_code           => 'XLA_EVENT_DATE'
69264  , p_source_type_code      => 'Y'
69265  , p_source_application_id =>  602
69266 );
69267 
69268 
69269 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
69270 
69271 XLA_AE_HEADER_PKG.SetJeCategoryName;
69272 
69273 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
69274 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
69275 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
69276 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
69277 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
69278 
69279 
69280 --
69281 xla_ae_header_pkg.SetHdrDescription(
69282    p_description => Description_1 (
69283    p_application_id => p_application_id 
69284    )
69285 );
69286 --
69287 
69288 -- No header level analytical criteria
69289 
69290 --
69291 --accounting attribute enhancement, bug 3612931
69292 --
69293 l_trx_reversal_source := SUBSTR(NULL, 1,30);
69294 
69295 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
69296    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
69297 
69298    xla_accounting_err_pkg.build_message
69299       (p_appli_s_name            => 'XLA'
69300       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
69301       ,p_token_1                 => 'ACCT_ATTR_NAME'
69302       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
69303       ,p_token_2                 => 'PRODUCT_NAME'
69304       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
69305       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
69306       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
69307       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
69308 
69309 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
69310    --
69311    -- following sets the accounting attributes needed to reverse
69312    -- accounting for a distributeion
69313    --
69314    xla_ae_lines_pkg.SetTrxReversalAttrs
69315       (p_event_id              => l_event_id
69316       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
69317       ,p_trx_reversal_source   => l_trx_reversal_source);
69318 
69319 END IF;
69320 
69321 
69322 ----------------------------------------------------------------
69323 -- 4262811 -  update the header statuses to invalid in need be
69324 ----------------------------------------------------------------
69325 --
69326 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
69327 
69328 
69329   -----------------------------------------------
69330   -- No accrual reversal for the event class/type
69331   -----------------------------------------------
69332 ----------------------------------------------------------------
69333 
69334 --
69335 -- this ends the header loop iteration for one bulk fetch
69336 --
69337 END LOOP;
69338 
69339 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
69343 -- insert dummy rows into lines gt table that were created due to
69340 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
69341 
69342 --
69344 -- transaction reversals
69345 --
69346 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
69347    l_result := XLA_AE_LINES_PKG.InsertLines;
69348 END IF;
69349 
69350 --
69351 -- reset the temp_line_num for each set of events fetched from header
69352 -- cursor rather than doing it for each new event in line cursor
69353 -- Bug 3939231
69354 --
69355 xla_ae_lines_pkg.g_temp_line_num := 0;
69356 
69357 
69358 
69359 --
69360 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
69361 --
69362 --
69363 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69364 
69365       trace
69366          (p_msg      => 'SQL - FETCH line_cur'
69367          ,p_level    => C_LEVEL_STATEMENT
69368          ,p_module   => l_log_module);
69369 
69370 END IF;
69371 --
69372 --
69373 LOOP
69374   --
69375   FETCH line_cur BULK COLLECT INTO
69376         l_array_entity_id
69377       , l_array_legal_entity_id
69378       , l_array_entity_code
69379       , l_array_transaction_num
69380       , l_array_event_id
69381       , l_array_class_code
69382       , l_array_event_type
69383       , l_array_event_number
69384       , l_array_event_date
69385       , l_array_transaction_date
69386       , l_array_reference_num_1
69387       , l_array_reference_num_2
69388       , l_array_reference_num_3
69389       , l_array_reference_num_4
69390       , l_array_reference_char_1
69391       , l_array_reference_char_2
69392       , l_array_reference_char_3
69393       , l_array_reference_char_4
69394       , l_array_reference_date_1
69395       , l_array_reference_date_2
69396       , l_array_reference_date_3
69397       , l_array_reference_date_4
69398       , l_array_event_created_by
69399       , l_array_budgetary_control_flag
69400       , l_array_extract_line_num 
69401       , l_array_source_1
69402       , l_array_source_8
69403       , l_array_source_9
69404       , l_array_source_9_meaning
69405       , l_array_source_11
69406       , l_array_source_13
69407       , l_array_source_15
69408       , l_array_source_15_meaning
69409       , l_array_source_16
69410       , l_array_source_18
69411       , l_array_source_18_meaning
69412       , l_array_source_19
69413       , l_array_source_21
69414       , l_array_source_23
69415       , l_array_source_25
69416       , l_array_source_26
69417       , l_array_source_27
69418       , l_array_source_28
69419       , l_array_source_29
69420       , l_array_source_30
69421       , l_array_source_31
69422       , l_array_source_32
69423       , l_array_source_34
69424       , l_array_source_35
69425       , l_array_source_36
69426       , l_array_source_37
69427       , l_array_source_38
69428       , l_array_source_42
69429       , l_array_source_43
69430       , l_array_source_44
69431       , l_array_source_45
69432       , l_array_source_46
69433       , l_array_source_46_meaning
69434       , l_array_source_50
69435       , l_array_source_52
69436       , l_array_source_53
69437       , l_array_source_54
69438       , l_array_source_55
69439       , l_array_source_56
69440       , l_array_source_58
69441       , l_array_source_59
69442       , l_array_source_59_meaning
69443       , l_array_source_60
69444       , l_array_source_61
69445       , l_array_source_62
69446       , l_array_source_63
69447       , l_array_source_64
69448       , l_array_source_65
69449       , l_array_source_66
69450       , l_array_source_81
69451       , l_array_source_82
69452       LIMIT l_rows;
69453 
69454   --
69455   IF (C_LEVEL_EVENT >= g_log_level) THEN
69456             trace
69457                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
69458                ,p_level    => C_LEVEL_EVENT
69459                ,p_module   => l_log_module);
69460   END IF;
69461   --
69462   EXIT WHEN l_array_entity_id.count = 0;
69463 
69464   XLA_AE_LINES_PKG.g_rec_lines := null;
69465 
69466 --
69467 -- Bug 4458708
69468 --
69469 XLA_AE_LINES_PKG.g_LineNumber := 0;
69470 --
69471 --
69472 
69473 FOR Idx IN 1..l_array_event_id.count LOOP
69474    --
69475    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
69476    --
69477    l_event_id := l_array_event_id(idx);  -- 5648433
69478 
69479    --
69480    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
69481    --
69482 
69483    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
69484              (g_array_event(l_event_id).array_value_num('header_index'))
69485          ,'N'
69486          ) <> 'Y'
69487    THEN
69488       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69489          trace
69490             (p_msg      => 'Trancaction revesal option is not Y '
69491             ,p_level    => C_LEVEL_STATEMENT
69492             ,p_module   => l_log_module);
69493       END IF;
69494 
69495 --
69496 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
69497 --
69498 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69499 --
69503 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
69500 -- set event info as cache for other routines to refer event attributes
69501 --
69502 
69504    l_previous_event_id := l_event_id;
69505 
69506    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69507       (p_application_id           => p_application_id
69508       ,p_primary_ledger_id        => p_primary_ledger_id
69509       ,p_base_ledger_id           => p_base_ledger_id
69510       ,p_target_ledger_id         => p_target_ledger_id
69511       ,p_entity_id                => l_array_entity_id(Idx)
69512       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
69513       ,p_entity_code              => l_array_entity_code(Idx)
69514       ,p_transaction_num          => l_array_transaction_num(Idx)
69515       ,p_event_id                 => l_array_event_id(Idx)
69516       ,p_event_class_code         => l_array_class_code(Idx)
69517       ,p_event_type_code          => l_array_event_type(Idx)
69518       ,p_event_number             => l_array_event_number(Idx)
69519       ,p_event_date               => l_array_event_date(Idx)
69520       ,p_transaction_date         => l_array_transaction_date(Idx)
69521       ,p_reference_num_1          => l_array_reference_num_1(Idx)
69522       ,p_reference_num_2          => l_array_reference_num_2(Idx)
69523       ,p_reference_num_3          => l_array_reference_num_3(Idx)
69524       ,p_reference_num_4          => l_array_reference_num_4(Idx)
69525       ,p_reference_char_1         => l_array_reference_char_1(Idx)
69526       ,p_reference_char_2         => l_array_reference_char_2(Idx)
69527       ,p_reference_char_3         => l_array_reference_char_3(Idx)
69528       ,p_reference_char_4         => l_array_reference_char_4(Idx)
69529       ,p_reference_date_1         => l_array_reference_date_1(Idx)
69530       ,p_reference_date_2         => l_array_reference_date_2(Idx)
69531       ,p_reference_date_3         => l_array_reference_date_3(Idx)
69532       ,p_reference_date_4         => l_array_reference_date_4(Idx)
69533       ,p_event_created_by         => l_array_event_created_by(Idx)
69534       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
69535        --
69536 END IF;
69537 
69538 
69539 
69540 --
69541 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
69542 
69543 l_acct_reversal_source := SUBSTR(l_array_source_19(Idx), 1,30);
69544 
69545 IF l_continue_with_lines THEN
69546    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
69547       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
69548 
69549       xla_accounting_err_pkg.build_message
69550          (p_appli_s_name            => 'XLA'
69551          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
69552          ,p_token_1                 => 'LINE_NUMBER'
69553          ,p_value_1                 => l_array_extract_line_num(Idx)
69554          ,p_token_2                 => 'PRODUCT_NAME'
69555          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
69556          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
69557          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
69558          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
69559 
69560    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
69561       --
69562       -- following sets the accounting attributes needed to reverse
69563       -- accounting for a distributeion
69564       --
69565 
69566       --
69567       -- 5217187
69568       --
69569       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
69570       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
69571                                        g_array_event(l_event_id).array_value_num('header_index'));
69572       --
69573       --
69574 
69575       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
69576       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_19(Idx);
69577       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
69578       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
69579       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
69580       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_21(Idx);
69581       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
69582       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_31(Idx);
69583       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
69584       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_32(Idx);
69585       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
69586       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_33');
69587       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
69588       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_34(Idx);
69589       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
69590       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_35(Idx);
69591       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
69592       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_36(Idx);
69593       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
69594       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_33');
69598       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_38(Idx);
69595       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
69596       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_37(Idx);
69597       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
69599       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
69600       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_49');
69601       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
69602       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_50(Idx);
69603       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
69604       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_21(Idx);
69605       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
69606       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_52(Idx);
69607       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
69608       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_53(Idx);
69609       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
69610       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_54(Idx);
69611       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
69612       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_55(Idx);
69613       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
69614       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_56(Idx);
69615 
69616 
69617       xla_ae_lines_pkg.SetAcctReversalAttrs
69618          (p_event_id             => l_event_id
69619          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
69620          ,p_calculate_acctd_flag => l_calculate_acctd_flag
69621          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
69622    END IF;
69623 
69624    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
69625        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
69626 
69627 --
69628 AcctLineType_15 (
69629  p_application_id  => p_application_id
69630  ,p_event_id     => l_event_id
69631  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69632  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69633  ,p_actual_flag => l_actual_flag
69634  ,p_balance_type_code => l_balance_type_code
69635  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69636  
69637  , p_source_1 => l_array_source_1(Idx)
69638  , p_source_11 => l_array_source_11(Idx)
69639  , p_source_15 => l_array_source_15(Idx)
69640  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69641  , p_source_16 => l_array_source_16(Idx)
69642  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
69643  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
69644  , p_source_18 => l_array_source_18(Idx)
69645  , p_source_18_meaning => l_array_source_18_meaning(Idx)
69646  , p_source_19 => l_array_source_19(Idx)
69647  , p_source_21 => l_array_source_21(Idx)
69648  , p_source_23 => l_array_source_23(Idx)
69649  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69650  , p_source_25 => l_array_source_25(Idx)
69651  , p_source_26 => l_array_source_26(Idx)
69652  , p_source_27 => l_array_source_27(Idx)
69653  , p_source_28 => l_array_source_28(Idx)
69654  , p_source_29 => l_array_source_29(Idx)
69655  , p_source_30 => l_array_source_30(Idx)
69656  , p_source_31 => l_array_source_31(Idx)
69657  , p_source_32 => l_array_source_32(Idx)
69658  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69659  , p_source_34 => l_array_source_34(Idx)
69660  , p_source_35 => l_array_source_35(Idx)
69661  , p_source_36 => l_array_source_36(Idx)
69662  , p_source_37 => l_array_source_37(Idx)
69663  , p_source_38 => l_array_source_38(Idx)
69664  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
69665  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
69666  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
69667  , p_source_42 => l_array_source_42(Idx)
69668  , p_source_43 => l_array_source_43(Idx)
69669  , p_source_44 => l_array_source_44(Idx)
69670  , p_source_45 => l_array_source_45(Idx)
69671  , p_source_46 => l_array_source_46(Idx)
69672  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69673  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
69674  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
69675  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69676  , p_source_50 => l_array_source_50(Idx)
69677  , p_source_52 => l_array_source_52(Idx)
69678  , p_source_53 => l_array_source_53(Idx)
69679  , p_source_54 => l_array_source_54(Idx)
69680  , p_source_55 => l_array_source_55(Idx)
69681  , p_source_56 => l_array_source_56(Idx)
69682  );
69683 If(l_balance_type_code = 'A') THEN
69684   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69685 END IF;
69686 
69687 --
69688 
69689 
69690 --
69691 AcctLineType_20 (
69692  p_application_id  => p_application_id
69693  ,p_event_id     => l_event_id
69694  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69695  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69696  ,p_actual_flag => l_actual_flag
69697  ,p_balance_type_code => l_balance_type_code
69698  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69699  
69700  , p_source_15 => l_array_source_15(Idx)
69701  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69702  , p_source_18 => l_array_source_18(Idx)
69703  , p_source_18_meaning => l_array_source_18_meaning(Idx)
69707  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69704  , p_source_19 => l_array_source_19(Idx)
69705  , p_source_21 => l_array_source_21(Idx)
69706  , p_source_23 => l_array_source_23(Idx)
69708  , p_source_30 => l_array_source_30(Idx)
69709  , p_source_31 => l_array_source_31(Idx)
69710  , p_source_32 => l_array_source_32(Idx)
69711  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69712  , p_source_34 => l_array_source_34(Idx)
69713  , p_source_35 => l_array_source_35(Idx)
69714  , p_source_36 => l_array_source_36(Idx)
69715  , p_source_37 => l_array_source_37(Idx)
69716  , p_source_38 => l_array_source_38(Idx)
69717  , p_source_43 => l_array_source_43(Idx)
69718  , p_source_44 => l_array_source_44(Idx)
69719  , p_source_45 => l_array_source_45(Idx)
69720  , p_source_46 => l_array_source_46(Idx)
69721  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69722  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69723  , p_source_50 => l_array_source_50(Idx)
69724  , p_source_52 => l_array_source_52(Idx)
69725  , p_source_53 => l_array_source_53(Idx)
69726  , p_source_54 => l_array_source_54(Idx)
69727  , p_source_55 => l_array_source_55(Idx)
69728  , p_source_56 => l_array_source_56(Idx)
69729  , p_source_58 => l_array_source_58(Idx)
69730  , p_source_59 => l_array_source_59(Idx)
69731  , p_source_59_meaning => l_array_source_59_meaning(Idx)
69732  , p_source_60 => l_array_source_60(Idx)
69733  , p_source_61 => l_array_source_61(Idx)
69734  , p_source_62 => l_array_source_62(Idx)
69735  , p_source_63 => l_array_source_63(Idx)
69736  , p_source_64 => l_array_source_64(Idx)
69737  , p_source_65 => l_array_source_65(Idx)
69738  , p_source_66 => l_array_source_66(Idx)
69739  );
69740 If(l_balance_type_code = 'A') THEN
69741   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69742 END IF;
69743 
69744 --
69745 
69746 
69747 --
69748 AcctLineType_21 (
69749  p_application_id  => p_application_id
69750  ,p_event_id     => l_event_id
69751  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69752  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69753  ,p_actual_flag => l_actual_flag
69754  ,p_balance_type_code => l_balance_type_code
69755  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69756  
69757  , p_source_15 => l_array_source_15(Idx)
69758  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69759  , p_source_18 => l_array_source_18(Idx)
69760  , p_source_18_meaning => l_array_source_18_meaning(Idx)
69761  , p_source_19 => l_array_source_19(Idx)
69762  , p_source_21 => l_array_source_21(Idx)
69763  , p_source_23 => l_array_source_23(Idx)
69764  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69765  , p_source_30 => l_array_source_30(Idx)
69766  , p_source_31 => l_array_source_31(Idx)
69767  , p_source_32 => l_array_source_32(Idx)
69768  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69769  , p_source_34 => l_array_source_34(Idx)
69770  , p_source_35 => l_array_source_35(Idx)
69771  , p_source_36 => l_array_source_36(Idx)
69772  , p_source_37 => l_array_source_37(Idx)
69773  , p_source_38 => l_array_source_38(Idx)
69774  , p_source_43 => l_array_source_43(Idx)
69775  , p_source_44 => l_array_source_44(Idx)
69776  , p_source_45 => l_array_source_45(Idx)
69777  , p_source_46 => l_array_source_46(Idx)
69778  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69779  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69780  , p_source_50 => l_array_source_50(Idx)
69781  , p_source_52 => l_array_source_52(Idx)
69782  , p_source_53 => l_array_source_53(Idx)
69783  , p_source_54 => l_array_source_54(Idx)
69784  , p_source_55 => l_array_source_55(Idx)
69785  , p_source_56 => l_array_source_56(Idx)
69786  , p_source_58 => l_array_source_58(Idx)
69787  , p_source_60 => l_array_source_60(Idx)
69788  , p_source_61 => l_array_source_61(Idx)
69789  , p_source_62 => l_array_source_62(Idx)
69790  , p_source_63 => l_array_source_63(Idx)
69791  , p_source_64 => l_array_source_64(Idx)
69792  , p_source_65 => l_array_source_65(Idx)
69793  , p_source_66 => l_array_source_66(Idx)
69794  );
69795 If(l_balance_type_code = 'A') THEN
69796   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69797 END IF;
69798 
69799 --
69800 
69801 
69802 --
69803 AcctLineType_23 (
69804  p_application_id  => p_application_id
69805  ,p_event_id     => l_event_id
69806  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69807  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69808  ,p_actual_flag => l_actual_flag
69809  ,p_balance_type_code => l_balance_type_code
69810  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69811  
69812  , p_source_1 => l_array_source_1(Idx)
69813  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
69814  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
69815  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
69816  , p_source_8 => l_array_source_8(Idx)
69817  , p_source_9 => l_array_source_9(Idx)
69818  , p_source_9_meaning => l_array_source_9_meaning(Idx)
69819  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
69820  , p_source_11 => l_array_source_11(Idx)
69821  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
69822  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
69823  , p_source_15 => l_array_source_15(Idx)
69824  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69828  , p_source_21 => l_array_source_21(Idx)
69825  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
69826  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
69827  , p_source_19 => l_array_source_19(Idx)
69829  , p_source_23 => l_array_source_23(Idx)
69830  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69831  , p_source_25 => l_array_source_25(Idx)
69832  , p_source_26 => l_array_source_26(Idx)
69833  , p_source_27 => l_array_source_27(Idx)
69834  , p_source_28 => l_array_source_28(Idx)
69835  , p_source_29 => l_array_source_29(Idx)
69836  , p_source_30 => l_array_source_30(Idx)
69837  , p_source_31 => l_array_source_31(Idx)
69838  , p_source_32 => l_array_source_32(Idx)
69839  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69840  , p_source_34 => l_array_source_34(Idx)
69841  , p_source_35 => l_array_source_35(Idx)
69842  , p_source_36 => l_array_source_36(Idx)
69843  , p_source_37 => l_array_source_37(Idx)
69844  , p_source_38 => l_array_source_38(Idx)
69845  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
69846  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
69847  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
69848  , p_source_43 => l_array_source_43(Idx)
69849  , p_source_44 => l_array_source_44(Idx)
69850  , p_source_45 => l_array_source_45(Idx)
69851  , p_source_46 => l_array_source_46(Idx)
69852  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69853  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
69854  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
69855  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69856  , p_source_50 => l_array_source_50(Idx)
69857  , p_source_52 => l_array_source_52(Idx)
69858  , p_source_53 => l_array_source_53(Idx)
69859  , p_source_54 => l_array_source_54(Idx)
69860  , p_source_55 => l_array_source_55(Idx)
69861  , p_source_56 => l_array_source_56(Idx)
69862  , p_source_65 => l_array_source_65(Idx)
69863  , p_source_66 => l_array_source_66(Idx)
69864  );
69865 If(l_balance_type_code = 'A') THEN
69866   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69867 END IF;
69868 
69869 --
69870 
69871 
69872 --
69873 AcctLineType_27 (
69874  p_application_id  => p_application_id
69875  ,p_event_id     => l_event_id
69876  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69877  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69878  ,p_actual_flag => l_actual_flag
69879  ,p_balance_type_code => l_balance_type_code
69880  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69881  
69882  , p_source_1 => l_array_source_1(Idx)
69883  , p_source_11 => l_array_source_11(Idx)
69884  , p_source_15 => l_array_source_15(Idx)
69885  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69886  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
69887  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
69888  , p_source_19 => l_array_source_19(Idx)
69889  , p_source_21 => l_array_source_21(Idx)
69890  , p_source_23 => l_array_source_23(Idx)
69891  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69892  , p_source_25 => l_array_source_25(Idx)
69893  , p_source_26 => l_array_source_26(Idx)
69894  , p_source_27 => l_array_source_27(Idx)
69895  , p_source_28 => l_array_source_28(Idx)
69896  , p_source_29 => l_array_source_29(Idx)
69897  , p_source_30 => l_array_source_30(Idx)
69898  , p_source_31 => l_array_source_31(Idx)
69899  , p_source_32 => l_array_source_32(Idx)
69900  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69901  , p_source_34 => l_array_source_34(Idx)
69902  , p_source_35 => l_array_source_35(Idx)
69903  , p_source_36 => l_array_source_36(Idx)
69904  , p_source_37 => l_array_source_37(Idx)
69905  , p_source_38 => l_array_source_38(Idx)
69906  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
69907  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
69908  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
69909  , p_source_43 => l_array_source_43(Idx)
69910  , p_source_44 => l_array_source_44(Idx)
69911  , p_source_45 => l_array_source_45(Idx)
69912  , p_source_46 => l_array_source_46(Idx)
69913  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69914  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
69915  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
69916  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69917  , p_source_50 => l_array_source_50(Idx)
69918  , p_source_52 => l_array_source_52(Idx)
69919  , p_source_53 => l_array_source_53(Idx)
69920  , p_source_54 => l_array_source_54(Idx)
69921  , p_source_55 => l_array_source_55(Idx)
69922  , p_source_56 => l_array_source_56(Idx)
69923  , p_source_65 => l_array_source_65(Idx)
69924  , p_source_66 => l_array_source_66(Idx)
69925  );
69926 If(l_balance_type_code = 'A') THEN
69927   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69928 END IF;
69929 
69930 --
69931 
69932 
69933 --
69934 AcctLineType_34 (
69935  p_application_id  => p_application_id
69936  ,p_event_id     => l_event_id
69937  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69938  ,p_calculate_g_l_flag => l_calculate_g_l_flag
69939  ,p_actual_flag => l_actual_flag
69943  , p_source_1 => l_array_source_1(Idx)
69940  ,p_balance_type_code => l_balance_type_code
69941  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69942  
69944  , p_source_11 => l_array_source_11(Idx)
69945  , p_source_15 => l_array_source_15(Idx)
69946  , p_source_15_meaning => l_array_source_15_meaning(Idx)
69947  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
69948  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
69949  , p_source_19 => l_array_source_19(Idx)
69950  , p_source_21 => l_array_source_21(Idx)
69951  , p_source_23 => l_array_source_23(Idx)
69952  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
69953  , p_source_25 => l_array_source_25(Idx)
69954  , p_source_26 => l_array_source_26(Idx)
69955  , p_source_27 => l_array_source_27(Idx)
69956  , p_source_28 => l_array_source_28(Idx)
69957  , p_source_29 => l_array_source_29(Idx)
69958  , p_source_30 => l_array_source_30(Idx)
69959  , p_source_31 => l_array_source_31(Idx)
69960  , p_source_32 => l_array_source_32(Idx)
69961  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
69962  , p_source_34 => l_array_source_34(Idx)
69963  , p_source_35 => l_array_source_35(Idx)
69964  , p_source_36 => l_array_source_36(Idx)
69965  , p_source_37 => l_array_source_37(Idx)
69966  , p_source_38 => l_array_source_38(Idx)
69967  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
69968  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
69969  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
69970  , p_source_43 => l_array_source_43(Idx)
69971  , p_source_44 => l_array_source_44(Idx)
69972  , p_source_45 => l_array_source_45(Idx)
69973  , p_source_46 => l_array_source_46(Idx)
69974  , p_source_46_meaning => l_array_source_46_meaning(Idx)
69975  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
69976  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
69977  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
69978  , p_source_50 => l_array_source_50(Idx)
69979  , p_source_52 => l_array_source_52(Idx)
69980  , p_source_53 => l_array_source_53(Idx)
69981  , p_source_54 => l_array_source_54(Idx)
69982  , p_source_55 => l_array_source_55(Idx)
69983  , p_source_56 => l_array_source_56(Idx)
69984  , p_source_65 => l_array_source_65(Idx)
69985  , p_source_66 => l_array_source_66(Idx)
69986  );
69987 If(l_balance_type_code = 'A') THEN
69988   l_actual_gain_loss_ref := l_gain_or_loss_ref;
69989 END IF;
69990 
69991 --
69992 
69993 
69994 --
69995 AcctLineType_38 (
69996  p_application_id  => p_application_id
69997  ,p_event_id     => l_event_id
69998  ,p_calculate_acctd_flag => l_calculate_acctd_flag
69999  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70000  ,p_actual_flag => l_actual_flag
70001  ,p_balance_type_code => l_balance_type_code
70002  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70003  
70004  , p_source_1 => l_array_source_1(Idx)
70005  , p_source_11 => l_array_source_11(Idx)
70006  , p_source_15 => l_array_source_15(Idx)
70007  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70008  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70009  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70010  , p_source_18 => l_array_source_18(Idx)
70011  , p_source_18_meaning => l_array_source_18_meaning(Idx)
70012  , p_source_19 => l_array_source_19(Idx)
70013  , p_source_21 => l_array_source_21(Idx)
70014  , p_source_23 => l_array_source_23(Idx)
70015  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70016  , p_source_25 => l_array_source_25(Idx)
70017  , p_source_26 => l_array_source_26(Idx)
70018  , p_source_27 => l_array_source_27(Idx)
70019  , p_source_28 => l_array_source_28(Idx)
70020  , p_source_29 => l_array_source_29(Idx)
70021  , p_source_30 => l_array_source_30(Idx)
70022  , p_source_31 => l_array_source_31(Idx)
70023  , p_source_32 => l_array_source_32(Idx)
70024  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70025  , p_source_34 => l_array_source_34(Idx)
70026  , p_source_35 => l_array_source_35(Idx)
70027  , p_source_36 => l_array_source_36(Idx)
70028  , p_source_37 => l_array_source_37(Idx)
70029  , p_source_38 => l_array_source_38(Idx)
70030  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70031  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70032  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70033  , p_source_43 => l_array_source_43(Idx)
70034  , p_source_44 => l_array_source_44(Idx)
70035  , p_source_45 => l_array_source_45(Idx)
70036  , p_source_46 => l_array_source_46(Idx)
70037  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70038  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70039  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70040  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70041  , p_source_50 => l_array_source_50(Idx)
70042  , p_source_52 => l_array_source_52(Idx)
70043  , p_source_53 => l_array_source_53(Idx)
70044  , p_source_54 => l_array_source_54(Idx)
70045  , p_source_55 => l_array_source_55(Idx)
70046  , p_source_56 => l_array_source_56(Idx)
70047  , p_source_65 => l_array_source_65(Idx)
70048  , p_source_66 => l_array_source_66(Idx)
70049  );
70050 If(l_balance_type_code = 'A') THEN
70051   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70055 
70052 END IF;
70053 
70054 --
70056 
70057 --
70058 AcctLineType_42 (
70059  p_application_id  => p_application_id
70060  ,p_event_id     => l_event_id
70061  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70062  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70063  ,p_actual_flag => l_actual_flag
70064  ,p_balance_type_code => l_balance_type_code
70065  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70066  
70067  , p_source_1 => l_array_source_1(Idx)
70068  , p_source_11 => l_array_source_11(Idx)
70069  , p_source_15 => l_array_source_15(Idx)
70070  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70071  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70072  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70073  , p_source_19 => l_array_source_19(Idx)
70074  , p_source_21 => l_array_source_21(Idx)
70075  , p_source_23 => l_array_source_23(Idx)
70076  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70077  , p_source_25 => l_array_source_25(Idx)
70078  , p_source_26 => l_array_source_26(Idx)
70079  , p_source_27 => l_array_source_27(Idx)
70080  , p_source_28 => l_array_source_28(Idx)
70081  , p_source_29 => l_array_source_29(Idx)
70082  , p_source_30 => l_array_source_30(Idx)
70083  , p_source_31 => l_array_source_31(Idx)
70084  , p_source_32 => l_array_source_32(Idx)
70085  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70086  , p_source_34 => l_array_source_34(Idx)
70087  , p_source_35 => l_array_source_35(Idx)
70088  , p_source_36 => l_array_source_36(Idx)
70089  , p_source_37 => l_array_source_37(Idx)
70090  , p_source_38 => l_array_source_38(Idx)
70091  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70092  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70093  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70094  , p_source_43 => l_array_source_43(Idx)
70095  , p_source_44 => l_array_source_44(Idx)
70096  , p_source_45 => l_array_source_45(Idx)
70097  , p_source_46 => l_array_source_46(Idx)
70098  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70099  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70100  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70101  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70102  , p_source_50 => l_array_source_50(Idx)
70103  , p_source_52 => l_array_source_52(Idx)
70104  , p_source_53 => l_array_source_53(Idx)
70105  , p_source_54 => l_array_source_54(Idx)
70106  , p_source_55 => l_array_source_55(Idx)
70107  , p_source_56 => l_array_source_56(Idx)
70108  , p_source_65 => l_array_source_65(Idx)
70109  , p_source_66 => l_array_source_66(Idx)
70110  );
70111 If(l_balance_type_code = 'A') THEN
70112   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70113 END IF;
70114 
70115 --
70116 
70117 
70118 --
70119 AcctLineType_46 (
70120  p_application_id  => p_application_id
70121  ,p_event_id     => l_event_id
70122  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70123  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70124  ,p_actual_flag => l_actual_flag
70125  ,p_balance_type_code => l_balance_type_code
70126  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70127  
70128  , p_source_1 => l_array_source_1(Idx)
70129  , p_source_11 => l_array_source_11(Idx)
70130  , p_source_15 => l_array_source_15(Idx)
70131  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70132  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70133  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70134  , p_source_18 => l_array_source_18(Idx)
70135  , p_source_18_meaning => l_array_source_18_meaning(Idx)
70136  , p_source_19 => l_array_source_19(Idx)
70137  , p_source_21 => l_array_source_21(Idx)
70138  , p_source_23 => l_array_source_23(Idx)
70139  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70140  , p_source_25 => l_array_source_25(Idx)
70141  , p_source_26 => l_array_source_26(Idx)
70142  , p_source_27 => l_array_source_27(Idx)
70143  , p_source_28 => l_array_source_28(Idx)
70144  , p_source_29 => l_array_source_29(Idx)
70145  , p_source_30 => l_array_source_30(Idx)
70146  , p_source_31 => l_array_source_31(Idx)
70147  , p_source_32 => l_array_source_32(Idx)
70148  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70149  , p_source_34 => l_array_source_34(Idx)
70150  , p_source_35 => l_array_source_35(Idx)
70151  , p_source_36 => l_array_source_36(Idx)
70152  , p_source_37 => l_array_source_37(Idx)
70153  , p_source_38 => l_array_source_38(Idx)
70154  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70155  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70156  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70157  , p_source_43 => l_array_source_43(Idx)
70158  , p_source_44 => l_array_source_44(Idx)
70159  , p_source_45 => l_array_source_45(Idx)
70160  , p_source_46 => l_array_source_46(Idx)
70161  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70162  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70163  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70164  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70165  , p_source_50 => l_array_source_50(Idx)
70166  , p_source_52 => l_array_source_52(Idx)
70167  , p_source_53 => l_array_source_53(Idx)
70168  , p_source_54 => l_array_source_54(Idx)
70169  , p_source_55 => l_array_source_55(Idx)
70173  , p_source_65 => l_array_source_65(Idx)
70170  , p_source_56 => l_array_source_56(Idx)
70171  , p_source_59 => l_array_source_59(Idx)
70172  , p_source_59_meaning => l_array_source_59_meaning(Idx)
70174  , p_source_66 => l_array_source_66(Idx)
70175  );
70176 If(l_balance_type_code = 'A') THEN
70177   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70178 END IF;
70179 
70180 --
70181 
70182 
70183 --
70184 AcctLineType_55 (
70185  p_application_id  => p_application_id
70186  ,p_event_id     => l_event_id
70187  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70188  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70189  ,p_actual_flag => l_actual_flag
70190  ,p_balance_type_code => l_balance_type_code
70191  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70192  
70193  , p_source_1 => l_array_source_1(Idx)
70194  , p_source_11 => l_array_source_11(Idx)
70195  , p_source_15 => l_array_source_15(Idx)
70196  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70197  , p_source_16 => l_array_source_16(Idx)
70198  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70199  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70200  , p_source_18 => l_array_source_18(Idx)
70201  , p_source_18_meaning => l_array_source_18_meaning(Idx)
70202  , p_source_19 => l_array_source_19(Idx)
70203  , p_source_21 => l_array_source_21(Idx)
70204  , p_source_23 => l_array_source_23(Idx)
70205  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70206  , p_source_25 => l_array_source_25(Idx)
70207  , p_source_26 => l_array_source_26(Idx)
70208  , p_source_27 => l_array_source_27(Idx)
70209  , p_source_28 => l_array_source_28(Idx)
70210  , p_source_29 => l_array_source_29(Idx)
70211  , p_source_30 => l_array_source_30(Idx)
70212  , p_source_31 => l_array_source_31(Idx)
70213  , p_source_32 => l_array_source_32(Idx)
70214  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70215  , p_source_34 => l_array_source_34(Idx)
70216  , p_source_35 => l_array_source_35(Idx)
70217  , p_source_36 => l_array_source_36(Idx)
70218  , p_source_37 => l_array_source_37(Idx)
70219  , p_source_38 => l_array_source_38(Idx)
70220  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70221  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70222  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70223  , p_source_43 => l_array_source_43(Idx)
70224  , p_source_44 => l_array_source_44(Idx)
70225  , p_source_45 => l_array_source_45(Idx)
70226  , p_source_46 => l_array_source_46(Idx)
70227  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70228  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70229  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70230  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70231  , p_source_50 => l_array_source_50(Idx)
70232  , p_source_52 => l_array_source_52(Idx)
70233  , p_source_53 => l_array_source_53(Idx)
70234  , p_source_54 => l_array_source_54(Idx)
70235  , p_source_55 => l_array_source_55(Idx)
70236  , p_source_56 => l_array_source_56(Idx)
70237  , p_source_81 => l_array_source_81(Idx)
70238  , p_source_82 => l_array_source_82(Idx)
70239  );
70240 If(l_balance_type_code = 'A') THEN
70241   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70242 END IF;
70243 
70244 --
70245 
70246 
70247 --
70248 AcctLineType_58 (
70249  p_application_id  => p_application_id
70250  ,p_event_id     => l_event_id
70251  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70252  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70253  ,p_actual_flag => l_actual_flag
70254  ,p_balance_type_code => l_balance_type_code
70255  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70256  
70257  , p_source_1 => l_array_source_1(Idx)
70258  , p_source_11 => l_array_source_11(Idx)
70259  , p_source_15 => l_array_source_15(Idx)
70260  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70261  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70262  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70263  , p_source_19 => l_array_source_19(Idx)
70264  , p_source_21 => l_array_source_21(Idx)
70265  , p_source_23 => l_array_source_23(Idx)
70266  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70267  , p_source_25 => l_array_source_25(Idx)
70268  , p_source_26 => l_array_source_26(Idx)
70269  , p_source_27 => l_array_source_27(Idx)
70270  , p_source_28 => l_array_source_28(Idx)
70271  , p_source_29 => l_array_source_29(Idx)
70272  , p_source_30 => l_array_source_30(Idx)
70273  , p_source_31 => l_array_source_31(Idx)
70274  , p_source_32 => l_array_source_32(Idx)
70275  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70276  , p_source_34 => l_array_source_34(Idx)
70277  , p_source_35 => l_array_source_35(Idx)
70278  , p_source_36 => l_array_source_36(Idx)
70279  , p_source_37 => l_array_source_37(Idx)
70280  , p_source_38 => l_array_source_38(Idx)
70281  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70282  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70283  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70284  , p_source_43 => l_array_source_43(Idx)
70285  , p_source_44 => l_array_source_44(Idx)
70286  , p_source_45 => l_array_source_45(Idx)
70287  , p_source_46 => l_array_source_46(Idx)
70288  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70292  , p_source_50 => l_array_source_50(Idx)
70289  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70290  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70291  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70293  , p_source_52 => l_array_source_52(Idx)
70294  , p_source_53 => l_array_source_53(Idx)
70295  , p_source_54 => l_array_source_54(Idx)
70296  , p_source_55 => l_array_source_55(Idx)
70297  , p_source_56 => l_array_source_56(Idx)
70298  , p_source_59 => l_array_source_59(Idx)
70299  , p_source_59_meaning => l_array_source_59_meaning(Idx)
70300  , p_source_65 => l_array_source_65(Idx)
70301  , p_source_66 => l_array_source_66(Idx)
70302  );
70303 If(l_balance_type_code = 'A') THEN
70304   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70305 END IF;
70306 
70307 --
70308 
70309 
70310 --
70311 AcctLineType_63 (
70312  p_application_id  => p_application_id
70313  ,p_event_id     => l_event_id
70314  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70315  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70316  ,p_actual_flag => l_actual_flag
70317  ,p_balance_type_code => l_balance_type_code
70318  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70319  
70320  , p_source_1 => l_array_source_1(Idx)
70321  , p_source_13 => l_array_source_13(Idx)
70322  , p_source_15 => l_array_source_15(Idx)
70323  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70324  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70325  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70326  , p_source_19 => l_array_source_19(Idx)
70327  , p_source_21 => l_array_source_21(Idx)
70328  , p_source_23 => l_array_source_23(Idx)
70329  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70330  , p_source_25 => l_array_source_25(Idx)
70331  , p_source_26 => l_array_source_26(Idx)
70332  , p_source_27 => l_array_source_27(Idx)
70333  , p_source_28 => l_array_source_28(Idx)
70334  , p_source_29 => l_array_source_29(Idx)
70335  , p_source_30 => l_array_source_30(Idx)
70336  , p_source_31 => l_array_source_31(Idx)
70337  , p_source_32 => l_array_source_32(Idx)
70338  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70339  , p_source_34 => l_array_source_34(Idx)
70340  , p_source_35 => l_array_source_35(Idx)
70341  , p_source_36 => l_array_source_36(Idx)
70342  , p_source_37 => l_array_source_37(Idx)
70343  , p_source_38 => l_array_source_38(Idx)
70344  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70345  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70346  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70347  , p_source_43 => l_array_source_43(Idx)
70348  , p_source_44 => l_array_source_44(Idx)
70349  , p_source_45 => l_array_source_45(Idx)
70350  , p_source_46 => l_array_source_46(Idx)
70351  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70352  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70353  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70354  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70355  , p_source_50 => l_array_source_50(Idx)
70356  , p_source_52 => l_array_source_52(Idx)
70357  , p_source_53 => l_array_source_53(Idx)
70358  , p_source_54 => l_array_source_54(Idx)
70359  , p_source_55 => l_array_source_55(Idx)
70360  , p_source_56 => l_array_source_56(Idx)
70361  , p_source_59 => l_array_source_59(Idx)
70362  , p_source_59_meaning => l_array_source_59_meaning(Idx)
70363  , p_source_65 => l_array_source_65(Idx)
70364  , p_source_66 => l_array_source_66(Idx)
70365  );
70366 If(l_balance_type_code = 'A') THEN
70367   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70368 END IF;
70369 
70370 --
70371 
70372 
70373 --
70374 AcctLineType_67 (
70375  p_application_id  => p_application_id
70376  ,p_event_id     => l_event_id
70377  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70378  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70379  ,p_actual_flag => l_actual_flag
70380  ,p_balance_type_code => l_balance_type_code
70381  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70382  
70383  , p_source_1 => l_array_source_1(Idx)
70384  , p_source_11 => l_array_source_11(Idx)
70385  , p_source_15 => l_array_source_15(Idx)
70386  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70387  , p_source_16 => l_array_source_16(Idx)
70388  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70389  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70390  , p_source_18 => l_array_source_18(Idx)
70391  , p_source_18_meaning => l_array_source_18_meaning(Idx)
70392  , p_source_19 => l_array_source_19(Idx)
70393  , p_source_21 => l_array_source_21(Idx)
70394  , p_source_23 => l_array_source_23(Idx)
70395  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70396  , p_source_25 => l_array_source_25(Idx)
70397  , p_source_26 => l_array_source_26(Idx)
70398  , p_source_27 => l_array_source_27(Idx)
70399  , p_source_28 => l_array_source_28(Idx)
70400  , p_source_29 => l_array_source_29(Idx)
70401  , p_source_30 => l_array_source_30(Idx)
70402  , p_source_31 => l_array_source_31(Idx)
70403  , p_source_32 => l_array_source_32(Idx)
70404  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70405  , p_source_34 => l_array_source_34(Idx)
70406  , p_source_35 => l_array_source_35(Idx)
70407  , p_source_36 => l_array_source_36(Idx)
70411  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70408  , p_source_37 => l_array_source_37(Idx)
70409  , p_source_38 => l_array_source_38(Idx)
70410  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70412  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70413  , p_source_42 => l_array_source_42(Idx)
70414  , p_source_43 => l_array_source_43(Idx)
70415  , p_source_44 => l_array_source_44(Idx)
70416  , p_source_45 => l_array_source_45(Idx)
70417  , p_source_46 => l_array_source_46(Idx)
70418  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70419  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70420  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70421  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70422  , p_source_50 => l_array_source_50(Idx)
70423  , p_source_52 => l_array_source_52(Idx)
70424  , p_source_53 => l_array_source_53(Idx)
70425  , p_source_54 => l_array_source_54(Idx)
70426  , p_source_55 => l_array_source_55(Idx)
70427  , p_source_56 => l_array_source_56(Idx)
70428  );
70429 If(l_balance_type_code = 'A') THEN
70430   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70431 END IF;
70432 
70433 --
70434 
70435 
70436 --
70437 AcctLineType_71 (
70438  p_application_id  => p_application_id
70439  ,p_event_id     => l_event_id
70440  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70441  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70442  ,p_actual_flag => l_actual_flag
70443  ,p_balance_type_code => l_balance_type_code
70444  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70445  
70446  , p_source_1 => l_array_source_1(Idx)
70447  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
70448  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
70449  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
70450  , p_source_8 => l_array_source_8(Idx)
70451  , p_source_9 => l_array_source_9(Idx)
70452  , p_source_9_meaning => l_array_source_9_meaning(Idx)
70453  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
70454  , p_source_11 => l_array_source_11(Idx)
70455  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
70456  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
70457  , p_source_15 => l_array_source_15(Idx)
70458  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70459  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70460  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70461  , p_source_19 => l_array_source_19(Idx)
70462  , p_source_21 => l_array_source_21(Idx)
70463  , p_source_23 => l_array_source_23(Idx)
70464  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70465  , p_source_25 => l_array_source_25(Idx)
70466  , p_source_26 => l_array_source_26(Idx)
70467  , p_source_27 => l_array_source_27(Idx)
70468  , p_source_28 => l_array_source_28(Idx)
70469  , p_source_29 => l_array_source_29(Idx)
70470  , p_source_30 => l_array_source_30(Idx)
70471  , p_source_31 => l_array_source_31(Idx)
70472  , p_source_32 => l_array_source_32(Idx)
70473  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70474  , p_source_34 => l_array_source_34(Idx)
70475  , p_source_35 => l_array_source_35(Idx)
70476  , p_source_36 => l_array_source_36(Idx)
70477  , p_source_37 => l_array_source_37(Idx)
70478  , p_source_38 => l_array_source_38(Idx)
70479  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70480  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70481  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70482  , p_source_43 => l_array_source_43(Idx)
70483  , p_source_44 => l_array_source_44(Idx)
70484  , p_source_45 => l_array_source_45(Idx)
70485  , p_source_46 => l_array_source_46(Idx)
70486  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70487  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70488  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70489  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70490  , p_source_50 => l_array_source_50(Idx)
70491  , p_source_52 => l_array_source_52(Idx)
70492  , p_source_53 => l_array_source_53(Idx)
70493  , p_source_54 => l_array_source_54(Idx)
70494  , p_source_55 => l_array_source_55(Idx)
70495  , p_source_56 => l_array_source_56(Idx)
70496  , p_source_65 => l_array_source_65(Idx)
70497  , p_source_66 => l_array_source_66(Idx)
70498  );
70499 If(l_balance_type_code = 'A') THEN
70500   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70501 END IF;
70502 
70503 --
70504 
70505 
70506 --
70507 AcctLineType_74 (
70508  p_application_id  => p_application_id
70509  ,p_event_id     => l_event_id
70510  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70511  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70512  ,p_actual_flag => l_actual_flag
70513  ,p_balance_type_code => l_balance_type_code
70514  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70515  
70516  , p_source_1 => l_array_source_1(Idx)
70517  , p_source_11 => l_array_source_11(Idx)
70518  , p_source_15 => l_array_source_15(Idx)
70519  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70520  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70521  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70522  , p_source_19 => l_array_source_19(Idx)
70523  , p_source_21 => l_array_source_21(Idx)
70527  , p_source_26 => l_array_source_26(Idx)
70524  , p_source_23 => l_array_source_23(Idx)
70525  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70526  , p_source_25 => l_array_source_25(Idx)
70528  , p_source_27 => l_array_source_27(Idx)
70529  , p_source_28 => l_array_source_28(Idx)
70530  , p_source_29 => l_array_source_29(Idx)
70531  , p_source_30 => l_array_source_30(Idx)
70532  , p_source_31 => l_array_source_31(Idx)
70533  , p_source_32 => l_array_source_32(Idx)
70534  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70535  , p_source_34 => l_array_source_34(Idx)
70536  , p_source_35 => l_array_source_35(Idx)
70537  , p_source_36 => l_array_source_36(Idx)
70538  , p_source_37 => l_array_source_37(Idx)
70539  , p_source_38 => l_array_source_38(Idx)
70540  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70541  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70542  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70543  , p_source_43 => l_array_source_43(Idx)
70544  , p_source_44 => l_array_source_44(Idx)
70545  , p_source_45 => l_array_source_45(Idx)
70546  , p_source_46 => l_array_source_46(Idx)
70547  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70548  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70549  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70550  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70551  , p_source_50 => l_array_source_50(Idx)
70552  , p_source_52 => l_array_source_52(Idx)
70553  , p_source_53 => l_array_source_53(Idx)
70554  , p_source_54 => l_array_source_54(Idx)
70555  , p_source_55 => l_array_source_55(Idx)
70556  , p_source_56 => l_array_source_56(Idx)
70557  , p_source_65 => l_array_source_65(Idx)
70558  , p_source_66 => l_array_source_66(Idx)
70559  );
70560 If(l_balance_type_code = 'A') THEN
70561   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70562 END IF;
70563 
70564 --
70565 
70566 
70567 --
70568 AcctLineType_78 (
70569  p_application_id  => p_application_id
70570  ,p_event_id     => l_event_id
70571  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70572  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70573  ,p_actual_flag => l_actual_flag
70574  ,p_balance_type_code => l_balance_type_code
70575  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70576  
70577  , p_source_1 => l_array_source_1(Idx)
70578  , p_source_11 => l_array_source_11(Idx)
70579  , p_source_15 => l_array_source_15(Idx)
70580  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70581  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70582  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70583  , p_source_18 => l_array_source_18(Idx)
70584  , p_source_18_meaning => l_array_source_18_meaning(Idx)
70585  , p_source_19 => l_array_source_19(Idx)
70586  , p_source_21 => l_array_source_21(Idx)
70587  , p_source_23 => l_array_source_23(Idx)
70588  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70589  , p_source_25 => l_array_source_25(Idx)
70590  , p_source_26 => l_array_source_26(Idx)
70591  , p_source_27 => l_array_source_27(Idx)
70592  , p_source_28 => l_array_source_28(Idx)
70593  , p_source_29 => l_array_source_29(Idx)
70594  , p_source_30 => l_array_source_30(Idx)
70595  , p_source_31 => l_array_source_31(Idx)
70596  , p_source_32 => l_array_source_32(Idx)
70597  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70598  , p_source_34 => l_array_source_34(Idx)
70599  , p_source_35 => l_array_source_35(Idx)
70600  , p_source_36 => l_array_source_36(Idx)
70601  , p_source_37 => l_array_source_37(Idx)
70602  , p_source_38 => l_array_source_38(Idx)
70603  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70604  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70605  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70606  , p_source_43 => l_array_source_43(Idx)
70607  , p_source_44 => l_array_source_44(Idx)
70608  , p_source_45 => l_array_source_45(Idx)
70609  , p_source_46 => l_array_source_46(Idx)
70610  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70611  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70612  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70613  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70614  , p_source_50 => l_array_source_50(Idx)
70615  , p_source_52 => l_array_source_52(Idx)
70616  , p_source_53 => l_array_source_53(Idx)
70617  , p_source_54 => l_array_source_54(Idx)
70618  , p_source_55 => l_array_source_55(Idx)
70619  , p_source_56 => l_array_source_56(Idx)
70620  , p_source_81 => l_array_source_81(Idx)
70621  , p_source_82 => l_array_source_82(Idx)
70622  );
70623 If(l_balance_type_code = 'A') THEN
70624   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70625 END IF;
70626 
70627 --
70628 
70629 
70630 --
70631 AcctLineType_82 (
70632  p_application_id  => p_application_id
70633  ,p_event_id     => l_event_id
70634  ,p_calculate_acctd_flag => l_calculate_acctd_flag
70635  ,p_calculate_g_l_flag => l_calculate_g_l_flag
70636  ,p_actual_flag => l_actual_flag
70637  ,p_balance_type_code => l_balance_type_code
70638  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70639  
70640  , p_source_1 => l_array_source_1(Idx)
70644  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
70641  , p_source_11 => l_array_source_11(Idx)
70642  , p_source_15 => l_array_source_15(Idx)
70643  , p_source_15_meaning => l_array_source_15_meaning(Idx)
70645  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
70646  , p_source_19 => l_array_source_19(Idx)
70647  , p_source_21 => l_array_source_21(Idx)
70648  , p_source_23 => l_array_source_23(Idx)
70649  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
70650  , p_source_25 => l_array_source_25(Idx)
70651  , p_source_26 => l_array_source_26(Idx)
70652  , p_source_27 => l_array_source_27(Idx)
70653  , p_source_28 => l_array_source_28(Idx)
70654  , p_source_29 => l_array_source_29(Idx)
70655  , p_source_30 => l_array_source_30(Idx)
70656  , p_source_31 => l_array_source_31(Idx)
70657  , p_source_32 => l_array_source_32(Idx)
70658  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
70659  , p_source_34 => l_array_source_34(Idx)
70660  , p_source_35 => l_array_source_35(Idx)
70661  , p_source_36 => l_array_source_36(Idx)
70662  , p_source_37 => l_array_source_37(Idx)
70663  , p_source_38 => l_array_source_38(Idx)
70664  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
70665  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
70666  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
70667  , p_source_43 => l_array_source_43(Idx)
70668  , p_source_44 => l_array_source_44(Idx)
70669  , p_source_45 => l_array_source_45(Idx)
70670  , p_source_46 => l_array_source_46(Idx)
70671  , p_source_46_meaning => l_array_source_46_meaning(Idx)
70672  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
70673  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
70674  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
70675  , p_source_50 => l_array_source_50(Idx)
70676  , p_source_52 => l_array_source_52(Idx)
70677  , p_source_53 => l_array_source_53(Idx)
70678  , p_source_54 => l_array_source_54(Idx)
70679  , p_source_55 => l_array_source_55(Idx)
70680  , p_source_56 => l_array_source_56(Idx)
70681  , p_source_65 => l_array_source_65(Idx)
70682  , p_source_66 => l_array_source_66(Idx)
70683  );
70684 If(l_balance_type_code = 'A') THEN
70685   l_actual_gain_loss_ref := l_gain_or_loss_ref;
70686 END IF;
70687 
70688 --
70689 
70690       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
70691       -- or secondary ledger that has different currency with primary
70692       -- or alc that is calculated by sla
70693       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70694             (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'))
70695 
70696 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
70697 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
70698           AND (l_actual_flag = 'A')) THEN
70699         XLA_AE_LINES_PKG.CreateGainOrLossLines(
70700           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
70701          ,p_application_id   => p_application_id
70702          ,p_amb_context_code => 'DEFAULT'
70703          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
70704          ,p_event_class_code => C_EVENT_CLASS_CODE
70705          ,p_event_type_code  => C_EVENT_TYPE_CODE
70706          
70707          ,p_gain_ccid        => -1
70708          ,p_loss_ccid        => -1
70709 
70710          ,p_actual_flag      => l_actual_flag
70711          ,p_enc_flag         => null
70712          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
70713          ,p_enc_g_l_ref      => null
70714          );
70715       END IF;
70716    END IF;
70717 END IF;
70718 
70719    ELSE
70720       --
70721       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70722       --
70723       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70724          trace
70725             (p_msg      => 'Trancaction revesal option is Y'
70726             ,p_level    => C_LEVEL_STATEMENT
70727             ,p_module   => l_log_module);
70728       END IF;
70729    END IF;
70730 
70731 END LOOP;
70732 l_result := XLA_AE_LINES_PKG.InsertLines ;
70733 end loop;
70734 close line_cur;
70735 
70736 
70737 --
70738 -- insert headers into xla_ae_headers_gt table
70739 --
70740 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
70741 
70742 -- insert into errors table here.
70743 
70744 END LOOP;
70745 
70746 --
70747 -- 4865292
70748 --
70749 -- Compare g_hdr_extract_count with event count in
70750 -- CreateHeadersAndLines.
70751 --
70752 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
70753 
70754 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70755    trace (p_msg     => '# rows extracted from header extract objects '
70756                     || ' (running total): '
70757                     || g_hdr_extract_count
70758          ,p_level   => C_LEVEL_STATEMENT
70759          ,p_module  => l_log_module);
70760 END IF;
70761 
70762 CLOSE header_cur;
70763 --
70764 
70765 --
70766 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70767    trace
70771 END IF;
70768       (p_msg      => 'END of EventClass_104'
70769       ,p_level    => C_LEVEL_PROCEDURE
70770       ,p_module   => l_log_module);
70772 --
70773 RETURN l_result;
70774 EXCEPTION
70775 WHEN xla_exceptions_pkg.application_exception THEN
70776    
70777 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70778 
70779    
70780 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
70781 
70782    RAISE;
70783 
70784 WHEN NO_DATA_FOUND THEN
70785 
70786 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70787 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
70788 
70789 FOR header_record IN header_cur
70790 LOOP
70791     l_array_header_events(header_record.event_id) := header_record.event_id;
70792 END LOOP;
70793 
70794 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
70795 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
70796 
70797 fnd_file.put_line(fnd_file.LOG, '                    ');
70798 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70799 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
70800 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
70801 
70802 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
70803 LOOP
70804 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
70805 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
70806         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
70807 	END IF;
70808 END LOOP;
70809 
70810 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70811 fnd_file.put_line(fnd_file.LOG, '                    ');
70812 
70813 
70814 xla_exceptions_pkg.raise_message
70815       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_104');
70816 
70817 
70818 WHEN OTHERS THEN
70819    xla_exceptions_pkg.raise_message
70820       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_104');
70821 END EventClass_104;
70822 --
70823 
70824 ---------------------------------------
70825 --
70826 -- PRIVATE PROCEDURE
70827 --         insert_sources_105
70828 --
70829 ----------------------------------------
70830 --
70831 PROCEDURE insert_sources_105(
70832                                 p_target_ledger_id       IN NUMBER
70833                               , p_language               IN VARCHAR2
70834                               , p_sla_ledger_id          IN NUMBER
70835                               , p_pad_start_date         IN DATE
70836                               , p_pad_end_date           IN DATE
70837                          )
70838 IS
70839 
70840 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
70841 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
70842 p_apps_owner                   VARCHAR2(30);
70843 l_log_module                   VARCHAR2(240);
70844 BEGIN
70845 IF g_log_enabled THEN
70846       l_log_module := C_DEFAULT_MODULE||'.insert_sources_105';
70847 END IF;
70848 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70849 
70850       trace
70851          (p_msg      => 'BEGIN of insert_sources_105'
70852          ,p_level    => C_LEVEL_PROCEDURE
70853          ,p_module   => l_log_module);
70854 
70855 END IF;
70856 
70857 -- select APPS owner
70858 SELECT oracle_username
70859   INTO p_apps_owner
70860   FROM fnd_oracle_userid
70861  WHERE read_only_flag = 'U'
70862 ;
70863 
70864 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70865       trace
70866          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
70867                         ' - p_language = '||p_language||
70868                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
70869                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
70870                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
70871                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
70872          ,p_level    => C_LEVEL_STATEMENT
70873          ,p_module   => l_log_module);
70874 END IF;
70875 
70876 
70877 --
70878 INSERT INTO xla_diag_sources --hdr2
70879 (
70880         event_id
70881       , ledger_id
70882       , sla_ledger_id
70883       , description_language
70884       , object_name
70885       , object_type_code
70886       , line_number
70887       , source_application_id
70888       , source_type_code
70889       , source_code
70890       , source_value
70891       , source_meaning
70892       , created_by
70893       , creation_date
70894       , last_update_date
70895       , last_updated_by
70896       , last_update_login
70897       , program_update_date
70898       , program_application_id
70899       , program_id
70900       , request_id
70901 )
70902 SELECT
70903         event_id
70904       , p_target_ledger_id
70905       , p_sla_ledger_id
70906       , p_language
70907       , object_name
70908       , object_type_code
70909       , line_number
70910       , source_application_id
70911       , source_type_code
70912       , source_code
70913       , SUBSTR(source_value ,1,1996)
70917       , TRUNC(SYSDATE)
70914       , SUBSTR(source_meaning ,1,200)
70915       , xla_environment_pkg.g_Usr_Id
70916       , TRUNC(SYSDATE)
70918       , xla_environment_pkg.g_Usr_Id
70919       , xla_environment_pkg.g_Login_Id
70920       , TRUNC(SYSDATE)
70921       , xla_environment_pkg.g_Prog_Appl_Id
70922       , xla_environment_pkg.g_Prog_Id
70923       , xla_environment_pkg.g_Req_Id
70924   FROM (
70925        SELECT xet.event_id                  event_id
70926             , 0                          line_number
70927             , CASE r
70928                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
70929                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
70930                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
70931                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
70932                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
70933                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70934                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70935                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70936                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70937                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70938                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70939                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70940                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70941                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70942                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70943                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70944                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
70945                 
70946                ELSE null
70947               END                           object_name
70948             , CASE r
70949                 WHEN 1 THEN 'HEADER' 
70950                 WHEN 2 THEN 'HEADER' 
70951                 WHEN 3 THEN 'HEADER' 
70952                 WHEN 4 THEN 'HEADER' 
70953                 WHEN 5 THEN 'HEADER' 
70954                 WHEN 6 THEN 'HEADER' 
70955                 WHEN 7 THEN 'HEADER' 
70956                 WHEN 8 THEN 'HEADER' 
70957                 WHEN 9 THEN 'HEADER' 
70958                 WHEN 10 THEN 'HEADER' 
70959                 WHEN 11 THEN 'HEADER' 
70960                 WHEN 12 THEN 'HEADER' 
70961                 WHEN 13 THEN 'HEADER' 
70962                 WHEN 14 THEN 'HEADER' 
70963                 WHEN 15 THEN 'HEADER' 
70964                 WHEN 16 THEN 'HEADER' 
70965                 WHEN 17 THEN 'HEADER' 
70966                 
70967                 ELSE null
70968               END                           object_type_code
70969             , CASE r
70970                 WHEN 1 THEN '200' 
70971                 WHEN 2 THEN '200' 
70972                 WHEN 3 THEN '200' 
70973                 WHEN 4 THEN '200' 
70974                 WHEN 5 THEN '200' 
70975                 WHEN 6 THEN '200' 
70976                 WHEN 7 THEN '200' 
70977                 WHEN 8 THEN '200' 
70978                 WHEN 9 THEN '200' 
70979                 WHEN 10 THEN '200' 
70980                 WHEN 11 THEN '200' 
70981                 WHEN 12 THEN '200' 
70982                 WHEN 13 THEN '200' 
70983                 WHEN 14 THEN '200' 
70984                 WHEN 15 THEN '200' 
70985                 WHEN 16 THEN '200' 
70986                 WHEN 17 THEN '200' 
70987                 
70988                 ELSE null
70989               END                           source_application_id
70990             , 'S'             source_type_code
70991             , CASE r
70992                 WHEN 1 THEN 'ASP_RATE_VAR_GAIN_CCID' 
70993                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
70994                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
70995                 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG' 
70996                 WHEN 5 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
70997                 WHEN 6 THEN 'AI_INVOICE_ID' 
70998                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
70999                 WHEN 8 THEN 'INV_EXCHANGE_DATE' 
71000                 WHEN 9 THEN 'INV_EXCHANGE_RATE' 
71001                 WHEN 10 THEN 'INV_EXCHANGE_RATE_TYPE' 
71002                 WHEN 11 THEN 'AI_VENDOR_ID' 
71003                 WHEN 12 THEN 'AI_VENDOR_SITE_ID' 
71004                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
71005                 WHEN 14 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
71006                 WHEN 15 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
71007                 WHEN 16 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
71008                 WHEN 17 THEN 'INV_DOC_SEQUENCE_VALUE' 
71009                 
71010                 ELSE null
71011               END                           source_code
71012             , CASE r
71013                 WHEN 1 THEN TO_CHAR(h3.ASP_RATE_VAR_GAIN_CCID)
71014                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
71015                 WHEN 3 THEN TO_CHAR(h3.ASP_RATE_VAR_LOSS_CCID)
71016                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
71017                 WHEN 5 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
71018                 WHEN 6 THEN TO_CHAR(h2.AI_INVOICE_ID)
71019                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
71020                 WHEN 8 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
71021                 WHEN 9 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
71022                 WHEN 10 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
71023                 WHEN 11 THEN TO_CHAR(h2.AI_VENDOR_ID)
71024                 WHEN 12 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
71028                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
71025                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
71026                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
71027                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
71029                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
71030                 
71031                 ELSE null
71032               END                           source_value
71033             , CASE r
71034                 WHEN 2 THEN fvl7.meaning
71035                 WHEN 4 THEN fvl12.meaning
71036                 WHEN 5 THEN fvl17.meaning
71037                 WHEN 14 THEN fvl68.meaning
71038                 
71039                 ELSE null
71040               END               source_meaning
71041          FROM xla_events_gt     xet  
71042       , AP_INVOICE_EXTRACT_HEADER_V  h2
71043       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
71044   , fnd_lookup_values    fvl7
71045   , fnd_lookup_values    fvl12
71046   , fnd_lookup_values    fvl17
71047   , fnd_lookup_values    fvl68
71048              ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
71049          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
71050            AND xet.event_class_code = C_EVENT_CLASS_CODE
71051               AND h2.event_id = xet.event_id
71052  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
71053   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
71054   AND fvl7.view_application_id(+) = 200
71055   AND fvl7.language(+)            = USERENV('LANG')
71056      AND fvl12.lookup_type(+)         = 'YES_NO'
71057   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
71058   AND fvl12.view_application_id(+) = 0
71059   AND fvl12.language(+)            = USERENV('LANG')
71060      AND fvl17.lookup_type(+)         = 'YES_NO'
71061   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
71062   AND fvl17.view_application_id(+) = 0
71063   AND fvl17.language(+)            = USERENV('LANG')
71064      AND fvl68.lookup_type(+)         = 'INVOICE TYPE'
71065   AND fvl68.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
71066   AND fvl68.view_application_id(+) = 200
71067   AND fvl68.language(+)            = USERENV('LANG')
71068   
71069 )
71070 ;
71071 --
71072 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71073 
71074       trace
71075          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
71076          ,p_level    => C_LEVEL_STATEMENT
71077          ,p_module   => l_log_module);
71078 
71079 END IF;
71080 --
71081 
71082 
71083 
71084 --
71085 INSERT INTO xla_diag_sources  --line2
71086 (
71087         event_id
71088       , ledger_id
71089       , sla_ledger_id
71090       , description_language
71091       , object_name
71092       , object_type_code
71093       , line_number
71094       , source_application_id
71095       , source_type_code
71096       , source_code
71097       , source_value
71098       , source_meaning
71099       , created_by
71100       , creation_date
71101       , last_update_date
71102       , last_updated_by
71103       , last_update_login
71104       , program_update_date
71105       , program_application_id
71106       , program_id
71107       , request_id
71108 )
71109 SELECT  event_id
71110       , p_target_ledger_id
71111       , p_sla_ledger_id
71112       , p_language
71113       , object_name
71114       , object_type_code
71115       , line_number
71116       , source_application_id
71117       , source_type_code
71118       , source_code
71119       , SUBSTR(source_value,1,1996)
71120       , SUBSTR(source_meaning ,1,200)
71121       , xla_environment_pkg.g_Usr_Id
71122       , TRUNC(SYSDATE)
71123       , TRUNC(SYSDATE)
71124       , xla_environment_pkg.g_Usr_Id
71125       , xla_environment_pkg.g_Login_Id
71126       , TRUNC(SYSDATE)
71127       , xla_environment_pkg.g_Prog_Appl_Id
71128       , xla_environment_pkg.g_Prog_Id
71129       , xla_environment_pkg.g_Req_Id
71130   FROM (
71131        SELECT xet.event_id                  event_id
71132             , l1.line_number                 line_number
71133             , CASE r
71134                WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71135                 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71136                 WHEN 3 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71137                 WHEN 4 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71138                 WHEN 5 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71139                 WHEN 6 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71140                 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71141                 WHEN 8 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71142                 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71143                 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71144                 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71145                 WHEN 12 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71146                 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71147                 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71148                 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71149                 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71150                 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71151                 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71152                 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71156                 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71153                 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71154                 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71155                 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71157                 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71158                 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71159                 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71160                 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71161                 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71162                 WHEN 29 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71163                 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71164                 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71165                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
71166                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
71167                 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71168                 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71169                 WHEN 36 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71170                 WHEN 37 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71171                 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71172                 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71173                 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71174                 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71175                 WHEN 42 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71176                 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71177                 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71178                 WHEN 45 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71179                 WHEN 46 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71180                 WHEN 47 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71181                 WHEN 48 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
71182                 
71183                ELSE null
71184               END                           object_name
71185             , CASE r
71186                 WHEN 1 THEN 'LINE' 
71187                 WHEN 2 THEN 'LINE' 
71188                 WHEN 3 THEN 'LINE' 
71189                 WHEN 4 THEN 'LINE' 
71190                 WHEN 5 THEN 'LINE' 
71191                 WHEN 6 THEN 'LINE' 
71192                 WHEN 7 THEN 'LINE' 
71193                 WHEN 8 THEN 'LINE' 
71194                 WHEN 9 THEN 'LINE' 
71195                 WHEN 10 THEN 'LINE' 
71196                 WHEN 11 THEN 'LINE' 
71197                 WHEN 12 THEN 'LINE' 
71198                 WHEN 13 THEN 'LINE' 
71199                 WHEN 14 THEN 'LINE' 
71200                 WHEN 15 THEN 'LINE' 
71201                 WHEN 16 THEN 'LINE' 
71202                 WHEN 17 THEN 'LINE' 
71203                 WHEN 18 THEN 'LINE' 
71204                 WHEN 19 THEN 'LINE' 
71205                 WHEN 20 THEN 'LINE' 
71206                 WHEN 21 THEN 'LINE' 
71207                 WHEN 22 THEN 'LINE' 
71208                 WHEN 23 THEN 'LINE' 
71209                 WHEN 24 THEN 'LINE' 
71210                 WHEN 25 THEN 'LINE' 
71211                 WHEN 26 THEN 'LINE' 
71212                 WHEN 27 THEN 'LINE' 
71213                 WHEN 28 THEN 'LINE' 
71214                 WHEN 29 THEN 'LINE' 
71215                 WHEN 30 THEN 'LINE' 
71216                 WHEN 31 THEN 'LINE' 
71217                 WHEN 32 THEN 'LINE' 
71218                 WHEN 33 THEN 'LINE' 
71219                 WHEN 34 THEN 'LINE' 
71220                 WHEN 35 THEN 'LINE' 
71221                 WHEN 36 THEN 'LINE' 
71222                 WHEN 37 THEN 'LINE' 
71223                 WHEN 38 THEN 'LINE' 
71224                 WHEN 39 THEN 'LINE' 
71225                 WHEN 40 THEN 'LINE' 
71226                 WHEN 41 THEN 'LINE' 
71227                 WHEN 42 THEN 'LINE' 
71228                 WHEN 43 THEN 'LINE' 
71229                 WHEN 44 THEN 'LINE' 
71230                 WHEN 45 THEN 'LINE' 
71231                 WHEN 46 THEN 'LINE' 
71232                 WHEN 47 THEN 'LINE' 
71233                 WHEN 48 THEN 'LINE' 
71234                 
71235                 ELSE null
71236               END                           object_type_code
71237             , CASE r
71238                 WHEN 1 THEN '200' 
71239                 WHEN 2 THEN '200' 
71240                 WHEN 3 THEN '200' 
71241                 WHEN 4 THEN '200' 
71242                 WHEN 5 THEN '200' 
71243                 WHEN 6 THEN '200' 
71244                 WHEN 7 THEN '200' 
71245                 WHEN 8 THEN '200' 
71246                 WHEN 9 THEN '200' 
71247                 WHEN 10 THEN '200' 
71248                 WHEN 11 THEN '200' 
71249                 WHEN 12 THEN '200' 
71250                 WHEN 13 THEN '200' 
71251                 WHEN 14 THEN '200' 
71252                 WHEN 15 THEN '200' 
71253                 WHEN 16 THEN '200' 
71254                 WHEN 17 THEN '200' 
71255                 WHEN 18 THEN '200' 
71256                 WHEN 19 THEN '200' 
71257                 WHEN 20 THEN '200' 
71258                 WHEN 21 THEN '200' 
71259                 WHEN 22 THEN '200' 
71260                 WHEN 23 THEN '200' 
71261                 WHEN 24 THEN '200' 
71262                 WHEN 25 THEN '200' 
71263                 WHEN 26 THEN '200' 
71264                 WHEN 27 THEN '200' 
71265                 WHEN 28 THEN '200' 
71266                 WHEN 29 THEN '200' 
71267                 WHEN 30 THEN '200' 
71268                 WHEN 31 THEN '200' 
71269                 WHEN 32 THEN '200' 
71273                 WHEN 36 THEN '200' 
71270                 WHEN 33 THEN '200' 
71271                 WHEN 34 THEN '200' 
71272                 WHEN 35 THEN '200' 
71274                 WHEN 37 THEN '200' 
71275                 WHEN 38 THEN '200' 
71276                 WHEN 39 THEN '200' 
71277                 WHEN 40 THEN '200' 
71278                 WHEN 41 THEN '200' 
71279                 WHEN 42 THEN '200' 
71280                 WHEN 43 THEN '200' 
71281                 WHEN 44 THEN '200' 
71282                 WHEN 45 THEN '200' 
71283                 WHEN 46 THEN '200' 
71284                 WHEN 47 THEN '200' 
71285                 WHEN 48 THEN '200' 
71286                 
71287                 ELSE null
71288               END                           source_application_id
71289             , 'S'             source_type_code
71290             , CASE r
71291                 WHEN 1 THEN 'AID_DESCRIPTION' 
71292                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
71293                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
71294                 WHEN 4 THEN 'AID_DIST_CCID' 
71295                 WHEN 5 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
71296                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
71297                 WHEN 7 THEN 'AID_AMOUNT_VARIANCE' 
71298                 WHEN 8 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
71299                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
71300                 WHEN 10 THEN 'DISTRIBUTION_LINK_TYPE' 
71301                 WHEN 11 THEN 'ALLOC_TO_MAIN_DIST_ID' 
71302                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
71303                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
71304                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
71305                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
71306                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
71307                 WHEN 17 THEN 'AID_INVOICE_DIST_ID' 
71308                 WHEN 18 THEN 'UPG_ENC_CR_CCID' 
71309                 WHEN 19 THEN 'UPG_ENC_CR_AMT' 
71310                 WHEN 20 THEN 'UPG_ENC_CR_BASE_AMT' 
71311                 WHEN 21 THEN 'UPG_ENC_DR_CCID' 
71312                 WHEN 22 THEN 'UPG_ENC_DR_AMT' 
71313                 WHEN 23 THEN 'UPG_ENC_DR_BASE_AMT' 
71314                 WHEN 24 THEN 'UPG_AP_ENCUM_OPTION' 
71315                 WHEN 25 THEN 'AID_BASE_AMOUNT_VARIANCE' 
71316                 WHEN 26 THEN 'DEFERRED_END_DATE' 
71317                 WHEN 27 THEN 'DEFERRED_OPTION' 
71318                 WHEN 28 THEN 'DEFERRED_START_DATE' 
71319                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
71320                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
71321                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
71322                 WHEN 32 THEN 'TAX_LINE_ID' 
71323                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
71324                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
71325                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
71326                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
71327                 WHEN 37 THEN 'AID_AMOUNT' 
71328                 WHEN 38 THEN 'PO_DISTRIBUTION_ID' 
71329                 WHEN 39 THEN 'SELF_ASSESSED_TAX_FLAG' 
71330                 WHEN 40 THEN 'BUS_FLOW_PO_APP_ID' 
71331                 WHEN 41 THEN 'BUS_FLOW_PO_DIST_TYPE' 
71332                 WHEN 42 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
71333                 WHEN 43 THEN 'BUS_FLOW_PO_DIST_ID' 
71334                 WHEN 44 THEN 'BUS_FLOW_PO_DOC_ID' 
71335                 WHEN 45 THEN 'ENCUMBRANCE_AMOUNT' 
71336                 WHEN 46 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
71337                 WHEN 47 THEN 'AID_QUANTITY_VARIANCE' 
71338                 WHEN 48 THEN 'AID_BASE_QUANTITY_VARIANCE' 
71339                 
71340                 ELSE null
71341               END                           source_code
71342             , CASE r
71343                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
71344                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
71345                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
71346                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
71347                 WHEN 5 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
71348                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
71349                 WHEN 7 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
71350                 WHEN 8 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
71351                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
71352                 WHEN 10 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
71353                 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
71354                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
71355                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
71356                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
71357                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
71358                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
71359                 WHEN 17 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
71360                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
71361                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
71362                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
71363                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
71364                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
71365                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
71366                 WHEN 24 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
71367                 WHEN 25 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
71368                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
71369                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
71370                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
71371                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
71375                 WHEN 33 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
71372                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
71373                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
71374                 WHEN 32 THEN TO_CHAR(l4.TAX_LINE_ID)
71376                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
71377                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
71378                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
71379                 WHEN 37 THEN TO_CHAR(l1.AID_AMOUNT)
71380                 WHEN 38 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
71381                 WHEN 39 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
71382                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
71383                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
71384                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
71385                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
71386                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
71387                 WHEN 45 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
71388                 WHEN 46 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
71389                 WHEN 47 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
71390                 WHEN 48 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
71391                 
71392                 ELSE null
71393               END                           source_value
71394             , CASE r
71395                 WHEN 3 THEN fvl9.meaning
71396                 WHEN 6 THEN fvl15.meaning
71397                 WHEN 8 THEN fvl18.meaning
71398                 WHEN 29 THEN fvl46.meaning
71399                 WHEN 39 THEN fvl59.meaning
71400                 
71401                 ELSE null
71402               END               source_meaning
71403          FROM  xla_events_gt     xet  
71404         , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
71405         , ZX_AP_DEF_TAX_EXTRACT_V  l4
71406         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
71407   , fnd_lookup_values    fvl9
71408   , fnd_lookup_values    fvl15
71409   , fnd_lookup_values    fvl18
71410   , fnd_lookup_values    fvl46
71411   , fnd_lookup_values    fvl59
71412             , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
71413         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
71414           AND xet.event_class_code = C_EVENT_CLASS_CODE
71415             AND l1.event_id          = xet.event_id
71416  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
71417   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
71418   AND fvl9.view_application_id(+) = 201
71419   AND fvl9.language(+)            = USERENV('LANG')
71420      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
71421   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
71422   AND fvl15.view_application_id(+) = 200
71423   AND fvl15.language(+)            = USERENV('LANG')
71424      AND fvl18.lookup_type(+)         = 'YES_NO'
71425   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
71426   AND fvl18.view_application_id(+) = 0
71427   AND fvl18.language(+)            = USERENV('LANG')
71428      AND fvl46.lookup_type(+)         = 'YES_NO'
71429   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
71430   AND fvl46.view_application_id(+) = 0
71431   AND fvl46.language(+)            = USERENV('LANG')
71432      AND fvl59.lookup_type(+)         = 'YES_NO'
71433   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
71434   AND fvl59.view_application_id(+) = 0
71435   AND fvl59.language(+)            = USERENV('LANG')
71436   
71437 )
71438 ;
71439 --
71440 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71441 
71442       trace
71443          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
71444          ,p_level    => C_LEVEL_STATEMENT
71445          ,p_module   => l_log_module);
71446 
71447 END IF;
71448 
71449 
71450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71451       trace
71452          (p_msg      => 'END of insert_sources_105'
71453          ,p_level    => C_LEVEL_PROCEDURE
71454          ,p_module   => l_log_module);
71455 END IF;
71456 EXCEPTION
71457   WHEN xla_exceptions_pkg.application_exception THEN
71458       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
71459             trace
71460                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
71461                ,p_level    => C_LEVEL_EXCEPTION
71462                ,p_module   => l_log_module);
71463       END IF;
71464       RAISE;
71465   WHEN OTHERS THEN
71466       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
71467             trace
71468                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
71469                ,p_level    => C_LEVEL_EXCEPTION
71470                ,p_module   => l_log_module);
71471        END IF;
71472        xla_exceptions_pkg.raise_message
71473            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_105');
71474 END insert_sources_105;
71475 --
71476 
71477 ---------------------------------------
71478 --
71479 -- PRIVATE FUNCTION
71480 --         EventClass_105
71481 --
71482 ----------------------------------------
71483 --
71484 FUNCTION EventClass_105
71485        (p_application_id         IN NUMBER
71486        ,p_base_ledger_id         IN NUMBER
71487        ,p_target_ledger_id       IN NUMBER
71488        ,p_language               IN VARCHAR2
71492        ,p_pad_end_date           IN DATE
71489        ,p_currency_code          IN VARCHAR2
71490        ,p_sla_ledger_id          IN NUMBER
71491        ,p_pad_start_date         IN DATE
71493        ,p_primary_ledger_id      IN NUMBER)
71494 RETURN BOOLEAN IS
71495 --
71496 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
71497 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
71498 
71499 l_calculate_acctd_flag   VARCHAR2(1) :='N';
71500 l_calculate_g_l_flag     VARCHAR2(1) :='N';
71501 --
71502 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71503 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71504 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71505 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71506 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71507 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71508 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71509 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71510 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71511 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71512 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71513 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71514 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71515 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71516 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71517 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71518 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71519 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71520 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71521 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71522 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71523 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71524 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
71525 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71526 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
71527 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
71528 
71529 l_event_id                             NUMBER;
71530 l_previous_event_id                    NUMBER;
71531 l_first_event_id                       NUMBER;
71532 l_last_event_id                        NUMBER;
71533 
71534 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
71535 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
71536 --
71537 --
71538 l_result                    BOOLEAN := TRUE;
71539 l_rows                      NUMBER  := 1000;
71540 l_event_type_name           VARCHAR2(80) := 'All';
71541 l_event_class_name          VARCHAR2(80) := 'Invoices';
71542 l_description               VARCHAR2(4000);
71543 l_transaction_reversal      NUMBER;
71544 l_ae_header_id              NUMBER;
71545 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
71546 l_log_module                VARCHAR2(240);
71547 --
71548 l_acct_reversal_source      VARCHAR2(30);
71549 l_trx_reversal_source       VARCHAR2(30);
71550 
71551 l_continue_with_lines       BOOLEAN := TRUE;
71552 --
71553 l_acc_rev_gl_date_source    DATE;                      -- 4262811
71554 --
71555 type t_array_event_id is table of number index by binary_integer;
71556 
71557 l_rec_array_event                    t_rec_array_event;
71558 l_null_rec_array_event               t_rec_array_event;
71559 l_array_ae_header_id                 xla_number_array_type;
71560 l_actual_flag                        VARCHAR2(1) := NULL;
71561 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
71562 l_balance_type_code                  VARCHAR2(1) :=NULL;
71563 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
71564 
71565 --
71566 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
71567 --
71568 
71569 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
71570 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
71571 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
71572 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
71573 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
71574 TYPE t_array_source_24 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
71575 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
71576 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
71577 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
71578 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
71582 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
71579 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
71580 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
71581 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
71583 TYPE t_array_source_122 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
71584 TYPE t_array_source_123 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
71585 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
71586 
71587 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
71588 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
71589 TYPE t_array_source_9 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
71590 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
71591 TYPE t_array_source_13 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
71592 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
71593 TYPE t_array_source_16 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
71594 TYPE t_array_source_18 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
71595 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
71596 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
71597 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71598 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
71599 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
71600 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
71601 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71602 TYPE t_array_source_29 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
71603 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71604 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
71605 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
71606 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
71607 TYPE t_array_source_35 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
71608 TYPE t_array_source_36 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
71609 TYPE t_array_source_37 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
71610 TYPE t_array_source_38 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
71611 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
71612 TYPE t_array_source_43 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
71613 TYPE t_array_source_44 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
71614 TYPE t_array_source_45 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
71615 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
71616 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
71617 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
71618 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
71619 TYPE t_array_source_53 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71620 TYPE t_array_source_54 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
71621 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
71622 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
71623 TYPE t_array_source_57 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
71624 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
71625 TYPE t_array_source_59 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
71626 TYPE t_array_source_60 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
71627 TYPE t_array_source_61 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
71628 TYPE t_array_source_62 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
71629 TYPE t_array_source_63 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71633 TYPE t_array_source_81 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
71630 TYPE t_array_source_64 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
71631 TYPE t_array_source_65 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
71632 TYPE t_array_source_66 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
71634 TYPE t_array_source_82 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
71635 
71636 l_array_source_6              t_array_source_6;
71637 l_array_source_7              t_array_source_7;
71638 l_array_source_7_meaning      t_array_lookup_meaning;
71639 l_array_source_10              t_array_source_10;
71640 l_array_source_12              t_array_source_12;
71641 l_array_source_12_meaning      t_array_lookup_meaning;
71642 l_array_source_17              t_array_source_17;
71643 l_array_source_17_meaning      t_array_lookup_meaning;
71644 l_array_source_24              t_array_source_24;
71645 l_array_source_33              t_array_source_33;
71646 l_array_source_39              t_array_source_39;
71647 l_array_source_40              t_array_source_40;
71648 l_array_source_41              t_array_source_41;
71649 l_array_source_47              t_array_source_47;
71650 l_array_source_48              t_array_source_48;
71651 l_array_source_49              t_array_source_49;
71652 l_array_source_68              t_array_source_68;
71653 l_array_source_68_meaning      t_array_lookup_meaning;
71654 l_array_source_122              t_array_source_122;
71655 l_array_source_123              t_array_source_123;
71656 l_array_source_124              t_array_source_124;
71657 
71658 l_array_source_1      t_array_source_1;
71659 l_array_source_8      t_array_source_8;
71660 l_array_source_9      t_array_source_9;
71661 l_array_source_9_meaning      t_array_lookup_meaning;
71662 l_array_source_11      t_array_source_11;
71663 l_array_source_13      t_array_source_13;
71664 l_array_source_15      t_array_source_15;
71665 l_array_source_15_meaning      t_array_lookup_meaning;
71666 l_array_source_16      t_array_source_16;
71667 l_array_source_18      t_array_source_18;
71668 l_array_source_18_meaning      t_array_lookup_meaning;
71669 l_array_source_19      t_array_source_19;
71670 l_array_source_21      t_array_source_21;
71671 l_array_source_23      t_array_source_23;
71672 l_array_source_25      t_array_source_25;
71673 l_array_source_26      t_array_source_26;
71674 l_array_source_27      t_array_source_27;
71675 l_array_source_28      t_array_source_28;
71676 l_array_source_29      t_array_source_29;
71677 l_array_source_30      t_array_source_30;
71678 l_array_source_31      t_array_source_31;
71679 l_array_source_32      t_array_source_32;
71680 l_array_source_34      t_array_source_34;
71681 l_array_source_35      t_array_source_35;
71682 l_array_source_36      t_array_source_36;
71683 l_array_source_37      t_array_source_37;
71684 l_array_source_38      t_array_source_38;
71685 l_array_source_42      t_array_source_42;
71686 l_array_source_43      t_array_source_43;
71687 l_array_source_44      t_array_source_44;
71688 l_array_source_45      t_array_source_45;
71689 l_array_source_46      t_array_source_46;
71690 l_array_source_46_meaning      t_array_lookup_meaning;
71691 l_array_source_50      t_array_source_50;
71692 l_array_source_51      t_array_source_51;
71693 l_array_source_52      t_array_source_52;
71694 l_array_source_53      t_array_source_53;
71695 l_array_source_54      t_array_source_54;
71696 l_array_source_55      t_array_source_55;
71697 l_array_source_56      t_array_source_56;
71698 l_array_source_57      t_array_source_57;
71699 l_array_source_58      t_array_source_58;
71700 l_array_source_59      t_array_source_59;
71701 l_array_source_59_meaning      t_array_lookup_meaning;
71702 l_array_source_60      t_array_source_60;
71703 l_array_source_61      t_array_source_61;
71704 l_array_source_62      t_array_source_62;
71705 l_array_source_63      t_array_source_63;
71706 l_array_source_64      t_array_source_64;
71707 l_array_source_65      t_array_source_65;
71708 l_array_source_66      t_array_source_66;
71709 l_array_source_81      t_array_source_81;
71710 l_array_source_82      t_array_source_82;
71711 
71712 --
71713 CURSOR header_cur
71714 IS
71715 SELECT /*+ leading(xet) cardinality(xet,1) */
71716 -- Event Class Code: INVOICES
71717     xet.entity_id
71718    ,xet.legal_entity_id
71719    ,xet.entity_code
71720    ,xet.transaction_number
71721    ,xet.event_id
71722    ,xet.event_class_code
71723    ,xet.event_type_code
71724    ,xet.event_number
71725    ,xet.event_date
71726    ,xet.transaction_date
71727    ,xet.reference_num_1
71728    ,xet.reference_num_2
71729    ,xet.reference_num_3
71730    ,xet.reference_num_4
71731    ,xet.reference_char_1
71732    ,xet.reference_char_2
71733    ,xet.reference_char_3
71734    ,xet.reference_char_4
71735    ,xet.reference_date_1
71736    ,xet.reference_date_2
71737    ,xet.reference_date_3
71738    ,xet.reference_date_4
71739    ,xet.event_created_by
71740    ,xet.budgetary_control_flag 
71741   , h3.ASP_RATE_VAR_GAIN_CCID    source_6
71742   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_7
71743   , fvl7.meaning   source_7_meaning
71744   , h3.ASP_RATE_VAR_LOSS_CCID    source_10
71745   , h3.ASP_AUTO_OFFSET_FLAG    source_12
71746   , fvl12.meaning   source_12_meaning
71747   , h3.FSP_PURCH_ENCUMBRANCE_FLAG    source_17
71751   , h2.INV_EXCHANGE_DATE    source_39
71748   , fvl17.meaning   source_17_meaning
71749   , h2.AI_INVOICE_ID    source_24
71750   , h2.AI_INVOICE_CURRENCY_CODE    source_33
71752   , h2.INV_EXCHANGE_RATE    source_40
71753   , h2.INV_EXCHANGE_RATE_TYPE    source_41
71754   , h2.AI_VENDOR_ID    source_47
71755   , h2.AI_VENDOR_SITE_ID    source_48
71756   , h2.THIRD_PARTY_TYPE    source_49
71757   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_68
71758   , fvl68.meaning   source_68_meaning
71759   , h2.INV_DOC_SEQUENCE_CATEGORY    source_122
71760   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_123
71761   , h2.INV_DOC_SEQUENCE_VALUE    source_124
71762   FROM xla_events_gt     xet 
71763   , AP_INVOICE_EXTRACT_HEADER_V  h2
71764   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
71765   , fnd_lookup_values    fvl7
71766   , fnd_lookup_values    fvl12
71767   , fnd_lookup_values    fvl17
71768   , fnd_lookup_values    fvl68
71769  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
71770    and xet.event_class_code = C_EVENT_CLASS_CODE
71771    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
71772  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
71773   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
71774   AND fvl7.view_application_id(+) = 200
71775   AND fvl7.language(+)            = USERENV('LANG')
71776      AND fvl12.lookup_type(+)         = 'YES_NO'
71777   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
71778   AND fvl12.view_application_id(+) = 0
71779   AND fvl12.language(+)            = USERENV('LANG')
71780      AND fvl17.lookup_type(+)         = 'YES_NO'
71781   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
71782   AND fvl17.view_application_id(+) = 0
71783   AND fvl17.language(+)            = USERENV('LANG')
71784      AND fvl68.lookup_type(+)         = 'INVOICE TYPE'
71785   AND fvl68.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
71786   AND fvl68.view_application_id(+) = 200
71787   AND fvl68.language(+)            = USERENV('LANG')
71788   
71789  ORDER BY event_id
71790 ;
71791 
71792 
71793 --
71794 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
71795 IS
71796 SELECT  /*+ leading(xet) cardinality(xet,1) */
71797 -- Event Class Code: INVOICES
71798     xet.entity_id
71799    ,xet.legal_entity_id
71800    ,xet.entity_code
71801    ,xet.transaction_number
71802    ,xet.event_id
71803    ,xet.event_class_code
71804    ,xet.event_type_code
71805    ,xet.event_number
71806    ,xet.event_date
71807    ,xet.transaction_date
71808    ,xet.reference_num_1
71809    ,xet.reference_num_2
71810    ,xet.reference_num_3
71811    ,xet.reference_num_4
71812    ,xet.reference_char_1
71813    ,xet.reference_char_2
71814    ,xet.reference_char_3
71815    ,xet.reference_char_4
71816    ,xet.reference_date_1
71817    ,xet.reference_date_2
71818    ,xet.reference_date_3
71819    ,xet.reference_date_4
71820    ,xet.event_created_by
71821    ,xet.budgetary_control_flag
71822  , l1.LINE_NUMBER  
71823   , l1.AID_DESCRIPTION    source_1
71824   , l1.INV_DIST_BASE_AMOUNT    source_8
71825   , l1.RELATED_INV_DIST_DEST_TYPE    source_9
71826   , fvl9.meaning   source_9_meaning
71827   , l1.AID_DIST_CCID    source_11
71828   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_13
71829   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_15
71830   , fvl15.meaning   source_15_meaning
71831   , l1.AID_AMOUNT_VARIANCE    source_16
71832   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_18
71833   , fvl18.meaning   source_18_meaning
71834   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_19
71835   , l1.DISTRIBUTION_LINK_TYPE    source_21
71836   , l1.ALLOC_TO_MAIN_DIST_ID    source_23
71837   , l1.BUS_FLOW_AP_APP_ID    source_25
71838   , l1.BUS_FLOW_INV_DIST_TYPE    source_26
71839   , l1.BUS_FLOW_INV_ENTITY_CODE    source_27
71840   , l1.BUS_FLOW_INV_DIST_ID    source_28
71841   , l1.BUS_FLOW_INV_ID    source_29
71842   , l1.AID_INVOICE_DIST_ID    source_30
71843   , l1.UPG_ENC_CR_CCID    source_31
71844   , l1.UPG_ENC_CR_AMT    source_32
71845   , l1.UPG_ENC_CR_BASE_AMT    source_34
71846   , l1.UPG_ENC_DR_CCID    source_35
71847   , l1.UPG_ENC_DR_AMT    source_36
71848   , l1.UPG_ENC_DR_BASE_AMT    source_37
71849   , l1.UPG_AP_ENCUM_OPTION    source_38
71850   , l1.AID_BASE_AMOUNT_VARIANCE    source_42
71851   , l1.DEFERRED_END_DATE    source_43
71852   , l1.DEFERRED_OPTION    source_44
71853   , l1.DEFERRED_START_DATE    source_45
71854   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_46
71855   , fvl46.meaning   source_46_meaning
71856   , l1.AID_PARENT_REVERSAL_ID    source_50
71857   , l1.AID_STAT_AMOUNT    source_51
71858   , l4.TAX_LINE_ID    source_52
71859   , l5.REC_NREC_TAX_DIST_ID    source_53
71860   , l1.SUMMARY_TAX_LINE_ID    source_54
71861   , l1.UPG_CR_ENC_TYPE_ID    source_55
71862   , l1.UPG_DR_ENC_TYPE_ID    source_56
71863   , l1.AID_AMOUNT    source_57
71864   , l1.PO_DISTRIBUTION_ID    source_58
71865   , l1.SELF_ASSESSED_TAX_FLAG    source_59
71866   , fvl59.meaning   source_59_meaning
71867   , l1.BUS_FLOW_PO_APP_ID    source_60
71868   , l1.BUS_FLOW_PO_DIST_TYPE    source_61
71869   , l1.BUS_FLOW_PO_ENTITY_CODE    source_62
71870   , l1.BUS_FLOW_PO_DIST_ID    source_63
71871   , l1.BUS_FLOW_PO_DOC_ID    source_64
71872   , l1.ENCUMBRANCE_AMOUNT    source_65
71873   , l1.ENCUMBRANCE_BASE_AMOUNT    source_66
71874   , l1.AID_QUANTITY_VARIANCE    source_81
71875   , l1.AID_BASE_QUANTITY_VARIANCE    source_82
71876   FROM xla_events_gt     xet 
71877   , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
71881   , fnd_lookup_values    fvl15
71878   , ZX_AP_DEF_TAX_EXTRACT_V  l4
71879   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
71880   , fnd_lookup_values    fvl9
71882   , fnd_lookup_values    fvl18
71883   , fnd_lookup_values    fvl46
71884   , fnd_lookup_values    fvl59
71885  WHERE xet.event_id between x_first_event_id and x_last_event_id
71886    and xet.event_date between p_pad_start_date and p_pad_end_date
71887    and xet.event_class_code = C_EVENT_CLASS_CODE
71888    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
71889  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
71890   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
71891   AND fvl9.view_application_id(+) = 201
71892   AND fvl9.language(+)            = USERENV('LANG')
71893      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
71894   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
71895   AND fvl15.view_application_id(+) = 200
71896   AND fvl15.language(+)            = USERENV('LANG')
71897      AND fvl18.lookup_type(+)         = 'YES_NO'
71898   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
71899   AND fvl18.view_application_id(+) = 0
71900   AND fvl18.language(+)            = USERENV('LANG')
71901      AND fvl46.lookup_type(+)         = 'YES_NO'
71902   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
71903   AND fvl46.view_application_id(+) = 0
71904   AND fvl46.language(+)            = USERENV('LANG')
71905      AND fvl59.lookup_type(+)         = 'YES_NO'
71906   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
71907   AND fvl59.view_application_id(+) = 0
71908   AND fvl59.language(+)            = USERENV('LANG')
71909   ;
71910 
71911 --
71912 BEGIN
71913 IF g_log_enabled THEN
71914    l_log_module := C_DEFAULT_MODULE||'.EventClass_105';
71915 END IF;
71916 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71917    trace
71918       (p_msg      => 'BEGIN of EventClass_105'
71919       ,p_level    => C_LEVEL_PROCEDURE
71920       ,p_module   => l_log_module);
71921 END IF;
71922 
71923 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71924    trace
71925       (p_msg      => 'p_application_id = '||p_application_id||
71926                      ' - p_base_ledger_id = '||p_base_ledger_id||
71927                      ' - p_target_ledger_id  = '||p_target_ledger_id||
71928                      ' - p_language = '||p_language||
71929                      ' - p_currency_code = '||p_currency_code||
71930                      ' - p_sla_ledger_id = '||p_sla_ledger_id
71931       ,p_level    => C_LEVEL_STATEMENT
71932       ,p_module   => l_log_module);
71933 END IF;
71934 --
71935 -- initialze arrays
71936 --
71937 g_array_event.DELETE;
71938 l_rec_array_event := l_null_rec_array_event;
71939 --
71940 --------------------------------------
71941 -- 4262811 Initialze MPA Line Number
71942 --------------------------------------
71943 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
71944 
71945 --
71946 
71947 --
71948 OPEN header_cur;
71949 --
71950 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71951    trace
71952    (p_msg      => 'SQL - FETCH header_cur'
71953    ,p_level    => C_LEVEL_STATEMENT
71954    ,p_module   => l_log_module);
71955 END IF;
71956 --
71957 LOOP
71958 FETCH header_cur BULK COLLECT INTO
71959         l_array_entity_id
71960       , l_array_legal_entity_id
71961       , l_array_entity_code
71962       , l_array_transaction_num
71963       , l_array_event_id
71964       , l_array_class_code
71965       , l_array_event_type
71966       , l_array_event_number
71967       , l_array_event_date
71968       , l_array_transaction_date
71969       , l_array_reference_num_1
71970       , l_array_reference_num_2
71971       , l_array_reference_num_3
71972       , l_array_reference_num_4
71973       , l_array_reference_char_1
71974       , l_array_reference_char_2
71975       , l_array_reference_char_3
71976       , l_array_reference_char_4
71977       , l_array_reference_date_1
71978       , l_array_reference_date_2
71979       , l_array_reference_date_3
71980       , l_array_reference_date_4
71981       , l_array_event_created_by
71982       , l_array_budgetary_control_flag 
71983       , l_array_source_6
71984       , l_array_source_7
71985       , l_array_source_7_meaning
71986       , l_array_source_10
71987       , l_array_source_12
71988       , l_array_source_12_meaning
71989       , l_array_source_17
71990       , l_array_source_17_meaning
71991       , l_array_source_24
71992       , l_array_source_33
71993       , l_array_source_39
71994       , l_array_source_40
71995       , l_array_source_41
71996       , l_array_source_47
71997       , l_array_source_48
71998       , l_array_source_49
71999       , l_array_source_68
72000       , l_array_source_68_meaning
72001       , l_array_source_122
72002       , l_array_source_123
72003       , l_array_source_124
72004       LIMIT l_rows;
72005 --
72006 IF (C_LEVEL_EVENT >= g_log_level) THEN
72007    trace
72008    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
72009    ,p_level    => C_LEVEL_EVENT
72010    ,p_module   => l_log_module);
72011 END IF;
72012 --
72013 EXIT WHEN l_array_entity_id.COUNT = 0;
72014 
72015 -- initialize arrays
72019 --
72016 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
72017 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
72018 
72020 -- Bug 4458708
72021 --
72022 XLA_AE_LINES_PKG.g_LineNumber := 0;
72023 
72024 
72025 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
72026 g_last_hdr_idx := l_array_event_id.LAST;
72027 --
72028 -- loop for the headers. Each iteration is for each header extract row
72029 -- fetched in header cursor
72030 --
72031 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
72032 
72033 --
72034 -- set event info as cache for other routines to refer event attributes
72035 --
72036 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72037    (p_application_id           => p_application_id
72038    ,p_primary_ledger_id        => p_primary_ledger_id
72039    ,p_base_ledger_id           => p_base_ledger_id
72040    ,p_target_ledger_id         => p_target_ledger_id
72041    ,p_entity_id                => l_array_entity_id(hdr_idx)
72042    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
72043    ,p_entity_code              => l_array_entity_code(hdr_idx)
72044    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
72045    ,p_event_id                 => l_array_event_id(hdr_idx)
72046    ,p_event_class_code         => l_array_class_code(hdr_idx)
72047    ,p_event_type_code          => l_array_event_type(hdr_idx)
72048    ,p_event_number             => l_array_event_number(hdr_idx)
72049    ,p_event_date               => l_array_event_date(hdr_idx)
72050    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
72051    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
72052    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
72053    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
72054    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
72055    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
72056    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
72057    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
72058    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
72059    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
72060    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
72061    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
72062    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
72063    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
72064    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
72065 
72066 --
72067 -- set the status of entry to C_VALID (0)
72068 --
72069 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72070 
72071 --
72072 -- initialize a row for ae header
72073 --
72074 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
72075 
72076 l_event_id := l_array_event_id(hdr_idx);
72077 
72078 --
72079 -- storing the hdr_idx for event. May be used by line cursor.
72080 --
72081 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
72082 
72083 --
72084 -- store sources from header extract. This can be improved to
72085 -- store only those sources from header extract that may be used in lines
72086 --
72087 
72088 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
72089 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
72090 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
72091 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
72092 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
72093 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
72094 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
72095 g_array_event(l_event_id).array_value_char('source_17_meaning') := l_array_source_17_meaning(hdr_idx);
72096 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
72097 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
72098 g_array_event(l_event_id).array_value_date('source_39') := l_array_source_39(hdr_idx);
72099 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
72100 g_array_event(l_event_id).array_value_char('source_41') := l_array_source_41(hdr_idx);
72101 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
72102 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
72103 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
72104 g_array_event(l_event_id).array_value_char('source_68') := l_array_source_68(hdr_idx);
72105 g_array_event(l_event_id).array_value_char('source_68_meaning') := l_array_source_68_meaning(hdr_idx);
72106 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
72107 g_array_event(l_event_id).array_value_num('source_123') := l_array_source_123(hdr_idx);
72108 g_array_event(l_event_id).array_value_num('source_124') := l_array_source_124(hdr_idx);
72109 
72110 --
72111 -- initilaize the status of ae headers for diffrent balance types
72112 -- the status is initialised to C_NOT_CREATED (2)
72113 --
72114 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72115 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72119 -- call api to validate and store accounting attributes for header
72116 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72117 
72118 --
72120 --
72121 
72122 ------------------------------------------------------------
72123 -- Accrual Reversal : to get date for Standard Source (NONE)
72124 ------------------------------------------------------------
72125 l_acc_rev_gl_date_source := NULL;
72126 
72127      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
72128       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_122');
72129      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
72130       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_123');
72131      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
72132       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_124');
72133      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
72134       l_rec_acct_attrs.array_date_value(4) := 
72135 xla_ae_sources_pkg.GetSystemSourceDate(
72136    p_source_code           => 'XLA_EVENT_DATE'
72137  , p_source_type_code      => 'Y'
72138  , p_source_application_id =>  602
72139 );
72140 
72141 
72142 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
72143 
72144 XLA_AE_HEADER_PKG.SetJeCategoryName;
72145 
72146 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
72147 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
72148 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
72149 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
72150 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
72151 
72152 
72153 --
72154 xla_ae_header_pkg.SetHdrDescription(
72155    p_description => Description_1 (
72156    p_application_id => p_application_id 
72157    )
72158 );
72159 --
72160 
72161 -- No header level analytical criteria
72162 
72163 --
72164 --accounting attribute enhancement, bug 3612931
72165 --
72166 l_trx_reversal_source := SUBSTR(NULL, 1,30);
72167 
72168 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
72169    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
72170 
72171    xla_accounting_err_pkg.build_message
72172       (p_appli_s_name            => 'XLA'
72173       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
72174       ,p_token_1                 => 'ACCT_ATTR_NAME'
72175       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
72176       ,p_token_2                 => 'PRODUCT_NAME'
72177       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72178       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72179       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
72180       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72181 
72182 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
72183    --
72184    -- following sets the accounting attributes needed to reverse
72185    -- accounting for a distributeion
72186    --
72187    xla_ae_lines_pkg.SetTrxReversalAttrs
72188       (p_event_id              => l_event_id
72189       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
72190       ,p_trx_reversal_source   => l_trx_reversal_source);
72191 
72192 END IF;
72193 
72194 
72195 ----------------------------------------------------------------
72196 -- 4262811 -  update the header statuses to invalid in need be
72197 ----------------------------------------------------------------
72198 --
72199 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
72200 
72201 
72202   -----------------------------------------------
72203   -- No accrual reversal for the event class/type
72204   -----------------------------------------------
72205 ----------------------------------------------------------------
72206 
72207 --
72208 -- this ends the header loop iteration for one bulk fetch
72209 --
72210 END LOOP;
72211 
72212 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
72213 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
72214 
72215 --
72216 -- insert dummy rows into lines gt table that were created due to
72217 -- transaction reversals
72218 --
72219 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
72220    l_result := XLA_AE_LINES_PKG.InsertLines;
72221 END IF;
72222 
72223 --
72224 -- reset the temp_line_num for each set of events fetched from header
72225 -- cursor rather than doing it for each new event in line cursor
72226 -- Bug 3939231
72227 --
72228 xla_ae_lines_pkg.g_temp_line_num := 0;
72229 
72230 
72231 
72232 --
72233 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
72234 --
72235 --
72236 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72237 
72238       trace
72239          (p_msg      => 'SQL - FETCH line_cur'
72240          ,p_level    => C_LEVEL_STATEMENT
72241          ,p_module   => l_log_module);
72242 
72246 LOOP
72243 END IF;
72244 --
72245 --
72247   --
72248   FETCH line_cur BULK COLLECT INTO
72249         l_array_entity_id
72250       , l_array_legal_entity_id
72251       , l_array_entity_code
72252       , l_array_transaction_num
72253       , l_array_event_id
72254       , l_array_class_code
72255       , l_array_event_type
72256       , l_array_event_number
72257       , l_array_event_date
72258       , l_array_transaction_date
72259       , l_array_reference_num_1
72260       , l_array_reference_num_2
72261       , l_array_reference_num_3
72262       , l_array_reference_num_4
72263       , l_array_reference_char_1
72264       , l_array_reference_char_2
72265       , l_array_reference_char_3
72266       , l_array_reference_char_4
72267       , l_array_reference_date_1
72268       , l_array_reference_date_2
72269       , l_array_reference_date_3
72270       , l_array_reference_date_4
72271       , l_array_event_created_by
72272       , l_array_budgetary_control_flag
72273       , l_array_extract_line_num 
72274       , l_array_source_1
72275       , l_array_source_8
72276       , l_array_source_9
72277       , l_array_source_9_meaning
72278       , l_array_source_11
72279       , l_array_source_13
72280       , l_array_source_15
72281       , l_array_source_15_meaning
72282       , l_array_source_16
72283       , l_array_source_18
72284       , l_array_source_18_meaning
72285       , l_array_source_19
72286       , l_array_source_21
72287       , l_array_source_23
72288       , l_array_source_25
72289       , l_array_source_26
72290       , l_array_source_27
72291       , l_array_source_28
72292       , l_array_source_29
72293       , l_array_source_30
72294       , l_array_source_31
72295       , l_array_source_32
72296       , l_array_source_34
72297       , l_array_source_35
72298       , l_array_source_36
72299       , l_array_source_37
72300       , l_array_source_38
72301       , l_array_source_42
72302       , l_array_source_43
72303       , l_array_source_44
72304       , l_array_source_45
72305       , l_array_source_46
72306       , l_array_source_46_meaning
72307       , l_array_source_50
72308       , l_array_source_51
72309       , l_array_source_52
72310       , l_array_source_53
72311       , l_array_source_54
72312       , l_array_source_55
72313       , l_array_source_56
72314       , l_array_source_57
72315       , l_array_source_58
72316       , l_array_source_59
72317       , l_array_source_59_meaning
72318       , l_array_source_60
72319       , l_array_source_61
72320       , l_array_source_62
72321       , l_array_source_63
72322       , l_array_source_64
72323       , l_array_source_65
72324       , l_array_source_66
72325       , l_array_source_81
72326       , l_array_source_82
72327       LIMIT l_rows;
72328 
72329   --
72330   IF (C_LEVEL_EVENT >= g_log_level) THEN
72331             trace
72332                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
72333                ,p_level    => C_LEVEL_EVENT
72334                ,p_module   => l_log_module);
72335   END IF;
72336   --
72337   EXIT WHEN l_array_entity_id.count = 0;
72338 
72339   XLA_AE_LINES_PKG.g_rec_lines := null;
72340 
72341 --
72342 -- Bug 4458708
72343 --
72344 XLA_AE_LINES_PKG.g_LineNumber := 0;
72345 --
72346 --
72347 
72348 FOR Idx IN 1..l_array_event_id.count LOOP
72349    --
72350    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
72351    --
72352    l_event_id := l_array_event_id(idx);  -- 5648433
72353 
72354    --
72355    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72356    --
72357 
72358    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
72359              (g_array_event(l_event_id).array_value_num('header_index'))
72360          ,'N'
72361          ) <> 'Y'
72362    THEN
72363       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72364          trace
72365             (p_msg      => 'Trancaction revesal option is not Y '
72366             ,p_level    => C_LEVEL_STATEMENT
72367             ,p_module   => l_log_module);
72368       END IF;
72369 
72370 --
72371 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
72372 --
72373 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72374 --
72375 -- set event info as cache for other routines to refer event attributes
72376 --
72377 
72378 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
72379    l_previous_event_id := l_event_id;
72380 
72381    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72382       (p_application_id           => p_application_id
72383       ,p_primary_ledger_id        => p_primary_ledger_id
72384       ,p_base_ledger_id           => p_base_ledger_id
72385       ,p_target_ledger_id         => p_target_ledger_id
72386       ,p_entity_id                => l_array_entity_id(Idx)
72387       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
72388       ,p_entity_code              => l_array_entity_code(Idx)
72389       ,p_transaction_num          => l_array_transaction_num(Idx)
72390       ,p_event_id                 => l_array_event_id(Idx)
72391       ,p_event_class_code         => l_array_class_code(Idx)
72392       ,p_event_type_code          => l_array_event_type(Idx)
72393       ,p_event_number             => l_array_event_number(Idx)
72397       ,p_reference_num_2          => l_array_reference_num_2(Idx)
72394       ,p_event_date               => l_array_event_date(Idx)
72395       ,p_transaction_date         => l_array_transaction_date(Idx)
72396       ,p_reference_num_1          => l_array_reference_num_1(Idx)
72398       ,p_reference_num_3          => l_array_reference_num_3(Idx)
72399       ,p_reference_num_4          => l_array_reference_num_4(Idx)
72400       ,p_reference_char_1         => l_array_reference_char_1(Idx)
72401       ,p_reference_char_2         => l_array_reference_char_2(Idx)
72402       ,p_reference_char_3         => l_array_reference_char_3(Idx)
72403       ,p_reference_char_4         => l_array_reference_char_4(Idx)
72404       ,p_reference_date_1         => l_array_reference_date_1(Idx)
72405       ,p_reference_date_2         => l_array_reference_date_2(Idx)
72406       ,p_reference_date_3         => l_array_reference_date_3(Idx)
72407       ,p_reference_date_4         => l_array_reference_date_4(Idx)
72408       ,p_event_created_by         => l_array_event_created_by(Idx)
72409       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
72410        --
72411 END IF;
72412 
72413 
72414 
72415 --
72416 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
72417 
72418 l_acct_reversal_source := SUBSTR(l_array_source_19(Idx), 1,30);
72419 
72420 IF l_continue_with_lines THEN
72421    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
72422       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
72423 
72424       xla_accounting_err_pkg.build_message
72425          (p_appli_s_name            => 'XLA'
72426          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
72427          ,p_token_1                 => 'LINE_NUMBER'
72428          ,p_value_1                 => l_array_extract_line_num(Idx)
72429          ,p_token_2                 => 'PRODUCT_NAME'
72430          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72431          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72432          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
72433          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72434 
72435    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
72436       --
72437       -- following sets the accounting attributes needed to reverse
72438       -- accounting for a distributeion
72439       --
72440 
72441       --
72442       -- 5217187
72443       --
72444       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
72445       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
72446                                        g_array_event(l_event_id).array_value_num('header_index'));
72447       --
72448       --
72449 
72450       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
72451       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_19(Idx);
72452       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
72453       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
72454       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
72455       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_21(Idx);
72456       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
72457       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_31(Idx);
72458       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
72459       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_32(Idx);
72460       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
72461       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_33');
72462       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
72463       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_34(Idx);
72464       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
72465       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_35(Idx);
72466       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
72467       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_36(Idx);
72468       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
72469       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_33');
72470       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
72471       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_37(Idx);
72472       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
72473       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_38(Idx);
72474       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
72475       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_49');
72476       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
72477       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_50(Idx);
72478       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
72479       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_21(Idx);
72480       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
72481       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_52(Idx);
72482       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
72486       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
72483       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_53(Idx);
72484       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
72485       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_54(Idx);
72487       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_55(Idx);
72488       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
72489       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_56(Idx);
72490 
72491 
72492       xla_ae_lines_pkg.SetAcctReversalAttrs
72493          (p_event_id             => l_event_id
72494          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
72495          ,p_calculate_acctd_flag => l_calculate_acctd_flag
72496          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
72497    END IF;
72498 
72499    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
72500        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
72501 
72502 --
72503 AcctLineType_16 (
72504  p_application_id  => p_application_id
72505  ,p_event_id     => l_event_id
72506  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72507  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72508  ,p_actual_flag => l_actual_flag
72509  ,p_balance_type_code => l_balance_type_code
72510  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72511  
72512  , p_source_1 => l_array_source_1(Idx)
72513  , p_source_11 => l_array_source_11(Idx)
72514  , p_source_15 => l_array_source_15(Idx)
72515  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72516  , p_source_16 => l_array_source_16(Idx)
72517  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
72518  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
72519  , p_source_18 => l_array_source_18(Idx)
72520  , p_source_18_meaning => l_array_source_18_meaning(Idx)
72521  , p_source_19 => l_array_source_19(Idx)
72522  , p_source_21 => l_array_source_21(Idx)
72523  , p_source_23 => l_array_source_23(Idx)
72524  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72525  , p_source_25 => l_array_source_25(Idx)
72526  , p_source_26 => l_array_source_26(Idx)
72527  , p_source_27 => l_array_source_27(Idx)
72528  , p_source_28 => l_array_source_28(Idx)
72529  , p_source_29 => l_array_source_29(Idx)
72530  , p_source_30 => l_array_source_30(Idx)
72531  , p_source_31 => l_array_source_31(Idx)
72532  , p_source_32 => l_array_source_32(Idx)
72533  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72534  , p_source_34 => l_array_source_34(Idx)
72535  , p_source_35 => l_array_source_35(Idx)
72536  , p_source_36 => l_array_source_36(Idx)
72537  , p_source_37 => l_array_source_37(Idx)
72538  , p_source_38 => l_array_source_38(Idx)
72539  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72540  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72541  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72542  , p_source_42 => l_array_source_42(Idx)
72543  , p_source_43 => l_array_source_43(Idx)
72544  , p_source_44 => l_array_source_44(Idx)
72545  , p_source_45 => l_array_source_45(Idx)
72546  , p_source_46 => l_array_source_46(Idx)
72547  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72548  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72549  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72550  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72551  , p_source_50 => l_array_source_50(Idx)
72552  , p_source_51 => l_array_source_51(Idx)
72553  , p_source_52 => l_array_source_52(Idx)
72554  , p_source_53 => l_array_source_53(Idx)
72555  , p_source_54 => l_array_source_54(Idx)
72556  , p_source_55 => l_array_source_55(Idx)
72557  , p_source_56 => l_array_source_56(Idx)
72558  , p_source_57 => l_array_source_57(Idx)
72559  );
72560 If(l_balance_type_code = 'A') THEN
72561   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72562 END IF;
72563 
72564 --
72565 
72566 
72567 --
72568 AcctLineType_24 (
72569  p_application_id  => p_application_id
72570  ,p_event_id     => l_event_id
72571  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72572  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72573  ,p_actual_flag => l_actual_flag
72574  ,p_balance_type_code => l_balance_type_code
72575  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72576  
72577  , p_source_1 => l_array_source_1(Idx)
72578  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
72579  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
72580  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
72581  , p_source_8 => l_array_source_8(Idx)
72582  , p_source_9 => l_array_source_9(Idx)
72583  , p_source_9_meaning => l_array_source_9_meaning(Idx)
72584  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
72585  , p_source_11 => l_array_source_11(Idx)
72586  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
72587  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
72588  , p_source_15 => l_array_source_15(Idx)
72589  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72590  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
72591  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
72592  , p_source_19 => l_array_source_19(Idx)
72593  , p_source_21 => l_array_source_21(Idx)
72594  , p_source_23 => l_array_source_23(Idx)
72598  , p_source_27 => l_array_source_27(Idx)
72595  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72596  , p_source_25 => l_array_source_25(Idx)
72597  , p_source_26 => l_array_source_26(Idx)
72599  , p_source_28 => l_array_source_28(Idx)
72600  , p_source_29 => l_array_source_29(Idx)
72601  , p_source_30 => l_array_source_30(Idx)
72602  , p_source_31 => l_array_source_31(Idx)
72603  , p_source_32 => l_array_source_32(Idx)
72604  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72605  , p_source_34 => l_array_source_34(Idx)
72606  , p_source_35 => l_array_source_35(Idx)
72607  , p_source_36 => l_array_source_36(Idx)
72608  , p_source_37 => l_array_source_37(Idx)
72609  , p_source_38 => l_array_source_38(Idx)
72610  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72611  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72612  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72613  , p_source_43 => l_array_source_43(Idx)
72614  , p_source_44 => l_array_source_44(Idx)
72615  , p_source_45 => l_array_source_45(Idx)
72616  , p_source_46 => l_array_source_46(Idx)
72617  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72618  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72619  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72620  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72621  , p_source_50 => l_array_source_50(Idx)
72622  , p_source_51 => l_array_source_51(Idx)
72623  , p_source_52 => l_array_source_52(Idx)
72624  , p_source_53 => l_array_source_53(Idx)
72625  , p_source_54 => l_array_source_54(Idx)
72626  , p_source_55 => l_array_source_55(Idx)
72627  , p_source_56 => l_array_source_56(Idx)
72628  , p_source_57 => l_array_source_57(Idx)
72629  , p_source_65 => l_array_source_65(Idx)
72630  , p_source_66 => l_array_source_66(Idx)
72631  );
72632 If(l_balance_type_code = 'A') THEN
72633   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72634 END IF;
72635 
72636 --
72637 
72638 
72639 --
72640 AcctLineType_28 (
72641  p_application_id  => p_application_id
72642  ,p_event_id     => l_event_id
72643  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72644  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72645  ,p_actual_flag => l_actual_flag
72646  ,p_balance_type_code => l_balance_type_code
72647  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72648  
72649  , p_source_1 => l_array_source_1(Idx)
72650  , p_source_11 => l_array_source_11(Idx)
72651  , p_source_15 => l_array_source_15(Idx)
72652  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72653  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
72654  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
72655  , p_source_19 => l_array_source_19(Idx)
72656  , p_source_21 => l_array_source_21(Idx)
72657  , p_source_23 => l_array_source_23(Idx)
72658  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72659  , p_source_25 => l_array_source_25(Idx)
72660  , p_source_26 => l_array_source_26(Idx)
72661  , p_source_27 => l_array_source_27(Idx)
72662  , p_source_28 => l_array_source_28(Idx)
72663  , p_source_29 => l_array_source_29(Idx)
72664  , p_source_30 => l_array_source_30(Idx)
72665  , p_source_31 => l_array_source_31(Idx)
72666  , p_source_32 => l_array_source_32(Idx)
72667  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72668  , p_source_34 => l_array_source_34(Idx)
72669  , p_source_35 => l_array_source_35(Idx)
72670  , p_source_36 => l_array_source_36(Idx)
72671  , p_source_37 => l_array_source_37(Idx)
72672  , p_source_38 => l_array_source_38(Idx)
72673  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72674  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72675  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72676  , p_source_43 => l_array_source_43(Idx)
72677  , p_source_44 => l_array_source_44(Idx)
72678  , p_source_45 => l_array_source_45(Idx)
72679  , p_source_46 => l_array_source_46(Idx)
72680  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72681  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72682  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72683  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72684  , p_source_50 => l_array_source_50(Idx)
72685  , p_source_51 => l_array_source_51(Idx)
72686  , p_source_52 => l_array_source_52(Idx)
72687  , p_source_53 => l_array_source_53(Idx)
72688  , p_source_54 => l_array_source_54(Idx)
72689  , p_source_55 => l_array_source_55(Idx)
72690  , p_source_56 => l_array_source_56(Idx)
72691  , p_source_57 => l_array_source_57(Idx)
72692  , p_source_65 => l_array_source_65(Idx)
72693  , p_source_66 => l_array_source_66(Idx)
72694  );
72695 If(l_balance_type_code = 'A') THEN
72696   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72697 END IF;
72698 
72699 --
72700 
72701 
72702 --
72703 AcctLineType_30 (
72704  p_application_id  => p_application_id
72705  ,p_event_id     => l_event_id
72706  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72707  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72708  ,p_actual_flag => l_actual_flag
72709  ,p_balance_type_code => l_balance_type_code
72710  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72711  
72712  , p_source_1 => l_array_source_1(Idx)
72716  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72713  , p_source_8 => l_array_source_8(Idx)
72714  , p_source_11 => l_array_source_11(Idx)
72715  , p_source_15 => l_array_source_15(Idx)
72717  , p_source_19 => l_array_source_19(Idx)
72718  , p_source_21 => l_array_source_21(Idx)
72719  , p_source_23 => l_array_source_23(Idx)
72720  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72721  , p_source_25 => l_array_source_25(Idx)
72722  , p_source_26 => l_array_source_26(Idx)
72723  , p_source_27 => l_array_source_27(Idx)
72724  , p_source_28 => l_array_source_28(Idx)
72725  , p_source_29 => l_array_source_29(Idx)
72726  , p_source_30 => l_array_source_30(Idx)
72727  , p_source_31 => l_array_source_31(Idx)
72728  , p_source_32 => l_array_source_32(Idx)
72729  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72730  , p_source_34 => l_array_source_34(Idx)
72731  , p_source_35 => l_array_source_35(Idx)
72732  , p_source_36 => l_array_source_36(Idx)
72733  , p_source_37 => l_array_source_37(Idx)
72734  , p_source_38 => l_array_source_38(Idx)
72735  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72736  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72737  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72738  , p_source_43 => l_array_source_43(Idx)
72739  , p_source_44 => l_array_source_44(Idx)
72740  , p_source_45 => l_array_source_45(Idx)
72741  , p_source_46 => l_array_source_46(Idx)
72742  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72743  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72744  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72745  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72746  , p_source_50 => l_array_source_50(Idx)
72747  , p_source_51 => l_array_source_51(Idx)
72748  , p_source_52 => l_array_source_52(Idx)
72749  , p_source_53 => l_array_source_53(Idx)
72750  , p_source_54 => l_array_source_54(Idx)
72751  , p_source_55 => l_array_source_55(Idx)
72752  , p_source_56 => l_array_source_56(Idx)
72753  , p_source_57 => l_array_source_57(Idx)
72754  );
72755 If(l_balance_type_code = 'A') THEN
72756   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72757 END IF;
72758 
72759 --
72760 
72761 
72762 --
72763 AcctLineType_31 (
72764  p_application_id  => p_application_id
72765  ,p_event_id     => l_event_id
72766  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72767  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72768  ,p_actual_flag => l_actual_flag
72769  ,p_balance_type_code => l_balance_type_code
72770  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72771  
72772  , p_source_15 => l_array_source_15(Idx)
72773  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72774  , p_source_18 => l_array_source_18(Idx)
72775  , p_source_18_meaning => l_array_source_18_meaning(Idx)
72776  , p_source_19 => l_array_source_19(Idx)
72777  , p_source_21 => l_array_source_21(Idx)
72778  , p_source_23 => l_array_source_23(Idx)
72779  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72780  , p_source_30 => l_array_source_30(Idx)
72781  , p_source_31 => l_array_source_31(Idx)
72782  , p_source_32 => l_array_source_32(Idx)
72783  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72784  , p_source_34 => l_array_source_34(Idx)
72785  , p_source_35 => l_array_source_35(Idx)
72786  , p_source_36 => l_array_source_36(Idx)
72787  , p_source_37 => l_array_source_37(Idx)
72788  , p_source_38 => l_array_source_38(Idx)
72789  , p_source_43 => l_array_source_43(Idx)
72790  , p_source_44 => l_array_source_44(Idx)
72791  , p_source_45 => l_array_source_45(Idx)
72792  , p_source_46 => l_array_source_46(Idx)
72793  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72794  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72795  , p_source_50 => l_array_source_50(Idx)
72796  , p_source_51 => l_array_source_51(Idx)
72797  , p_source_52 => l_array_source_52(Idx)
72798  , p_source_53 => l_array_source_53(Idx)
72799  , p_source_54 => l_array_source_54(Idx)
72800  , p_source_55 => l_array_source_55(Idx)
72801  , p_source_56 => l_array_source_56(Idx)
72802  , p_source_57 => l_array_source_57(Idx)
72803  , p_source_58 => l_array_source_58(Idx)
72804  , p_source_59 => l_array_source_59(Idx)
72805  , p_source_59_meaning => l_array_source_59_meaning(Idx)
72806  , p_source_60 => l_array_source_60(Idx)
72807  , p_source_61 => l_array_source_61(Idx)
72808  , p_source_62 => l_array_source_62(Idx)
72809  , p_source_63 => l_array_source_63(Idx)
72810  , p_source_64 => l_array_source_64(Idx)
72811  , p_source_65 => l_array_source_65(Idx)
72812  , p_source_66 => l_array_source_66(Idx)
72813  );
72814 If(l_balance_type_code = 'A') THEN
72815   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72816 END IF;
72817 
72818 --
72819 
72820 
72821 --
72822 AcctLineType_32 (
72823  p_application_id  => p_application_id
72824  ,p_event_id     => l_event_id
72825  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72826  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72827  ,p_actual_flag => l_actual_flag
72828  ,p_balance_type_code => l_balance_type_code
72829  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72830  
72831  , p_source_15 => l_array_source_15(Idx)
72832  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72836  , p_source_21 => l_array_source_21(Idx)
72833  , p_source_18 => l_array_source_18(Idx)
72834  , p_source_18_meaning => l_array_source_18_meaning(Idx)
72835  , p_source_19 => l_array_source_19(Idx)
72837  , p_source_23 => l_array_source_23(Idx)
72838  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72839  , p_source_30 => l_array_source_30(Idx)
72840  , p_source_31 => l_array_source_31(Idx)
72841  , p_source_32 => l_array_source_32(Idx)
72842  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72843  , p_source_34 => l_array_source_34(Idx)
72844  , p_source_35 => l_array_source_35(Idx)
72845  , p_source_36 => l_array_source_36(Idx)
72846  , p_source_37 => l_array_source_37(Idx)
72847  , p_source_38 => l_array_source_38(Idx)
72848  , p_source_43 => l_array_source_43(Idx)
72849  , p_source_44 => l_array_source_44(Idx)
72850  , p_source_45 => l_array_source_45(Idx)
72851  , p_source_46 => l_array_source_46(Idx)
72852  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72853  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72854  , p_source_50 => l_array_source_50(Idx)
72855  , p_source_51 => l_array_source_51(Idx)
72856  , p_source_52 => l_array_source_52(Idx)
72857  , p_source_53 => l_array_source_53(Idx)
72858  , p_source_54 => l_array_source_54(Idx)
72859  , p_source_55 => l_array_source_55(Idx)
72860  , p_source_56 => l_array_source_56(Idx)
72861  , p_source_57 => l_array_source_57(Idx)
72862  , p_source_58 => l_array_source_58(Idx)
72863  , p_source_60 => l_array_source_60(Idx)
72864  , p_source_61 => l_array_source_61(Idx)
72865  , p_source_62 => l_array_source_62(Idx)
72866  , p_source_63 => l_array_source_63(Idx)
72867  , p_source_64 => l_array_source_64(Idx)
72868  , p_source_65 => l_array_source_65(Idx)
72869  , p_source_66 => l_array_source_66(Idx)
72870  );
72871 If(l_balance_type_code = 'A') THEN
72872   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72873 END IF;
72874 
72875 --
72876 
72877 
72878 --
72879 AcctLineType_35 (
72880  p_application_id  => p_application_id
72881  ,p_event_id     => l_event_id
72882  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72883  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72884  ,p_actual_flag => l_actual_flag
72885  ,p_balance_type_code => l_balance_type_code
72886  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72887  
72888  , p_source_1 => l_array_source_1(Idx)
72889  , p_source_11 => l_array_source_11(Idx)
72890  , p_source_15 => l_array_source_15(Idx)
72891  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72892  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
72893  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
72894  , p_source_19 => l_array_source_19(Idx)
72895  , p_source_21 => l_array_source_21(Idx)
72896  , p_source_23 => l_array_source_23(Idx)
72897  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72898  , p_source_25 => l_array_source_25(Idx)
72899  , p_source_26 => l_array_source_26(Idx)
72900  , p_source_27 => l_array_source_27(Idx)
72901  , p_source_28 => l_array_source_28(Idx)
72902  , p_source_29 => l_array_source_29(Idx)
72903  , p_source_30 => l_array_source_30(Idx)
72904  , p_source_31 => l_array_source_31(Idx)
72905  , p_source_32 => l_array_source_32(Idx)
72906  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72907  , p_source_34 => l_array_source_34(Idx)
72908  , p_source_35 => l_array_source_35(Idx)
72909  , p_source_36 => l_array_source_36(Idx)
72910  , p_source_37 => l_array_source_37(Idx)
72911  , p_source_38 => l_array_source_38(Idx)
72912  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72913  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72914  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72915  , p_source_43 => l_array_source_43(Idx)
72916  , p_source_44 => l_array_source_44(Idx)
72917  , p_source_45 => l_array_source_45(Idx)
72918  , p_source_46 => l_array_source_46(Idx)
72919  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72920  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72921  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72922  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72923  , p_source_50 => l_array_source_50(Idx)
72924  , p_source_51 => l_array_source_51(Idx)
72925  , p_source_52 => l_array_source_52(Idx)
72926  , p_source_53 => l_array_source_53(Idx)
72927  , p_source_54 => l_array_source_54(Idx)
72928  , p_source_55 => l_array_source_55(Idx)
72929  , p_source_56 => l_array_source_56(Idx)
72930  , p_source_57 => l_array_source_57(Idx)
72931  , p_source_65 => l_array_source_65(Idx)
72932  , p_source_66 => l_array_source_66(Idx)
72933  );
72934 If(l_balance_type_code = 'A') THEN
72935   l_actual_gain_loss_ref := l_gain_or_loss_ref;
72936 END IF;
72937 
72938 --
72939 
72940 
72941 --
72942 AcctLineType_39 (
72943  p_application_id  => p_application_id
72944  ,p_event_id     => l_event_id
72945  ,p_calculate_acctd_flag => l_calculate_acctd_flag
72946  ,p_calculate_g_l_flag => l_calculate_g_l_flag
72947  ,p_actual_flag => l_actual_flag
72948  ,p_balance_type_code => l_balance_type_code
72949  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72950  
72951  , p_source_1 => l_array_source_1(Idx)
72952  , p_source_11 => l_array_source_11(Idx)
72953  , p_source_15 => l_array_source_15(Idx)
72954  , p_source_15_meaning => l_array_source_15_meaning(Idx)
72958  , p_source_18_meaning => l_array_source_18_meaning(Idx)
72955  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
72956  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
72957  , p_source_18 => l_array_source_18(Idx)
72959  , p_source_19 => l_array_source_19(Idx)
72960  , p_source_21 => l_array_source_21(Idx)
72961  , p_source_23 => l_array_source_23(Idx)
72962  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
72963  , p_source_25 => l_array_source_25(Idx)
72964  , p_source_26 => l_array_source_26(Idx)
72965  , p_source_27 => l_array_source_27(Idx)
72966  , p_source_28 => l_array_source_28(Idx)
72967  , p_source_29 => l_array_source_29(Idx)
72968  , p_source_30 => l_array_source_30(Idx)
72969  , p_source_31 => l_array_source_31(Idx)
72970  , p_source_32 => l_array_source_32(Idx)
72971  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
72972  , p_source_34 => l_array_source_34(Idx)
72973  , p_source_35 => l_array_source_35(Idx)
72974  , p_source_36 => l_array_source_36(Idx)
72975  , p_source_37 => l_array_source_37(Idx)
72976  , p_source_38 => l_array_source_38(Idx)
72977  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
72978  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
72979  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
72980  , p_source_43 => l_array_source_43(Idx)
72981  , p_source_44 => l_array_source_44(Idx)
72982  , p_source_45 => l_array_source_45(Idx)
72983  , p_source_46 => l_array_source_46(Idx)
72984  , p_source_46_meaning => l_array_source_46_meaning(Idx)
72985  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
72986  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
72987  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
72988  , p_source_50 => l_array_source_50(Idx)
72989  , p_source_51 => l_array_source_51(Idx)
72990  , p_source_52 => l_array_source_52(Idx)
72991  , p_source_53 => l_array_source_53(Idx)
72992  , p_source_54 => l_array_source_54(Idx)
72993  , p_source_55 => l_array_source_55(Idx)
72994  , p_source_56 => l_array_source_56(Idx)
72995  , p_source_57 => l_array_source_57(Idx)
72996  , p_source_65 => l_array_source_65(Idx)
72997  , p_source_66 => l_array_source_66(Idx)
72998  , p_source_68 => g_array_event(l_event_id).array_value_char('source_68')
72999  , p_source_68_meaning => g_array_event(l_event_id).array_value_char('source_68_meaning')
73000  );
73001 If(l_balance_type_code = 'A') THEN
73002   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73003 END IF;
73004 
73005 --
73006 
73007 
73008 --
73009 AcctLineType_43 (
73010  p_application_id  => p_application_id
73011  ,p_event_id     => l_event_id
73012  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73013  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73014  ,p_actual_flag => l_actual_flag
73015  ,p_balance_type_code => l_balance_type_code
73016  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73017  
73018  , p_source_1 => l_array_source_1(Idx)
73019  , p_source_11 => l_array_source_11(Idx)
73020  , p_source_15 => l_array_source_15(Idx)
73021  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73022  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73023  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73024  , p_source_19 => l_array_source_19(Idx)
73025  , p_source_21 => l_array_source_21(Idx)
73026  , p_source_23 => l_array_source_23(Idx)
73027  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73028  , p_source_25 => l_array_source_25(Idx)
73029  , p_source_26 => l_array_source_26(Idx)
73030  , p_source_27 => l_array_source_27(Idx)
73031  , p_source_28 => l_array_source_28(Idx)
73032  , p_source_29 => l_array_source_29(Idx)
73033  , p_source_30 => l_array_source_30(Idx)
73034  , p_source_31 => l_array_source_31(Idx)
73035  , p_source_32 => l_array_source_32(Idx)
73036  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73037  , p_source_34 => l_array_source_34(Idx)
73038  , p_source_35 => l_array_source_35(Idx)
73039  , p_source_36 => l_array_source_36(Idx)
73040  , p_source_37 => l_array_source_37(Idx)
73041  , p_source_38 => l_array_source_38(Idx)
73042  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73043  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73044  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73045  , p_source_43 => l_array_source_43(Idx)
73046  , p_source_44 => l_array_source_44(Idx)
73047  , p_source_45 => l_array_source_45(Idx)
73048  , p_source_46 => l_array_source_46(Idx)
73049  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73050  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73051  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73052  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73053  , p_source_50 => l_array_source_50(Idx)
73054  , p_source_51 => l_array_source_51(Idx)
73055  , p_source_52 => l_array_source_52(Idx)
73056  , p_source_53 => l_array_source_53(Idx)
73057  , p_source_54 => l_array_source_54(Idx)
73058  , p_source_55 => l_array_source_55(Idx)
73059  , p_source_56 => l_array_source_56(Idx)
73060  , p_source_57 => l_array_source_57(Idx)
73061  , p_source_65 => l_array_source_65(Idx)
73062  , p_source_66 => l_array_source_66(Idx)
73063  );
73064 If(l_balance_type_code = 'A') THEN
73065   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73066 END IF;
73067 
73071 --
73068 --
73069 
73070 
73072 AcctLineType_47 (
73073  p_application_id  => p_application_id
73074  ,p_event_id     => l_event_id
73075  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73076  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73077  ,p_actual_flag => l_actual_flag
73078  ,p_balance_type_code => l_balance_type_code
73079  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73080  
73081  , p_source_1 => l_array_source_1(Idx)
73082  , p_source_11 => l_array_source_11(Idx)
73083  , p_source_15 => l_array_source_15(Idx)
73084  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73085  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73086  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73087  , p_source_18 => l_array_source_18(Idx)
73088  , p_source_18_meaning => l_array_source_18_meaning(Idx)
73089  , p_source_19 => l_array_source_19(Idx)
73090  , p_source_21 => l_array_source_21(Idx)
73091  , p_source_23 => l_array_source_23(Idx)
73092  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73093  , p_source_25 => l_array_source_25(Idx)
73094  , p_source_26 => l_array_source_26(Idx)
73095  , p_source_27 => l_array_source_27(Idx)
73096  , p_source_28 => l_array_source_28(Idx)
73097  , p_source_29 => l_array_source_29(Idx)
73098  , p_source_30 => l_array_source_30(Idx)
73099  , p_source_31 => l_array_source_31(Idx)
73100  , p_source_32 => l_array_source_32(Idx)
73101  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73102  , p_source_34 => l_array_source_34(Idx)
73103  , p_source_35 => l_array_source_35(Idx)
73104  , p_source_36 => l_array_source_36(Idx)
73105  , p_source_37 => l_array_source_37(Idx)
73106  , p_source_38 => l_array_source_38(Idx)
73107  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73108  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73109  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73110  , p_source_43 => l_array_source_43(Idx)
73111  , p_source_44 => l_array_source_44(Idx)
73112  , p_source_45 => l_array_source_45(Idx)
73113  , p_source_46 => l_array_source_46(Idx)
73114  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73115  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73116  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73117  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73118  , p_source_50 => l_array_source_50(Idx)
73119  , p_source_51 => l_array_source_51(Idx)
73120  , p_source_52 => l_array_source_52(Idx)
73121  , p_source_53 => l_array_source_53(Idx)
73122  , p_source_54 => l_array_source_54(Idx)
73123  , p_source_55 => l_array_source_55(Idx)
73124  , p_source_56 => l_array_source_56(Idx)
73125  , p_source_57 => l_array_source_57(Idx)
73126  , p_source_59 => l_array_source_59(Idx)
73127  , p_source_59_meaning => l_array_source_59_meaning(Idx)
73128  , p_source_65 => l_array_source_65(Idx)
73129  , p_source_66 => l_array_source_66(Idx)
73130  );
73131 If(l_balance_type_code = 'A') THEN
73132   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73133 END IF;
73134 
73135 --
73136 
73137 
73138 --
73139 AcctLineType_53 (
73140  p_application_id  => p_application_id
73141  ,p_event_id     => l_event_id
73142  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73143  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73144  ,p_actual_flag => l_actual_flag
73145  ,p_balance_type_code => l_balance_type_code
73146  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73147  
73148  , p_source_1 => l_array_source_1(Idx)
73149  , p_source_11 => l_array_source_11(Idx)
73150  , p_source_15 => l_array_source_15(Idx)
73151  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73152  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73153  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73154  , p_source_18 => l_array_source_18(Idx)
73155  , p_source_18_meaning => l_array_source_18_meaning(Idx)
73156  , p_source_19 => l_array_source_19(Idx)
73157  , p_source_21 => l_array_source_21(Idx)
73158  , p_source_23 => l_array_source_23(Idx)
73159  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73160  , p_source_25 => l_array_source_25(Idx)
73161  , p_source_26 => l_array_source_26(Idx)
73162  , p_source_27 => l_array_source_27(Idx)
73163  , p_source_28 => l_array_source_28(Idx)
73164  , p_source_29 => l_array_source_29(Idx)
73165  , p_source_30 => l_array_source_30(Idx)
73166  , p_source_31 => l_array_source_31(Idx)
73167  , p_source_32 => l_array_source_32(Idx)
73168  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73169  , p_source_34 => l_array_source_34(Idx)
73170  , p_source_35 => l_array_source_35(Idx)
73171  , p_source_36 => l_array_source_36(Idx)
73172  , p_source_37 => l_array_source_37(Idx)
73173  , p_source_38 => l_array_source_38(Idx)
73174  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73175  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73176  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73177  , p_source_43 => l_array_source_43(Idx)
73178  , p_source_44 => l_array_source_44(Idx)
73179  , p_source_45 => l_array_source_45(Idx)
73180  , p_source_46 => l_array_source_46(Idx)
73181  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73182  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73183  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73187  , p_source_52 => l_array_source_52(Idx)
73184  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73185  , p_source_50 => l_array_source_50(Idx)
73186  , p_source_51 => l_array_source_51(Idx)
73188  , p_source_53 => l_array_source_53(Idx)
73189  , p_source_54 => l_array_source_54(Idx)
73190  , p_source_55 => l_array_source_55(Idx)
73191  , p_source_56 => l_array_source_56(Idx)
73192  , p_source_57 => l_array_source_57(Idx)
73193  , p_source_81 => l_array_source_81(Idx)
73194  , p_source_82 => l_array_source_82(Idx)
73195  );
73196 If(l_balance_type_code = 'A') THEN
73197   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73198 END IF;
73199 
73200 --
73201 
73202 
73203 --
73204 AcctLineType_59 (
73205  p_application_id  => p_application_id
73206  ,p_event_id     => l_event_id
73207  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73208  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73209  ,p_actual_flag => l_actual_flag
73210  ,p_balance_type_code => l_balance_type_code
73211  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73212  
73213  , p_source_1 => l_array_source_1(Idx)
73214  , p_source_11 => l_array_source_11(Idx)
73215  , p_source_15 => l_array_source_15(Idx)
73216  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73217  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73218  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73219  , p_source_19 => l_array_source_19(Idx)
73220  , p_source_21 => l_array_source_21(Idx)
73221  , p_source_23 => l_array_source_23(Idx)
73222  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73223  , p_source_25 => l_array_source_25(Idx)
73224  , p_source_26 => l_array_source_26(Idx)
73225  , p_source_27 => l_array_source_27(Idx)
73226  , p_source_28 => l_array_source_28(Idx)
73227  , p_source_29 => l_array_source_29(Idx)
73228  , p_source_30 => l_array_source_30(Idx)
73229  , p_source_31 => l_array_source_31(Idx)
73230  , p_source_32 => l_array_source_32(Idx)
73231  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73232  , p_source_34 => l_array_source_34(Idx)
73233  , p_source_35 => l_array_source_35(Idx)
73234  , p_source_36 => l_array_source_36(Idx)
73235  , p_source_37 => l_array_source_37(Idx)
73236  , p_source_38 => l_array_source_38(Idx)
73237  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73238  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73239  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73240  , p_source_43 => l_array_source_43(Idx)
73241  , p_source_44 => l_array_source_44(Idx)
73242  , p_source_45 => l_array_source_45(Idx)
73243  , p_source_46 => l_array_source_46(Idx)
73244  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73245  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73246  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73247  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73248  , p_source_50 => l_array_source_50(Idx)
73249  , p_source_51 => l_array_source_51(Idx)
73250  , p_source_52 => l_array_source_52(Idx)
73251  , p_source_53 => l_array_source_53(Idx)
73252  , p_source_54 => l_array_source_54(Idx)
73253  , p_source_55 => l_array_source_55(Idx)
73254  , p_source_56 => l_array_source_56(Idx)
73255  , p_source_57 => l_array_source_57(Idx)
73256  , p_source_59 => l_array_source_59(Idx)
73257  , p_source_59_meaning => l_array_source_59_meaning(Idx)
73258  , p_source_65 => l_array_source_65(Idx)
73259  , p_source_66 => l_array_source_66(Idx)
73260  );
73261 If(l_balance_type_code = 'A') THEN
73262   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73263 END IF;
73264 
73265 --
73266 
73267 
73268 --
73269 AcctLineType_62 (
73270  p_application_id  => p_application_id
73271  ,p_event_id     => l_event_id
73272  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73273  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73274  ,p_actual_flag => l_actual_flag
73275  ,p_balance_type_code => l_balance_type_code
73276  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73277  
73278  , p_source_1 => l_array_source_1(Idx)
73279  , p_source_13 => l_array_source_13(Idx)
73280  , p_source_15 => l_array_source_15(Idx)
73281  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73282  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73283  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73284  , p_source_19 => l_array_source_19(Idx)
73285  , p_source_21 => l_array_source_21(Idx)
73286  , p_source_23 => l_array_source_23(Idx)
73287  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73288  , p_source_25 => l_array_source_25(Idx)
73289  , p_source_26 => l_array_source_26(Idx)
73290  , p_source_27 => l_array_source_27(Idx)
73291  , p_source_28 => l_array_source_28(Idx)
73292  , p_source_29 => l_array_source_29(Idx)
73293  , p_source_30 => l_array_source_30(Idx)
73294  , p_source_31 => l_array_source_31(Idx)
73295  , p_source_32 => l_array_source_32(Idx)
73296  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73297  , p_source_34 => l_array_source_34(Idx)
73298  , p_source_35 => l_array_source_35(Idx)
73299  , p_source_36 => l_array_source_36(Idx)
73300  , p_source_37 => l_array_source_37(Idx)
73301  , p_source_38 => l_array_source_38(Idx)
73302  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73306  , p_source_44 => l_array_source_44(Idx)
73303  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73304  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73305  , p_source_43 => l_array_source_43(Idx)
73307  , p_source_45 => l_array_source_45(Idx)
73308  , p_source_46 => l_array_source_46(Idx)
73309  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73310  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73311  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73312  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73313  , p_source_50 => l_array_source_50(Idx)
73314  , p_source_51 => l_array_source_51(Idx)
73315  , p_source_52 => l_array_source_52(Idx)
73316  , p_source_53 => l_array_source_53(Idx)
73317  , p_source_54 => l_array_source_54(Idx)
73318  , p_source_55 => l_array_source_55(Idx)
73319  , p_source_56 => l_array_source_56(Idx)
73320  , p_source_57 => l_array_source_57(Idx)
73321  , p_source_59 => l_array_source_59(Idx)
73322  , p_source_59_meaning => l_array_source_59_meaning(Idx)
73323  , p_source_65 => l_array_source_65(Idx)
73324  , p_source_66 => l_array_source_66(Idx)
73325  );
73326 If(l_balance_type_code = 'A') THEN
73327   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73328 END IF;
73329 
73330 --
73331 
73332 
73333 --
73334 AcctLineType_65 (
73335  p_application_id  => p_application_id
73336  ,p_event_id     => l_event_id
73337  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73338  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73339  ,p_actual_flag => l_actual_flag
73340  ,p_balance_type_code => l_balance_type_code
73341  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73342  
73343  , p_source_1 => l_array_source_1(Idx)
73344  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
73345  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
73346  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
73347  , p_source_8 => l_array_source_8(Idx)
73348  , p_source_9 => l_array_source_9(Idx)
73349  , p_source_9_meaning => l_array_source_9_meaning(Idx)
73350  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
73351  , p_source_11 => l_array_source_11(Idx)
73352  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
73353  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
73354  , p_source_15 => l_array_source_15(Idx)
73355  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73356  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73357  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73358  , p_source_19 => l_array_source_19(Idx)
73359  , p_source_21 => l_array_source_21(Idx)
73360  , p_source_23 => l_array_source_23(Idx)
73361  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73362  , p_source_25 => l_array_source_25(Idx)
73363  , p_source_26 => l_array_source_26(Idx)
73364  , p_source_27 => l_array_source_27(Idx)
73365  , p_source_28 => l_array_source_28(Idx)
73366  , p_source_29 => l_array_source_29(Idx)
73367  , p_source_30 => l_array_source_30(Idx)
73368  , p_source_31 => l_array_source_31(Idx)
73369  , p_source_32 => l_array_source_32(Idx)
73370  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73371  , p_source_34 => l_array_source_34(Idx)
73372  , p_source_35 => l_array_source_35(Idx)
73373  , p_source_36 => l_array_source_36(Idx)
73374  , p_source_37 => l_array_source_37(Idx)
73375  , p_source_38 => l_array_source_38(Idx)
73376  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73377  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73378  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73379  , p_source_43 => l_array_source_43(Idx)
73380  , p_source_44 => l_array_source_44(Idx)
73381  , p_source_45 => l_array_source_45(Idx)
73382  , p_source_46 => l_array_source_46(Idx)
73383  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73384  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73385  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73386  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73387  , p_source_50 => l_array_source_50(Idx)
73388  , p_source_51 => l_array_source_51(Idx)
73389  , p_source_52 => l_array_source_52(Idx)
73390  , p_source_53 => l_array_source_53(Idx)
73391  , p_source_54 => l_array_source_54(Idx)
73392  , p_source_55 => l_array_source_55(Idx)
73393  , p_source_56 => l_array_source_56(Idx)
73394  , p_source_57 => l_array_source_57(Idx)
73395  , p_source_66 => l_array_source_66(Idx)
73396  );
73397 If(l_balance_type_code = 'A') THEN
73398   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73399 END IF;
73400 
73401 --
73402 
73403 
73404 --
73405 AcctLineType_68 (
73406  p_application_id  => p_application_id
73407  ,p_event_id     => l_event_id
73408  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73409  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73410  ,p_actual_flag => l_actual_flag
73411  ,p_balance_type_code => l_balance_type_code
73412  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73413  
73414  , p_source_1 => l_array_source_1(Idx)
73415  , p_source_11 => l_array_source_11(Idx)
73416  , p_source_15 => l_array_source_15(Idx)
73417  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73418  , p_source_16 => l_array_source_16(Idx)
73422  , p_source_18_meaning => l_array_source_18_meaning(Idx)
73419  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73420  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73421  , p_source_18 => l_array_source_18(Idx)
73423  , p_source_19 => l_array_source_19(Idx)
73424  , p_source_21 => l_array_source_21(Idx)
73425  , p_source_23 => l_array_source_23(Idx)
73426  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73427  , p_source_25 => l_array_source_25(Idx)
73428  , p_source_26 => l_array_source_26(Idx)
73429  , p_source_27 => l_array_source_27(Idx)
73430  , p_source_28 => l_array_source_28(Idx)
73431  , p_source_29 => l_array_source_29(Idx)
73432  , p_source_30 => l_array_source_30(Idx)
73433  , p_source_31 => l_array_source_31(Idx)
73434  , p_source_32 => l_array_source_32(Idx)
73435  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73436  , p_source_34 => l_array_source_34(Idx)
73437  , p_source_35 => l_array_source_35(Idx)
73438  , p_source_36 => l_array_source_36(Idx)
73439  , p_source_37 => l_array_source_37(Idx)
73440  , p_source_38 => l_array_source_38(Idx)
73441  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73442  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73443  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73444  , p_source_42 => l_array_source_42(Idx)
73445  , p_source_43 => l_array_source_43(Idx)
73446  , p_source_44 => l_array_source_44(Idx)
73447  , p_source_45 => l_array_source_45(Idx)
73448  , p_source_46 => l_array_source_46(Idx)
73449  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73450  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73451  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73452  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73453  , p_source_50 => l_array_source_50(Idx)
73454  , p_source_51 => l_array_source_51(Idx)
73455  , p_source_52 => l_array_source_52(Idx)
73456  , p_source_53 => l_array_source_53(Idx)
73457  , p_source_54 => l_array_source_54(Idx)
73458  , p_source_55 => l_array_source_55(Idx)
73459  , p_source_56 => l_array_source_56(Idx)
73460  , p_source_57 => l_array_source_57(Idx)
73461  );
73462 If(l_balance_type_code = 'A') THEN
73463   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73464 END IF;
73465 
73466 --
73467 
73468 
73469 --
73470 AcctLineType_76 (
73471  p_application_id  => p_application_id
73472  ,p_event_id     => l_event_id
73473  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73474  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73475  ,p_actual_flag => l_actual_flag
73476  ,p_balance_type_code => l_balance_type_code
73477  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73478  
73479  , p_source_1 => l_array_source_1(Idx)
73480  , p_source_11 => l_array_source_11(Idx)
73481  , p_source_15 => l_array_source_15(Idx)
73482  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73483  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73484  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73485  , p_source_19 => l_array_source_19(Idx)
73486  , p_source_21 => l_array_source_21(Idx)
73487  , p_source_23 => l_array_source_23(Idx)
73488  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73489  , p_source_25 => l_array_source_25(Idx)
73490  , p_source_26 => l_array_source_26(Idx)
73491  , p_source_27 => l_array_source_27(Idx)
73492  , p_source_28 => l_array_source_28(Idx)
73493  , p_source_29 => l_array_source_29(Idx)
73494  , p_source_30 => l_array_source_30(Idx)
73495  , p_source_31 => l_array_source_31(Idx)
73496  , p_source_32 => l_array_source_32(Idx)
73497  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73498  , p_source_34 => l_array_source_34(Idx)
73499  , p_source_35 => l_array_source_35(Idx)
73500  , p_source_36 => l_array_source_36(Idx)
73501  , p_source_37 => l_array_source_37(Idx)
73502  , p_source_38 => l_array_source_38(Idx)
73503  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73504  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73505  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73506  , p_source_43 => l_array_source_43(Idx)
73507  , p_source_44 => l_array_source_44(Idx)
73508  , p_source_45 => l_array_source_45(Idx)
73509  , p_source_46 => l_array_source_46(Idx)
73510  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73511  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73512  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73513  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73514  , p_source_50 => l_array_source_50(Idx)
73515  , p_source_51 => l_array_source_51(Idx)
73516  , p_source_52 => l_array_source_52(Idx)
73517  , p_source_53 => l_array_source_53(Idx)
73518  , p_source_54 => l_array_source_54(Idx)
73519  , p_source_55 => l_array_source_55(Idx)
73520  , p_source_56 => l_array_source_56(Idx)
73521  , p_source_57 => l_array_source_57(Idx)
73522  , p_source_65 => l_array_source_65(Idx)
73523  , p_source_66 => l_array_source_66(Idx)
73524  );
73525 If(l_balance_type_code = 'A') THEN
73526   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73527 END IF;
73528 
73529 --
73530 
73531 
73532 --
73533 AcctLineType_79 (
73534  p_application_id  => p_application_id
73538  ,p_actual_flag => l_actual_flag
73535  ,p_event_id     => l_event_id
73536  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73537  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73539  ,p_balance_type_code => l_balance_type_code
73540  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73541  
73542  , p_source_1 => l_array_source_1(Idx)
73543  , p_source_11 => l_array_source_11(Idx)
73544  , p_source_15 => l_array_source_15(Idx)
73545  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73546  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73547  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73548  , p_source_18 => l_array_source_18(Idx)
73549  , p_source_18_meaning => l_array_source_18_meaning(Idx)
73550  , p_source_19 => l_array_source_19(Idx)
73551  , p_source_21 => l_array_source_21(Idx)
73552  , p_source_23 => l_array_source_23(Idx)
73553  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73554  , p_source_25 => l_array_source_25(Idx)
73555  , p_source_26 => l_array_source_26(Idx)
73556  , p_source_27 => l_array_source_27(Idx)
73557  , p_source_28 => l_array_source_28(Idx)
73558  , p_source_29 => l_array_source_29(Idx)
73559  , p_source_30 => l_array_source_30(Idx)
73560  , p_source_31 => l_array_source_31(Idx)
73561  , p_source_32 => l_array_source_32(Idx)
73562  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73563  , p_source_34 => l_array_source_34(Idx)
73564  , p_source_35 => l_array_source_35(Idx)
73565  , p_source_36 => l_array_source_36(Idx)
73566  , p_source_37 => l_array_source_37(Idx)
73567  , p_source_38 => l_array_source_38(Idx)
73568  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73569  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73570  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73571  , p_source_43 => l_array_source_43(Idx)
73572  , p_source_44 => l_array_source_44(Idx)
73573  , p_source_45 => l_array_source_45(Idx)
73574  , p_source_46 => l_array_source_46(Idx)
73575  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73576  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73577  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73578  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73579  , p_source_50 => l_array_source_50(Idx)
73580  , p_source_51 => l_array_source_51(Idx)
73581  , p_source_52 => l_array_source_52(Idx)
73582  , p_source_53 => l_array_source_53(Idx)
73583  , p_source_54 => l_array_source_54(Idx)
73584  , p_source_55 => l_array_source_55(Idx)
73585  , p_source_56 => l_array_source_56(Idx)
73586  , p_source_57 => l_array_source_57(Idx)
73587  , p_source_81 => l_array_source_81(Idx)
73588  , p_source_82 => l_array_source_82(Idx)
73589  );
73590 If(l_balance_type_code = 'A') THEN
73591   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73592 END IF;
73593 
73594 --
73595 
73596 
73597 --
73598 AcctLineType_83 (
73599  p_application_id  => p_application_id
73600  ,p_event_id     => l_event_id
73601  ,p_calculate_acctd_flag => l_calculate_acctd_flag
73602  ,p_calculate_g_l_flag => l_calculate_g_l_flag
73603  ,p_actual_flag => l_actual_flag
73604  ,p_balance_type_code => l_balance_type_code
73605  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73606  
73607  , p_source_1 => l_array_source_1(Idx)
73608  , p_source_11 => l_array_source_11(Idx)
73609  , p_source_15 => l_array_source_15(Idx)
73610  , p_source_15_meaning => l_array_source_15_meaning(Idx)
73611  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
73612  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
73613  , p_source_19 => l_array_source_19(Idx)
73614  , p_source_21 => l_array_source_21(Idx)
73615  , p_source_23 => l_array_source_23(Idx)
73616  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
73617  , p_source_25 => l_array_source_25(Idx)
73618  , p_source_26 => l_array_source_26(Idx)
73619  , p_source_27 => l_array_source_27(Idx)
73620  , p_source_28 => l_array_source_28(Idx)
73621  , p_source_29 => l_array_source_29(Idx)
73622  , p_source_30 => l_array_source_30(Idx)
73623  , p_source_31 => l_array_source_31(Idx)
73624  , p_source_32 => l_array_source_32(Idx)
73625  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
73626  , p_source_34 => l_array_source_34(Idx)
73627  , p_source_35 => l_array_source_35(Idx)
73628  , p_source_36 => l_array_source_36(Idx)
73629  , p_source_37 => l_array_source_37(Idx)
73630  , p_source_38 => l_array_source_38(Idx)
73631  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
73632  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
73633  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
73634  , p_source_43 => l_array_source_43(Idx)
73635  , p_source_44 => l_array_source_44(Idx)
73636  , p_source_45 => l_array_source_45(Idx)
73637  , p_source_46 => l_array_source_46(Idx)
73638  , p_source_46_meaning => l_array_source_46_meaning(Idx)
73639  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
73640  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
73641  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
73642  , p_source_50 => l_array_source_50(Idx)
73643  , p_source_51 => l_array_source_51(Idx)
73644  , p_source_52 => l_array_source_52(Idx)
73645  , p_source_53 => l_array_source_53(Idx)
73646  , p_source_54 => l_array_source_54(Idx)
73650  , p_source_66 => l_array_source_66(Idx)
73647  , p_source_55 => l_array_source_55(Idx)
73648  , p_source_56 => l_array_source_56(Idx)
73649  , p_source_57 => l_array_source_57(Idx)
73651  );
73652 If(l_balance_type_code = 'A') THEN
73653   l_actual_gain_loss_ref := l_gain_or_loss_ref;
73654 END IF;
73655 
73656 --
73657 
73658       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
73659       -- or secondary ledger that has different currency with primary
73660       -- or alc that is calculated by sla
73661       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73662             (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'))
73663 
73664 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
73665 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
73666           AND (l_actual_flag = 'A')) THEN
73667         XLA_AE_LINES_PKG.CreateGainOrLossLines(
73668           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
73669          ,p_application_id   => p_application_id
73670          ,p_amb_context_code => 'DEFAULT'
73671          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
73672          ,p_event_class_code => C_EVENT_CLASS_CODE
73673          ,p_event_type_code  => C_EVENT_TYPE_CODE
73674          
73675          ,p_gain_ccid        => -1
73676          ,p_loss_ccid        => -1
73677 
73678          ,p_actual_flag      => l_actual_flag
73679          ,p_enc_flag         => null
73680          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
73681          ,p_enc_g_l_ref      => null
73682          );
73683       END IF;
73684    END IF;
73685 END IF;
73686 
73687    ELSE
73688       --
73689       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
73690       --
73691       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73692          trace
73693             (p_msg      => 'Trancaction revesal option is Y'
73694             ,p_level    => C_LEVEL_STATEMENT
73695             ,p_module   => l_log_module);
73696       END IF;
73697    END IF;
73698 
73699 END LOOP;
73700 l_result := XLA_AE_LINES_PKG.InsertLines ;
73701 end loop;
73702 close line_cur;
73703 
73704 
73705 --
73706 -- insert headers into xla_ae_headers_gt table
73707 --
73708 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
73709 
73710 -- insert into errors table here.
73711 
73712 END LOOP;
73713 
73714 --
73715 -- 4865292
73716 --
73717 -- Compare g_hdr_extract_count with event count in
73718 -- CreateHeadersAndLines.
73719 --
73720 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
73721 
73722 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73723    trace (p_msg     => '# rows extracted from header extract objects '
73724                     || ' (running total): '
73725                     || g_hdr_extract_count
73726          ,p_level   => C_LEVEL_STATEMENT
73727          ,p_module  => l_log_module);
73728 END IF;
73729 
73730 CLOSE header_cur;
73731 --
73732 
73733 --
73734 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73735    trace
73736       (p_msg      => 'END of EventClass_105'
73737       ,p_level    => C_LEVEL_PROCEDURE
73738       ,p_module   => l_log_module);
73739 END IF;
73740 --
73741 RETURN l_result;
73742 EXCEPTION
73743 WHEN xla_exceptions_pkg.application_exception THEN
73744    
73745 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
73746 
73747    
73748 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
73749 
73750    RAISE;
73751 
73752 WHEN NO_DATA_FOUND THEN
73753 
73754 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
73755 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
73756 
73757 FOR header_record IN header_cur
73758 LOOP
73759     l_array_header_events(header_record.event_id) := header_record.event_id;
73760 END LOOP;
73761 
73762 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
73763 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
73764 
73765 fnd_file.put_line(fnd_file.LOG, '                    ');
73766 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
73767 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
73768 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
73769 
73770 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
73771 LOOP
73772 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
73773 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
73774         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
73775 	END IF;
73776 END LOOP;
73777 
73778 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
73779 fnd_file.put_line(fnd_file.LOG, '                    ');
73780 
73781 
73782 xla_exceptions_pkg.raise_message
73783       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_105');
73784 
73785 
73786 WHEN OTHERS THEN
73787    xla_exceptions_pkg.raise_message
73788       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_105');
73792 ---------------------------------------
73789 END EventClass_105;
73790 --
73791 
73793 --
73794 -- PRIVATE PROCEDURE
73795 --         insert_sources_106
73796 --
73797 ----------------------------------------
73798 --
73799 PROCEDURE insert_sources_106(
73800                                 p_target_ledger_id       IN NUMBER
73801                               , p_language               IN VARCHAR2
73802                               , p_sla_ledger_id          IN NUMBER
73803                               , p_pad_start_date         IN DATE
73804                               , p_pad_end_date           IN DATE
73805                          )
73806 IS
73807 
73808 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
73809 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
73810 p_apps_owner                   VARCHAR2(30);
73811 l_log_module                   VARCHAR2(240);
73812 BEGIN
73813 IF g_log_enabled THEN
73814       l_log_module := C_DEFAULT_MODULE||'.insert_sources_106';
73815 END IF;
73816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73817 
73818       trace
73819          (p_msg      => 'BEGIN of insert_sources_106'
73820          ,p_level    => C_LEVEL_PROCEDURE
73821          ,p_module   => l_log_module);
73822 
73823 END IF;
73824 
73825 -- select APPS owner
73826 SELECT oracle_username
73827   INTO p_apps_owner
73828   FROM fnd_oracle_userid
73829  WHERE read_only_flag = 'U'
73830 ;
73831 
73832 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73833       trace
73834          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
73835                         ' - p_language = '||p_language||
73836                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
73837                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
73838                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
73839                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
73840          ,p_level    => C_LEVEL_STATEMENT
73841          ,p_module   => l_log_module);
73842 END IF;
73843 
73844  
73845 
73846 
73847 --
73848 INSERT INTO xla_diag_sources  --line2
73849 (
73850         event_id
73851       , ledger_id
73852       , sla_ledger_id
73853       , description_language
73854       , object_name
73855       , object_type_code
73856       , line_number
73857       , source_application_id
73858       , source_type_code
73859       , source_code
73860       , source_value
73861       , source_meaning
73862       , created_by
73863       , creation_date
73864       , last_update_date
73865       , last_updated_by
73866       , last_update_login
73867       , program_update_date
73868       , program_application_id
73869       , program_id
73870       , request_id
73871 )
73872 SELECT  event_id
73873       , p_target_ledger_id
73874       , p_sla_ledger_id
73875       , p_language
73876       , object_name
73877       , object_type_code
73878       , line_number
73879       , source_application_id
73880       , source_type_code
73881       , source_code
73882       , SUBSTR(source_value,1,1996)
73883       , SUBSTR(source_meaning ,1,200)
73884       , xla_environment_pkg.g_Usr_Id
73885       , TRUNC(SYSDATE)
73886       , TRUNC(SYSDATE)
73887       , xla_environment_pkg.g_Usr_Id
73888       , xla_environment_pkg.g_Login_Id
73889       , TRUNC(SYSDATE)
73890       , xla_environment_pkg.g_Prog_Appl_Id
73891       , xla_environment_pkg.g_Prog_Id
73892       , xla_environment_pkg.g_Req_Id
73893   FROM (
73894        SELECT xet.event_id                  event_id
73895             , l1.line_number                 line_number
73896             , CASE r
73897                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73898                 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V' 
73899                 WHEN 3 THEN 'PA_XLA_TASK_REF_V' 
73900                 WHEN 4 THEN 'PA_XLA_EXP_ORG_REF_V' 
73901                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73902                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73903                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73904                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73905                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73906                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73907                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73908                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73909                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73910                 WHEN 14 THEN 'PA_XLA_PROJECT_REF_V' 
73911                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73912                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73913                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73914                 WHEN 18 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73915                 WHEN 19 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73916                 WHEN 20 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73917                 WHEN 21 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73918                 WHEN 22 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73919                 WHEN 23 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73920                 WHEN 24 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73921                 WHEN 25 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73922                 WHEN 26 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73923                 WHEN 27 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73927                 WHEN 31 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73924                 WHEN 28 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73925                 WHEN 29 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73926                 WHEN 30 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73928                 WHEN 32 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73929                 WHEN 33 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73930                 WHEN 34 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73931                 WHEN 35 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73932                 WHEN 36 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73933                 WHEN 37 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73934                 WHEN 38 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73935                 WHEN 39 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73936                 WHEN 40 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73937                 WHEN 41 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73938                 WHEN 42 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73939                 WHEN 43 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73940                 WHEN 44 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73941                 WHEN 45 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73942                 WHEN 46 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73943                 WHEN 47 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73944                 WHEN 48 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73945                 WHEN 49 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73946                 WHEN 50 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73947                 WHEN 51 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
73948                 
73949                ELSE null
73950               END                           object_name
73951             , CASE r
73952                 WHEN 1 THEN 'LINE' 
73953                 WHEN 2 THEN 'LINE' 
73954                 WHEN 3 THEN 'LINE' 
73955                 WHEN 4 THEN 'LINE' 
73956                 WHEN 5 THEN 'LINE' 
73957                 WHEN 6 THEN 'LINE' 
73958                 WHEN 7 THEN 'LINE' 
73959                 WHEN 8 THEN 'LINE' 
73960                 WHEN 9 THEN 'LINE' 
73961                 WHEN 10 THEN 'LINE' 
73962                 WHEN 11 THEN 'LINE' 
73963                 WHEN 12 THEN 'LINE' 
73964                 WHEN 13 THEN 'LINE' 
73965                 WHEN 14 THEN 'LINE' 
73966                 WHEN 15 THEN 'LINE' 
73967                 WHEN 16 THEN 'LINE' 
73968                 WHEN 17 THEN 'LINE' 
73969                 WHEN 18 THEN 'LINE' 
73970                 WHEN 19 THEN 'LINE' 
73971                 WHEN 20 THEN 'LINE' 
73972                 WHEN 21 THEN 'LINE' 
73973                 WHEN 22 THEN 'LINE' 
73974                 WHEN 23 THEN 'LINE' 
73975                 WHEN 24 THEN 'LINE' 
73976                 WHEN 25 THEN 'LINE' 
73977                 WHEN 26 THEN 'LINE' 
73978                 WHEN 27 THEN 'LINE' 
73979                 WHEN 28 THEN 'LINE' 
73980                 WHEN 29 THEN 'LINE' 
73981                 WHEN 30 THEN 'LINE' 
73982                 WHEN 31 THEN 'LINE' 
73983                 WHEN 32 THEN 'LINE' 
73984                 WHEN 33 THEN 'LINE' 
73985                 WHEN 34 THEN 'LINE' 
73986                 WHEN 35 THEN 'LINE' 
73987                 WHEN 36 THEN 'LINE' 
73988                 WHEN 37 THEN 'LINE' 
73989                 WHEN 38 THEN 'LINE' 
73990                 WHEN 39 THEN 'LINE' 
73991                 WHEN 40 THEN 'LINE' 
73992                 WHEN 41 THEN 'LINE' 
73993                 WHEN 42 THEN 'LINE' 
73994                 WHEN 43 THEN 'LINE' 
73995                 WHEN 44 THEN 'LINE' 
73996                 WHEN 45 THEN 'LINE' 
73997                 WHEN 46 THEN 'LINE' 
73998                 WHEN 47 THEN 'LINE' 
73999                 WHEN 48 THEN 'LINE' 
74000                 WHEN 49 THEN 'LINE' 
74001                 WHEN 50 THEN 'LINE' 
74002                 WHEN 51 THEN 'LINE' 
74003                 
74004                 ELSE null
74005               END                           object_type_code
74006             , CASE r
74007                 WHEN 1 THEN '200' 
74008                 WHEN 2 THEN '275' 
74009                 WHEN 3 THEN '275' 
74010                 WHEN 4 THEN '275' 
74011                 WHEN 5 THEN '200' 
74012                 WHEN 6 THEN '200' 
74013                 WHEN 7 THEN '200' 
74014                 WHEN 8 THEN '200' 
74015                 WHEN 9 THEN '200' 
74016                 WHEN 10 THEN '200' 
74017                 WHEN 11 THEN '200' 
74018                 WHEN 12 THEN '200' 
74019                 WHEN 13 THEN '200' 
74020                 WHEN 14 THEN '275' 
74021                 WHEN 15 THEN '200' 
74022                 WHEN 16 THEN '200' 
74023                 WHEN 17 THEN '200' 
74024                 WHEN 18 THEN '200' 
74025                 WHEN 19 THEN '200' 
74026                 WHEN 20 THEN '200' 
74027                 WHEN 21 THEN '200' 
74028                 WHEN 22 THEN '200' 
74029                 WHEN 23 THEN '200' 
74030                 WHEN 24 THEN '200' 
74031                 WHEN 25 THEN '200' 
74032                 WHEN 26 THEN '200' 
74033                 WHEN 27 THEN '200' 
74034                 WHEN 28 THEN '200' 
74035                 WHEN 29 THEN '200' 
74036                 WHEN 30 THEN '200' 
74037                 WHEN 31 THEN '200' 
74038                 WHEN 32 THEN '200' 
74039                 WHEN 33 THEN '200' 
74040                 WHEN 34 THEN '200' 
74041                 WHEN 35 THEN '200' 
74042                 WHEN 36 THEN '200' 
74043                 WHEN 37 THEN '200' 
74047                 WHEN 41 THEN '200' 
74044                 WHEN 38 THEN '200' 
74045                 WHEN 39 THEN '200' 
74046                 WHEN 40 THEN '200' 
74048                 WHEN 42 THEN '200' 
74049                 WHEN 43 THEN '200' 
74050                 WHEN 44 THEN '200' 
74051                 WHEN 45 THEN '200' 
74052                 WHEN 46 THEN '200' 
74053                 WHEN 47 THEN '200' 
74054                 WHEN 48 THEN '200' 
74055                 WHEN 49 THEN '200' 
74056                 WHEN 50 THEN '200' 
74057                 WHEN 51 THEN '200' 
74058                 
74059                 ELSE null
74060               END                           source_application_id
74061             , 'S'             source_type_code
74062             , CASE r
74063                 WHEN 1 THEN 'DOCUMENT_DISTRIBUTION_TYPE' 
74064                 WHEN 2 THEN 'PROJECT_NAME' 
74065                 WHEN 3 THEN 'TASK_NUMBER' 
74066                 WHEN 4 THEN 'EXPENDITURE_ORGANIZATION_ID' 
74067                 WHEN 5 THEN 'BUDGET_CCID' 
74068                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
74069                 WHEN 7 THEN 'AID_INVOICE_DIST_ID' 
74070                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
74071                 WHEN 9 THEN 'INV_EXCHANGE_DATE' 
74072                 WHEN 10 THEN 'INV_EXCHANGE_RATE' 
74073                 WHEN 11 THEN 'INV_EXCHANGE_RATE_TYPE' 
74074                 WHEN 12 THEN 'AID_AMOUNT' 
74075                 WHEN 13 THEN 'DOCUMENT_TYPE' 
74076                 WHEN 14 THEN 'PROJ_BURDEN_DISPLAY_METHOD' 
74077                 WHEN 15 THEN 'ACCT_REVERSAL_INDICATOR' 
74078                 WHEN 16 THEN 'ALLOC_TO_APPLN_ID' 
74079                 WHEN 17 THEN 'ALLOC_TO_DIST_TYPE' 
74080                 WHEN 18 THEN 'ALLOC_TO_ENTITY_CODE' 
74081                 WHEN 19 THEN 'ALLOC_TO_FIRST_DIST_ID' 
74082                 WHEN 20 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID' 
74083                 WHEN 21 THEN 'AP_APPLICATION_ID' 
74084                 WHEN 22 THEN 'AP_DISTRIBUTION_TYPE' 
74085                 WHEN 23 THEN 'AP_ENTITY_CODE' 
74086                 WHEN 24 THEN 'AP_FIRST_DIST_ID' 
74087                 WHEN 25 THEN 'AP_FIRST_SYS_TRANS_ID' 
74088                 WHEN 26 THEN 'AID_EXPENDITURE_TYPE' 
74089                 WHEN 27 THEN 'ENC_UPG_CR_ACCT_CLASS' 
74090                 WHEN 28 THEN 'ENC_UPG_CR_ACCOUNT' 
74091                 WHEN 29 THEN 'AID_BASE_AMT_NO_ROUND' 
74092                 WHEN 30 THEN 'ENC_UPG_DR_ACCT_CLASS' 
74093                 WHEN 31 THEN 'ENC_UPG_DR_ACCOUNT' 
74094                 WHEN 32 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
74095                 WHEN 33 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
74096                 WHEN 34 THEN 'AP_SECOND_DIST_ID' 
74097                 WHEN 35 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
74098                 WHEN 36 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
74099                 WHEN 37 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
74100                 WHEN 38 THEN 'BURDEN_COST_FLAG' 
74101                 WHEN 39 THEN 'PA_APPLICATION_ID' 
74102                 WHEN 40 THEN 'PA_DISTRIBUTION_TYPE' 
74103                 WHEN 41 THEN 'PA_ENTITY_CODE' 
74104                 WHEN 42 THEN 'PA_FIRST_DIST_ID' 
74105                 WHEN 43 THEN 'PA_FIRST_SYS_TRANS_ID' 
74106                 WHEN 44 THEN 'PA_SECOND_DIST_ID' 
74107                 WHEN 45 THEN 'PO_RELEASE_ID' 
74108                 WHEN 46 THEN 'PO_APPLICATION_ID' 
74109                 WHEN 47 THEN 'PO_DISTRIBUTION_TYPE' 
74110                 WHEN 48 THEN 'PO_ENTITY_CODE' 
74111                 WHEN 49 THEN 'PO_FIRST_DIST_ID' 
74112                 WHEN 50 THEN 'PO_FIRST_SYS_TRANS_ID' 
74113                 WHEN 51 THEN 'PO_SECOND_DIST_ID' 
74114                 
74115                 ELSE null
74116               END                           source_code
74117             , CASE r
74118                 WHEN 1 THEN TO_CHAR(l1.DOCUMENT_DISTRIBUTION_TYPE)
74119                 WHEN 2 THEN TO_CHAR(l3.PROJECT_NAME)
74120                 WHEN 3 THEN TO_CHAR(l4.TASK_NUMBER)
74121                 WHEN 4 THEN TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
74122                 WHEN 5 THEN TO_CHAR(l1.BUDGET_CCID)
74123                 WHEN 6 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
74124                 WHEN 7 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
74125                 WHEN 8 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
74126                 WHEN 9 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
74127                 WHEN 10 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
74128                 WHEN 11 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
74129                 WHEN 12 THEN TO_CHAR(l1.AID_AMOUNT)
74130                 WHEN 13 THEN TO_CHAR(l1.DOCUMENT_TYPE)
74131                 WHEN 14 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
74132                 WHEN 15 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
74133                 WHEN 16 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
74134                 WHEN 17 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
74135                 WHEN 18 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
74136                 WHEN 19 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
74137                 WHEN 20 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
74138                 WHEN 21 THEN TO_CHAR(l1.AP_APPLICATION_ID)
74139                 WHEN 22 THEN TO_CHAR(l1.AP_DISTRIBUTION_TYPE)
74140                 WHEN 23 THEN TO_CHAR(l1.AP_ENTITY_CODE)
74141                 WHEN 24 THEN TO_CHAR(l1.AP_FIRST_DIST_ID)
74142                 WHEN 25 THEN TO_CHAR(l1.AP_FIRST_SYS_TRANS_ID)
74143                 WHEN 26 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
74147                 WHEN 30 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
74144                 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
74145                 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
74146                 WHEN 29 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
74148                 WHEN 31 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
74149                 WHEN 32 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
74150                 WHEN 33 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
74151                 WHEN 34 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
74152                 WHEN 35 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
74153                 WHEN 36 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
74154                 WHEN 37 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
74155                 WHEN 38 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
74156                 WHEN 39 THEN TO_CHAR(l1.PA_APPLICATION_ID)
74157                 WHEN 40 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
74158                 WHEN 41 THEN TO_CHAR(l1.PA_ENTITY_CODE)
74159                 WHEN 42 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
74160                 WHEN 43 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
74161                 WHEN 44 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
74162                 WHEN 45 THEN TO_CHAR(l1.PO_RELEASE_ID)
74163                 WHEN 46 THEN TO_CHAR(l1.PO_APPLICATION_ID)
74164                 WHEN 47 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
74165                 WHEN 48 THEN TO_CHAR(l1.PO_ENTITY_CODE)
74166                 WHEN 49 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
74167                 WHEN 50 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
74168                 WHEN 51 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
74169                 
74170                 ELSE null
74171               END                           source_value
74172             , CASE r
74173                 WHEN 4 THEN XLA_00200_AAD_S_000006_BC_PKG.GetMeaning(
74174                           1011404
74175                          ,TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
74176                          ,'EXPENDITURE_ORGANIZATION_ID'
74177                          ,'S'
74178                          ,275)
74179                 WHEN 38 THEN fvl108.meaning
74180                 
74181                 ELSE null
74182               END               source_meaning
74183          FROM  xla_events_gt     xet  
74184         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
74185         , PA_XLA_EXP_ORG_REF_V  l2
74186         , PA_XLA_PROJECT_REF_V  l3
74187         , PA_XLA_TASK_REF_V  l4
74188   , fnd_lookup_values    fvl108
74189             , (select rownum r from all_objects where rownum <= 51 and owner = p_apps_owner)
74190         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74191           AND xet.event_class_code = C_EVENT_CLASS_CODE
74192             AND l1.event_id          = xet.event_id
74193  AND l2.expenditure_organization_id=l1.aid_expenditure_org_id AND l3.project_id=l1.aid_project_id AND l4.task_id=l1.aid_task_id   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
74194   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
74195   AND fvl108.view_application_id(+) = 275
74196   AND fvl108.language(+)            = USERENV('LANG')
74197   
74198 )
74199 ;
74200 --
74201 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74202 
74203       trace
74204          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
74205          ,p_level    => C_LEVEL_STATEMENT
74206          ,p_module   => l_log_module);
74207 
74208 END IF;
74209 
74210 
74211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74212       trace
74213          (p_msg      => 'END of insert_sources_106'
74214          ,p_level    => C_LEVEL_PROCEDURE
74215          ,p_module   => l_log_module);
74216 END IF;
74217 EXCEPTION
74218   WHEN xla_exceptions_pkg.application_exception THEN
74219       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74220             trace
74221                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74222                ,p_level    => C_LEVEL_EXCEPTION
74223                ,p_module   => l_log_module);
74224       END IF;
74225       RAISE;
74226   WHEN OTHERS THEN
74227       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74228             trace
74229                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74230                ,p_level    => C_LEVEL_EXCEPTION
74231                ,p_module   => l_log_module);
74232        END IF;
74233        xla_exceptions_pkg.raise_message
74234            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_106');
74235 END insert_sources_106;
74236 --
74237 
74238 ---------------------------------------
74239 --
74240 -- PRIVATE FUNCTION
74241 --         EventClass_106
74242 --
74243 ----------------------------------------
74244 --
74245 FUNCTION EventClass_106
74246        (p_application_id         IN NUMBER
74247        ,p_base_ledger_id         IN NUMBER
74248        ,p_target_ledger_id       IN NUMBER
74249        ,p_language               IN VARCHAR2
74250        ,p_currency_code          IN VARCHAR2
74251        ,p_sla_ledger_id          IN NUMBER
74252        ,p_pad_start_date         IN DATE
74253        ,p_pad_end_date           IN DATE
74254        ,p_primary_ledger_id      IN NUMBER)
74255 RETURN BOOLEAN IS
74256 --
74257 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
74258 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
74259 
74260 l_calculate_acctd_flag   VARCHAR2(1) :='N';
74261 l_calculate_g_l_flag     VARCHAR2(1) :='N';
74262 --
74263 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74267 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74264 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74265 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74266 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74268 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74269 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74270 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74271 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74272 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74273 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74274 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74275 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74276 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74277 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74278 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74279 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74280 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74281 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74282 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74283 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74284 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74285 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
74286 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74287 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
74288 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
74289 
74290 l_event_id                             NUMBER;
74291 l_previous_event_id                    NUMBER;
74292 l_first_event_id                       NUMBER;
74293 l_last_event_id                        NUMBER;
74294 
74295 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
74296 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
74297 --
74298 --
74299 l_result                    BOOLEAN := TRUE;
74300 l_rows                      NUMBER  := 1000;
74301 l_event_type_name           VARCHAR2(80) := 'All';
74302 l_event_class_name          VARCHAR2(80) := 'Burden for Invoices';
74303 l_description               VARCHAR2(4000);
74304 l_transaction_reversal      NUMBER;
74305 l_ae_header_id              NUMBER;
74306 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
74307 l_log_module                VARCHAR2(240);
74308 --
74309 l_acct_reversal_source      VARCHAR2(30);
74310 l_trx_reversal_source       VARCHAR2(30);
74311 
74312 l_continue_with_lines       BOOLEAN := TRUE;
74313 --
74314 l_acc_rev_gl_date_source    DATE;                      -- 4262811
74315 --
74316 type t_array_event_id is table of number index by binary_integer;
74317 
74318 l_rec_array_event                    t_rec_array_event;
74319 l_null_rec_array_event               t_rec_array_event;
74320 l_array_ae_header_id                 xla_number_array_type;
74321 l_actual_flag                        VARCHAR2(1) := NULL;
74322 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
74323 l_balance_type_code                  VARCHAR2(1) :=NULL;
74324 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
74325 
74326 --
74327 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
74328 --
74329 
74330 
74331 TYPE t_array_source_2 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74332 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
74333 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NUMBER%TYPE INDEX BY BINARY_INTEGER;
74334 TYPE t_array_source_5 IS TABLE OF PA_XLA_EXP_ORG_REF_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
74335 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
74336 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
74337 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74338 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
74339 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
74340 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
74341 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
74342 TYPE t_array_source_57 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
74343 TYPE t_array_source_83 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
74344 TYPE t_array_source_84 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
74345 TYPE t_array_source_85 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
74346 TYPE t_array_source_86 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
74347 TYPE t_array_source_87 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
74351 TYPE t_array_source_91 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
74348 TYPE t_array_source_88 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
74349 TYPE t_array_source_89 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74350 TYPE t_array_source_90 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
74352 TYPE t_array_source_92 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74353 TYPE t_array_source_93 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
74354 TYPE t_array_source_94 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74355 TYPE t_array_source_95 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
74356 TYPE t_array_source_96 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
74357 TYPE t_array_source_97 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
74358 TYPE t_array_source_98 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
74359 TYPE t_array_source_99 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
74360 TYPE t_array_source_100 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
74361 TYPE t_array_source_101 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
74362 TYPE t_array_source_102 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
74363 TYPE t_array_source_103 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74364 TYPE t_array_source_104 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74365 TYPE t_array_source_105 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74366 TYPE t_array_source_106 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
74367 TYPE t_array_source_107 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
74368 TYPE t_array_source_108 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
74369 TYPE t_array_source_109 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
74370 TYPE t_array_source_110 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74371 TYPE t_array_source_111 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
74372 TYPE t_array_source_112 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74373 TYPE t_array_source_113 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
74374 TYPE t_array_source_114 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74375 TYPE t_array_source_115 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
74376 TYPE t_array_source_116 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
74377 TYPE t_array_source_117 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74378 TYPE t_array_source_118 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
74379 TYPE t_array_source_119 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74380 TYPE t_array_source_120 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
74381 TYPE t_array_source_121 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74382 
74383 
74384 l_array_source_2      t_array_source_2;
74385 l_array_source_3      t_array_source_3;
74386 l_array_source_4      t_array_source_4;
74387 l_array_source_5      t_array_source_5;
74388 l_array_source_14      t_array_source_14;
74389 l_array_source_21      t_array_source_21;
74390 l_array_source_30      t_array_source_30;
74391 l_array_source_33      t_array_source_33;
74392 l_array_source_39      t_array_source_39;
74393 l_array_source_40      t_array_source_40;
74394 l_array_source_41      t_array_source_41;
74395 l_array_source_57      t_array_source_57;
74396 l_array_source_83      t_array_source_83;
74397 l_array_source_84      t_array_source_84;
74398 l_array_source_85      t_array_source_85;
74399 l_array_source_86      t_array_source_86;
74400 l_array_source_87      t_array_source_87;
74401 l_array_source_88      t_array_source_88;
74402 l_array_source_89      t_array_source_89;
74403 l_array_source_90      t_array_source_90;
74404 l_array_source_91      t_array_source_91;
74405 l_array_source_92      t_array_source_92;
74406 l_array_source_93      t_array_source_93;
74407 l_array_source_94      t_array_source_94;
74408 l_array_source_95      t_array_source_95;
74409 l_array_source_96      t_array_source_96;
74410 l_array_source_97      t_array_source_97;
74411 l_array_source_98      t_array_source_98;
74412 l_array_source_99      t_array_source_99;
74413 l_array_source_100      t_array_source_100;
74414 l_array_source_101      t_array_source_101;
74415 l_array_source_102      t_array_source_102;
74416 l_array_source_103      t_array_source_103;
74417 l_array_source_104      t_array_source_104;
74418 l_array_source_105      t_array_source_105;
74419 l_array_source_106      t_array_source_106;
74420 l_array_source_107      t_array_source_107;
74421 l_array_source_108      t_array_source_108;
74422 l_array_source_108_meaning      t_array_lookup_meaning;
74423 l_array_source_109      t_array_source_109;
74424 l_array_source_110      t_array_source_110;
74425 l_array_source_111      t_array_source_111;
74429 l_array_source_115      t_array_source_115;
74426 l_array_source_112      t_array_source_112;
74427 l_array_source_113      t_array_source_113;
74428 l_array_source_114      t_array_source_114;
74430 l_array_source_116      t_array_source_116;
74431 l_array_source_117      t_array_source_117;
74432 l_array_source_118      t_array_source_118;
74433 l_array_source_119      t_array_source_119;
74434 l_array_source_120      t_array_source_120;
74435 l_array_source_121      t_array_source_121;
74436 
74437 --
74438 CURSOR header_cur
74439 IS
74440 SELECT /*+ leading(xet) cardinality(xet,1) */
74441 -- Event Class Code: INVOICE_BURDEN
74442     xet.entity_id
74443    ,xet.legal_entity_id
74444    ,xet.entity_code
74445    ,xet.transaction_number
74446    ,xet.event_id
74447    ,xet.event_class_code
74448    ,xet.event_type_code
74449    ,xet.event_number
74450    ,xet.event_date
74451    ,xet.transaction_date
74452    ,xet.reference_num_1
74453    ,xet.reference_num_2
74454    ,xet.reference_num_3
74455    ,xet.reference_num_4
74456    ,xet.reference_char_1
74457    ,xet.reference_char_2
74458    ,xet.reference_char_3
74459    ,xet.reference_char_4
74460    ,xet.reference_date_1
74461    ,xet.reference_date_2
74462    ,xet.reference_date_3
74463    ,xet.reference_date_4
74464    ,xet.event_created_by
74465    ,xet.budgetary_control_flag  
74466   FROM xla_events_gt     xet  
74467  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
74468    and xet.event_class_code = C_EVENT_CLASS_CODE
74469    and xet.event_status_code <> 'N'  
74470  ORDER BY event_id
74471 ;
74472 
74473 
74474 --
74475 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
74476 IS
74477 SELECT  /*+ leading(xet) cardinality(xet,1) */
74478 -- Event Class Code: INVOICE_BURDEN
74479     xet.entity_id
74480    ,xet.legal_entity_id
74481    ,xet.entity_code
74482    ,xet.transaction_number
74483    ,xet.event_id
74484    ,xet.event_class_code
74485    ,xet.event_type_code
74486    ,xet.event_number
74487    ,xet.event_date
74488    ,xet.transaction_date
74489    ,xet.reference_num_1
74490    ,xet.reference_num_2
74491    ,xet.reference_num_3
74492    ,xet.reference_num_4
74493    ,xet.reference_char_1
74494    ,xet.reference_char_2
74495    ,xet.reference_char_3
74496    ,xet.reference_char_4
74497    ,xet.reference_date_1
74498    ,xet.reference_date_2
74499    ,xet.reference_date_3
74500    ,xet.reference_date_4
74501    ,xet.event_created_by
74502    ,xet.budgetary_control_flag
74503  , l1.LINE_NUMBER  
74504   , l1.DOCUMENT_DISTRIBUTION_TYPE    source_2
74505   , l3.PROJECT_NAME    source_3
74506   , l4.TASK_NUMBER    source_4
74507   , l2.EXPENDITURE_ORGANIZATION_ID    source_5
74508   , l1.BUDGET_CCID    source_14
74509   , l1.DISTRIBUTION_LINK_TYPE    source_21
74510   , l1.AID_INVOICE_DIST_ID    source_30
74511   , l1.AI_INVOICE_CURRENCY_CODE    source_33
74512   , l1.INV_EXCHANGE_DATE    source_39
74513   , l1.INV_EXCHANGE_RATE    source_40
74514   , l1.INV_EXCHANGE_RATE_TYPE    source_41
74515   , l1.AID_AMOUNT    source_57
74516   , l1.DOCUMENT_TYPE    source_83
74517   , l3.PROJ_BURDEN_DISPLAY_METHOD    source_84
74518   , l1.ACCT_REVERSAL_INDICATOR    source_85
74519   , l1.ALLOC_TO_APPLN_ID    source_86
74520   , l1.ALLOC_TO_DIST_TYPE    source_87
74521   , l1.ALLOC_TO_ENTITY_CODE    source_88
74522   , l1.ALLOC_TO_FIRST_DIST_ID    source_89
74523   , l1.ALLOC_TO_FIRST_SYS_TRANS_ID    source_90
74524   , l1.AP_APPLICATION_ID    source_91
74525   , l1.AP_DISTRIBUTION_TYPE    source_92
74526   , l1.AP_ENTITY_CODE    source_93
74527   , l1.AP_FIRST_DIST_ID    source_94
74528   , l1.AP_FIRST_SYS_TRANS_ID    source_95
74529   , l1.AID_EXPENDITURE_TYPE    source_96
74530   , l1.ENC_UPG_CR_ACCT_CLASS    source_97
74531   , l1.ENC_UPG_CR_ACCOUNT    source_98
74532   , l1.AID_BASE_AMT_NO_ROUND    source_99
74533   , l1.ENC_UPG_DR_ACCT_CLASS    source_100
74534   , l1.ENC_UPG_DR_ACCOUNT    source_101
74535   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_102
74536   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_103
74537   , l1.AP_SECOND_DIST_ID    source_104
74538   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_105
74539   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_106
74540   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_107
74541   , l1.BURDEN_COST_FLAG    source_108
74542   , fvl108.meaning   source_108_meaning
74543   , l1.PA_APPLICATION_ID    source_109
74544   , l1.PA_DISTRIBUTION_TYPE    source_110
74545   , l1.PA_ENTITY_CODE    source_111
74546   , l1.PA_FIRST_DIST_ID    source_112
74547   , l1.PA_FIRST_SYS_TRANS_ID    source_113
74548   , l1.PA_SECOND_DIST_ID    source_114
74549   , l1.PO_RELEASE_ID    source_115
74550   , l1.PO_APPLICATION_ID    source_116
74551   , l1.PO_DISTRIBUTION_TYPE    source_117
74552   , l1.PO_ENTITY_CODE    source_118
74553   , l1.PO_FIRST_DIST_ID    source_119
74554   , l1.PO_FIRST_SYS_TRANS_ID    source_120
74555   , l1.PO_SECOND_DIST_ID    source_121
74556   FROM xla_events_gt     xet 
74557   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
74558   , PA_XLA_EXP_ORG_REF_V  l2
74559   , PA_XLA_PROJECT_REF_V  l3
74560   , PA_XLA_TASK_REF_V  l4
74561   , fnd_lookup_values    fvl108
74562  WHERE xet.event_id between x_first_event_id and x_last_event_id
74563    and xet.event_date between p_pad_start_date and p_pad_end_date
74564    and xet.event_class_code = C_EVENT_CLASS_CODE
74568   AND fvl108.view_application_id(+) = 275
74565    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
74566  AND l2.expenditure_organization_id=l1.aid_expenditure_org_id AND l3.project_id=l1.aid_project_id AND l4.task_id=l1.aid_task_id   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
74567   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
74569   AND fvl108.language(+)            = USERENV('LANG')
74570   ;
74571 
74572 --
74573 BEGIN
74574 IF g_log_enabled THEN
74575    l_log_module := C_DEFAULT_MODULE||'.EventClass_106';
74576 END IF;
74577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74578    trace
74579       (p_msg      => 'BEGIN of EventClass_106'
74580       ,p_level    => C_LEVEL_PROCEDURE
74581       ,p_module   => l_log_module);
74582 END IF;
74583 
74584 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74585    trace
74586       (p_msg      => 'p_application_id = '||p_application_id||
74587                      ' - p_base_ledger_id = '||p_base_ledger_id||
74588                      ' - p_target_ledger_id  = '||p_target_ledger_id||
74589                      ' - p_language = '||p_language||
74590                      ' - p_currency_code = '||p_currency_code||
74591                      ' - p_sla_ledger_id = '||p_sla_ledger_id
74592       ,p_level    => C_LEVEL_STATEMENT
74593       ,p_module   => l_log_module);
74594 END IF;
74595 --
74596 -- initialze arrays
74597 --
74598 g_array_event.DELETE;
74599 l_rec_array_event := l_null_rec_array_event;
74600 --
74601 --------------------------------------
74602 -- 4262811 Initialze MPA Line Number
74603 --------------------------------------
74604 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
74605 
74606 --
74607 
74608 --
74609 OPEN header_cur;
74610 --
74611 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74612    trace
74613    (p_msg      => 'SQL - FETCH header_cur'
74614    ,p_level    => C_LEVEL_STATEMENT
74615    ,p_module   => l_log_module);
74616 END IF;
74617 --
74618 LOOP
74619 FETCH header_cur BULK COLLECT INTO
74620         l_array_entity_id
74621       , l_array_legal_entity_id
74622       , l_array_entity_code
74623       , l_array_transaction_num
74624       , l_array_event_id
74625       , l_array_class_code
74626       , l_array_event_type
74627       , l_array_event_number
74628       , l_array_event_date
74629       , l_array_transaction_date
74630       , l_array_reference_num_1
74631       , l_array_reference_num_2
74632       , l_array_reference_num_3
74633       , l_array_reference_num_4
74634       , l_array_reference_char_1
74635       , l_array_reference_char_2
74636       , l_array_reference_char_3
74637       , l_array_reference_char_4
74638       , l_array_reference_date_1
74639       , l_array_reference_date_2
74640       , l_array_reference_date_3
74641       , l_array_reference_date_4
74642       , l_array_event_created_by
74643       , l_array_budgetary_control_flag 
74644       LIMIT l_rows;
74645 --
74646 IF (C_LEVEL_EVENT >= g_log_level) THEN
74647    trace
74648    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
74649    ,p_level    => C_LEVEL_EVENT
74650    ,p_module   => l_log_module);
74651 END IF;
74652 --
74653 EXIT WHEN l_array_entity_id.COUNT = 0;
74654 
74655 -- initialize arrays
74656 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
74657 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
74658 
74659 --
74660 -- Bug 4458708
74661 --
74662 XLA_AE_LINES_PKG.g_LineNumber := 0;
74663 
74664 
74665 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
74666 g_last_hdr_idx := l_array_event_id.LAST;
74667 --
74668 -- loop for the headers. Each iteration is for each header extract row
74669 -- fetched in header cursor
74670 --
74671 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
74672 
74673 --
74674 -- set event info as cache for other routines to refer event attributes
74675 --
74676 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74677    (p_application_id           => p_application_id
74678    ,p_primary_ledger_id        => p_primary_ledger_id
74679    ,p_base_ledger_id           => p_base_ledger_id
74680    ,p_target_ledger_id         => p_target_ledger_id
74681    ,p_entity_id                => l_array_entity_id(hdr_idx)
74682    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
74683    ,p_entity_code              => l_array_entity_code(hdr_idx)
74684    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
74685    ,p_event_id                 => l_array_event_id(hdr_idx)
74686    ,p_event_class_code         => l_array_class_code(hdr_idx)
74687    ,p_event_type_code          => l_array_event_type(hdr_idx)
74688    ,p_event_number             => l_array_event_number(hdr_idx)
74689    ,p_event_date               => l_array_event_date(hdr_idx)
74690    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
74691    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
74692    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
74693    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
74694    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
74695    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
74696    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
74700    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
74697    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
74698    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
74699    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
74701    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
74702    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
74703    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
74704    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
74705 
74706 --
74707 -- set the status of entry to C_VALID (0)
74708 --
74709 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74710 
74711 --
74712 -- initialize a row for ae header
74713 --
74714 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
74715 
74716 l_event_id := l_array_event_id(hdr_idx);
74717 
74718 --
74719 -- storing the hdr_idx for event. May be used by line cursor.
74720 --
74721 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
74722 
74723 --
74724 -- store sources from header extract. This can be improved to
74725 -- store only those sources from header extract that may be used in lines
74726 --
74727 
74728 
74729 --
74730 -- initilaize the status of ae headers for diffrent balance types
74731 -- the status is initialised to C_NOT_CREATED (2)
74732 --
74733 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74734 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74735 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74736 
74737 --
74738 -- call api to validate and store accounting attributes for header
74739 --
74740 
74741 ------------------------------------------------------------
74742 -- Accrual Reversal : to get date for Standard Source (NONE)
74743 ------------------------------------------------------------
74744 l_acc_rev_gl_date_source := NULL;
74745 
74746      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
74747       l_rec_acct_attrs.array_date_value(1) := 
74748 xla_ae_sources_pkg.GetSystemSourceDate(
74749    p_source_code           => 'XLA_EVENT_DATE'
74750  , p_source_type_code      => 'Y'
74751  , p_source_application_id =>  602
74752 );
74753 
74754 
74755 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
74756 
74757 XLA_AE_HEADER_PKG.SetJeCategoryName;
74758 
74759 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
74760 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
74761 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
74762 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
74763 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
74764 
74765 
74766 -- No header level analytical criteria
74767 
74768 --
74769 --accounting attribute enhancement, bug 3612931
74770 --
74771 l_trx_reversal_source := SUBSTR(NULL, 1,30);
74772 
74773 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
74774    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
74775 
74776    xla_accounting_err_pkg.build_message
74777       (p_appli_s_name            => 'XLA'
74778       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
74779       ,p_token_1                 => 'ACCT_ATTR_NAME'
74780       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
74781       ,p_token_2                 => 'PRODUCT_NAME'
74782       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74783       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74784       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
74785       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74786 
74787 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
74788    --
74789    -- following sets the accounting attributes needed to reverse
74790    -- accounting for a distributeion
74791    --
74792    xla_ae_lines_pkg.SetTrxReversalAttrs
74793       (p_event_id              => l_event_id
74794       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
74795       ,p_trx_reversal_source   => l_trx_reversal_source);
74796 
74797 END IF;
74798 
74799 
74800 ----------------------------------------------------------------
74801 -- 4262811 -  update the header statuses to invalid in need be
74802 ----------------------------------------------------------------
74803 --
74804 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
74805 
74806 
74807   -----------------------------------------------
74808   -- No accrual reversal for the event class/type
74809   -----------------------------------------------
74810 ----------------------------------------------------------------
74811 
74812 --
74813 -- this ends the header loop iteration for one bulk fetch
74814 --
74815 END LOOP;
74816 
74817 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
74818 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
74819 
74820 --
74824 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
74821 -- insert dummy rows into lines gt table that were created due to
74822 -- transaction reversals
74823 --
74825    l_result := XLA_AE_LINES_PKG.InsertLines;
74826 END IF;
74827 
74828 --
74829 -- reset the temp_line_num for each set of events fetched from header
74830 -- cursor rather than doing it for each new event in line cursor
74831 -- Bug 3939231
74832 --
74833 xla_ae_lines_pkg.g_temp_line_num := 0;
74834 
74835 
74836 
74837 --
74838 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
74839 --
74840 --
74841 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74842 
74843       trace
74844          (p_msg      => 'SQL - FETCH line_cur'
74845          ,p_level    => C_LEVEL_STATEMENT
74846          ,p_module   => l_log_module);
74847 
74848 END IF;
74849 --
74850 --
74851 LOOP
74852   --
74853   FETCH line_cur BULK COLLECT INTO
74854         l_array_entity_id
74855       , l_array_legal_entity_id
74856       , l_array_entity_code
74857       , l_array_transaction_num
74858       , l_array_event_id
74859       , l_array_class_code
74860       , l_array_event_type
74861       , l_array_event_number
74862       , l_array_event_date
74863       , l_array_transaction_date
74864       , l_array_reference_num_1
74865       , l_array_reference_num_2
74866       , l_array_reference_num_3
74867       , l_array_reference_num_4
74868       , l_array_reference_char_1
74869       , l_array_reference_char_2
74870       , l_array_reference_char_3
74871       , l_array_reference_char_4
74872       , l_array_reference_date_1
74873       , l_array_reference_date_2
74874       , l_array_reference_date_3
74875       , l_array_reference_date_4
74876       , l_array_event_created_by
74877       , l_array_budgetary_control_flag
74878       , l_array_extract_line_num 
74879       , l_array_source_2
74880       , l_array_source_3
74881       , l_array_source_4
74882       , l_array_source_5
74883       , l_array_source_14
74884       , l_array_source_21
74885       , l_array_source_30
74886       , l_array_source_33
74887       , l_array_source_39
74888       , l_array_source_40
74889       , l_array_source_41
74890       , l_array_source_57
74891       , l_array_source_83
74892       , l_array_source_84
74893       , l_array_source_85
74894       , l_array_source_86
74895       , l_array_source_87
74896       , l_array_source_88
74897       , l_array_source_89
74898       , l_array_source_90
74899       , l_array_source_91
74900       , l_array_source_92
74901       , l_array_source_93
74902       , l_array_source_94
74903       , l_array_source_95
74904       , l_array_source_96
74905       , l_array_source_97
74906       , l_array_source_98
74907       , l_array_source_99
74908       , l_array_source_100
74909       , l_array_source_101
74910       , l_array_source_102
74911       , l_array_source_103
74912       , l_array_source_104
74913       , l_array_source_105
74914       , l_array_source_106
74915       , l_array_source_107
74916       , l_array_source_108
74917       , l_array_source_108_meaning
74918       , l_array_source_109
74919       , l_array_source_110
74920       , l_array_source_111
74921       , l_array_source_112
74922       , l_array_source_113
74923       , l_array_source_114
74924       , l_array_source_115
74925       , l_array_source_116
74926       , l_array_source_117
74927       , l_array_source_118
74928       , l_array_source_119
74929       , l_array_source_120
74930       , l_array_source_121
74931       LIMIT l_rows;
74932 
74933   --
74934   IF (C_LEVEL_EVENT >= g_log_level) THEN
74935             trace
74936                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
74937                ,p_level    => C_LEVEL_EVENT
74938                ,p_module   => l_log_module);
74939   END IF;
74940   --
74941   EXIT WHEN l_array_entity_id.count = 0;
74942 
74943   XLA_AE_LINES_PKG.g_rec_lines := null;
74944 
74945 --
74946 -- Bug 4458708
74947 --
74948 XLA_AE_LINES_PKG.g_LineNumber := 0;
74949 --
74950 --
74951 
74952 FOR Idx IN 1..l_array_event_id.count LOOP
74953    --
74954    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
74955    --
74956    l_event_id := l_array_event_id(idx);  -- 5648433
74957 
74958    --
74959    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74960    --
74961 
74962    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
74963              (g_array_event(l_event_id).array_value_num('header_index'))
74964          ,'N'
74965          ) <> 'Y'
74966    THEN
74967       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74968          trace
74969             (p_msg      => 'Trancaction revesal option is not Y '
74970             ,p_level    => C_LEVEL_STATEMENT
74971             ,p_module   => l_log_module);
74972       END IF;
74973 
74974 --
74975 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
74976 --
74977 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74978 --
74979 -- set event info as cache for other routines to refer event attributes
74980 --
74981 
74985    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74982 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
74983    l_previous_event_id := l_event_id;
74984 
74986       (p_application_id           => p_application_id
74987       ,p_primary_ledger_id        => p_primary_ledger_id
74988       ,p_base_ledger_id           => p_base_ledger_id
74989       ,p_target_ledger_id         => p_target_ledger_id
74990       ,p_entity_id                => l_array_entity_id(Idx)
74991       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
74992       ,p_entity_code              => l_array_entity_code(Idx)
74993       ,p_transaction_num          => l_array_transaction_num(Idx)
74994       ,p_event_id                 => l_array_event_id(Idx)
74995       ,p_event_class_code         => l_array_class_code(Idx)
74996       ,p_event_type_code          => l_array_event_type(Idx)
74997       ,p_event_number             => l_array_event_number(Idx)
74998       ,p_event_date               => l_array_event_date(Idx)
74999       ,p_transaction_date         => l_array_transaction_date(Idx)
75000       ,p_reference_num_1          => l_array_reference_num_1(Idx)
75001       ,p_reference_num_2          => l_array_reference_num_2(Idx)
75002       ,p_reference_num_3          => l_array_reference_num_3(Idx)
75003       ,p_reference_num_4          => l_array_reference_num_4(Idx)
75004       ,p_reference_char_1         => l_array_reference_char_1(Idx)
75005       ,p_reference_char_2         => l_array_reference_char_2(Idx)
75006       ,p_reference_char_3         => l_array_reference_char_3(Idx)
75007       ,p_reference_char_4         => l_array_reference_char_4(Idx)
75008       ,p_reference_date_1         => l_array_reference_date_1(Idx)
75009       ,p_reference_date_2         => l_array_reference_date_2(Idx)
75010       ,p_reference_date_3         => l_array_reference_date_3(Idx)
75011       ,p_reference_date_4         => l_array_reference_date_4(Idx)
75012       ,p_event_created_by         => l_array_event_created_by(Idx)
75013       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
75014        --
75015 END IF;
75016 
75017 
75018 
75019 --
75020 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
75021 
75022 l_acct_reversal_source := SUBSTR(l_array_source_85(Idx), 1,30);
75023 
75024 IF l_continue_with_lines THEN
75025    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
75026       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
75027 
75028       xla_accounting_err_pkg.build_message
75029          (p_appli_s_name            => 'XLA'
75030          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
75031          ,p_token_1                 => 'LINE_NUMBER'
75032          ,p_value_1                 => l_array_extract_line_num(Idx)
75033          ,p_token_2                 => 'PRODUCT_NAME'
75034          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75035          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75036          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
75037          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75038 
75039    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75040       --
75041       -- following sets the accounting attributes needed to reverse
75042       -- accounting for a distributeion
75043       --
75044 
75045       --
75046       -- 5217187
75047       --
75048       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75049       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75050                                        g_array_event(l_event_id).array_value_num('header_index'));
75051       --
75052       --
75053 
75054       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
75055       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_85(Idx);
75056       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
75057       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
75058       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
75059       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_96(Idx);
75060       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
75061       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_21(Idx);
75062       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
75063       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_97(Idx);
75064       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
75065       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_98(Idx);
75066       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
75067       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_57(Idx);
75068       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
75069       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_33(Idx);
75070       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
75071       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_99(Idx);
75072       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
75073       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_100(Idx);
75074       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
75075       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_101(Idx);
75079       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_33(Idx);
75076       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
75077       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_57(Idx);
75078       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
75080       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
75081       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_99(Idx);
75082       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
75083       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_102(Idx);
75084       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
75085       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_103(Idx);
75086       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
75087       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_104(Idx);
75088       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
75089       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_105(Idx);
75090       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
75091       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_106(Idx);
75092       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
75093       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_107(Idx);
75094 
75095 
75096       xla_ae_lines_pkg.SetAcctReversalAttrs
75097          (p_event_id             => l_event_id
75098          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
75099          ,p_calculate_acctd_flag => l_calculate_acctd_flag
75100          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
75101    END IF;
75102 
75103    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75104        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
75105 
75106 --
75107 AcctLineType_85 (
75108  p_application_id  => p_application_id
75109  ,p_event_id     => l_event_id
75110  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75111  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75112  ,p_actual_flag => l_actual_flag
75113  ,p_balance_type_code => l_balance_type_code
75114  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75115  
75116  , p_source_2 => l_array_source_2(Idx)
75117  , p_source_3 => l_array_source_3(Idx)
75118  , p_source_4 => l_array_source_4(Idx)
75119  , p_source_5 => l_array_source_5(Idx)
75120  , p_source_14 => l_array_source_14(Idx)
75121  , p_source_21 => l_array_source_21(Idx)
75122  , p_source_30 => l_array_source_30(Idx)
75123  , p_source_33 => l_array_source_33(Idx)
75124  , p_source_39 => l_array_source_39(Idx)
75125  , p_source_40 => l_array_source_40(Idx)
75126  , p_source_41 => l_array_source_41(Idx)
75127  , p_source_57 => l_array_source_57(Idx)
75128  , p_source_83 => l_array_source_83(Idx)
75129  , p_source_84 => l_array_source_84(Idx)
75130  , p_source_85 => l_array_source_85(Idx)
75131  , p_source_86 => l_array_source_86(Idx)
75132  , p_source_87 => l_array_source_87(Idx)
75133  , p_source_88 => l_array_source_88(Idx)
75134  , p_source_89 => l_array_source_89(Idx)
75135  , p_source_90 => l_array_source_90(Idx)
75136  , p_source_91 => l_array_source_91(Idx)
75137  , p_source_92 => l_array_source_92(Idx)
75138  , p_source_93 => l_array_source_93(Idx)
75139  , p_source_94 => l_array_source_94(Idx)
75140  , p_source_95 => l_array_source_95(Idx)
75141  , p_source_96 => l_array_source_96(Idx)
75142  , p_source_97 => l_array_source_97(Idx)
75143  , p_source_98 => l_array_source_98(Idx)
75144  , p_source_99 => l_array_source_99(Idx)
75145  , p_source_100 => l_array_source_100(Idx)
75146  , p_source_101 => l_array_source_101(Idx)
75147  , p_source_102 => l_array_source_102(Idx)
75148  , p_source_103 => l_array_source_103(Idx)
75149  , p_source_104 => l_array_source_104(Idx)
75150  , p_source_105 => l_array_source_105(Idx)
75151  , p_source_106 => l_array_source_106(Idx)
75152  , p_source_107 => l_array_source_107(Idx)
75153  );
75154 If(l_balance_type_code = 'A') THEN
75155   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75156 END IF;
75157 
75158 --
75159 
75160 
75161 --
75162 AcctLineType_86 (
75163  p_application_id  => p_application_id
75164  ,p_event_id     => l_event_id
75165  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75166  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75167  ,p_actual_flag => l_actual_flag
75168  ,p_balance_type_code => l_balance_type_code
75169  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75170  
75171  , p_source_2 => l_array_source_2(Idx)
75172  , p_source_3 => l_array_source_3(Idx)
75173  , p_source_4 => l_array_source_4(Idx)
75174  , p_source_5 => l_array_source_5(Idx)
75175  , p_source_14 => l_array_source_14(Idx)
75176  , p_source_21 => l_array_source_21(Idx)
75177  , p_source_30 => l_array_source_30(Idx)
75178  , p_source_33 => l_array_source_33(Idx)
75179  , p_source_39 => l_array_source_39(Idx)
75180  , p_source_40 => l_array_source_40(Idx)
75181  , p_source_41 => l_array_source_41(Idx)
75182  , p_source_57 => l_array_source_57(Idx)
75183  , p_source_83 => l_array_source_83(Idx)
75184  , p_source_84 => l_array_source_84(Idx)
75185  , p_source_85 => l_array_source_85(Idx)
75186  , p_source_86 => l_array_source_86(Idx)
75187  , p_source_87 => l_array_source_87(Idx)
75188  , p_source_88 => l_array_source_88(Idx)
75189  , p_source_89 => l_array_source_89(Idx)
75190  , p_source_90 => l_array_source_90(Idx)
75191  , p_source_91 => l_array_source_91(Idx)
75192  , p_source_92 => l_array_source_92(Idx)
75193  , p_source_93 => l_array_source_93(Idx)
75197  , p_source_97 => l_array_source_97(Idx)
75194  , p_source_94 => l_array_source_94(Idx)
75195  , p_source_95 => l_array_source_95(Idx)
75196  , p_source_96 => l_array_source_96(Idx)
75198  , p_source_98 => l_array_source_98(Idx)
75199  , p_source_99 => l_array_source_99(Idx)
75200  , p_source_100 => l_array_source_100(Idx)
75201  , p_source_101 => l_array_source_101(Idx)
75202  , p_source_102 => l_array_source_102(Idx)
75203  , p_source_103 => l_array_source_103(Idx)
75204  , p_source_104 => l_array_source_104(Idx)
75205  , p_source_105 => l_array_source_105(Idx)
75206  , p_source_106 => l_array_source_106(Idx)
75207  , p_source_107 => l_array_source_107(Idx)
75208  , p_source_108 => l_array_source_108(Idx)
75209  , p_source_108_meaning => l_array_source_108_meaning(Idx)
75210  );
75211 If(l_balance_type_code = 'A') THEN
75212   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75213 END IF;
75214 
75215 --
75216 
75217 
75218 --
75219 AcctLineType_93 (
75220  p_application_id  => p_application_id
75221  ,p_event_id     => l_event_id
75222  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75223  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75224  ,p_actual_flag => l_actual_flag
75225  ,p_balance_type_code => l_balance_type_code
75226  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75227  
75228  , p_source_2 => l_array_source_2(Idx)
75229  , p_source_3 => l_array_source_3(Idx)
75230  , p_source_4 => l_array_source_4(Idx)
75231  , p_source_5 => l_array_source_5(Idx)
75232  , p_source_21 => l_array_source_21(Idx)
75233  , p_source_30 => l_array_source_30(Idx)
75234  , p_source_33 => l_array_source_33(Idx)
75235  , p_source_57 => l_array_source_57(Idx)
75236  , p_source_83 => l_array_source_83(Idx)
75237  , p_source_85 => l_array_source_85(Idx)
75238  , p_source_86 => l_array_source_86(Idx)
75239  , p_source_87 => l_array_source_87(Idx)
75240  , p_source_88 => l_array_source_88(Idx)
75241  , p_source_89 => l_array_source_89(Idx)
75242  , p_source_90 => l_array_source_90(Idx)
75243  , p_source_96 => l_array_source_96(Idx)
75244  , p_source_97 => l_array_source_97(Idx)
75245  , p_source_98 => l_array_source_98(Idx)
75246  , p_source_99 => l_array_source_99(Idx)
75247  , p_source_100 => l_array_source_100(Idx)
75248  , p_source_101 => l_array_source_101(Idx)
75249  , p_source_102 => l_array_source_102(Idx)
75250  , p_source_103 => l_array_source_103(Idx)
75251  , p_source_104 => l_array_source_104(Idx)
75252  , p_source_105 => l_array_source_105(Idx)
75253  , p_source_106 => l_array_source_106(Idx)
75254  , p_source_107 => l_array_source_107(Idx)
75255  , p_source_109 => l_array_source_109(Idx)
75256  , p_source_110 => l_array_source_110(Idx)
75257  , p_source_111 => l_array_source_111(Idx)
75258  , p_source_112 => l_array_source_112(Idx)
75259  , p_source_113 => l_array_source_113(Idx)
75260  , p_source_114 => l_array_source_114(Idx)
75261  );
75262 If(l_balance_type_code = 'A') THEN
75263   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75264 END IF;
75265 
75266 --
75267 
75268 
75269 --
75270 AcctLineType_96 (
75271  p_application_id  => p_application_id
75272  ,p_event_id     => l_event_id
75273  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75274  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75275  ,p_actual_flag => l_actual_flag
75276  ,p_balance_type_code => l_balance_type_code
75277  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75278  
75279  , p_source_2 => l_array_source_2(Idx)
75280  , p_source_3 => l_array_source_3(Idx)
75281  , p_source_4 => l_array_source_4(Idx)
75282  , p_source_5 => l_array_source_5(Idx)
75283  , p_source_21 => l_array_source_21(Idx)
75284  , p_source_30 => l_array_source_30(Idx)
75285  , p_source_33 => l_array_source_33(Idx)
75286  , p_source_57 => l_array_source_57(Idx)
75287  , p_source_83 => l_array_source_83(Idx)
75288  , p_source_85 => l_array_source_85(Idx)
75289  , p_source_86 => l_array_source_86(Idx)
75290  , p_source_87 => l_array_source_87(Idx)
75291  , p_source_88 => l_array_source_88(Idx)
75292  , p_source_89 => l_array_source_89(Idx)
75293  , p_source_90 => l_array_source_90(Idx)
75294  , p_source_96 => l_array_source_96(Idx)
75295  , p_source_97 => l_array_source_97(Idx)
75296  , p_source_98 => l_array_source_98(Idx)
75297  , p_source_99 => l_array_source_99(Idx)
75298  , p_source_100 => l_array_source_100(Idx)
75299  , p_source_101 => l_array_source_101(Idx)
75300  , p_source_102 => l_array_source_102(Idx)
75301  , p_source_103 => l_array_source_103(Idx)
75302  , p_source_104 => l_array_source_104(Idx)
75303  , p_source_105 => l_array_source_105(Idx)
75304  , p_source_106 => l_array_source_106(Idx)
75305  , p_source_107 => l_array_source_107(Idx)
75306  , p_source_109 => l_array_source_109(Idx)
75307  , p_source_110 => l_array_source_110(Idx)
75308  , p_source_111 => l_array_source_111(Idx)
75309  , p_source_112 => l_array_source_112(Idx)
75310  , p_source_113 => l_array_source_113(Idx)
75311  , p_source_114 => l_array_source_114(Idx)
75312  );
75313 If(l_balance_type_code = 'A') THEN
75314   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75315 END IF;
75316 
75317 --
75318 
75319 
75320 --
75321 AcctLineType_99 (
75322  p_application_id  => p_application_id
75323  ,p_event_id     => l_event_id
75324  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75328  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75325  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75326  ,p_actual_flag => l_actual_flag
75327  ,p_balance_type_code => l_balance_type_code
75329  
75330  , p_source_2 => l_array_source_2(Idx)
75331  , p_source_3 => l_array_source_3(Idx)
75332  , p_source_4 => l_array_source_4(Idx)
75333  , p_source_5 => l_array_source_5(Idx)
75334  , p_source_21 => l_array_source_21(Idx)
75335  , p_source_30 => l_array_source_30(Idx)
75336  , p_source_33 => l_array_source_33(Idx)
75337  , p_source_57 => l_array_source_57(Idx)
75338  , p_source_83 => l_array_source_83(Idx)
75339  , p_source_84 => l_array_source_84(Idx)
75340  , p_source_85 => l_array_source_85(Idx)
75341  , p_source_86 => l_array_source_86(Idx)
75342  , p_source_87 => l_array_source_87(Idx)
75343  , p_source_88 => l_array_source_88(Idx)
75344  , p_source_89 => l_array_source_89(Idx)
75345  , p_source_90 => l_array_source_90(Idx)
75346  , p_source_96 => l_array_source_96(Idx)
75347  , p_source_97 => l_array_source_97(Idx)
75348  , p_source_98 => l_array_source_98(Idx)
75349  , p_source_99 => l_array_source_99(Idx)
75350  , p_source_100 => l_array_source_100(Idx)
75351  , p_source_101 => l_array_source_101(Idx)
75352  , p_source_102 => l_array_source_102(Idx)
75353  , p_source_103 => l_array_source_103(Idx)
75354  , p_source_104 => l_array_source_104(Idx)
75355  , p_source_105 => l_array_source_105(Idx)
75356  , p_source_106 => l_array_source_106(Idx)
75357  , p_source_107 => l_array_source_107(Idx)
75358  , p_source_115 => l_array_source_115(Idx)
75359  , p_source_116 => l_array_source_116(Idx)
75360  , p_source_117 => l_array_source_117(Idx)
75361  , p_source_118 => l_array_source_118(Idx)
75362  , p_source_119 => l_array_source_119(Idx)
75363  , p_source_120 => l_array_source_120(Idx)
75364  , p_source_121 => l_array_source_121(Idx)
75365  );
75366 If(l_balance_type_code = 'A') THEN
75367   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75368 END IF;
75369 
75370 --
75371 
75372 
75373 --
75374 AcctLineType_100 (
75375  p_application_id  => p_application_id
75376  ,p_event_id     => l_event_id
75377  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75378  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75379  ,p_actual_flag => l_actual_flag
75380  ,p_balance_type_code => l_balance_type_code
75381  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75382  
75383  , p_source_2 => l_array_source_2(Idx)
75384  , p_source_3 => l_array_source_3(Idx)
75385  , p_source_4 => l_array_source_4(Idx)
75386  , p_source_5 => l_array_source_5(Idx)
75387  , p_source_21 => l_array_source_21(Idx)
75388  , p_source_30 => l_array_source_30(Idx)
75389  , p_source_33 => l_array_source_33(Idx)
75390  , p_source_57 => l_array_source_57(Idx)
75391  , p_source_83 => l_array_source_83(Idx)
75392  , p_source_84 => l_array_source_84(Idx)
75393  , p_source_85 => l_array_source_85(Idx)
75394  , p_source_86 => l_array_source_86(Idx)
75395  , p_source_87 => l_array_source_87(Idx)
75396  , p_source_88 => l_array_source_88(Idx)
75397  , p_source_89 => l_array_source_89(Idx)
75398  , p_source_90 => l_array_source_90(Idx)
75399  , p_source_96 => l_array_source_96(Idx)
75400  , p_source_97 => l_array_source_97(Idx)
75401  , p_source_98 => l_array_source_98(Idx)
75402  , p_source_99 => l_array_source_99(Idx)
75403  , p_source_100 => l_array_source_100(Idx)
75404  , p_source_101 => l_array_source_101(Idx)
75405  , p_source_102 => l_array_source_102(Idx)
75406  , p_source_103 => l_array_source_103(Idx)
75407  , p_source_104 => l_array_source_104(Idx)
75408  , p_source_105 => l_array_source_105(Idx)
75409  , p_source_106 => l_array_source_106(Idx)
75410  , p_source_107 => l_array_source_107(Idx)
75411  , p_source_108 => l_array_source_108(Idx)
75412  , p_source_108_meaning => l_array_source_108_meaning(Idx)
75413  , p_source_115 => l_array_source_115(Idx)
75414  , p_source_116 => l_array_source_116(Idx)
75415  , p_source_117 => l_array_source_117(Idx)
75416  , p_source_118 => l_array_source_118(Idx)
75417  , p_source_119 => l_array_source_119(Idx)
75418  , p_source_120 => l_array_source_120(Idx)
75419  , p_source_121 => l_array_source_121(Idx)
75420  );
75421 If(l_balance_type_code = 'A') THEN
75422   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75423 END IF;
75424 
75425 --
75426 
75427 
75428 --
75429 AcctLineType_101 (
75430  p_application_id  => p_application_id
75431  ,p_event_id     => l_event_id
75432  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75433  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75434  ,p_actual_flag => l_actual_flag
75435  ,p_balance_type_code => l_balance_type_code
75436  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75437  
75438  , p_source_2 => l_array_source_2(Idx)
75439  , p_source_3 => l_array_source_3(Idx)
75440  , p_source_4 => l_array_source_4(Idx)
75441  , p_source_5 => l_array_source_5(Idx)
75442  , p_source_21 => l_array_source_21(Idx)
75443  , p_source_30 => l_array_source_30(Idx)
75444  , p_source_33 => l_array_source_33(Idx)
75445  , p_source_57 => l_array_source_57(Idx)
75446  , p_source_83 => l_array_source_83(Idx)
75447  , p_source_84 => l_array_source_84(Idx)
75448  , p_source_85 => l_array_source_85(Idx)
75449  , p_source_86 => l_array_source_86(Idx)
75450  , p_source_87 => l_array_source_87(Idx)
75451  , p_source_88 => l_array_source_88(Idx)
75452  , p_source_89 => l_array_source_89(Idx)
75453  , p_source_90 => l_array_source_90(Idx)
75454  , p_source_96 => l_array_source_96(Idx)
75458  , p_source_100 => l_array_source_100(Idx)
75455  , p_source_97 => l_array_source_97(Idx)
75456  , p_source_98 => l_array_source_98(Idx)
75457  , p_source_99 => l_array_source_99(Idx)
75459  , p_source_101 => l_array_source_101(Idx)
75460  , p_source_102 => l_array_source_102(Idx)
75461  , p_source_103 => l_array_source_103(Idx)
75462  , p_source_104 => l_array_source_104(Idx)
75463  , p_source_105 => l_array_source_105(Idx)
75464  , p_source_106 => l_array_source_106(Idx)
75465  , p_source_107 => l_array_source_107(Idx)
75466  , p_source_115 => l_array_source_115(Idx)
75467  , p_source_116 => l_array_source_116(Idx)
75468  , p_source_117 => l_array_source_117(Idx)
75469  , p_source_118 => l_array_source_118(Idx)
75470  , p_source_119 => l_array_source_119(Idx)
75471  , p_source_120 => l_array_source_120(Idx)
75472  , p_source_121 => l_array_source_121(Idx)
75473  );
75474 If(l_balance_type_code = 'A') THEN
75475   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75476 END IF;
75477 
75478 --
75479 
75480 
75481 --
75482 AcctLineType_102 (
75483  p_application_id  => p_application_id
75484  ,p_event_id     => l_event_id
75485  ,p_calculate_acctd_flag => l_calculate_acctd_flag
75486  ,p_calculate_g_l_flag => l_calculate_g_l_flag
75487  ,p_actual_flag => l_actual_flag
75488  ,p_balance_type_code => l_balance_type_code
75489  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75490  
75491  , p_source_2 => l_array_source_2(Idx)
75492  , p_source_3 => l_array_source_3(Idx)
75493  , p_source_4 => l_array_source_4(Idx)
75494  , p_source_5 => l_array_source_5(Idx)
75495  , p_source_21 => l_array_source_21(Idx)
75496  , p_source_30 => l_array_source_30(Idx)
75497  , p_source_33 => l_array_source_33(Idx)
75498  , p_source_57 => l_array_source_57(Idx)
75499  , p_source_83 => l_array_source_83(Idx)
75500  , p_source_84 => l_array_source_84(Idx)
75501  , p_source_85 => l_array_source_85(Idx)
75502  , p_source_86 => l_array_source_86(Idx)
75503  , p_source_87 => l_array_source_87(Idx)
75504  , p_source_88 => l_array_source_88(Idx)
75505  , p_source_89 => l_array_source_89(Idx)
75506  , p_source_90 => l_array_source_90(Idx)
75507  , p_source_96 => l_array_source_96(Idx)
75508  , p_source_97 => l_array_source_97(Idx)
75509  , p_source_98 => l_array_source_98(Idx)
75510  , p_source_99 => l_array_source_99(Idx)
75511  , p_source_100 => l_array_source_100(Idx)
75512  , p_source_101 => l_array_source_101(Idx)
75513  , p_source_102 => l_array_source_102(Idx)
75514  , p_source_103 => l_array_source_103(Idx)
75515  , p_source_104 => l_array_source_104(Idx)
75516  , p_source_105 => l_array_source_105(Idx)
75517  , p_source_106 => l_array_source_106(Idx)
75518  , p_source_107 => l_array_source_107(Idx)
75519  , p_source_108 => l_array_source_108(Idx)
75520  , p_source_108_meaning => l_array_source_108_meaning(Idx)
75521  , p_source_115 => l_array_source_115(Idx)
75522  , p_source_116 => l_array_source_116(Idx)
75523  , p_source_117 => l_array_source_117(Idx)
75524  , p_source_118 => l_array_source_118(Idx)
75525  , p_source_119 => l_array_source_119(Idx)
75526  , p_source_120 => l_array_source_120(Idx)
75527  , p_source_121 => l_array_source_121(Idx)
75528  );
75529 If(l_balance_type_code = 'A') THEN
75530   l_actual_gain_loss_ref := l_gain_or_loss_ref;
75531 END IF;
75532 
75533 --
75534 
75535       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
75536       -- or secondary ledger that has different currency with primary
75537       -- or alc that is calculated by sla
75538       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
75539             (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'))
75540 
75541 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
75542 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
75543           AND (l_actual_flag = 'A')) THEN
75544         XLA_AE_LINES_PKG.CreateGainOrLossLines(
75545           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
75546          ,p_application_id   => p_application_id
75547          ,p_amb_context_code => 'DEFAULT'
75548          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
75549          ,p_event_class_code => C_EVENT_CLASS_CODE
75550          ,p_event_type_code  => C_EVENT_TYPE_CODE
75551          
75552          ,p_gain_ccid        => -1
75553          ,p_loss_ccid        => -1
75554 
75555          ,p_actual_flag      => l_actual_flag
75556          ,p_enc_flag         => null
75557          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
75558          ,p_enc_g_l_ref      => null
75559          );
75560       END IF;
75561    END IF;
75562 END IF;
75563 
75564    ELSE
75565       --
75566       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75567       --
75568       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75569          trace
75570             (p_msg      => 'Trancaction revesal option is Y'
75571             ,p_level    => C_LEVEL_STATEMENT
75572             ,p_module   => l_log_module);
75573       END IF;
75574    END IF;
75575 
75576 END LOOP;
75577 l_result := XLA_AE_LINES_PKG.InsertLines ;
75578 end loop;
75579 close line_cur;
75580 
75581 
75582 --
75586 
75583 -- insert headers into xla_ae_headers_gt table
75584 --
75585 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
75587 -- insert into errors table here.
75588 
75589 END LOOP;
75590 
75591 --
75592 -- 4865292
75593 --
75594 -- Compare g_hdr_extract_count with event count in
75595 -- CreateHeadersAndLines.
75596 --
75597 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
75598 
75599 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75600    trace (p_msg     => '# rows extracted from header extract objects '
75601                     || ' (running total): '
75602                     || g_hdr_extract_count
75603          ,p_level   => C_LEVEL_STATEMENT
75604          ,p_module  => l_log_module);
75605 END IF;
75606 
75607 CLOSE header_cur;
75608 --
75609 
75610 --
75611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75612    trace
75613       (p_msg      => 'END of EventClass_106'
75614       ,p_level    => C_LEVEL_PROCEDURE
75615       ,p_module   => l_log_module);
75616 END IF;
75617 --
75618 RETURN l_result;
75619 EXCEPTION
75620 WHEN xla_exceptions_pkg.application_exception THEN
75621    
75622 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
75623 
75624    
75625 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
75626 
75627    RAISE;
75628 
75629 WHEN NO_DATA_FOUND THEN
75630 
75631 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
75632 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
75633 
75634 FOR header_record IN header_cur
75635 LOOP
75636     l_array_header_events(header_record.event_id) := header_record.event_id;
75637 END LOOP;
75638 
75639 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
75640 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
75641 
75642 fnd_file.put_line(fnd_file.LOG, '                    ');
75643 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
75644 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
75645 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
75646 
75647 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
75648 LOOP
75649 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
75650 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
75651         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
75652 	END IF;
75653 END LOOP;
75654 
75655 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
75656 fnd_file.put_line(fnd_file.LOG, '                    ');
75657 
75658 
75659 xla_exceptions_pkg.raise_message
75660       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_106');
75661 
75662 
75663 WHEN OTHERS THEN
75664    xla_exceptions_pkg.raise_message
75665       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_106');
75666 END EventClass_106;
75667 --
75668 
75669 ---------------------------------------
75670 --
75671 -- PRIVATE PROCEDURE
75672 --         insert_sources_107
75673 --
75674 ----------------------------------------
75675 --
75676 PROCEDURE insert_sources_107(
75677                                 p_target_ledger_id       IN NUMBER
75678                               , p_language               IN VARCHAR2
75679                               , p_sla_ledger_id          IN NUMBER
75680                               , p_pad_start_date         IN DATE
75681                               , p_pad_end_date           IN DATE
75682                          )
75683 IS
75684 
75685 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
75686 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
75687 p_apps_owner                   VARCHAR2(30);
75688 l_log_module                   VARCHAR2(240);
75689 BEGIN
75690 IF g_log_enabled THEN
75691       l_log_module := C_DEFAULT_MODULE||'.insert_sources_107';
75692 END IF;
75693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75694 
75695       trace
75696          (p_msg      => 'BEGIN of insert_sources_107'
75697          ,p_level    => C_LEVEL_PROCEDURE
75698          ,p_module   => l_log_module);
75699 
75700 END IF;
75701 
75702 -- select APPS owner
75703 SELECT oracle_username
75704   INTO p_apps_owner
75705   FROM fnd_oracle_userid
75706  WHERE read_only_flag = 'U'
75707 ;
75708 
75709 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75710       trace
75711          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
75712                         ' - p_language = '||p_language||
75713                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
75714                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
75715                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
75716                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
75717          ,p_level    => C_LEVEL_STATEMENT
75718          ,p_module   => l_log_module);
75719 END IF;
75720 
75721 
75722 --
75723 INSERT INTO xla_diag_sources --hdr2
75724 (
75725         event_id
75726       , ledger_id
75727       , sla_ledger_id
75728       , description_language
75729       , object_name
75730       , object_type_code
75734       , source_code
75731       , line_number
75732       , source_application_id
75733       , source_type_code
75735       , source_value
75736       , source_meaning
75737       , created_by
75738       , creation_date
75739       , last_update_date
75740       , last_updated_by
75741       , last_update_login
75742       , program_update_date
75743       , program_application_id
75744       , program_id
75745       , request_id
75746 )
75747 SELECT
75748         event_id
75749       , p_target_ledger_id
75750       , p_sla_ledger_id
75751       , p_language
75752       , object_name
75753       , object_type_code
75754       , line_number
75755       , source_application_id
75756       , source_type_code
75757       , source_code
75758       , SUBSTR(source_value ,1,1996)
75759       , SUBSTR(source_meaning ,1,200)
75760       , xla_environment_pkg.g_Usr_Id
75761       , TRUNC(SYSDATE)
75762       , TRUNC(SYSDATE)
75763       , xla_environment_pkg.g_Usr_Id
75764       , xla_environment_pkg.g_Login_Id
75765       , TRUNC(SYSDATE)
75766       , xla_environment_pkg.g_Prog_Appl_Id
75767       , xla_environment_pkg.g_Prog_Id
75768       , xla_environment_pkg.g_Req_Id
75769   FROM (
75770        SELECT xet.event_id                  event_id
75771             , 0                          line_number
75772             , CASE r
75773                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
75774                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75775                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75776                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75777                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75778                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75779                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
75780                 
75781                ELSE null
75782               END                           object_name
75783             , CASE r
75784                 WHEN 1 THEN 'HEADER' 
75785                 WHEN 2 THEN 'HEADER' 
75786                 WHEN 3 THEN 'HEADER' 
75787                 WHEN 4 THEN 'HEADER' 
75788                 WHEN 5 THEN 'HEADER' 
75789                 WHEN 6 THEN 'HEADER' 
75790                 WHEN 7 THEN 'HEADER' 
75791                 
75792                 ELSE null
75793               END                           object_type_code
75794             , CASE r
75795                 WHEN 1 THEN '200' 
75796                 WHEN 2 THEN '200' 
75797                 WHEN 3 THEN '200' 
75798                 WHEN 4 THEN '200' 
75799                 WHEN 5 THEN '200' 
75800                 WHEN 6 THEN '200' 
75801                 WHEN 7 THEN '200' 
75802                 
75803                 ELSE null
75804               END                           source_application_id
75805             , 'S'             source_type_code
75806             , CASE r
75807                 WHEN 1 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
75808                 WHEN 2 THEN 'AI_INVOICE_ID' 
75809                 WHEN 3 THEN 'AI_INVOICE_CURRENCY_CODE' 
75810                 WHEN 4 THEN 'THIRD_PARTY_TYPE' 
75811                 WHEN 5 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
75812                 WHEN 6 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
75813                 WHEN 7 THEN 'INV_DOC_SEQUENCE_VALUE' 
75814                 
75815                 ELSE null
75816               END                           source_code
75817             , CASE r
75818                 WHEN 1 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
75819                 WHEN 2 THEN TO_CHAR(h1.AI_INVOICE_ID)
75820                 WHEN 3 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
75821                 WHEN 4 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
75822                 WHEN 5 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
75823                 WHEN 6 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
75824                 WHEN 7 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
75825                 
75826                 ELSE null
75827               END                           source_value
75828             , CASE r
75829                 WHEN 1 THEN fvl17.meaning
75830                 
75831                 ELSE null
75832               END               source_meaning
75833          FROM xla_events_gt     xet  
75834       , AP_INVOICE_EXTRACT_HEADER_V  h1
75835       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
75836   , fnd_lookup_values    fvl17
75837              ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
75838          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75839            AND xet.event_class_code = C_EVENT_CLASS_CODE
75840               AND h1.event_id = xet.event_id
75841  AND h3.asp_org_id = h1.ai_org_id   AND fvl17.lookup_type(+)         = 'YES_NO'
75842   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
75843   AND fvl17.view_application_id(+) = 0
75844   AND fvl17.language(+)            = USERENV('LANG')
75845   
75846 )
75847 ;
75848 --
75849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75850 
75851       trace
75852          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
75853          ,p_level    => C_LEVEL_STATEMENT
75854          ,p_module   => l_log_module);
75855 
75856 END IF;
75857 --
75858 
75859 
75860 
75861 --
75862 INSERT INTO xla_diag_sources  --line2
75863 (
75864         event_id
75865       , ledger_id
75866       , sla_ledger_id
75870       , line_number
75867       , description_language
75868       , object_name
75869       , object_type_code
75871       , source_application_id
75872       , source_type_code
75873       , source_code
75874       , source_value
75875       , source_meaning
75876       , created_by
75877       , creation_date
75878       , last_update_date
75879       , last_updated_by
75880       , last_update_login
75881       , program_update_date
75882       , program_application_id
75883       , program_id
75884       , request_id
75885 )
75886 SELECT  event_id
75887       , p_target_ledger_id
75888       , p_sla_ledger_id
75889       , p_language
75890       , object_name
75891       , object_type_code
75892       , line_number
75893       , source_application_id
75894       , source_type_code
75895       , source_code
75896       , SUBSTR(source_value,1,1996)
75897       , SUBSTR(source_meaning ,1,200)
75898       , xla_environment_pkg.g_Usr_Id
75899       , TRUNC(SYSDATE)
75900       , TRUNC(SYSDATE)
75901       , xla_environment_pkg.g_Usr_Id
75902       , xla_environment_pkg.g_Login_Id
75903       , TRUNC(SYSDATE)
75904       , xla_environment_pkg.g_Prog_Appl_Id
75905       , xla_environment_pkg.g_Prog_Id
75906       , xla_environment_pkg.g_Req_Id
75907   FROM (
75908        SELECT xet.event_id                  event_id
75909             , l2.line_number                 line_number
75910             , CASE r
75911                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75912                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75913                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75914                 WHEN 4 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75915                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75916                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75917                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75918                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75919                 WHEN 9 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75920                 WHEN 10 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75921                 WHEN 11 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75922                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75923                 WHEN 13 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75924                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75925                 WHEN 15 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
75926                 WHEN 16 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
75927                 WHEN 17 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75928                 WHEN 18 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75929                 WHEN 19 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75930                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75931                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75932                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75933                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75934                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75935                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75936                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75937                 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75938                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75939                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75940                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75941                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75942                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75943                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75944                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75945                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DTLS_BC_V' 
75946                 
75947                ELSE null
75948               END                           object_name
75949             , CASE r
75950                 WHEN 1 THEN 'LINE' 
75951                 WHEN 2 THEN 'LINE' 
75952                 WHEN 3 THEN 'LINE' 
75953                 WHEN 4 THEN 'LINE' 
75954                 WHEN 5 THEN 'LINE' 
75955                 WHEN 6 THEN 'LINE' 
75956                 WHEN 7 THEN 'LINE' 
75957                 WHEN 8 THEN 'LINE' 
75958                 WHEN 9 THEN 'LINE' 
75959                 WHEN 10 THEN 'LINE' 
75960                 WHEN 11 THEN 'LINE' 
75961                 WHEN 12 THEN 'LINE' 
75962                 WHEN 13 THEN 'LINE' 
75963                 WHEN 14 THEN 'LINE' 
75964                 WHEN 15 THEN 'LINE' 
75965                 WHEN 16 THEN 'LINE' 
75966                 WHEN 17 THEN 'LINE' 
75967                 WHEN 18 THEN 'LINE' 
75968                 WHEN 19 THEN 'LINE' 
75969                 WHEN 20 THEN 'LINE' 
75970                 WHEN 21 THEN 'LINE' 
75971                 WHEN 22 THEN 'LINE' 
75972                 WHEN 23 THEN 'LINE' 
75973                 WHEN 24 THEN 'LINE' 
75974                 WHEN 25 THEN 'LINE' 
75975                 WHEN 26 THEN 'LINE' 
75976                 WHEN 27 THEN 'LINE' 
75977                 WHEN 28 THEN 'LINE' 
75978                 WHEN 29 THEN 'LINE' 
75979                 WHEN 30 THEN 'LINE' 
75980                 WHEN 31 THEN 'LINE' 
75981                 WHEN 32 THEN 'LINE' 
75982                 WHEN 33 THEN 'LINE' 
75983                 WHEN 34 THEN 'LINE' 
75984                 WHEN 35 THEN 'LINE' 
75985                 
75986                 ELSE null
75987               END                           object_type_code
75988             , CASE r
75992                 WHEN 4 THEN '200' 
75989                 WHEN 1 THEN '200' 
75990                 WHEN 2 THEN '200' 
75991                 WHEN 3 THEN '200' 
75993                 WHEN 5 THEN '200' 
75994                 WHEN 6 THEN '200' 
75995                 WHEN 7 THEN '200' 
75996                 WHEN 8 THEN '200' 
75997                 WHEN 9 THEN '200' 
75998                 WHEN 10 THEN '200' 
75999                 WHEN 11 THEN '200' 
76000                 WHEN 12 THEN '200' 
76001                 WHEN 13 THEN '200' 
76002                 WHEN 14 THEN '200' 
76003                 WHEN 15 THEN '200' 
76004                 WHEN 16 THEN '200' 
76005                 WHEN 17 THEN '200' 
76006                 WHEN 18 THEN '200' 
76007                 WHEN 19 THEN '200' 
76008                 WHEN 20 THEN '200' 
76009                 WHEN 21 THEN '200' 
76010                 WHEN 22 THEN '200' 
76011                 WHEN 23 THEN '200' 
76012                 WHEN 24 THEN '200' 
76013                 WHEN 25 THEN '200' 
76014                 WHEN 26 THEN '200' 
76015                 WHEN 27 THEN '200' 
76016                 WHEN 28 THEN '200' 
76017                 WHEN 29 THEN '200' 
76018                 WHEN 30 THEN '200' 
76019                 WHEN 31 THEN '200' 
76020                 WHEN 32 THEN '200' 
76021                 WHEN 33 THEN '200' 
76022                 WHEN 34 THEN '200' 
76023                 WHEN 35 THEN '200' 
76024                 
76025                 ELSE null
76026               END                           source_application_id
76027             , 'S'             source_type_code
76028             , CASE r
76029                 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
76030                 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE' 
76031                 WHEN 3 THEN 'BUS_FLOW_AP_APP_ID' 
76032                 WHEN 4 THEN 'UPG_ENC_CR_CCID' 
76033                 WHEN 5 THEN 'UPG_ENC_CR_AMT' 
76034                 WHEN 6 THEN 'UPG_ENC_CR_BASE_AMT' 
76035                 WHEN 7 THEN 'UPG_ENC_DR_CCID' 
76036                 WHEN 8 THEN 'UPG_ENC_DR_AMT' 
76037                 WHEN 9 THEN 'UPG_ENC_DR_BASE_AMT' 
76038                 WHEN 10 THEN 'UPG_AP_ENCUM_OPTION' 
76039                 WHEN 11 THEN 'DEFERRED_END_DATE' 
76040                 WHEN 12 THEN 'DEFERRED_OPTION' 
76041                 WHEN 13 THEN 'DEFERRED_START_DATE' 
76042                 WHEN 14 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
76043                 WHEN 15 THEN 'TAX_LINE_ID' 
76044                 WHEN 16 THEN 'REC_NREC_TAX_DIST_ID' 
76045                 WHEN 17 THEN 'SUMMARY_TAX_LINE_ID' 
76046                 WHEN 18 THEN 'UPG_CR_ENC_TYPE_ID' 
76047                 WHEN 19 THEN 'UPG_DR_ENC_TYPE_ID' 
76048                 WHEN 20 THEN 'PO_DISTRIBUTION_ID' 
76049                 WHEN 21 THEN 'BUS_FLOW_PO_APP_ID' 
76050                 WHEN 22 THEN 'BUS_FLOW_PO_DIST_TYPE' 
76051                 WHEN 23 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
76052                 WHEN 24 THEN 'BUS_FLOW_PO_DOC_ID' 
76053                 WHEN 25 THEN 'APAD_DIST_LOOKUP_CODE' 
76054                 WHEN 26 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
76055                 WHEN 27 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
76056                 WHEN 28 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
76057                 WHEN 29 THEN 'BF_ACCRUAL_PP_DIST_ID' 
76058                 WHEN 30 THEN 'BF_ACCRUAL_PP_INV' 
76059                 WHEN 31 THEN 'UPG_ENC_CR_ACCT_CLASS' 
76060                 WHEN 32 THEN 'UPG_ENC_DR_ACCT_CLASS' 
76061                 WHEN 33 THEN 'APAD_AMOUNT' 
76062                 WHEN 34 THEN 'APAD_BASE_AMOUNT' 
76063                 WHEN 35 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
76064                 
76065                 ELSE null
76066               END                           source_code
76067             , CASE r
76068                 WHEN 1 THEN TO_CHAR(l2.DIST_ACCOUNT_REVERSAL_OPTION)
76069                 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
76070                 WHEN 3 THEN TO_CHAR(l2.BUS_FLOW_AP_APP_ID)
76071                 WHEN 4 THEN TO_CHAR(l2.UPG_ENC_CR_CCID)
76072                 WHEN 5 THEN TO_CHAR(l2.UPG_ENC_CR_AMT)
76073                 WHEN 6 THEN TO_CHAR(l2.UPG_ENC_CR_BASE_AMT)
76074                 WHEN 7 THEN TO_CHAR(l2.UPG_ENC_DR_CCID)
76075                 WHEN 8 THEN TO_CHAR(l2.UPG_ENC_DR_AMT)
76076                 WHEN 9 THEN TO_CHAR(l2.UPG_ENC_DR_BASE_AMT)
76077                 WHEN 10 THEN TO_CHAR(l2.UPG_AP_ENCUM_OPTION)
76078                 WHEN 11 THEN TO_CHAR(l2.DEFERRED_END_DATE)
76079                 WHEN 12 THEN TO_CHAR(l2.DEFERRED_OPTION)
76080                 WHEN 13 THEN TO_CHAR(l2.DEFERRED_START_DATE)
76081                 WHEN 14 THEN TO_CHAR(l2.OVERRIDE_ACCTD_AMT_FLAG)
76082                 WHEN 15 THEN TO_CHAR(l4.TAX_LINE_ID)
76083                 WHEN 16 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
76084                 WHEN 17 THEN TO_CHAR(l2.SUMMARY_TAX_LINE_ID)
76085                 WHEN 18 THEN TO_CHAR(l2.UPG_CR_ENC_TYPE_ID)
76086                 WHEN 19 THEN TO_CHAR(l2.UPG_DR_ENC_TYPE_ID)
76087                 WHEN 20 THEN TO_CHAR(l2.PO_DISTRIBUTION_ID)
76088                 WHEN 21 THEN TO_CHAR(l2.BUS_FLOW_PO_APP_ID)
76089                 WHEN 22 THEN TO_CHAR(l2.BUS_FLOW_PO_DIST_TYPE)
76090                 WHEN 23 THEN TO_CHAR(l2.BUS_FLOW_PO_ENTITY_CODE)
76091                 WHEN 24 THEN TO_CHAR(l2.BUS_FLOW_PO_DOC_ID)
76092                 WHEN 25 THEN TO_CHAR(l2.APAD_DIST_LOOKUP_CODE)
76093                 WHEN 26 THEN TO_CHAR(l2.APAD_DISTRIBUTION_IDENTIFIER)
76097                 WHEN 30 THEN TO_CHAR(l2.BF_ACCRUAL_PP_INV)
76094                 WHEN 27 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_DIST_TYPE)
76095                 WHEN 28 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_ENTITY_CODE)
76096                 WHEN 29 THEN TO_CHAR(l2.BF_ACCRUAL_PP_DIST_ID)
76098                 WHEN 31 THEN TO_CHAR(l2.UPG_ENC_CR_ACCT_CLASS)
76099                 WHEN 32 THEN TO_CHAR(l2.UPG_ENC_DR_ACCT_CLASS)
76100                 WHEN 33 THEN TO_CHAR(l2.APAD_AMOUNT)
76101                 WHEN 34 THEN TO_CHAR(l2.APAD_BASE_AMOUNT)
76102                 WHEN 35 THEN TO_CHAR(l2.REVERSED_PREPAY_APP_DIST_ID)
76103                 
76104                 ELSE null
76105               END                           source_value
76106             , CASE r
76107                 WHEN 14 THEN fvl46.meaning
76108                 
76109                 ELSE null
76110               END               source_meaning
76111          FROM  xla_events_gt     xet  
76112         , AP_PREPAYAPP_EXTRACT_DTLS_BC_V  l2
76113         , ZX_AP_DEF_TAX_EXTRACT_V  l4
76114         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
76115   , fnd_lookup_values    fvl46
76116             , (select rownum r from all_objects where rownum <= 35 and owner = p_apps_owner)
76117         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76118           AND xet.event_class_code = C_EVENT_CLASS_CODE
76119             AND l2.event_id          = xet.event_id
76120  AND l2.recp_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l2.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl46.lookup_type(+)         = 'YES_NO'
76121   AND fvl46.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
76122   AND fvl46.view_application_id(+) = 0
76123   AND fvl46.language(+)            = USERENV('LANG')
76124   
76125 )
76126 ;
76127 --
76128 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76129 
76130       trace
76131          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
76132          ,p_level    => C_LEVEL_STATEMENT
76133          ,p_module   => l_log_module);
76134 
76135 END IF;
76136 
76137 
76138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76139       trace
76140          (p_msg      => 'END of insert_sources_107'
76141          ,p_level    => C_LEVEL_PROCEDURE
76142          ,p_module   => l_log_module);
76143 END IF;
76144 EXCEPTION
76145   WHEN xla_exceptions_pkg.application_exception THEN
76146       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76147             trace
76148                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76149                ,p_level    => C_LEVEL_EXCEPTION
76150                ,p_module   => l_log_module);
76151       END IF;
76152       RAISE;
76153   WHEN OTHERS THEN
76154       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76155             trace
76156                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76157                ,p_level    => C_LEVEL_EXCEPTION
76158                ,p_module   => l_log_module);
76159        END IF;
76160        xla_exceptions_pkg.raise_message
76161            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_107');
76162 END insert_sources_107;
76163 --
76164 
76165 ---------------------------------------
76166 --
76167 -- PRIVATE FUNCTION
76168 --         EventClass_107
76169 --
76170 ----------------------------------------
76171 --
76172 FUNCTION EventClass_107
76173        (p_application_id         IN NUMBER
76174        ,p_base_ledger_id         IN NUMBER
76175        ,p_target_ledger_id       IN NUMBER
76176        ,p_language               IN VARCHAR2
76177        ,p_currency_code          IN VARCHAR2
76178        ,p_sla_ledger_id          IN NUMBER
76179        ,p_pad_start_date         IN DATE
76180        ,p_pad_end_date           IN DATE
76181        ,p_primary_ledger_id      IN NUMBER)
76182 RETURN BOOLEAN IS
76183 --
76184 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
76185 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
76186 
76187 l_calculate_acctd_flag   VARCHAR2(1) :='N';
76188 l_calculate_g_l_flag     VARCHAR2(1) :='N';
76189 --
76190 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76191 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76192 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76193 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76194 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76195 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76196 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76197 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76198 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76199 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76200 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76201 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76202 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76203 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76204 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76205 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76209 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76206 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76207 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76208 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76210 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76211 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76212 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
76213 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76214 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
76215 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
76216 
76217 l_event_id                             NUMBER;
76218 l_previous_event_id                    NUMBER;
76219 l_first_event_id                       NUMBER;
76220 l_last_event_id                        NUMBER;
76221 
76222 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
76223 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
76224 --
76225 --
76226 l_result                    BOOLEAN := TRUE;
76227 l_rows                      NUMBER  := 1000;
76228 l_event_type_name           VARCHAR2(80) := 'All';
76229 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
76230 l_description               VARCHAR2(4000);
76231 l_transaction_reversal      NUMBER;
76232 l_ae_header_id              NUMBER;
76233 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
76234 l_log_module                VARCHAR2(240);
76235 --
76236 l_acct_reversal_source      VARCHAR2(30);
76237 l_trx_reversal_source       VARCHAR2(30);
76238 
76239 l_continue_with_lines       BOOLEAN := TRUE;
76240 --
76241 l_acc_rev_gl_date_source    DATE;                      -- 4262811
76242 --
76243 type t_array_event_id is table of number index by binary_integer;
76244 
76245 l_rec_array_event                    t_rec_array_event;
76246 l_null_rec_array_event               t_rec_array_event;
76247 l_array_ae_header_id                 xla_number_array_type;
76248 l_actual_flag                        VARCHAR2(1) := NULL;
76249 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
76250 l_balance_type_code                  VARCHAR2(1) :=NULL;
76251 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
76252 
76253 --
76254 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
76255 --
76256 
76257 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
76258 TYPE t_array_source_24 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
76259 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
76260 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
76261 TYPE t_array_source_122 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
76262 TYPE t_array_source_123 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
76263 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
76264 
76265 TYPE t_array_source_19 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
76266 TYPE t_array_source_21 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
76267 TYPE t_array_source_25 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
76268 TYPE t_array_source_31 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
76269 TYPE t_array_source_32 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
76270 TYPE t_array_source_34 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
76271 TYPE t_array_source_35 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
76272 TYPE t_array_source_36 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
76273 TYPE t_array_source_37 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
76274 TYPE t_array_source_38 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
76275 TYPE t_array_source_43 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
76276 TYPE t_array_source_44 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
76277 TYPE t_array_source_45 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
76278 TYPE t_array_source_46 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
76279 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
76280 TYPE t_array_source_53 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
76281 TYPE t_array_source_54 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
76282 TYPE t_array_source_55 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
76283 TYPE t_array_source_56 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
76287 TYPE t_array_source_62 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
76284 TYPE t_array_source_58 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
76285 TYPE t_array_source_60 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
76286 TYPE t_array_source_61 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
76288 TYPE t_array_source_64 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
76289 TYPE t_array_source_69 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
76290 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
76291 TYPE t_array_source_72 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
76292 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
76293 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
76294 TYPE t_array_source_75 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
76295 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76296 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76297 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
76298 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
76299 TYPE t_array_source_80 IS TABLE OF AP_PREPAYAPP_EXTRACT_DTLS_BC_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
76300 
76301 l_array_source_17              t_array_source_17;
76302 l_array_source_17_meaning      t_array_lookup_meaning;
76303 l_array_source_24              t_array_source_24;
76304 l_array_source_33              t_array_source_33;
76305 l_array_source_49              t_array_source_49;
76306 l_array_source_122              t_array_source_122;
76307 l_array_source_123              t_array_source_123;
76308 l_array_source_124              t_array_source_124;
76309 
76310 l_array_source_19      t_array_source_19;
76311 l_array_source_21      t_array_source_21;
76312 l_array_source_25      t_array_source_25;
76313 l_array_source_31      t_array_source_31;
76314 l_array_source_32      t_array_source_32;
76315 l_array_source_34      t_array_source_34;
76316 l_array_source_35      t_array_source_35;
76317 l_array_source_36      t_array_source_36;
76318 l_array_source_37      t_array_source_37;
76319 l_array_source_38      t_array_source_38;
76320 l_array_source_43      t_array_source_43;
76321 l_array_source_44      t_array_source_44;
76322 l_array_source_45      t_array_source_45;
76323 l_array_source_46      t_array_source_46;
76324 l_array_source_46_meaning      t_array_lookup_meaning;
76325 l_array_source_52      t_array_source_52;
76326 l_array_source_53      t_array_source_53;
76327 l_array_source_54      t_array_source_54;
76328 l_array_source_55      t_array_source_55;
76329 l_array_source_56      t_array_source_56;
76330 l_array_source_58      t_array_source_58;
76331 l_array_source_60      t_array_source_60;
76332 l_array_source_61      t_array_source_61;
76333 l_array_source_62      t_array_source_62;
76334 l_array_source_64      t_array_source_64;
76335 l_array_source_69      t_array_source_69;
76336 l_array_source_71      t_array_source_71;
76337 l_array_source_72      t_array_source_72;
76338 l_array_source_73      t_array_source_73;
76339 l_array_source_74      t_array_source_74;
76340 l_array_source_75      t_array_source_75;
76341 l_array_source_76      t_array_source_76;
76342 l_array_source_77      t_array_source_77;
76343 l_array_source_78      t_array_source_78;
76344 l_array_source_79      t_array_source_79;
76345 l_array_source_80      t_array_source_80;
76346 
76347 --
76348 CURSOR header_cur
76349 IS
76350 SELECT /*+ leading(xet) cardinality(xet,1) */
76351 -- Event Class Code: PREPAYMENT APPLICATIONS
76352     xet.entity_id
76353    ,xet.legal_entity_id
76354    ,xet.entity_code
76355    ,xet.transaction_number
76356    ,xet.event_id
76357    ,xet.event_class_code
76358    ,xet.event_type_code
76359    ,xet.event_number
76360    ,xet.event_date
76361    ,xet.transaction_date
76362    ,xet.reference_num_1
76363    ,xet.reference_num_2
76364    ,xet.reference_num_3
76365    ,xet.reference_num_4
76366    ,xet.reference_char_1
76367    ,xet.reference_char_2
76368    ,xet.reference_char_3
76369    ,xet.reference_char_4
76370    ,xet.reference_date_1
76371    ,xet.reference_date_2
76372    ,xet.reference_date_3
76373    ,xet.reference_date_4
76374    ,xet.event_created_by
76375    ,xet.budgetary_control_flag 
76376   , h3.FSP_PURCH_ENCUMBRANCE_FLAG    source_17
76377   , fvl17.meaning   source_17_meaning
76378   , h1.AI_INVOICE_ID    source_24
76379   , h1.AI_INVOICE_CURRENCY_CODE    source_33
76380   , h1.THIRD_PARTY_TYPE    source_49
76381   , h1.INV_DOC_SEQUENCE_CATEGORY    source_122
76382   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_123
76383   , h1.INV_DOC_SEQUENCE_VALUE    source_124
76384   FROM xla_events_gt     xet 
76385   , AP_INVOICE_EXTRACT_HEADER_V  h1
76386   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
76387   , fnd_lookup_values    fvl17
76388  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
76389    and xet.event_class_code = C_EVENT_CLASS_CODE
76393   AND fvl17.view_application_id(+) = 0
76390    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
76391  AND h3.asp_org_id = h1.ai_org_id   AND fvl17.lookup_type(+)         = 'YES_NO'
76392   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
76394   AND fvl17.language(+)            = USERENV('LANG')
76395   
76396  ORDER BY event_id
76397 ;
76398 
76399 
76400 --
76401 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
76402 IS
76403 SELECT  /*+ leading(xet) cardinality(xet,1) */
76404 -- Event Class Code: PREPAYMENT APPLICATIONS
76405     xet.entity_id
76406    ,xet.legal_entity_id
76407    ,xet.entity_code
76408    ,xet.transaction_number
76409    ,xet.event_id
76410    ,xet.event_class_code
76411    ,xet.event_type_code
76412    ,xet.event_number
76413    ,xet.event_date
76414    ,xet.transaction_date
76415    ,xet.reference_num_1
76416    ,xet.reference_num_2
76417    ,xet.reference_num_3
76418    ,xet.reference_num_4
76419    ,xet.reference_char_1
76420    ,xet.reference_char_2
76421    ,xet.reference_char_3
76422    ,xet.reference_char_4
76423    ,xet.reference_date_1
76424    ,xet.reference_date_2
76425    ,xet.reference_date_3
76426    ,xet.reference_date_4
76427    ,xet.event_created_by
76428    ,xet.budgetary_control_flag
76429  , l2.LINE_NUMBER  
76430   , l2.DIST_ACCOUNT_REVERSAL_OPTION    source_19
76431   , l2.DISTRIBUTION_LINK_TYPE    source_21
76432   , l2.BUS_FLOW_AP_APP_ID    source_25
76433   , l2.UPG_ENC_CR_CCID    source_31
76434   , l2.UPG_ENC_CR_AMT    source_32
76435   , l2.UPG_ENC_CR_BASE_AMT    source_34
76436   , l2.UPG_ENC_DR_CCID    source_35
76437   , l2.UPG_ENC_DR_AMT    source_36
76438   , l2.UPG_ENC_DR_BASE_AMT    source_37
76439   , l2.UPG_AP_ENCUM_OPTION    source_38
76440   , l2.DEFERRED_END_DATE    source_43
76441   , l2.DEFERRED_OPTION    source_44
76442   , l2.DEFERRED_START_DATE    source_45
76443   , l2.OVERRIDE_ACCTD_AMT_FLAG    source_46
76444   , fvl46.meaning   source_46_meaning
76445   , l4.TAX_LINE_ID    source_52
76446   , l5.REC_NREC_TAX_DIST_ID    source_53
76447   , l2.SUMMARY_TAX_LINE_ID    source_54
76448   , l2.UPG_CR_ENC_TYPE_ID    source_55
76449   , l2.UPG_DR_ENC_TYPE_ID    source_56
76450   , l2.PO_DISTRIBUTION_ID    source_58
76451   , l2.BUS_FLOW_PO_APP_ID    source_60
76452   , l2.BUS_FLOW_PO_DIST_TYPE    source_61
76453   , l2.BUS_FLOW_PO_ENTITY_CODE    source_62
76454   , l2.BUS_FLOW_PO_DOC_ID    source_64
76455   , l2.APAD_DIST_LOOKUP_CODE    source_69
76456   , l2.APAD_DISTRIBUTION_IDENTIFIER    source_71
76457   , l2.BF_ACCRUAL_PREPAY_DIST_TYPE    source_72
76458   , l2.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_73
76459   , l2.BF_ACCRUAL_PP_DIST_ID    source_74
76460   , l2.BF_ACCRUAL_PP_INV    source_75
76461   , l2.UPG_ENC_CR_ACCT_CLASS    source_76
76462   , l2.UPG_ENC_DR_ACCT_CLASS    source_77
76463   , l2.APAD_AMOUNT    source_78
76464   , l2.APAD_BASE_AMOUNT    source_79
76465   , l2.REVERSED_PREPAY_APP_DIST_ID    source_80
76466   FROM xla_events_gt     xet 
76467   , AP_PREPAYAPP_EXTRACT_DTLS_BC_V  l2
76468   , ZX_AP_DEF_TAX_EXTRACT_V  l4
76469   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
76470   , fnd_lookup_values    fvl46
76471  WHERE xet.event_id between x_first_event_id and x_last_event_id
76472    and xet.event_date between p_pad_start_date and p_pad_end_date
76473    and xet.event_class_code = C_EVENT_CLASS_CODE
76474    and xet.event_status_code <> 'N'   AND l2.event_id      = xet.event_id
76475  AND l2.RECP_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)  AND l2.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl46.lookup_type(+)         = 'YES_NO'
76476   AND fvl46.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
76477   AND fvl46.view_application_id(+) = 0
76478   AND fvl46.language(+)            = USERENV('LANG')
76479   ;
76480 
76481 --
76482 BEGIN
76483 IF g_log_enabled THEN
76484    l_log_module := C_DEFAULT_MODULE||'.EventClass_107';
76485 END IF;
76486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76487    trace
76488       (p_msg      => 'BEGIN of EventClass_107'
76489       ,p_level    => C_LEVEL_PROCEDURE
76490       ,p_module   => l_log_module);
76491 END IF;
76492 
76493 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76494    trace
76495       (p_msg      => 'p_application_id = '||p_application_id||
76496                      ' - p_base_ledger_id = '||p_base_ledger_id||
76497                      ' - p_target_ledger_id  = '||p_target_ledger_id||
76498                      ' - p_language = '||p_language||
76499                      ' - p_currency_code = '||p_currency_code||
76500                      ' - p_sla_ledger_id = '||p_sla_ledger_id
76501       ,p_level    => C_LEVEL_STATEMENT
76502       ,p_module   => l_log_module);
76503 END IF;
76504 --
76505 -- initialze arrays
76506 --
76507 g_array_event.DELETE;
76508 l_rec_array_event := l_null_rec_array_event;
76509 --
76510 --------------------------------------
76511 -- 4262811 Initialze MPA Line Number
76512 --------------------------------------
76513 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76514 
76515 --
76516 
76517 --
76518 OPEN header_cur;
76519 --
76520 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76521    trace
76522    (p_msg      => 'SQL - FETCH header_cur'
76523    ,p_level    => C_LEVEL_STATEMENT
76524    ,p_module   => l_log_module);
76525 END IF;
76526 --
76527 LOOP
76528 FETCH header_cur BULK COLLECT INTO
76529         l_array_entity_id
76530       , l_array_legal_entity_id
76534       , l_array_class_code
76531       , l_array_entity_code
76532       , l_array_transaction_num
76533       , l_array_event_id
76535       , l_array_event_type
76536       , l_array_event_number
76537       , l_array_event_date
76538       , l_array_transaction_date
76539       , l_array_reference_num_1
76540       , l_array_reference_num_2
76541       , l_array_reference_num_3
76542       , l_array_reference_num_4
76543       , l_array_reference_char_1
76544       , l_array_reference_char_2
76545       , l_array_reference_char_3
76546       , l_array_reference_char_4
76547       , l_array_reference_date_1
76548       , l_array_reference_date_2
76549       , l_array_reference_date_3
76550       , l_array_reference_date_4
76551       , l_array_event_created_by
76552       , l_array_budgetary_control_flag 
76553       , l_array_source_17
76554       , l_array_source_17_meaning
76555       , l_array_source_24
76556       , l_array_source_33
76557       , l_array_source_49
76558       , l_array_source_122
76559       , l_array_source_123
76560       , l_array_source_124
76561       LIMIT l_rows;
76562 --
76563 IF (C_LEVEL_EVENT >= g_log_level) THEN
76564    trace
76565    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76566    ,p_level    => C_LEVEL_EVENT
76567    ,p_module   => l_log_module);
76568 END IF;
76569 --
76570 EXIT WHEN l_array_entity_id.COUNT = 0;
76571 
76572 -- initialize arrays
76573 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
76574 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
76575 
76576 --
76577 -- Bug 4458708
76578 --
76579 XLA_AE_LINES_PKG.g_LineNumber := 0;
76580 
76581 
76582 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76583 g_last_hdr_idx := l_array_event_id.LAST;
76584 --
76585 -- loop for the headers. Each iteration is for each header extract row
76586 -- fetched in header cursor
76587 --
76588 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76589 
76590 --
76591 -- set event info as cache for other routines to refer event attributes
76592 --
76593 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76594    (p_application_id           => p_application_id
76595    ,p_primary_ledger_id        => p_primary_ledger_id
76596    ,p_base_ledger_id           => p_base_ledger_id
76597    ,p_target_ledger_id         => p_target_ledger_id
76598    ,p_entity_id                => l_array_entity_id(hdr_idx)
76599    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
76600    ,p_entity_code              => l_array_entity_code(hdr_idx)
76601    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
76602    ,p_event_id                 => l_array_event_id(hdr_idx)
76603    ,p_event_class_code         => l_array_class_code(hdr_idx)
76604    ,p_event_type_code          => l_array_event_type(hdr_idx)
76605    ,p_event_number             => l_array_event_number(hdr_idx)
76606    ,p_event_date               => l_array_event_date(hdr_idx)
76607    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
76608    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
76609    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
76610    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
76611    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
76612    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
76613    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
76614    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
76615    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
76616    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
76617    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
76618    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
76619    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
76620    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
76621    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
76622 
76623 --
76624 -- set the status of entry to C_VALID (0)
76625 --
76626 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76627 
76628 --
76629 -- initialize a row for ae header
76630 --
76631 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
76632 
76633 l_event_id := l_array_event_id(hdr_idx);
76634 
76635 --
76636 -- storing the hdr_idx for event. May be used by line cursor.
76637 --
76638 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
76639 
76640 --
76641 -- store sources from header extract. This can be improved to
76642 -- store only those sources from header extract that may be used in lines
76643 --
76644 
76645 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
76646 g_array_event(l_event_id).array_value_char('source_17_meaning') := l_array_source_17_meaning(hdr_idx);
76647 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
76648 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
76649 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
76650 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
76651 g_array_event(l_event_id).array_value_num('source_123') := l_array_source_123(hdr_idx);
76655 -- initilaize the status of ae headers for diffrent balance types
76652 g_array_event(l_event_id).array_value_num('source_124') := l_array_source_124(hdr_idx);
76653 
76654 --
76656 -- the status is initialised to C_NOT_CREATED (2)
76657 --
76658 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76659 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76660 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76661 
76662 --
76663 -- call api to validate and store accounting attributes for header
76664 --
76665 
76666 ------------------------------------------------------------
76667 -- Accrual Reversal : to get date for Standard Source (NONE)
76668 ------------------------------------------------------------
76669 l_acc_rev_gl_date_source := NULL;
76670 
76671      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
76672       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_122');
76673      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
76674       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_123');
76675      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
76676       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_124');
76677      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
76678       l_rec_acct_attrs.array_date_value(4) := 
76679 xla_ae_sources_pkg.GetSystemSourceDate(
76680    p_source_code           => 'XLA_EVENT_DATE'
76681  , p_source_type_code      => 'Y'
76682  , p_source_application_id =>  602
76683 );
76684 
76685 
76686 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
76687 
76688 XLA_AE_HEADER_PKG.SetJeCategoryName;
76689 
76690 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
76691 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
76692 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
76693 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
76694 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
76695 
76696 
76697 -- No header level analytical criteria
76698 
76699 --
76700 --accounting attribute enhancement, bug 3612931
76701 --
76702 l_trx_reversal_source := SUBSTR(NULL, 1,30);
76703 
76704 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
76705    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
76706 
76707    xla_accounting_err_pkg.build_message
76708       (p_appli_s_name            => 'XLA'
76709       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
76710       ,p_token_1                 => 'ACCT_ATTR_NAME'
76711       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
76712       ,p_token_2                 => 'PRODUCT_NAME'
76713       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76714       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76715       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
76716       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76717 
76718 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
76719    --
76720    -- following sets the accounting attributes needed to reverse
76721    -- accounting for a distributeion
76722    --
76723    xla_ae_lines_pkg.SetTrxReversalAttrs
76724       (p_event_id              => l_event_id
76725       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
76726       ,p_trx_reversal_source   => l_trx_reversal_source);
76727 
76728 END IF;
76729 
76730 
76731 ----------------------------------------------------------------
76732 -- 4262811 -  update the header statuses to invalid in need be
76733 ----------------------------------------------------------------
76734 --
76735 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
76736 
76737 
76738   -----------------------------------------------
76739   -- No accrual reversal for the event class/type
76740   -----------------------------------------------
76741 ----------------------------------------------------------------
76742 
76743 --
76744 -- this ends the header loop iteration for one bulk fetch
76745 --
76746 END LOOP;
76747 
76748 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
76749 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
76750 
76751 --
76752 -- insert dummy rows into lines gt table that were created due to
76753 -- transaction reversals
76754 --
76755 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
76756    l_result := XLA_AE_LINES_PKG.InsertLines;
76757 END IF;
76758 
76759 --
76760 -- reset the temp_line_num for each set of events fetched from header
76761 -- cursor rather than doing it for each new event in line cursor
76762 -- Bug 3939231
76763 --
76764 xla_ae_lines_pkg.g_temp_line_num := 0;
76765 
76766 
76767 
76768 --
76769 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
76770 --
76774       trace
76771 --
76772 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76773 
76775          (p_msg      => 'SQL - FETCH line_cur'
76776          ,p_level    => C_LEVEL_STATEMENT
76777          ,p_module   => l_log_module);
76778 
76779 END IF;
76780 --
76781 --
76782 LOOP
76783   --
76784   FETCH line_cur BULK COLLECT INTO
76785         l_array_entity_id
76786       , l_array_legal_entity_id
76787       , l_array_entity_code
76788       , l_array_transaction_num
76789       , l_array_event_id
76790       , l_array_class_code
76791       , l_array_event_type
76792       , l_array_event_number
76793       , l_array_event_date
76794       , l_array_transaction_date
76795       , l_array_reference_num_1
76796       , l_array_reference_num_2
76797       , l_array_reference_num_3
76798       , l_array_reference_num_4
76799       , l_array_reference_char_1
76800       , l_array_reference_char_2
76801       , l_array_reference_char_3
76802       , l_array_reference_char_4
76803       , l_array_reference_date_1
76804       , l_array_reference_date_2
76805       , l_array_reference_date_3
76806       , l_array_reference_date_4
76807       , l_array_event_created_by
76808       , l_array_budgetary_control_flag
76809       , l_array_extract_line_num 
76810       , l_array_source_19
76811       , l_array_source_21
76812       , l_array_source_25
76813       , l_array_source_31
76814       , l_array_source_32
76815       , l_array_source_34
76816       , l_array_source_35
76817       , l_array_source_36
76818       , l_array_source_37
76819       , l_array_source_38
76820       , l_array_source_43
76821       , l_array_source_44
76822       , l_array_source_45
76823       , l_array_source_46
76824       , l_array_source_46_meaning
76825       , l_array_source_52
76826       , l_array_source_53
76827       , l_array_source_54
76828       , l_array_source_55
76829       , l_array_source_56
76830       , l_array_source_58
76831       , l_array_source_60
76832       , l_array_source_61
76833       , l_array_source_62
76834       , l_array_source_64
76835       , l_array_source_69
76836       , l_array_source_71
76837       , l_array_source_72
76838       , l_array_source_73
76839       , l_array_source_74
76840       , l_array_source_75
76841       , l_array_source_76
76842       , l_array_source_77
76843       , l_array_source_78
76844       , l_array_source_79
76845       , l_array_source_80
76846       LIMIT l_rows;
76847 
76848   --
76849   IF (C_LEVEL_EVENT >= g_log_level) THEN
76850             trace
76851                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
76852                ,p_level    => C_LEVEL_EVENT
76853                ,p_module   => l_log_module);
76854   END IF;
76855   --
76856   EXIT WHEN l_array_entity_id.count = 0;
76857 
76858   XLA_AE_LINES_PKG.g_rec_lines := null;
76859 
76860 --
76861 -- Bug 4458708
76862 --
76863 XLA_AE_LINES_PKG.g_LineNumber := 0;
76864 --
76865 --
76866 
76867 FOR Idx IN 1..l_array_event_id.count LOOP
76868    --
76869    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
76870    --
76871    l_event_id := l_array_event_id(idx);  -- 5648433
76872 
76873    --
76874    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76875    --
76876 
76877    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
76878              (g_array_event(l_event_id).array_value_num('header_index'))
76879          ,'N'
76880          ) <> 'Y'
76881    THEN
76882       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76883          trace
76884             (p_msg      => 'Trancaction revesal option is not Y '
76885             ,p_level    => C_LEVEL_STATEMENT
76886             ,p_module   => l_log_module);
76887       END IF;
76888 
76889 --
76890 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
76891 --
76892 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76893 --
76894 -- set event info as cache for other routines to refer event attributes
76895 --
76896 
76897 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
76898    l_previous_event_id := l_event_id;
76899 
76900    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76901       (p_application_id           => p_application_id
76902       ,p_primary_ledger_id        => p_primary_ledger_id
76903       ,p_base_ledger_id           => p_base_ledger_id
76904       ,p_target_ledger_id         => p_target_ledger_id
76905       ,p_entity_id                => l_array_entity_id(Idx)
76906       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
76907       ,p_entity_code              => l_array_entity_code(Idx)
76908       ,p_transaction_num          => l_array_transaction_num(Idx)
76909       ,p_event_id                 => l_array_event_id(Idx)
76910       ,p_event_class_code         => l_array_class_code(Idx)
76911       ,p_event_type_code          => l_array_event_type(Idx)
76912       ,p_event_number             => l_array_event_number(Idx)
76913       ,p_event_date               => l_array_event_date(Idx)
76914       ,p_transaction_date         => l_array_transaction_date(Idx)
76915       ,p_reference_num_1          => l_array_reference_num_1(Idx)
76919       ,p_reference_char_1         => l_array_reference_char_1(Idx)
76916       ,p_reference_num_2          => l_array_reference_num_2(Idx)
76917       ,p_reference_num_3          => l_array_reference_num_3(Idx)
76918       ,p_reference_num_4          => l_array_reference_num_4(Idx)
76920       ,p_reference_char_2         => l_array_reference_char_2(Idx)
76921       ,p_reference_char_3         => l_array_reference_char_3(Idx)
76922       ,p_reference_char_4         => l_array_reference_char_4(Idx)
76923       ,p_reference_date_1         => l_array_reference_date_1(Idx)
76924       ,p_reference_date_2         => l_array_reference_date_2(Idx)
76925       ,p_reference_date_3         => l_array_reference_date_3(Idx)
76926       ,p_reference_date_4         => l_array_reference_date_4(Idx)
76927       ,p_event_created_by         => l_array_event_created_by(Idx)
76928       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
76929        --
76930 END IF;
76931 
76932 
76933 
76934 --
76935 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
76936 
76937 l_acct_reversal_source := SUBSTR(l_array_source_19(Idx), 1,30);
76938 
76939 IF l_continue_with_lines THEN
76940    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
76941       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
76942 
76943       xla_accounting_err_pkg.build_message
76944          (p_appli_s_name            => 'XLA'
76945          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
76946          ,p_token_1                 => 'LINE_NUMBER'
76947          ,p_value_1                 => l_array_extract_line_num(Idx)
76948          ,p_token_2                 => 'PRODUCT_NAME'
76949          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76950          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76951          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
76952          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76953 
76954    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
76955       --
76956       -- following sets the accounting attributes needed to reverse
76957       -- accounting for a distributeion
76958       --
76959 
76960       --
76961       -- 5217187
76962       --
76963       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
76964       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
76965                                        g_array_event(l_event_id).array_value_num('header_index'));
76966       --
76967       --
76968 
76969       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
76970       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_19(Idx);
76971       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
76972       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_71(Idx);
76973       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
76974       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_21(Idx);
76975       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
76976       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_76(Idx);
76977       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
76978       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_31(Idx);
76979       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
76980       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_32(Idx);
76981       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
76982       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_33');
76983       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
76984       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_34(Idx);
76985       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
76986       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_77(Idx);
76987       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
76988       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_35(Idx);
76989       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
76990       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_36(Idx);
76991       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
76992       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_33');
76993       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
76994       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_37(Idx);
76995       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
76996       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_38(Idx);
76997       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
76998       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_49');
76999       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
77000       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_80(Idx);
77001       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
77002       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_21(Idx);
77003       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
77004       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_52(Idx);
77008       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_54(Idx);
77005       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
77006       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_53(Idx);
77007       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
77009       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
77010       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_55(Idx);
77011       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
77012       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_56(Idx);
77013 
77014 
77015       xla_ae_lines_pkg.SetAcctReversalAttrs
77016          (p_event_id             => l_event_id
77017          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
77018          ,p_calculate_acctd_flag => l_calculate_acctd_flag
77019          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
77020    END IF;
77021 
77022    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
77023        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
77024 
77025 --
77026 AcctLineType_50 (
77027  p_application_id  => p_application_id
77028  ,p_event_id     => l_event_id
77029  ,p_calculate_acctd_flag => l_calculate_acctd_flag
77030  ,p_calculate_g_l_flag => l_calculate_g_l_flag
77031  ,p_actual_flag => l_actual_flag
77032  ,p_balance_type_code => l_balance_type_code
77033  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77034  
77035  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
77036  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
77037  , p_source_19 => l_array_source_19(Idx)
77038  , p_source_21 => l_array_source_21(Idx)
77039  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
77040  , p_source_25 => l_array_source_25(Idx)
77041  , p_source_31 => l_array_source_31(Idx)
77042  , p_source_32 => l_array_source_32(Idx)
77043  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
77044  , p_source_34 => l_array_source_34(Idx)
77045  , p_source_35 => l_array_source_35(Idx)
77046  , p_source_36 => l_array_source_36(Idx)
77047  , p_source_37 => l_array_source_37(Idx)
77048  , p_source_38 => l_array_source_38(Idx)
77049  , p_source_43 => l_array_source_43(Idx)
77050  , p_source_44 => l_array_source_44(Idx)
77051  , p_source_45 => l_array_source_45(Idx)
77052  , p_source_46 => l_array_source_46(Idx)
77053  , p_source_46_meaning => l_array_source_46_meaning(Idx)
77054  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
77055  , p_source_52 => l_array_source_52(Idx)
77056  , p_source_53 => l_array_source_53(Idx)
77057  , p_source_54 => l_array_source_54(Idx)
77058  , p_source_55 => l_array_source_55(Idx)
77059  , p_source_56 => l_array_source_56(Idx)
77060  , p_source_69 => l_array_source_69(Idx)
77061  , p_source_71 => l_array_source_71(Idx)
77062  , p_source_72 => l_array_source_72(Idx)
77063  , p_source_73 => l_array_source_73(Idx)
77064  , p_source_74 => l_array_source_74(Idx)
77065  , p_source_75 => l_array_source_75(Idx)
77066  , p_source_76 => l_array_source_76(Idx)
77067  , p_source_77 => l_array_source_77(Idx)
77068  , p_source_78 => l_array_source_78(Idx)
77069  , p_source_79 => l_array_source_79(Idx)
77070  , p_source_80 => l_array_source_80(Idx)
77071  );
77072 If(l_balance_type_code = 'A') THEN
77073   l_actual_gain_loss_ref := l_gain_or_loss_ref;
77074 END IF;
77075 
77076 --
77077 
77078 
77079 --
77080 AcctLineType_51 (
77081  p_application_id  => p_application_id
77082  ,p_event_id     => l_event_id
77083  ,p_calculate_acctd_flag => l_calculate_acctd_flag
77084  ,p_calculate_g_l_flag => l_calculate_g_l_flag
77085  ,p_actual_flag => l_actual_flag
77086  ,p_balance_type_code => l_balance_type_code
77087  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77088  
77089  , p_source_19 => l_array_source_19(Idx)
77090  , p_source_21 => l_array_source_21(Idx)
77091  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
77092  , p_source_31 => l_array_source_31(Idx)
77093  , p_source_32 => l_array_source_32(Idx)
77094  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
77095  , p_source_34 => l_array_source_34(Idx)
77096  , p_source_35 => l_array_source_35(Idx)
77097  , p_source_36 => l_array_source_36(Idx)
77098  , p_source_37 => l_array_source_37(Idx)
77099  , p_source_38 => l_array_source_38(Idx)
77100  , p_source_43 => l_array_source_43(Idx)
77101  , p_source_44 => l_array_source_44(Idx)
77102  , p_source_45 => l_array_source_45(Idx)
77103  , p_source_46 => l_array_source_46(Idx)
77104  , p_source_46_meaning => l_array_source_46_meaning(Idx)
77105  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
77106  , p_source_52 => l_array_source_52(Idx)
77107  , p_source_53 => l_array_source_53(Idx)
77108  , p_source_54 => l_array_source_54(Idx)
77109  , p_source_55 => l_array_source_55(Idx)
77110  , p_source_56 => l_array_source_56(Idx)
77111  , p_source_58 => l_array_source_58(Idx)
77112  , p_source_60 => l_array_source_60(Idx)
77113  , p_source_61 => l_array_source_61(Idx)
77114  , p_source_62 => l_array_source_62(Idx)
77115  , p_source_64 => l_array_source_64(Idx)
77116  , p_source_69 => l_array_source_69(Idx)
77117  , p_source_71 => l_array_source_71(Idx)
77118  , p_source_76 => l_array_source_76(Idx)
77119  , p_source_77 => l_array_source_77(Idx)
77120  , p_source_78 => l_array_source_78(Idx)
77121  , p_source_79 => l_array_source_79(Idx)
77122  , p_source_80 => l_array_source_80(Idx)
77126 END IF;
77123  );
77124 If(l_balance_type_code = 'A') THEN
77125   l_actual_gain_loss_ref := l_gain_or_loss_ref;
77127 
77128 --
77129 
77130       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
77131       -- or secondary ledger that has different currency with primary
77132       -- or alc that is calculated by sla
77133       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77134             (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'))
77135 
77136 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
77137 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
77138           AND (l_actual_flag = 'A')) THEN
77139         XLA_AE_LINES_PKG.CreateGainOrLossLines(
77140           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
77141          ,p_application_id   => p_application_id
77142          ,p_amb_context_code => 'DEFAULT'
77143          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
77144          ,p_event_class_code => C_EVENT_CLASS_CODE
77145          ,p_event_type_code  => C_EVENT_TYPE_CODE
77146          
77147          ,p_gain_ccid        => -1
77148          ,p_loss_ccid        => -1
77149 
77150          ,p_actual_flag      => l_actual_flag
77151          ,p_enc_flag         => null
77152          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
77153          ,p_enc_g_l_ref      => null
77154          );
77155       END IF;
77156    END IF;
77157 END IF;
77158 
77159    ELSE
77160       --
77161       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77162       --
77163       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77164          trace
77165             (p_msg      => 'Trancaction revesal option is Y'
77166             ,p_level    => C_LEVEL_STATEMENT
77167             ,p_module   => l_log_module);
77168       END IF;
77169    END IF;
77170 
77171 END LOOP;
77172 l_result := XLA_AE_LINES_PKG.InsertLines ;
77173 end loop;
77174 close line_cur;
77175 
77176 
77177 --
77178 -- insert headers into xla_ae_headers_gt table
77179 --
77180 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
77181 
77182 -- insert into errors table here.
77183 
77184 END LOOP;
77185 
77186 --
77187 -- 4865292
77188 --
77189 -- Compare g_hdr_extract_count with event count in
77190 -- CreateHeadersAndLines.
77191 --
77192 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
77193 
77194 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77195    trace (p_msg     => '# rows extracted from header extract objects '
77196                     || ' (running total): '
77197                     || g_hdr_extract_count
77198          ,p_level   => C_LEVEL_STATEMENT
77199          ,p_module  => l_log_module);
77200 END IF;
77201 
77202 CLOSE header_cur;
77203 --
77204 
77205 --
77206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77207    trace
77208       (p_msg      => 'END of EventClass_107'
77209       ,p_level    => C_LEVEL_PROCEDURE
77210       ,p_module   => l_log_module);
77211 END IF;
77212 --
77213 RETURN l_result;
77214 EXCEPTION
77215 WHEN xla_exceptions_pkg.application_exception THEN
77216    
77217 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77218 
77219    
77220 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
77221 
77222    RAISE;
77223 
77224 WHEN NO_DATA_FOUND THEN
77225 
77226 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77227 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
77228 
77229 FOR header_record IN header_cur
77230 LOOP
77231     l_array_header_events(header_record.event_id) := header_record.event_id;
77232 END LOOP;
77233 
77234 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
77235 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
77236 
77237 fnd_file.put_line(fnd_file.LOG, '                    ');
77238 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
77239 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
77240 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
77241 
77242 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
77243 LOOP
77244 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
77245 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
77246         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
77247 	END IF;
77248 END LOOP;
77249 
77250 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
77251 fnd_file.put_line(fnd_file.LOG, '                    ');
77252 
77253 
77254 xla_exceptions_pkg.raise_message
77255       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_107');
77256 
77257 
77258 WHEN OTHERS THEN
77259    xla_exceptions_pkg.raise_message
77260       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_107');
77261 END EventClass_107;
77262 --
77263 
77267 --         insert_sources_108
77264 ---------------------------------------
77265 --
77266 -- PRIVATE PROCEDURE
77268 --
77269 ----------------------------------------
77270 --
77271 PROCEDURE insert_sources_108(
77272                                 p_target_ledger_id       IN NUMBER
77273                               , p_language               IN VARCHAR2
77274                               , p_sla_ledger_id          IN NUMBER
77275                               , p_pad_start_date         IN DATE
77276                               , p_pad_end_date           IN DATE
77277                          )
77278 IS
77279 
77280 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
77281 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
77282 p_apps_owner                   VARCHAR2(30);
77283 l_log_module                   VARCHAR2(240);
77284 BEGIN
77285 IF g_log_enabled THEN
77286       l_log_module := C_DEFAULT_MODULE||'.insert_sources_108';
77287 END IF;
77288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77289 
77290       trace
77291          (p_msg      => 'BEGIN of insert_sources_108'
77292          ,p_level    => C_LEVEL_PROCEDURE
77293          ,p_module   => l_log_module);
77294 
77295 END IF;
77296 
77297 -- select APPS owner
77298 SELECT oracle_username
77299   INTO p_apps_owner
77300   FROM fnd_oracle_userid
77301  WHERE read_only_flag = 'U'
77302 ;
77303 
77304 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77305       trace
77306          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
77307                         ' - p_language = '||p_language||
77308                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
77309                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
77310                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
77311                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
77312          ,p_level    => C_LEVEL_STATEMENT
77313          ,p_module   => l_log_module);
77314 END IF;
77315 
77316 
77317 --
77318 INSERT INTO xla_diag_sources --hdr2
77319 (
77320         event_id
77321       , ledger_id
77322       , sla_ledger_id
77323       , description_language
77324       , object_name
77325       , object_type_code
77326       , line_number
77327       , source_application_id
77328       , source_type_code
77329       , source_code
77330       , source_value
77331       , source_meaning
77332       , created_by
77333       , creation_date
77334       , last_update_date
77335       , last_updated_by
77336       , last_update_login
77337       , program_update_date
77338       , program_application_id
77339       , program_id
77340       , request_id
77341 )
77342 SELECT
77343         event_id
77344       , p_target_ledger_id
77345       , p_sla_ledger_id
77346       , p_language
77347       , object_name
77348       , object_type_code
77349       , line_number
77350       , source_application_id
77351       , source_type_code
77352       , source_code
77353       , SUBSTR(source_value ,1,1996)
77354       , SUBSTR(source_meaning ,1,200)
77355       , xla_environment_pkg.g_Usr_Id
77356       , TRUNC(SYSDATE)
77357       , TRUNC(SYSDATE)
77358       , xla_environment_pkg.g_Usr_Id
77359       , xla_environment_pkg.g_Login_Id
77360       , TRUNC(SYSDATE)
77361       , xla_environment_pkg.g_Prog_Appl_Id
77362       , xla_environment_pkg.g_Prog_Id
77363       , xla_environment_pkg.g_Req_Id
77364   FROM (
77365        SELECT xet.event_id                  event_id
77366             , 0                          line_number
77367             , CASE r
77368                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
77369                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
77370                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
77371                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
77372                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
77373                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77374                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77375                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77376                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77377                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77378                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77379                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77380                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77381                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77382                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77383                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
77384                 
77385                ELSE null
77386               END                           object_name
77387             , CASE r
77388                 WHEN 1 THEN 'HEADER' 
77389                 WHEN 2 THEN 'HEADER' 
77390                 WHEN 3 THEN 'HEADER' 
77391                 WHEN 4 THEN 'HEADER' 
77392                 WHEN 5 THEN 'HEADER' 
77393                 WHEN 6 THEN 'HEADER' 
77394                 WHEN 7 THEN 'HEADER' 
77395                 WHEN 8 THEN 'HEADER' 
77396                 WHEN 9 THEN 'HEADER' 
77397                 WHEN 10 THEN 'HEADER' 
77398                 WHEN 11 THEN 'HEADER' 
77399                 WHEN 12 THEN 'HEADER' 
77403                 WHEN 16 THEN 'HEADER' 
77400                 WHEN 13 THEN 'HEADER' 
77401                 WHEN 14 THEN 'HEADER' 
77402                 WHEN 15 THEN 'HEADER' 
77404                 
77405                 ELSE null
77406               END                           object_type_code
77407             , CASE r
77408                 WHEN 1 THEN '200' 
77409                 WHEN 2 THEN '200' 
77410                 WHEN 3 THEN '200' 
77411                 WHEN 4 THEN '200' 
77412                 WHEN 5 THEN '200' 
77413                 WHEN 6 THEN '200' 
77414                 WHEN 7 THEN '200' 
77415                 WHEN 8 THEN '200' 
77416                 WHEN 9 THEN '200' 
77417                 WHEN 10 THEN '200' 
77418                 WHEN 11 THEN '200' 
77419                 WHEN 12 THEN '200' 
77420                 WHEN 13 THEN '200' 
77421                 WHEN 14 THEN '200' 
77422                 WHEN 15 THEN '200' 
77423                 WHEN 16 THEN '200' 
77424                 
77425                 ELSE null
77426               END                           source_application_id
77427             , 'S'             source_type_code
77428             , CASE r
77429                 WHEN 1 THEN 'ASP_RATE_VAR_GAIN_CCID' 
77430                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
77431                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
77432                 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG' 
77433                 WHEN 5 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
77434                 WHEN 6 THEN 'AI_INVOICE_ID' 
77435                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
77436                 WHEN 8 THEN 'INV_EXCHANGE_DATE' 
77437                 WHEN 9 THEN 'INV_EXCHANGE_RATE' 
77438                 WHEN 10 THEN 'INV_EXCHANGE_RATE_TYPE' 
77439                 WHEN 11 THEN 'AI_VENDOR_ID' 
77440                 WHEN 12 THEN 'AI_VENDOR_SITE_ID' 
77441                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
77442                 WHEN 14 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
77443                 WHEN 15 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
77444                 WHEN 16 THEN 'INV_DOC_SEQUENCE_VALUE' 
77445                 
77446                 ELSE null
77447               END                           source_code
77448             , CASE r
77449                 WHEN 1 THEN TO_CHAR(h3.ASP_RATE_VAR_GAIN_CCID)
77450                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
77451                 WHEN 3 THEN TO_CHAR(h3.ASP_RATE_VAR_LOSS_CCID)
77452                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
77453                 WHEN 5 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
77454                 WHEN 6 THEN TO_CHAR(h2.AI_INVOICE_ID)
77455                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
77456                 WHEN 8 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
77457                 WHEN 9 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
77458                 WHEN 10 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
77459                 WHEN 11 THEN TO_CHAR(h2.AI_VENDOR_ID)
77460                 WHEN 12 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
77461                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
77462                 WHEN 14 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
77463                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
77464                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
77465                 
77466                 ELSE null
77467               END                           source_value
77468             , CASE r
77469                 WHEN 2 THEN fvl7.meaning
77470                 WHEN 4 THEN fvl12.meaning
77471                 WHEN 5 THEN fvl17.meaning
77472                 
77473                 ELSE null
77474               END               source_meaning
77475          FROM xla_events_gt     xet  
77476       , AP_INVOICE_EXTRACT_HEADER_V  h2
77477       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
77478   , fnd_lookup_values    fvl7
77479   , fnd_lookup_values    fvl12
77480   , fnd_lookup_values    fvl17
77481              ,(select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
77482          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77483            AND xet.event_class_code = C_EVENT_CLASS_CODE
77484               AND h2.event_id = xet.event_id
77485  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
77486   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
77487   AND fvl7.view_application_id(+) = 200
77488   AND fvl7.language(+)            = USERENV('LANG')
77489      AND fvl12.lookup_type(+)         = 'YES_NO'
77490   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
77491   AND fvl12.view_application_id(+) = 0
77492   AND fvl12.language(+)            = USERENV('LANG')
77493      AND fvl17.lookup_type(+)         = 'YES_NO'
77494   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
77495   AND fvl17.view_application_id(+) = 0
77496   AND fvl17.language(+)            = USERENV('LANG')
77497   
77498 )
77499 ;
77500 --
77501 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77502 
77503       trace
77504          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
77505          ,p_level    => C_LEVEL_STATEMENT
77506          ,p_module   => l_log_module);
77507 
77508 END IF;
77509 --
77510 
77511 
77512 
77513 --
77514 INSERT INTO xla_diag_sources  --line2
77515 (
77516         event_id
77517       , ledger_id
77518       , sla_ledger_id
77522       , line_number
77519       , description_language
77520       , object_name
77521       , object_type_code
77523       , source_application_id
77524       , source_type_code
77525       , source_code
77526       , source_value
77527       , source_meaning
77528       , created_by
77529       , creation_date
77530       , last_update_date
77531       , last_updated_by
77532       , last_update_login
77533       , program_update_date
77534       , program_application_id
77535       , program_id
77536       , request_id
77537 )
77538 SELECT  event_id
77539       , p_target_ledger_id
77540       , p_sla_ledger_id
77541       , p_language
77542       , object_name
77543       , object_type_code
77544       , line_number
77545       , source_application_id
77546       , source_type_code
77547       , source_code
77548       , SUBSTR(source_value,1,1996)
77549       , SUBSTR(source_meaning ,1,200)
77550       , xla_environment_pkg.g_Usr_Id
77551       , TRUNC(SYSDATE)
77552       , TRUNC(SYSDATE)
77553       , xla_environment_pkg.g_Usr_Id
77554       , xla_environment_pkg.g_Login_Id
77555       , TRUNC(SYSDATE)
77556       , xla_environment_pkg.g_Prog_Appl_Id
77557       , xla_environment_pkg.g_Prog_Id
77558       , xla_environment_pkg.g_Req_Id
77559   FROM (
77560        SELECT xet.event_id                  event_id
77561             , l1.line_number                 line_number
77562             , CASE r
77563                WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77564                 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77565                 WHEN 3 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77566                 WHEN 4 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77567                 WHEN 5 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77568                 WHEN 6 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77569                 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77570                 WHEN 8 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77571                 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77572                 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77573                 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77574                 WHEN 12 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77575                 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77576                 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77577                 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77578                 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77579                 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77580                 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77581                 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77582                 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77583                 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77584                 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77585                 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77586                 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77587                 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77588                 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77589                 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77590                 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77591                 WHEN 29 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77592                 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77593                 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77594                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
77595                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
77596                 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77597                 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77598                 WHEN 36 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77599                 WHEN 37 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77600                 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77601                 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77602                 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77603                 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77604                 WHEN 42 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77605                 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77606                 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77607                 WHEN 45 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77608                 WHEN 46 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77609                 WHEN 47 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V' 
77610                 
77611                ELSE null
77612               END                           object_name
77613             , CASE r
77614                 WHEN 1 THEN 'LINE' 
77615                 WHEN 2 THEN 'LINE' 
77616                 WHEN 3 THEN 'LINE' 
77617                 WHEN 4 THEN 'LINE' 
77618                 WHEN 5 THEN 'LINE' 
77619                 WHEN 6 THEN 'LINE' 
77620                 WHEN 7 THEN 'LINE' 
77621                 WHEN 8 THEN 'LINE' 
77622                 WHEN 9 THEN 'LINE' 
77623                 WHEN 10 THEN 'LINE' 
77624                 WHEN 11 THEN 'LINE' 
77625                 WHEN 12 THEN 'LINE' 
77626                 WHEN 13 THEN 'LINE' 
77627                 WHEN 14 THEN 'LINE' 
77628                 WHEN 15 THEN 'LINE' 
77629                 WHEN 16 THEN 'LINE' 
77630                 WHEN 17 THEN 'LINE' 
77631                 WHEN 18 THEN 'LINE' 
77632                 WHEN 19 THEN 'LINE' 
77633                 WHEN 20 THEN 'LINE' 
77637                 WHEN 24 THEN 'LINE' 
77634                 WHEN 21 THEN 'LINE' 
77635                 WHEN 22 THEN 'LINE' 
77636                 WHEN 23 THEN 'LINE' 
77638                 WHEN 25 THEN 'LINE' 
77639                 WHEN 26 THEN 'LINE' 
77640                 WHEN 27 THEN 'LINE' 
77641                 WHEN 28 THEN 'LINE' 
77642                 WHEN 29 THEN 'LINE' 
77643                 WHEN 30 THEN 'LINE' 
77644                 WHEN 31 THEN 'LINE' 
77645                 WHEN 32 THEN 'LINE' 
77646                 WHEN 33 THEN 'LINE' 
77647                 WHEN 34 THEN 'LINE' 
77648                 WHEN 35 THEN 'LINE' 
77649                 WHEN 36 THEN 'LINE' 
77650                 WHEN 37 THEN 'LINE' 
77651                 WHEN 38 THEN 'LINE' 
77652                 WHEN 39 THEN 'LINE' 
77653                 WHEN 40 THEN 'LINE' 
77654                 WHEN 41 THEN 'LINE' 
77655                 WHEN 42 THEN 'LINE' 
77656                 WHEN 43 THEN 'LINE' 
77657                 WHEN 44 THEN 'LINE' 
77658                 WHEN 45 THEN 'LINE' 
77659                 WHEN 46 THEN 'LINE' 
77660                 WHEN 47 THEN 'LINE' 
77661                 
77662                 ELSE null
77663               END                           object_type_code
77664             , CASE r
77665                 WHEN 1 THEN '200' 
77666                 WHEN 2 THEN '200' 
77667                 WHEN 3 THEN '200' 
77668                 WHEN 4 THEN '200' 
77669                 WHEN 5 THEN '200' 
77670                 WHEN 6 THEN '200' 
77671                 WHEN 7 THEN '200' 
77672                 WHEN 8 THEN '200' 
77673                 WHEN 9 THEN '200' 
77674                 WHEN 10 THEN '200' 
77675                 WHEN 11 THEN '200' 
77676                 WHEN 12 THEN '200' 
77677                 WHEN 13 THEN '200' 
77678                 WHEN 14 THEN '200' 
77679                 WHEN 15 THEN '200' 
77680                 WHEN 16 THEN '200' 
77681                 WHEN 17 THEN '200' 
77682                 WHEN 18 THEN '200' 
77683                 WHEN 19 THEN '200' 
77684                 WHEN 20 THEN '200' 
77685                 WHEN 21 THEN '200' 
77686                 WHEN 22 THEN '200' 
77687                 WHEN 23 THEN '200' 
77688                 WHEN 24 THEN '200' 
77689                 WHEN 25 THEN '200' 
77690                 WHEN 26 THEN '200' 
77691                 WHEN 27 THEN '200' 
77692                 WHEN 28 THEN '200' 
77693                 WHEN 29 THEN '200' 
77694                 WHEN 30 THEN '200' 
77695                 WHEN 31 THEN '200' 
77696                 WHEN 32 THEN '200' 
77697                 WHEN 33 THEN '200' 
77698                 WHEN 34 THEN '200' 
77699                 WHEN 35 THEN '200' 
77700                 WHEN 36 THEN '200' 
77701                 WHEN 37 THEN '200' 
77702                 WHEN 38 THEN '200' 
77703                 WHEN 39 THEN '200' 
77704                 WHEN 40 THEN '200' 
77705                 WHEN 41 THEN '200' 
77706                 WHEN 42 THEN '200' 
77707                 WHEN 43 THEN '200' 
77708                 WHEN 44 THEN '200' 
77709                 WHEN 45 THEN '200' 
77710                 WHEN 46 THEN '200' 
77711                 WHEN 47 THEN '200' 
77712                 
77713                 ELSE null
77714               END                           source_application_id
77715             , 'S'             source_type_code
77716             , CASE r
77717                 WHEN 1 THEN 'AID_DESCRIPTION' 
77718                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
77719                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
77720                 WHEN 4 THEN 'AID_DIST_CCID' 
77721                 WHEN 5 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
77722                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
77723                 WHEN 7 THEN 'AID_AMOUNT_VARIANCE' 
77724                 WHEN 8 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
77725                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
77726                 WHEN 10 THEN 'DISTRIBUTION_LINK_TYPE' 
77727                 WHEN 11 THEN 'ALLOC_TO_MAIN_DIST_ID' 
77728                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
77729                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
77730                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
77731                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
77732                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
77733                 WHEN 17 THEN 'AID_INVOICE_DIST_ID' 
77734                 WHEN 18 THEN 'UPG_ENC_CR_CCID' 
77735                 WHEN 19 THEN 'UPG_ENC_CR_AMT' 
77736                 WHEN 20 THEN 'UPG_ENC_CR_BASE_AMT' 
77737                 WHEN 21 THEN 'UPG_ENC_DR_CCID' 
77738                 WHEN 22 THEN 'UPG_ENC_DR_AMT' 
77739                 WHEN 23 THEN 'UPG_ENC_DR_BASE_AMT' 
77740                 WHEN 24 THEN 'UPG_AP_ENCUM_OPTION' 
77741                 WHEN 25 THEN 'AID_BASE_AMOUNT_VARIANCE' 
77742                 WHEN 26 THEN 'DEFERRED_END_DATE' 
77743                 WHEN 27 THEN 'DEFERRED_OPTION' 
77744                 WHEN 28 THEN 'DEFERRED_START_DATE' 
77745                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
77746                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
77747                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
77748                 WHEN 32 THEN 'TAX_LINE_ID' 
77749                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
77750                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
77751                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
77755                 WHEN 39 THEN 'BUS_FLOW_PO_APP_ID' 
77752                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
77753                 WHEN 37 THEN 'PO_DISTRIBUTION_ID' 
77754                 WHEN 38 THEN 'SELF_ASSESSED_TAX_FLAG' 
77756                 WHEN 40 THEN 'BUS_FLOW_PO_DIST_TYPE' 
77757                 WHEN 41 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
77758                 WHEN 42 THEN 'BUS_FLOW_PO_DIST_ID' 
77759                 WHEN 43 THEN 'BUS_FLOW_PO_DOC_ID' 
77760                 WHEN 44 THEN 'ENCUMBRANCE_AMOUNT' 
77761                 WHEN 45 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
77762                 WHEN 46 THEN 'AID_QUANTITY_VARIANCE' 
77763                 WHEN 47 THEN 'AID_BASE_QUANTITY_VARIANCE' 
77764                 
77765                 ELSE null
77766               END                           source_code
77767             , CASE r
77768                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
77769                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
77770                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
77771                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
77772                 WHEN 5 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
77773                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
77774                 WHEN 7 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
77775                 WHEN 8 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
77776                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
77777                 WHEN 10 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
77778                 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
77779                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
77780                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
77781                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
77782                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
77783                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
77784                 WHEN 17 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
77785                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
77786                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
77787                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
77788                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
77789                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
77790                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
77791                 WHEN 24 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
77792                 WHEN 25 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
77793                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
77794                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
77795                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
77796                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
77797                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
77798                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
77799                 WHEN 32 THEN TO_CHAR(l4.TAX_LINE_ID)
77800                 WHEN 33 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
77801                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
77802                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
77803                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
77804                 WHEN 37 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
77805                 WHEN 38 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
77806                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
77807                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
77808                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
77809                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
77810                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
77811                 WHEN 44 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
77812                 WHEN 45 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
77813                 WHEN 46 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
77814                 WHEN 47 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
77815                 
77816                 ELSE null
77817               END                           source_value
77818             , CASE r
77819                 WHEN 3 THEN fvl9.meaning
77820                 WHEN 6 THEN fvl15.meaning
77821                 WHEN 8 THEN fvl18.meaning
77822                 WHEN 29 THEN fvl46.meaning
77823                 WHEN 38 THEN fvl59.meaning
77824                 
77825                 ELSE null
77826               END               source_meaning
77827          FROM  xla_events_gt     xet  
77828         , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
77829         , ZX_AP_DEF_TAX_EXTRACT_V  l4
77830         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
77831   , fnd_lookup_values    fvl9
77832   , fnd_lookup_values    fvl15
77833   , fnd_lookup_values    fvl18
77834   , fnd_lookup_values    fvl46
77835   , fnd_lookup_values    fvl59
77836             , (select rownum r from all_objects where rownum <= 47 and owner = p_apps_owner)
77837         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77838           AND xet.event_class_code = C_EVENT_CLASS_CODE
77839             AND l1.event_id          = xet.event_id
77840  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
77841   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
77842   AND fvl9.view_application_id(+) = 201
77843   AND fvl9.language(+)            = USERENV('LANG')
77844      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
77845   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
77846   AND fvl15.view_application_id(+) = 200
77850   AND fvl18.view_application_id(+) = 0
77847   AND fvl15.language(+)            = USERENV('LANG')
77848      AND fvl18.lookup_type(+)         = 'YES_NO'
77849   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
77851   AND fvl18.language(+)            = USERENV('LANG')
77852      AND fvl46.lookup_type(+)         = 'YES_NO'
77853   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
77854   AND fvl46.view_application_id(+) = 0
77855   AND fvl46.language(+)            = USERENV('LANG')
77856      AND fvl59.lookup_type(+)         = 'YES_NO'
77857   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
77858   AND fvl59.view_application_id(+) = 0
77859   AND fvl59.language(+)            = USERENV('LANG')
77860   
77861 )
77862 ;
77863 --
77864 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77865 
77866       trace
77867          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
77868          ,p_level    => C_LEVEL_STATEMENT
77869          ,p_module   => l_log_module);
77870 
77871 END IF;
77872 
77873 
77874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77875       trace
77876          (p_msg      => 'END of insert_sources_108'
77877          ,p_level    => C_LEVEL_PROCEDURE
77878          ,p_module   => l_log_module);
77879 END IF;
77880 EXCEPTION
77881   WHEN xla_exceptions_pkg.application_exception THEN
77882       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77883             trace
77884                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77885                ,p_level    => C_LEVEL_EXCEPTION
77886                ,p_module   => l_log_module);
77887       END IF;
77888       RAISE;
77889   WHEN OTHERS THEN
77890       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77891             trace
77892                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77893                ,p_level    => C_LEVEL_EXCEPTION
77894                ,p_module   => l_log_module);
77895        END IF;
77896        xla_exceptions_pkg.raise_message
77897            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_108');
77898 END insert_sources_108;
77899 --
77900 
77901 ---------------------------------------
77902 --
77903 -- PRIVATE FUNCTION
77904 --         EventClass_108
77905 --
77906 ----------------------------------------
77907 --
77908 FUNCTION EventClass_108
77909        (p_application_id         IN NUMBER
77910        ,p_base_ledger_id         IN NUMBER
77911        ,p_target_ledger_id       IN NUMBER
77912        ,p_language               IN VARCHAR2
77913        ,p_currency_code          IN VARCHAR2
77914        ,p_sla_ledger_id          IN NUMBER
77915        ,p_pad_start_date         IN DATE
77916        ,p_pad_end_date           IN DATE
77917        ,p_primary_ledger_id      IN NUMBER)
77918 RETURN BOOLEAN IS
77919 --
77920 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
77921 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
77922 
77923 l_calculate_acctd_flag   VARCHAR2(1) :='N';
77924 l_calculate_g_l_flag     VARCHAR2(1) :='N';
77925 --
77926 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77927 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77928 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77929 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77930 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77931 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77932 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77933 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77934 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77935 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77936 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77937 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77938 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77939 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77940 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77941 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77942 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77943 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77944 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77945 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77946 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77947 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77948 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
77949 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77950 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
77951 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
77952 
77953 l_event_id                             NUMBER;
77954 l_previous_event_id                    NUMBER;
77955 l_first_event_id                       NUMBER;
77956 l_last_event_id                        NUMBER;
77957 
77958 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
77962 l_result                    BOOLEAN := TRUE;
77959 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
77960 --
77961 --
77963 l_rows                      NUMBER  := 1000;
77964 l_event_type_name           VARCHAR2(80) := 'All';
77965 l_event_class_name          VARCHAR2(80) := 'Prepayments';
77966 l_description               VARCHAR2(4000);
77967 l_transaction_reversal      NUMBER;
77968 l_ae_header_id              NUMBER;
77969 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
77970 l_log_module                VARCHAR2(240);
77971 --
77972 l_acct_reversal_source      VARCHAR2(30);
77973 l_trx_reversal_source       VARCHAR2(30);
77974 
77975 l_continue_with_lines       BOOLEAN := TRUE;
77976 --
77977 l_acc_rev_gl_date_source    DATE;                      -- 4262811
77978 --
77979 type t_array_event_id is table of number index by binary_integer;
77980 
77981 l_rec_array_event                    t_rec_array_event;
77982 l_null_rec_array_event               t_rec_array_event;
77983 l_array_ae_header_id                 xla_number_array_type;
77984 l_actual_flag                        VARCHAR2(1) := NULL;
77985 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
77986 l_balance_type_code                  VARCHAR2(1) :=NULL;
77987 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
77988 
77989 --
77990 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
77991 --
77992 
77993 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
77994 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
77995 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
77996 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
77997 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
77998 TYPE t_array_source_24 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
77999 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
78000 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
78001 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
78002 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78003 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
78004 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
78005 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
78006 TYPE t_array_source_122 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
78007 TYPE t_array_source_123 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
78008 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
78009 
78010 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
78011 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
78012 TYPE t_array_source_9 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
78013 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
78014 TYPE t_array_source_13 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
78015 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
78016 TYPE t_array_source_16 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
78017 TYPE t_array_source_18 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
78018 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
78019 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
78020 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78021 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
78022 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
78023 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
78024 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78025 TYPE t_array_source_29 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
78026 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78027 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
78028 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
78029 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
78033 TYPE t_array_source_38 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
78030 TYPE t_array_source_35 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
78031 TYPE t_array_source_36 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
78032 TYPE t_array_source_37 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
78034 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
78035 TYPE t_array_source_43 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
78036 TYPE t_array_source_44 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
78037 TYPE t_array_source_45 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
78038 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
78039 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
78040 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
78041 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
78042 TYPE t_array_source_53 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78043 TYPE t_array_source_54 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
78044 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
78045 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
78046 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
78047 TYPE t_array_source_59 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
78048 TYPE t_array_source_60 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
78049 TYPE t_array_source_61 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
78050 TYPE t_array_source_62 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
78051 TYPE t_array_source_63 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78052 TYPE t_array_source_64 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
78053 TYPE t_array_source_65 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
78054 TYPE t_array_source_66 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
78055 TYPE t_array_source_81 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
78056 TYPE t_array_source_82 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
78057 
78058 l_array_source_6              t_array_source_6;
78059 l_array_source_7              t_array_source_7;
78060 l_array_source_7_meaning      t_array_lookup_meaning;
78061 l_array_source_10              t_array_source_10;
78062 l_array_source_12              t_array_source_12;
78063 l_array_source_12_meaning      t_array_lookup_meaning;
78064 l_array_source_17              t_array_source_17;
78065 l_array_source_17_meaning      t_array_lookup_meaning;
78066 l_array_source_24              t_array_source_24;
78067 l_array_source_33              t_array_source_33;
78068 l_array_source_39              t_array_source_39;
78069 l_array_source_40              t_array_source_40;
78070 l_array_source_41              t_array_source_41;
78071 l_array_source_47              t_array_source_47;
78072 l_array_source_48              t_array_source_48;
78073 l_array_source_49              t_array_source_49;
78074 l_array_source_122              t_array_source_122;
78075 l_array_source_123              t_array_source_123;
78076 l_array_source_124              t_array_source_124;
78077 
78078 l_array_source_1      t_array_source_1;
78079 l_array_source_8      t_array_source_8;
78080 l_array_source_9      t_array_source_9;
78081 l_array_source_9_meaning      t_array_lookup_meaning;
78082 l_array_source_11      t_array_source_11;
78083 l_array_source_13      t_array_source_13;
78084 l_array_source_15      t_array_source_15;
78085 l_array_source_15_meaning      t_array_lookup_meaning;
78086 l_array_source_16      t_array_source_16;
78087 l_array_source_18      t_array_source_18;
78088 l_array_source_18_meaning      t_array_lookup_meaning;
78089 l_array_source_19      t_array_source_19;
78090 l_array_source_21      t_array_source_21;
78091 l_array_source_23      t_array_source_23;
78092 l_array_source_25      t_array_source_25;
78093 l_array_source_26      t_array_source_26;
78094 l_array_source_27      t_array_source_27;
78095 l_array_source_28      t_array_source_28;
78096 l_array_source_29      t_array_source_29;
78097 l_array_source_30      t_array_source_30;
78098 l_array_source_31      t_array_source_31;
78099 l_array_source_32      t_array_source_32;
78100 l_array_source_34      t_array_source_34;
78101 l_array_source_35      t_array_source_35;
78102 l_array_source_36      t_array_source_36;
78103 l_array_source_37      t_array_source_37;
78104 l_array_source_38      t_array_source_38;
78105 l_array_source_42      t_array_source_42;
78106 l_array_source_43      t_array_source_43;
78107 l_array_source_44      t_array_source_44;
78111 l_array_source_50      t_array_source_50;
78108 l_array_source_45      t_array_source_45;
78109 l_array_source_46      t_array_source_46;
78110 l_array_source_46_meaning      t_array_lookup_meaning;
78112 l_array_source_51      t_array_source_51;
78113 l_array_source_52      t_array_source_52;
78114 l_array_source_53      t_array_source_53;
78115 l_array_source_54      t_array_source_54;
78116 l_array_source_55      t_array_source_55;
78117 l_array_source_56      t_array_source_56;
78118 l_array_source_58      t_array_source_58;
78119 l_array_source_59      t_array_source_59;
78120 l_array_source_59_meaning      t_array_lookup_meaning;
78121 l_array_source_60      t_array_source_60;
78122 l_array_source_61      t_array_source_61;
78123 l_array_source_62      t_array_source_62;
78124 l_array_source_63      t_array_source_63;
78125 l_array_source_64      t_array_source_64;
78126 l_array_source_65      t_array_source_65;
78127 l_array_source_66      t_array_source_66;
78128 l_array_source_81      t_array_source_81;
78129 l_array_source_82      t_array_source_82;
78130 
78131 --
78132 CURSOR header_cur
78133 IS
78134 SELECT /*+ leading(xet) cardinality(xet,1) */
78135 -- Event Class Code: PREPAYMENTS
78136     xet.entity_id
78137    ,xet.legal_entity_id
78138    ,xet.entity_code
78139    ,xet.transaction_number
78140    ,xet.event_id
78141    ,xet.event_class_code
78142    ,xet.event_type_code
78143    ,xet.event_number
78144    ,xet.event_date
78145    ,xet.transaction_date
78146    ,xet.reference_num_1
78147    ,xet.reference_num_2
78148    ,xet.reference_num_3
78149    ,xet.reference_num_4
78150    ,xet.reference_char_1
78151    ,xet.reference_char_2
78152    ,xet.reference_char_3
78153    ,xet.reference_char_4
78154    ,xet.reference_date_1
78155    ,xet.reference_date_2
78156    ,xet.reference_date_3
78157    ,xet.reference_date_4
78158    ,xet.event_created_by
78159    ,xet.budgetary_control_flag 
78160   , h3.ASP_RATE_VAR_GAIN_CCID    source_6
78161   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_7
78162   , fvl7.meaning   source_7_meaning
78163   , h3.ASP_RATE_VAR_LOSS_CCID    source_10
78164   , h3.ASP_AUTO_OFFSET_FLAG    source_12
78165   , fvl12.meaning   source_12_meaning
78166   , h3.FSP_PURCH_ENCUMBRANCE_FLAG    source_17
78167   , fvl17.meaning   source_17_meaning
78168   , h2.AI_INVOICE_ID    source_24
78169   , h2.AI_INVOICE_CURRENCY_CODE    source_33
78170   , h2.INV_EXCHANGE_DATE    source_39
78171   , h2.INV_EXCHANGE_RATE    source_40
78172   , h2.INV_EXCHANGE_RATE_TYPE    source_41
78173   , h2.AI_VENDOR_ID    source_47
78174   , h2.AI_VENDOR_SITE_ID    source_48
78175   , h2.THIRD_PARTY_TYPE    source_49
78176   , h2.INV_DOC_SEQUENCE_CATEGORY    source_122
78177   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_123
78178   , h2.INV_DOC_SEQUENCE_VALUE    source_124
78179   FROM xla_events_gt     xet 
78180   , AP_INVOICE_EXTRACT_HEADER_V  h2
78181   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
78182   , fnd_lookup_values    fvl7
78183   , fnd_lookup_values    fvl12
78184   , fnd_lookup_values    fvl17
78185  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
78186    and xet.event_class_code = C_EVENT_CLASS_CODE
78187    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
78188  AND h3.asp_org_id = h2.ai_org_id   AND fvl7.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
78189   AND fvl7.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
78190   AND fvl7.view_application_id(+) = 200
78191   AND fvl7.language(+)            = USERENV('LANG')
78192      AND fvl12.lookup_type(+)         = 'YES_NO'
78193   AND fvl12.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
78194   AND fvl12.view_application_id(+) = 0
78195   AND fvl12.language(+)            = USERENV('LANG')
78196      AND fvl17.lookup_type(+)         = 'YES_NO'
78197   AND fvl17.lookup_code(+)         = h3.FSP_PURCH_ENCUMBRANCE_FLAG
78198   AND fvl17.view_application_id(+) = 0
78199   AND fvl17.language(+)            = USERENV('LANG')
78200   
78201  ORDER BY event_id
78202 ;
78203 
78204 
78205 --
78206 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
78207 IS
78208 SELECT  /*+ leading(xet) cardinality(xet,1) */
78209 -- Event Class Code: PREPAYMENTS
78210     xet.entity_id
78211    ,xet.legal_entity_id
78212    ,xet.entity_code
78213    ,xet.transaction_number
78214    ,xet.event_id
78215    ,xet.event_class_code
78216    ,xet.event_type_code
78217    ,xet.event_number
78218    ,xet.event_date
78219    ,xet.transaction_date
78220    ,xet.reference_num_1
78221    ,xet.reference_num_2
78222    ,xet.reference_num_3
78223    ,xet.reference_num_4
78224    ,xet.reference_char_1
78225    ,xet.reference_char_2
78226    ,xet.reference_char_3
78227    ,xet.reference_char_4
78228    ,xet.reference_date_1
78229    ,xet.reference_date_2
78230    ,xet.reference_date_3
78231    ,xet.reference_date_4
78232    ,xet.event_created_by
78233    ,xet.budgetary_control_flag
78234  , l1.LINE_NUMBER  
78235   , l1.AID_DESCRIPTION    source_1
78236   , l1.INV_DIST_BASE_AMOUNT    source_8
78237   , l1.RELATED_INV_DIST_DEST_TYPE    source_9
78238   , fvl9.meaning   source_9_meaning
78239   , l1.AID_DIST_CCID    source_11
78240   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_13
78241   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_15
78242   , fvl15.meaning   source_15_meaning
78246   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_19
78243   , l1.AID_AMOUNT_VARIANCE    source_16
78244   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_18
78245   , fvl18.meaning   source_18_meaning
78247   , l1.DISTRIBUTION_LINK_TYPE    source_21
78248   , l1.ALLOC_TO_MAIN_DIST_ID    source_23
78249   , l1.BUS_FLOW_AP_APP_ID    source_25
78250   , l1.BUS_FLOW_INV_DIST_TYPE    source_26
78251   , l1.BUS_FLOW_INV_ENTITY_CODE    source_27
78252   , l1.BUS_FLOW_INV_DIST_ID    source_28
78253   , l1.BUS_FLOW_INV_ID    source_29
78254   , l1.AID_INVOICE_DIST_ID    source_30
78255   , l1.UPG_ENC_CR_CCID    source_31
78256   , l1.UPG_ENC_CR_AMT    source_32
78257   , l1.UPG_ENC_CR_BASE_AMT    source_34
78258   , l1.UPG_ENC_DR_CCID    source_35
78259   , l1.UPG_ENC_DR_AMT    source_36
78260   , l1.UPG_ENC_DR_BASE_AMT    source_37
78261   , l1.UPG_AP_ENCUM_OPTION    source_38
78262   , l1.AID_BASE_AMOUNT_VARIANCE    source_42
78263   , l1.DEFERRED_END_DATE    source_43
78264   , l1.DEFERRED_OPTION    source_44
78265   , l1.DEFERRED_START_DATE    source_45
78266   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_46
78267   , fvl46.meaning   source_46_meaning
78268   , l1.AID_PARENT_REVERSAL_ID    source_50
78269   , l1.AID_STAT_AMOUNT    source_51
78270   , l4.TAX_LINE_ID    source_52
78271   , l5.REC_NREC_TAX_DIST_ID    source_53
78272   , l1.SUMMARY_TAX_LINE_ID    source_54
78273   , l1.UPG_CR_ENC_TYPE_ID    source_55
78274   , l1.UPG_DR_ENC_TYPE_ID    source_56
78275   , l1.PO_DISTRIBUTION_ID    source_58
78276   , l1.SELF_ASSESSED_TAX_FLAG    source_59
78277   , fvl59.meaning   source_59_meaning
78278   , l1.BUS_FLOW_PO_APP_ID    source_60
78279   , l1.BUS_FLOW_PO_DIST_TYPE    source_61
78280   , l1.BUS_FLOW_PO_ENTITY_CODE    source_62
78281   , l1.BUS_FLOW_PO_DIST_ID    source_63
78282   , l1.BUS_FLOW_PO_DOC_ID    source_64
78283   , l1.ENCUMBRANCE_AMOUNT    source_65
78284   , l1.ENCUMBRANCE_BASE_AMOUNT    source_66
78285   , l1.AID_QUANTITY_VARIANCE    source_81
78286   , l1.AID_BASE_QUANTITY_VARIANCE    source_82
78287   FROM xla_events_gt     xet 
78288   , AP_EXTRACT_INVOICE_DTLS_BC_V  l1
78289   , ZX_AP_DEF_TAX_EXTRACT_V  l4
78290   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
78291   , fnd_lookup_values    fvl9
78292   , fnd_lookup_values    fvl15
78293   , fnd_lookup_values    fvl18
78294   , fnd_lookup_values    fvl46
78295   , fnd_lookup_values    fvl59
78296  WHERE xet.event_id between x_first_event_id and x_last_event_id
78297    and xet.event_date between p_pad_start_date and p_pad_end_date
78298    and xet.event_class_code = C_EVENT_CLASS_CODE
78299    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
78300  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl9.lookup_type(+)         = 'DESTINATION TYPE'
78301   AND fvl9.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
78302   AND fvl9.view_application_id(+) = 201
78303   AND fvl9.language(+)            = USERENV('LANG')
78304      AND fvl15.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
78305   AND fvl15.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
78306   AND fvl15.view_application_id(+) = 200
78307   AND fvl15.language(+)            = USERENV('LANG')
78308      AND fvl18.lookup_type(+)         = 'YES_NO'
78309   AND fvl18.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
78310   AND fvl18.view_application_id(+) = 0
78311   AND fvl18.language(+)            = USERENV('LANG')
78312      AND fvl46.lookup_type(+)         = 'YES_NO'
78313   AND fvl46.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
78314   AND fvl46.view_application_id(+) = 0
78315   AND fvl46.language(+)            = USERENV('LANG')
78316      AND fvl59.lookup_type(+)         = 'YES_NO'
78317   AND fvl59.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
78318   AND fvl59.view_application_id(+) = 0
78319   AND fvl59.language(+)            = USERENV('LANG')
78320   ;
78321 
78322 --
78323 BEGIN
78324 IF g_log_enabled THEN
78325    l_log_module := C_DEFAULT_MODULE||'.EventClass_108';
78326 END IF;
78327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78328    trace
78329       (p_msg      => 'BEGIN of EventClass_108'
78330       ,p_level    => C_LEVEL_PROCEDURE
78331       ,p_module   => l_log_module);
78332 END IF;
78333 
78334 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78335    trace
78336       (p_msg      => 'p_application_id = '||p_application_id||
78337                      ' - p_base_ledger_id = '||p_base_ledger_id||
78338                      ' - p_target_ledger_id  = '||p_target_ledger_id||
78339                      ' - p_language = '||p_language||
78340                      ' - p_currency_code = '||p_currency_code||
78341                      ' - p_sla_ledger_id = '||p_sla_ledger_id
78342       ,p_level    => C_LEVEL_STATEMENT
78343       ,p_module   => l_log_module);
78344 END IF;
78345 --
78346 -- initialze arrays
78347 --
78348 g_array_event.DELETE;
78349 l_rec_array_event := l_null_rec_array_event;
78350 --
78351 --------------------------------------
78352 -- 4262811 Initialze MPA Line Number
78353 --------------------------------------
78354 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
78355 
78356 --
78357 
78358 --
78359 OPEN header_cur;
78360 --
78361 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78362    trace
78363    (p_msg      => 'SQL - FETCH header_cur'
78364    ,p_level    => C_LEVEL_STATEMENT
78365    ,p_module   => l_log_module);
78366 END IF;
78370         l_array_entity_id
78367 --
78368 LOOP
78369 FETCH header_cur BULK COLLECT INTO
78371       , l_array_legal_entity_id
78372       , l_array_entity_code
78373       , l_array_transaction_num
78374       , l_array_event_id
78375       , l_array_class_code
78376       , l_array_event_type
78377       , l_array_event_number
78378       , l_array_event_date
78379       , l_array_transaction_date
78380       , l_array_reference_num_1
78381       , l_array_reference_num_2
78382       , l_array_reference_num_3
78383       , l_array_reference_num_4
78384       , l_array_reference_char_1
78385       , l_array_reference_char_2
78386       , l_array_reference_char_3
78387       , l_array_reference_char_4
78388       , l_array_reference_date_1
78389       , l_array_reference_date_2
78390       , l_array_reference_date_3
78391       , l_array_reference_date_4
78392       , l_array_event_created_by
78393       , l_array_budgetary_control_flag 
78394       , l_array_source_6
78395       , l_array_source_7
78396       , l_array_source_7_meaning
78397       , l_array_source_10
78398       , l_array_source_12
78399       , l_array_source_12_meaning
78400       , l_array_source_17
78401       , l_array_source_17_meaning
78402       , l_array_source_24
78403       , l_array_source_33
78404       , l_array_source_39
78405       , l_array_source_40
78406       , l_array_source_41
78407       , l_array_source_47
78408       , l_array_source_48
78409       , l_array_source_49
78410       , l_array_source_122
78411       , l_array_source_123
78412       , l_array_source_124
78413       LIMIT l_rows;
78414 --
78415 IF (C_LEVEL_EVENT >= g_log_level) THEN
78416    trace
78417    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
78418    ,p_level    => C_LEVEL_EVENT
78419    ,p_module   => l_log_module);
78420 END IF;
78421 --
78422 EXIT WHEN l_array_entity_id.COUNT = 0;
78423 
78424 -- initialize arrays
78425 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
78426 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
78427 
78428 --
78429 -- Bug 4458708
78430 --
78431 XLA_AE_LINES_PKG.g_LineNumber := 0;
78432 
78433 
78434 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
78435 g_last_hdr_idx := l_array_event_id.LAST;
78436 --
78437 -- loop for the headers. Each iteration is for each header extract row
78438 -- fetched in header cursor
78439 --
78440 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
78441 
78442 --
78443 -- set event info as cache for other routines to refer event attributes
78444 --
78445 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78446    (p_application_id           => p_application_id
78447    ,p_primary_ledger_id        => p_primary_ledger_id
78448    ,p_base_ledger_id           => p_base_ledger_id
78449    ,p_target_ledger_id         => p_target_ledger_id
78450    ,p_entity_id                => l_array_entity_id(hdr_idx)
78451    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
78452    ,p_entity_code              => l_array_entity_code(hdr_idx)
78453    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
78454    ,p_event_id                 => l_array_event_id(hdr_idx)
78455    ,p_event_class_code         => l_array_class_code(hdr_idx)
78456    ,p_event_type_code          => l_array_event_type(hdr_idx)
78457    ,p_event_number             => l_array_event_number(hdr_idx)
78458    ,p_event_date               => l_array_event_date(hdr_idx)
78459    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
78460    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
78461    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
78462    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
78463    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
78464    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
78465    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
78466    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
78467    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
78468    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
78469    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
78470    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
78471    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
78472    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
78473    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
78474 
78475 --
78476 -- set the status of entry to C_VALID (0)
78477 --
78478 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78479 
78480 --
78481 -- initialize a row for ae header
78482 --
78483 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
78484 
78485 l_event_id := l_array_event_id(hdr_idx);
78486 
78487 --
78488 -- storing the hdr_idx for event. May be used by line cursor.
78489 --
78490 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
78491 
78492 --
78493 -- store sources from header extract. This can be improved to
78494 -- store only those sources from header extract that may be used in lines
78495 --
78496 
78497 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
78501 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
78498 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
78499 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
78500 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
78502 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
78503 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
78504 g_array_event(l_event_id).array_value_char('source_17_meaning') := l_array_source_17_meaning(hdr_idx);
78505 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
78506 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
78507 g_array_event(l_event_id).array_value_date('source_39') := l_array_source_39(hdr_idx);
78508 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
78509 g_array_event(l_event_id).array_value_char('source_41') := l_array_source_41(hdr_idx);
78510 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
78511 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
78512 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
78513 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
78514 g_array_event(l_event_id).array_value_num('source_123') := l_array_source_123(hdr_idx);
78515 g_array_event(l_event_id).array_value_num('source_124') := l_array_source_124(hdr_idx);
78516 
78517 --
78518 -- initilaize the status of ae headers for diffrent balance types
78519 -- the status is initialised to C_NOT_CREATED (2)
78520 --
78521 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78522 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78523 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78524 
78525 --
78526 -- call api to validate and store accounting attributes for header
78527 --
78528 
78529 ------------------------------------------------------------
78530 -- Accrual Reversal : to get date for Standard Source (NONE)
78531 ------------------------------------------------------------
78532 l_acc_rev_gl_date_source := NULL;
78533 
78534      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
78535       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_122');
78536      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
78537       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_123');
78538      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
78539       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_124');
78540      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
78541       l_rec_acct_attrs.array_date_value(4) := 
78542 xla_ae_sources_pkg.GetSystemSourceDate(
78543    p_source_code           => 'XLA_EVENT_DATE'
78544  , p_source_type_code      => 'Y'
78545  , p_source_application_id =>  602
78546 );
78547 
78548 
78549 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
78550 
78551 XLA_AE_HEADER_PKG.SetJeCategoryName;
78552 
78553 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
78554 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
78555 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
78556 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
78557 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
78558 
78559 
78560 --
78561 xla_ae_header_pkg.SetHdrDescription(
78562    p_description => Description_1 (
78563    p_application_id => p_application_id 
78564    )
78565 );
78566 --
78567 
78568 -- No header level analytical criteria
78569 
78570 --
78571 --accounting attribute enhancement, bug 3612931
78572 --
78573 l_trx_reversal_source := SUBSTR(NULL, 1,30);
78574 
78575 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
78576    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
78577 
78578    xla_accounting_err_pkg.build_message
78579       (p_appli_s_name            => 'XLA'
78580       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
78581       ,p_token_1                 => 'ACCT_ATTR_NAME'
78582       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
78583       ,p_token_2                 => 'PRODUCT_NAME'
78584       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78585       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78586       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
78587       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78588 
78589 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
78590    --
78591    -- following sets the accounting attributes needed to reverse
78592    -- accounting for a distributeion
78593    --
78594    xla_ae_lines_pkg.SetTrxReversalAttrs
78595       (p_event_id              => l_event_id
78596       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
78597       ,p_trx_reversal_source   => l_trx_reversal_source);
78598 
78599 END IF;
78600 
78601 
78602 ----------------------------------------------------------------
78603 -- 4262811 -  update the header statuses to invalid in need be
78604 ----------------------------------------------------------------
78605 --
78606 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
78607 
78608 
78609   -----------------------------------------------
78610   -- No accrual reversal for the event class/type
78611   -----------------------------------------------
78612 ----------------------------------------------------------------
78613 
78614 --
78615 -- this ends the header loop iteration for one bulk fetch
78616 --
78617 END LOOP;
78618 
78619 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
78620 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
78621 
78622 --
78623 -- insert dummy rows into lines gt table that were created due to
78624 -- transaction reversals
78625 --
78626 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
78627    l_result := XLA_AE_LINES_PKG.InsertLines;
78628 END IF;
78629 
78630 --
78631 -- reset the temp_line_num for each set of events fetched from header
78632 -- cursor rather than doing it for each new event in line cursor
78633 -- Bug 3939231
78634 --
78635 xla_ae_lines_pkg.g_temp_line_num := 0;
78636 
78637 
78638 
78639 --
78640 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
78641 --
78642 --
78643 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78644 
78645       trace
78646          (p_msg      => 'SQL - FETCH line_cur'
78647          ,p_level    => C_LEVEL_STATEMENT
78648          ,p_module   => l_log_module);
78649 
78650 END IF;
78651 --
78652 --
78653 LOOP
78654   --
78655   FETCH line_cur BULK COLLECT INTO
78656         l_array_entity_id
78657       , l_array_legal_entity_id
78658       , l_array_entity_code
78659       , l_array_transaction_num
78660       , l_array_event_id
78661       , l_array_class_code
78662       , l_array_event_type
78663       , l_array_event_number
78664       , l_array_event_date
78665       , l_array_transaction_date
78666       , l_array_reference_num_1
78667       , l_array_reference_num_2
78668       , l_array_reference_num_3
78669       , l_array_reference_num_4
78670       , l_array_reference_char_1
78671       , l_array_reference_char_2
78672       , l_array_reference_char_3
78673       , l_array_reference_char_4
78674       , l_array_reference_date_1
78675       , l_array_reference_date_2
78676       , l_array_reference_date_3
78677       , l_array_reference_date_4
78678       , l_array_event_created_by
78679       , l_array_budgetary_control_flag
78680       , l_array_extract_line_num 
78681       , l_array_source_1
78682       , l_array_source_8
78683       , l_array_source_9
78684       , l_array_source_9_meaning
78685       , l_array_source_11
78686       , l_array_source_13
78687       , l_array_source_15
78688       , l_array_source_15_meaning
78689       , l_array_source_16
78690       , l_array_source_18
78691       , l_array_source_18_meaning
78692       , l_array_source_19
78693       , l_array_source_21
78694       , l_array_source_23
78695       , l_array_source_25
78696       , l_array_source_26
78697       , l_array_source_27
78698       , l_array_source_28
78699       , l_array_source_29
78700       , l_array_source_30
78701       , l_array_source_31
78702       , l_array_source_32
78703       , l_array_source_34
78704       , l_array_source_35
78705       , l_array_source_36
78706       , l_array_source_37
78707       , l_array_source_38
78708       , l_array_source_42
78709       , l_array_source_43
78710       , l_array_source_44
78711       , l_array_source_45
78712       , l_array_source_46
78713       , l_array_source_46_meaning
78714       , l_array_source_50
78715       , l_array_source_51
78716       , l_array_source_52
78717       , l_array_source_53
78718       , l_array_source_54
78719       , l_array_source_55
78720       , l_array_source_56
78721       , l_array_source_58
78722       , l_array_source_59
78723       , l_array_source_59_meaning
78724       , l_array_source_60
78725       , l_array_source_61
78726       , l_array_source_62
78727       , l_array_source_63
78728       , l_array_source_64
78732       , l_array_source_82
78729       , l_array_source_65
78730       , l_array_source_66
78731       , l_array_source_81
78733       LIMIT l_rows;
78734 
78735   --
78736   IF (C_LEVEL_EVENT >= g_log_level) THEN
78737             trace
78738                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
78739                ,p_level    => C_LEVEL_EVENT
78740                ,p_module   => l_log_module);
78741   END IF;
78742   --
78743   EXIT WHEN l_array_entity_id.count = 0;
78744 
78745   XLA_AE_LINES_PKG.g_rec_lines := null;
78746 
78747 --
78748 -- Bug 4458708
78749 --
78750 XLA_AE_LINES_PKG.g_LineNumber := 0;
78751 --
78752 --
78753 
78754 FOR Idx IN 1..l_array_event_id.count LOOP
78755    --
78756    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
78757    --
78758    l_event_id := l_array_event_id(idx);  -- 5648433
78759 
78760    --
78761    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78762    --
78763 
78764    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
78765              (g_array_event(l_event_id).array_value_num('header_index'))
78766          ,'N'
78767          ) <> 'Y'
78768    THEN
78769       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78770          trace
78771             (p_msg      => 'Trancaction revesal option is not Y '
78772             ,p_level    => C_LEVEL_STATEMENT
78773             ,p_module   => l_log_module);
78774       END IF;
78775 
78776 --
78777 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
78778 --
78779 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78780 --
78781 -- set event info as cache for other routines to refer event attributes
78782 --
78783 
78784 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
78785    l_previous_event_id := l_event_id;
78786 
78787    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78788       (p_application_id           => p_application_id
78789       ,p_primary_ledger_id        => p_primary_ledger_id
78790       ,p_base_ledger_id           => p_base_ledger_id
78791       ,p_target_ledger_id         => p_target_ledger_id
78792       ,p_entity_id                => l_array_entity_id(Idx)
78793       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
78794       ,p_entity_code              => l_array_entity_code(Idx)
78795       ,p_transaction_num          => l_array_transaction_num(Idx)
78796       ,p_event_id                 => l_array_event_id(Idx)
78797       ,p_event_class_code         => l_array_class_code(Idx)
78798       ,p_event_type_code          => l_array_event_type(Idx)
78799       ,p_event_number             => l_array_event_number(Idx)
78800       ,p_event_date               => l_array_event_date(Idx)
78801       ,p_transaction_date         => l_array_transaction_date(Idx)
78802       ,p_reference_num_1          => l_array_reference_num_1(Idx)
78803       ,p_reference_num_2          => l_array_reference_num_2(Idx)
78804       ,p_reference_num_3          => l_array_reference_num_3(Idx)
78805       ,p_reference_num_4          => l_array_reference_num_4(Idx)
78806       ,p_reference_char_1         => l_array_reference_char_1(Idx)
78807       ,p_reference_char_2         => l_array_reference_char_2(Idx)
78808       ,p_reference_char_3         => l_array_reference_char_3(Idx)
78809       ,p_reference_char_4         => l_array_reference_char_4(Idx)
78810       ,p_reference_date_1         => l_array_reference_date_1(Idx)
78811       ,p_reference_date_2         => l_array_reference_date_2(Idx)
78812       ,p_reference_date_3         => l_array_reference_date_3(Idx)
78813       ,p_reference_date_4         => l_array_reference_date_4(Idx)
78814       ,p_event_created_by         => l_array_event_created_by(Idx)
78815       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
78816        --
78817 END IF;
78818 
78819 
78820 
78821 --
78822 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
78823 
78824 l_acct_reversal_source := SUBSTR(l_array_source_19(Idx), 1,30);
78825 
78826 IF l_continue_with_lines THEN
78827    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
78828       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
78829 
78830       xla_accounting_err_pkg.build_message
78831          (p_appli_s_name            => 'XLA'
78832          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
78833          ,p_token_1                 => 'LINE_NUMBER'
78834          ,p_value_1                 => l_array_extract_line_num(Idx)
78835          ,p_token_2                 => 'PRODUCT_NAME'
78836          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78837          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78838          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
78839          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78840 
78841    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
78842       --
78843       -- following sets the accounting attributes needed to reverse
78844       -- accounting for a distributeion
78845       --
78846 
78847       --
78848       -- 5217187
78849       --
78850       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
78851       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
78852                                        g_array_event(l_event_id).array_value_num('header_index'));
78853       --
78854       --
78855 
78856       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
78857       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_19(Idx);
78861       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_21(Idx);
78858       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
78859       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
78860       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
78862       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
78863       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_31(Idx);
78864       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
78865       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_32(Idx);
78866       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
78867       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_33');
78868       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
78869       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_34(Idx);
78870       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
78871       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_35(Idx);
78872       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
78873       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_36(Idx);
78874       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
78875       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_33');
78876       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
78877       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_37(Idx);
78878       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
78879       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_38(Idx);
78880       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
78881       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_49');
78882       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
78883       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_50(Idx);
78884       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
78885       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_21(Idx);
78886       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
78887       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_52(Idx);
78888       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
78889       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_53(Idx);
78890       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
78891       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_54(Idx);
78892       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
78893       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_55(Idx);
78894       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
78895       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_56(Idx);
78896 
78897 
78898       xla_ae_lines_pkg.SetAcctReversalAttrs
78899          (p_event_id             => l_event_id
78900          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
78901          ,p_calculate_acctd_flag => l_calculate_acctd_flag
78902          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
78903    END IF;
78904 
78905    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
78906        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
78907 
78908 --
78909 AcctLineType_17 (
78910  p_application_id  => p_application_id
78911  ,p_event_id     => l_event_id
78912  ,p_calculate_acctd_flag => l_calculate_acctd_flag
78913  ,p_calculate_g_l_flag => l_calculate_g_l_flag
78914  ,p_actual_flag => l_actual_flag
78915  ,p_balance_type_code => l_balance_type_code
78916  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78917  
78918  , p_source_1 => l_array_source_1(Idx)
78919  , p_source_11 => l_array_source_11(Idx)
78920  , p_source_15 => l_array_source_15(Idx)
78921  , p_source_15_meaning => l_array_source_15_meaning(Idx)
78922  , p_source_16 => l_array_source_16(Idx)
78923  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
78924  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
78925  , p_source_18 => l_array_source_18(Idx)
78926  , p_source_18_meaning => l_array_source_18_meaning(Idx)
78927  , p_source_19 => l_array_source_19(Idx)
78928  , p_source_21 => l_array_source_21(Idx)
78929  , p_source_23 => l_array_source_23(Idx)
78930  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
78931  , p_source_25 => l_array_source_25(Idx)
78932  , p_source_26 => l_array_source_26(Idx)
78933  , p_source_27 => l_array_source_27(Idx)
78934  , p_source_28 => l_array_source_28(Idx)
78935  , p_source_29 => l_array_source_29(Idx)
78936  , p_source_30 => l_array_source_30(Idx)
78937  , p_source_31 => l_array_source_31(Idx)
78938  , p_source_32 => l_array_source_32(Idx)
78939  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
78940  , p_source_34 => l_array_source_34(Idx)
78941  , p_source_35 => l_array_source_35(Idx)
78942  , p_source_36 => l_array_source_36(Idx)
78943  , p_source_37 => l_array_source_37(Idx)
78944  , p_source_38 => l_array_source_38(Idx)
78945  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
78946  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
78947  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
78948  , p_source_42 => l_array_source_42(Idx)
78949  , p_source_43 => l_array_source_43(Idx)
78950  , p_source_44 => l_array_source_44(Idx)
78951  , p_source_45 => l_array_source_45(Idx)
78952  , p_source_46 => l_array_source_46(Idx)
78953  , p_source_46_meaning => l_array_source_46_meaning(Idx)
78954  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
78955  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
78959  , p_source_52 => l_array_source_52(Idx)
78956  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
78957  , p_source_50 => l_array_source_50(Idx)
78958  , p_source_51 => l_array_source_51(Idx)
78960  , p_source_53 => l_array_source_53(Idx)
78961  , p_source_54 => l_array_source_54(Idx)
78962  , p_source_55 => l_array_source_55(Idx)
78963  , p_source_56 => l_array_source_56(Idx)
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_25 (
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_1 => l_array_source_1(Idx)
78983  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
78984  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
78985  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
78986  , p_source_8 => l_array_source_8(Idx)
78987  , p_source_9 => l_array_source_9(Idx)
78988  , p_source_9_meaning => l_array_source_9_meaning(Idx)
78989  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
78990  , p_source_11 => l_array_source_11(Idx)
78991  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78992  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
78993  , p_source_15 => l_array_source_15(Idx)
78994  , p_source_15_meaning => l_array_source_15_meaning(Idx)
78995  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
78996  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
78997  , p_source_19 => l_array_source_19(Idx)
78998  , p_source_21 => l_array_source_21(Idx)
78999  , p_source_23 => l_array_source_23(Idx)
79000  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79001  , p_source_25 => l_array_source_25(Idx)
79002  , p_source_26 => l_array_source_26(Idx)
79003  , p_source_27 => l_array_source_27(Idx)
79004  , p_source_28 => l_array_source_28(Idx)
79005  , p_source_29 => l_array_source_29(Idx)
79006  , p_source_30 => l_array_source_30(Idx)
79007  , p_source_31 => l_array_source_31(Idx)
79008  , p_source_32 => l_array_source_32(Idx)
79009  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79010  , p_source_34 => l_array_source_34(Idx)
79011  , p_source_35 => l_array_source_35(Idx)
79012  , p_source_36 => l_array_source_36(Idx)
79013  , p_source_37 => l_array_source_37(Idx)
79014  , p_source_38 => l_array_source_38(Idx)
79015  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79016  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79017  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79018  , p_source_43 => l_array_source_43(Idx)
79019  , p_source_44 => l_array_source_44(Idx)
79020  , p_source_45 => l_array_source_45(Idx)
79021  , p_source_46 => l_array_source_46(Idx)
79022  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79023  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79024  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79025  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79026  , p_source_50 => l_array_source_50(Idx)
79027  , p_source_51 => l_array_source_51(Idx)
79028  , p_source_52 => l_array_source_52(Idx)
79029  , p_source_53 => l_array_source_53(Idx)
79030  , p_source_54 => l_array_source_54(Idx)
79031  , p_source_55 => l_array_source_55(Idx)
79032  , p_source_56 => l_array_source_56(Idx)
79033  , p_source_65 => l_array_source_65(Idx)
79034  , p_source_66 => l_array_source_66(Idx)
79035  );
79036 If(l_balance_type_code = 'A') THEN
79037   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79038 END IF;
79039 
79040 --
79041 
79042 
79043 --
79044 AcctLineType_29 (
79045  p_application_id  => p_application_id
79046  ,p_event_id     => l_event_id
79047  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79048  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79049  ,p_actual_flag => l_actual_flag
79050  ,p_balance_type_code => l_balance_type_code
79051  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79052  
79053  , p_source_1 => l_array_source_1(Idx)
79054  , p_source_11 => l_array_source_11(Idx)
79055  , p_source_15 => l_array_source_15(Idx)
79056  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79057  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79058  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79059  , p_source_19 => l_array_source_19(Idx)
79060  , p_source_21 => l_array_source_21(Idx)
79061  , p_source_23 => l_array_source_23(Idx)
79062  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79063  , p_source_25 => l_array_source_25(Idx)
79064  , p_source_26 => l_array_source_26(Idx)
79065  , p_source_27 => l_array_source_27(Idx)
79066  , p_source_28 => l_array_source_28(Idx)
79067  , p_source_29 => l_array_source_29(Idx)
79068  , p_source_30 => l_array_source_30(Idx)
79069  , p_source_31 => l_array_source_31(Idx)
79070  , p_source_32 => l_array_source_32(Idx)
79071  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79072  , p_source_34 => l_array_source_34(Idx)
79073  , p_source_35 => l_array_source_35(Idx)
79074  , p_source_36 => l_array_source_36(Idx)
79075  , p_source_37 => l_array_source_37(Idx)
79076  , p_source_38 => l_array_source_38(Idx)
79077  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79078  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79082  , p_source_45 => l_array_source_45(Idx)
79079  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79080  , p_source_43 => l_array_source_43(Idx)
79081  , p_source_44 => l_array_source_44(Idx)
79083  , p_source_46 => l_array_source_46(Idx)
79084  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79085  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79086  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79087  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79088  , p_source_50 => l_array_source_50(Idx)
79089  , p_source_51 => l_array_source_51(Idx)
79090  , p_source_52 => l_array_source_52(Idx)
79091  , p_source_53 => l_array_source_53(Idx)
79092  , p_source_54 => l_array_source_54(Idx)
79093  , p_source_55 => l_array_source_55(Idx)
79094  , p_source_56 => l_array_source_56(Idx)
79095  , p_source_65 => l_array_source_65(Idx)
79096  , p_source_66 => l_array_source_66(Idx)
79097  );
79098 If(l_balance_type_code = 'A') THEN
79099   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79100 END IF;
79101 
79102 --
79103 
79104 
79105 --
79106 AcctLineType_36 (
79107  p_application_id  => p_application_id
79108  ,p_event_id     => l_event_id
79109  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79110  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79111  ,p_actual_flag => l_actual_flag
79112  ,p_balance_type_code => l_balance_type_code
79113  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79114  
79115  , p_source_1 => l_array_source_1(Idx)
79116  , p_source_11 => l_array_source_11(Idx)
79117  , p_source_15 => l_array_source_15(Idx)
79118  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79119  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79120  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79121  , p_source_19 => l_array_source_19(Idx)
79122  , p_source_21 => l_array_source_21(Idx)
79123  , p_source_23 => l_array_source_23(Idx)
79124  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79125  , p_source_25 => l_array_source_25(Idx)
79126  , p_source_26 => l_array_source_26(Idx)
79127  , p_source_27 => l_array_source_27(Idx)
79128  , p_source_28 => l_array_source_28(Idx)
79129  , p_source_29 => l_array_source_29(Idx)
79130  , p_source_30 => l_array_source_30(Idx)
79131  , p_source_31 => l_array_source_31(Idx)
79132  , p_source_32 => l_array_source_32(Idx)
79133  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79134  , p_source_34 => l_array_source_34(Idx)
79135  , p_source_35 => l_array_source_35(Idx)
79136  , p_source_36 => l_array_source_36(Idx)
79137  , p_source_37 => l_array_source_37(Idx)
79138  , p_source_38 => l_array_source_38(Idx)
79139  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79140  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79141  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79142  , p_source_43 => l_array_source_43(Idx)
79143  , p_source_44 => l_array_source_44(Idx)
79144  , p_source_45 => l_array_source_45(Idx)
79145  , p_source_46 => l_array_source_46(Idx)
79146  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79147  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79148  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79149  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79150  , p_source_50 => l_array_source_50(Idx)
79151  , p_source_51 => l_array_source_51(Idx)
79152  , p_source_52 => l_array_source_52(Idx)
79153  , p_source_53 => l_array_source_53(Idx)
79154  , p_source_54 => l_array_source_54(Idx)
79155  , p_source_55 => l_array_source_55(Idx)
79156  , p_source_56 => l_array_source_56(Idx)
79157  , p_source_65 => l_array_source_65(Idx)
79158  , p_source_66 => l_array_source_66(Idx)
79159  );
79160 If(l_balance_type_code = 'A') THEN
79161   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79162 END IF;
79163 
79164 --
79165 
79166 
79167 --
79168 AcctLineType_40 (
79169  p_application_id  => p_application_id
79170  ,p_event_id     => l_event_id
79171  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79172  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79173  ,p_actual_flag => l_actual_flag
79174  ,p_balance_type_code => l_balance_type_code
79175  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79176  
79177  , p_source_1 => l_array_source_1(Idx)
79178  , p_source_11 => l_array_source_11(Idx)
79179  , p_source_15 => l_array_source_15(Idx)
79180  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79181  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79182  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79183  , p_source_18 => l_array_source_18(Idx)
79184  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79185  , p_source_19 => l_array_source_19(Idx)
79186  , p_source_21 => l_array_source_21(Idx)
79187  , p_source_23 => l_array_source_23(Idx)
79188  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79189  , p_source_25 => l_array_source_25(Idx)
79190  , p_source_26 => l_array_source_26(Idx)
79191  , p_source_27 => l_array_source_27(Idx)
79192  , p_source_28 => l_array_source_28(Idx)
79193  , p_source_29 => l_array_source_29(Idx)
79194  , p_source_30 => l_array_source_30(Idx)
79195  , p_source_31 => l_array_source_31(Idx)
79196  , p_source_32 => l_array_source_32(Idx)
79197  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79198  , p_source_34 => l_array_source_34(Idx)
79199  , p_source_35 => l_array_source_35(Idx)
79200  , p_source_36 => l_array_source_36(Idx)
79201  , p_source_37 => l_array_source_37(Idx)
79202  , p_source_38 => l_array_source_38(Idx)
79203  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79204  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79208  , p_source_45 => l_array_source_45(Idx)
79205  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79206  , p_source_43 => l_array_source_43(Idx)
79207  , p_source_44 => l_array_source_44(Idx)
79209  , p_source_46 => l_array_source_46(Idx)
79210  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79211  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79212  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79213  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79214  , p_source_50 => l_array_source_50(Idx)
79215  , p_source_51 => l_array_source_51(Idx)
79216  , p_source_52 => l_array_source_52(Idx)
79217  , p_source_53 => l_array_source_53(Idx)
79218  , p_source_54 => l_array_source_54(Idx)
79219  , p_source_55 => l_array_source_55(Idx)
79220  , p_source_56 => l_array_source_56(Idx)
79221  , p_source_65 => l_array_source_65(Idx)
79222  , p_source_66 => l_array_source_66(Idx)
79223  );
79224 If(l_balance_type_code = 'A') THEN
79225   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79226 END IF;
79227 
79228 --
79229 
79230 
79231 --
79232 AcctLineType_44 (
79233  p_application_id  => p_application_id
79234  ,p_event_id     => l_event_id
79235  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79236  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79237  ,p_actual_flag => l_actual_flag
79238  ,p_balance_type_code => l_balance_type_code
79239  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79240  
79241  , p_source_1 => l_array_source_1(Idx)
79242  , p_source_11 => l_array_source_11(Idx)
79243  , p_source_15 => l_array_source_15(Idx)
79244  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79245  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79246  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79247  , p_source_19 => l_array_source_19(Idx)
79248  , p_source_21 => l_array_source_21(Idx)
79249  , p_source_23 => l_array_source_23(Idx)
79250  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79251  , p_source_25 => l_array_source_25(Idx)
79252  , p_source_26 => l_array_source_26(Idx)
79253  , p_source_27 => l_array_source_27(Idx)
79254  , p_source_28 => l_array_source_28(Idx)
79255  , p_source_29 => l_array_source_29(Idx)
79256  , p_source_30 => l_array_source_30(Idx)
79257  , p_source_31 => l_array_source_31(Idx)
79258  , p_source_32 => l_array_source_32(Idx)
79259  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79260  , p_source_34 => l_array_source_34(Idx)
79261  , p_source_35 => l_array_source_35(Idx)
79262  , p_source_36 => l_array_source_36(Idx)
79263  , p_source_37 => l_array_source_37(Idx)
79264  , p_source_38 => l_array_source_38(Idx)
79265  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79266  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79267  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79268  , p_source_43 => l_array_source_43(Idx)
79269  , p_source_44 => l_array_source_44(Idx)
79270  , p_source_45 => l_array_source_45(Idx)
79271  , p_source_46 => l_array_source_46(Idx)
79272  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79273  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79274  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79275  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79276  , p_source_50 => l_array_source_50(Idx)
79277  , p_source_51 => l_array_source_51(Idx)
79278  , p_source_52 => l_array_source_52(Idx)
79279  , p_source_53 => l_array_source_53(Idx)
79280  , p_source_54 => l_array_source_54(Idx)
79281  , p_source_55 => l_array_source_55(Idx)
79282  , p_source_56 => l_array_source_56(Idx)
79283  , p_source_65 => l_array_source_65(Idx)
79284  , p_source_66 => l_array_source_66(Idx)
79285  );
79286 If(l_balance_type_code = 'A') THEN
79287   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79288 END IF;
79289 
79290 --
79291 
79292 
79293 --
79294 AcctLineType_48 (
79295  p_application_id  => p_application_id
79296  ,p_event_id     => l_event_id
79297  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79298  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79299  ,p_actual_flag => l_actual_flag
79300  ,p_balance_type_code => l_balance_type_code
79301  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79302  
79303  , p_source_1 => l_array_source_1(Idx)
79304  , p_source_11 => l_array_source_11(Idx)
79305  , p_source_15 => l_array_source_15(Idx)
79306  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79307  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79308  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79309  , p_source_18 => l_array_source_18(Idx)
79310  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79311  , p_source_19 => l_array_source_19(Idx)
79312  , p_source_21 => l_array_source_21(Idx)
79313  , p_source_23 => l_array_source_23(Idx)
79314  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79315  , p_source_25 => l_array_source_25(Idx)
79316  , p_source_26 => l_array_source_26(Idx)
79317  , p_source_27 => l_array_source_27(Idx)
79318  , p_source_28 => l_array_source_28(Idx)
79319  , p_source_29 => l_array_source_29(Idx)
79320  , p_source_30 => l_array_source_30(Idx)
79321  , p_source_31 => l_array_source_31(Idx)
79322  , p_source_32 => l_array_source_32(Idx)
79323  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79324  , p_source_34 => l_array_source_34(Idx)
79325  , p_source_35 => l_array_source_35(Idx)
79326  , p_source_36 => l_array_source_36(Idx)
79327  , p_source_37 => l_array_source_37(Idx)
79328  , p_source_38 => l_array_source_38(Idx)
79329  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79330  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79334  , p_source_45 => l_array_source_45(Idx)
79331  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79332  , p_source_43 => l_array_source_43(Idx)
79333  , p_source_44 => l_array_source_44(Idx)
79335  , p_source_46 => l_array_source_46(Idx)
79336  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79337  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79338  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79339  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79340  , p_source_50 => l_array_source_50(Idx)
79341  , p_source_51 => l_array_source_51(Idx)
79342  , p_source_52 => l_array_source_52(Idx)
79343  , p_source_53 => l_array_source_53(Idx)
79344  , p_source_54 => l_array_source_54(Idx)
79345  , p_source_55 => l_array_source_55(Idx)
79346  , p_source_56 => l_array_source_56(Idx)
79347  , p_source_59 => l_array_source_59(Idx)
79348  , p_source_59_meaning => l_array_source_59_meaning(Idx)
79349  , p_source_65 => l_array_source_65(Idx)
79350  , p_source_66 => l_array_source_66(Idx)
79351  );
79352 If(l_balance_type_code = 'A') THEN
79353   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79354 END IF;
79355 
79356 --
79357 
79358 
79359 --
79360 AcctLineType_49 (
79361  p_application_id  => p_application_id
79362  ,p_event_id     => l_event_id
79363  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79364  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79365  ,p_actual_flag => l_actual_flag
79366  ,p_balance_type_code => l_balance_type_code
79367  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79368  
79369  , p_source_15 => l_array_source_15(Idx)
79370  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79371  , p_source_18 => l_array_source_18(Idx)
79372  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79373  , p_source_19 => l_array_source_19(Idx)
79374  , p_source_21 => l_array_source_21(Idx)
79375  , p_source_23 => l_array_source_23(Idx)
79376  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79377  , p_source_30 => l_array_source_30(Idx)
79378  , p_source_31 => l_array_source_31(Idx)
79379  , p_source_32 => l_array_source_32(Idx)
79380  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79381  , p_source_34 => l_array_source_34(Idx)
79382  , p_source_35 => l_array_source_35(Idx)
79383  , p_source_36 => l_array_source_36(Idx)
79384  , p_source_37 => l_array_source_37(Idx)
79385  , p_source_38 => l_array_source_38(Idx)
79386  , p_source_43 => l_array_source_43(Idx)
79387  , p_source_44 => l_array_source_44(Idx)
79388  , p_source_45 => l_array_source_45(Idx)
79389  , p_source_46 => l_array_source_46(Idx)
79390  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79391  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79392  , p_source_50 => l_array_source_50(Idx)
79393  , p_source_51 => l_array_source_51(Idx)
79394  , p_source_52 => l_array_source_52(Idx)
79395  , p_source_53 => l_array_source_53(Idx)
79396  , p_source_54 => l_array_source_54(Idx)
79397  , p_source_55 => l_array_source_55(Idx)
79398  , p_source_56 => l_array_source_56(Idx)
79399  , p_source_58 => l_array_source_58(Idx)
79400  , p_source_59 => l_array_source_59(Idx)
79401  , p_source_59_meaning => l_array_source_59_meaning(Idx)
79402  , p_source_60 => l_array_source_60(Idx)
79403  , p_source_61 => l_array_source_61(Idx)
79404  , p_source_62 => l_array_source_62(Idx)
79405  , p_source_63 => l_array_source_63(Idx)
79406  , p_source_64 => l_array_source_64(Idx)
79407  , p_source_65 => l_array_source_65(Idx)
79408  , p_source_66 => l_array_source_66(Idx)
79409  );
79410 If(l_balance_type_code = 'A') THEN
79411   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79412 END IF;
79413 
79414 --
79415 
79416 
79417 --
79418 AcctLineType_52 (
79419  p_application_id  => p_application_id
79420  ,p_event_id     => l_event_id
79421  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79422  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79423  ,p_actual_flag => l_actual_flag
79424  ,p_balance_type_code => l_balance_type_code
79425  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79426  
79427  , p_source_15 => l_array_source_15(Idx)
79428  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79429  , p_source_18 => l_array_source_18(Idx)
79430  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79431  , p_source_19 => l_array_source_19(Idx)
79432  , p_source_21 => l_array_source_21(Idx)
79433  , p_source_23 => l_array_source_23(Idx)
79434  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79435  , p_source_30 => l_array_source_30(Idx)
79436  , p_source_31 => l_array_source_31(Idx)
79437  , p_source_32 => l_array_source_32(Idx)
79438  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79439  , p_source_34 => l_array_source_34(Idx)
79440  , p_source_35 => l_array_source_35(Idx)
79441  , p_source_36 => l_array_source_36(Idx)
79442  , p_source_37 => l_array_source_37(Idx)
79443  , p_source_38 => l_array_source_38(Idx)
79444  , p_source_43 => l_array_source_43(Idx)
79445  , p_source_44 => l_array_source_44(Idx)
79446  , p_source_45 => l_array_source_45(Idx)
79447  , p_source_46 => l_array_source_46(Idx)
79448  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79449  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79450  , p_source_50 => l_array_source_50(Idx)
79451  , p_source_51 => l_array_source_51(Idx)
79452  , p_source_52 => l_array_source_52(Idx)
79453  , p_source_53 => l_array_source_53(Idx)
79454  , p_source_54 => l_array_source_54(Idx)
79455  , p_source_55 => l_array_source_55(Idx)
79456  , p_source_56 => l_array_source_56(Idx)
79457  , p_source_58 => l_array_source_58(Idx)
79458  , p_source_60 => l_array_source_60(Idx)
79459  , p_source_61 => l_array_source_61(Idx)
79460  , p_source_62 => l_array_source_62(Idx)
79461  , p_source_63 => l_array_source_63(Idx)
79465  );
79462  , p_source_64 => l_array_source_64(Idx)
79463  , p_source_65 => l_array_source_65(Idx)
79464  , p_source_66 => l_array_source_66(Idx)
79466 If(l_balance_type_code = 'A') THEN
79467   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79468 END IF;
79469 
79470 --
79471 
79472 
79473 --
79474 AcctLineType_56 (
79475  p_application_id  => p_application_id
79476  ,p_event_id     => l_event_id
79477  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79478  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79479  ,p_actual_flag => l_actual_flag
79480  ,p_balance_type_code => l_balance_type_code
79481  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79482  
79483  , p_source_1 => l_array_source_1(Idx)
79484  , p_source_11 => l_array_source_11(Idx)
79485  , p_source_15 => l_array_source_15(Idx)
79486  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79487  , p_source_16 => l_array_source_16(Idx)
79488  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79489  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79490  , p_source_18 => l_array_source_18(Idx)
79491  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79492  , p_source_19 => l_array_source_19(Idx)
79493  , p_source_21 => l_array_source_21(Idx)
79494  , p_source_23 => l_array_source_23(Idx)
79495  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79496  , p_source_25 => l_array_source_25(Idx)
79497  , p_source_26 => l_array_source_26(Idx)
79498  , p_source_27 => l_array_source_27(Idx)
79499  , p_source_28 => l_array_source_28(Idx)
79500  , p_source_29 => l_array_source_29(Idx)
79501  , p_source_30 => l_array_source_30(Idx)
79502  , p_source_31 => l_array_source_31(Idx)
79503  , p_source_32 => l_array_source_32(Idx)
79504  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79505  , p_source_34 => l_array_source_34(Idx)
79506  , p_source_35 => l_array_source_35(Idx)
79507  , p_source_36 => l_array_source_36(Idx)
79508  , p_source_37 => l_array_source_37(Idx)
79509  , p_source_38 => l_array_source_38(Idx)
79510  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79511  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79512  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79513  , p_source_43 => l_array_source_43(Idx)
79514  , p_source_44 => l_array_source_44(Idx)
79515  , p_source_45 => l_array_source_45(Idx)
79516  , p_source_46 => l_array_source_46(Idx)
79517  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79518  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79519  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79520  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79521  , p_source_50 => l_array_source_50(Idx)
79522  , p_source_51 => l_array_source_51(Idx)
79523  , p_source_52 => l_array_source_52(Idx)
79524  , p_source_53 => l_array_source_53(Idx)
79525  , p_source_54 => l_array_source_54(Idx)
79526  , p_source_55 => l_array_source_55(Idx)
79527  , p_source_56 => l_array_source_56(Idx)
79528  , p_source_81 => l_array_source_81(Idx)
79529  , p_source_82 => l_array_source_82(Idx)
79530  );
79531 If(l_balance_type_code = 'A') THEN
79532   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79533 END IF;
79534 
79535 --
79536 
79537 
79538 --
79539 AcctLineType_60 (
79540  p_application_id  => p_application_id
79541  ,p_event_id     => l_event_id
79542  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79543  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79544  ,p_actual_flag => l_actual_flag
79545  ,p_balance_type_code => l_balance_type_code
79546  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79547  
79548  , p_source_1 => l_array_source_1(Idx)
79549  , p_source_11 => l_array_source_11(Idx)
79550  , p_source_15 => l_array_source_15(Idx)
79551  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79552  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79553  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79554  , p_source_19 => l_array_source_19(Idx)
79555  , p_source_21 => l_array_source_21(Idx)
79556  , p_source_23 => l_array_source_23(Idx)
79557  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79558  , p_source_25 => l_array_source_25(Idx)
79559  , p_source_26 => l_array_source_26(Idx)
79560  , p_source_27 => l_array_source_27(Idx)
79561  , p_source_28 => l_array_source_28(Idx)
79562  , p_source_29 => l_array_source_29(Idx)
79563  , p_source_30 => l_array_source_30(Idx)
79564  , p_source_31 => l_array_source_31(Idx)
79565  , p_source_32 => l_array_source_32(Idx)
79566  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79567  , p_source_34 => l_array_source_34(Idx)
79568  , p_source_35 => l_array_source_35(Idx)
79569  , p_source_36 => l_array_source_36(Idx)
79570  , p_source_37 => l_array_source_37(Idx)
79571  , p_source_38 => l_array_source_38(Idx)
79572  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79573  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79574  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79575  , p_source_43 => l_array_source_43(Idx)
79576  , p_source_44 => l_array_source_44(Idx)
79577  , p_source_45 => l_array_source_45(Idx)
79578  , p_source_46 => l_array_source_46(Idx)
79579  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79580  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79581  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79582  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79583  , p_source_50 => l_array_source_50(Idx)
79584  , p_source_51 => l_array_source_51(Idx)
79585  , p_source_52 => l_array_source_52(Idx)
79586  , p_source_53 => l_array_source_53(Idx)
79587  , p_source_54 => l_array_source_54(Idx)
79591  , p_source_59_meaning => l_array_source_59_meaning(Idx)
79588  , p_source_55 => l_array_source_55(Idx)
79589  , p_source_56 => l_array_source_56(Idx)
79590  , p_source_59 => l_array_source_59(Idx)
79592  , p_source_65 => l_array_source_65(Idx)
79593  , p_source_66 => l_array_source_66(Idx)
79594  );
79595 If(l_balance_type_code = 'A') THEN
79596   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79597 END IF;
79598 
79599 --
79600 
79601 
79602 --
79603 AcctLineType_64 (
79604  p_application_id  => p_application_id
79605  ,p_event_id     => l_event_id
79606  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79607  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79608  ,p_actual_flag => l_actual_flag
79609  ,p_balance_type_code => l_balance_type_code
79610  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79611  
79612  , p_source_1 => l_array_source_1(Idx)
79613  , p_source_13 => l_array_source_13(Idx)
79614  , p_source_15 => l_array_source_15(Idx)
79615  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79616  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79617  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79618  , p_source_19 => l_array_source_19(Idx)
79619  , p_source_21 => l_array_source_21(Idx)
79620  , p_source_23 => l_array_source_23(Idx)
79621  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79622  , p_source_25 => l_array_source_25(Idx)
79623  , p_source_26 => l_array_source_26(Idx)
79624  , p_source_27 => l_array_source_27(Idx)
79625  , p_source_28 => l_array_source_28(Idx)
79626  , p_source_29 => l_array_source_29(Idx)
79627  , p_source_30 => l_array_source_30(Idx)
79628  , p_source_31 => l_array_source_31(Idx)
79629  , p_source_32 => l_array_source_32(Idx)
79630  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79631  , p_source_34 => l_array_source_34(Idx)
79632  , p_source_35 => l_array_source_35(Idx)
79633  , p_source_36 => l_array_source_36(Idx)
79634  , p_source_37 => l_array_source_37(Idx)
79635  , p_source_38 => l_array_source_38(Idx)
79636  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79637  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79638  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79639  , p_source_43 => l_array_source_43(Idx)
79640  , p_source_44 => l_array_source_44(Idx)
79641  , p_source_45 => l_array_source_45(Idx)
79642  , p_source_46 => l_array_source_46(Idx)
79643  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79644  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79645  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79646  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79647  , p_source_50 => l_array_source_50(Idx)
79648  , p_source_51 => l_array_source_51(Idx)
79649  , p_source_52 => l_array_source_52(Idx)
79650  , p_source_53 => l_array_source_53(Idx)
79651  , p_source_54 => l_array_source_54(Idx)
79652  , p_source_55 => l_array_source_55(Idx)
79653  , p_source_56 => l_array_source_56(Idx)
79654  , p_source_59 => l_array_source_59(Idx)
79655  , p_source_59_meaning => l_array_source_59_meaning(Idx)
79656  , p_source_65 => l_array_source_65(Idx)
79657  , p_source_66 => l_array_source_66(Idx)
79658  );
79659 If(l_balance_type_code = 'A') THEN
79660   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79661 END IF;
79662 
79663 --
79664 
79665 
79666 --
79667 AcctLineType_69 (
79668  p_application_id  => p_application_id
79669  ,p_event_id     => l_event_id
79670  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79671  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79672  ,p_actual_flag => l_actual_flag
79673  ,p_balance_type_code => l_balance_type_code
79674  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79675  
79676  , p_source_1 => l_array_source_1(Idx)
79677  , p_source_11 => l_array_source_11(Idx)
79678  , p_source_15 => l_array_source_15(Idx)
79679  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79680  , p_source_16 => l_array_source_16(Idx)
79681  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79682  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79683  , p_source_18 => l_array_source_18(Idx)
79684  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79685  , p_source_19 => l_array_source_19(Idx)
79686  , p_source_21 => l_array_source_21(Idx)
79687  , p_source_23 => l_array_source_23(Idx)
79688  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79689  , p_source_25 => l_array_source_25(Idx)
79690  , p_source_26 => l_array_source_26(Idx)
79691  , p_source_27 => l_array_source_27(Idx)
79692  , p_source_28 => l_array_source_28(Idx)
79693  , p_source_29 => l_array_source_29(Idx)
79694  , p_source_30 => l_array_source_30(Idx)
79695  , p_source_31 => l_array_source_31(Idx)
79696  , p_source_32 => l_array_source_32(Idx)
79697  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79698  , p_source_34 => l_array_source_34(Idx)
79699  , p_source_35 => l_array_source_35(Idx)
79700  , p_source_36 => l_array_source_36(Idx)
79701  , p_source_37 => l_array_source_37(Idx)
79702  , p_source_38 => l_array_source_38(Idx)
79703  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79704  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79705  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79706  , p_source_42 => l_array_source_42(Idx)
79707  , p_source_43 => l_array_source_43(Idx)
79708  , p_source_44 => l_array_source_44(Idx)
79709  , p_source_45 => l_array_source_45(Idx)
79710  , p_source_46 => l_array_source_46(Idx)
79711  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79712  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79713  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79717  , p_source_52 => l_array_source_52(Idx)
79714  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79715  , p_source_50 => l_array_source_50(Idx)
79716  , p_source_51 => l_array_source_51(Idx)
79718  , p_source_53 => l_array_source_53(Idx)
79719  , p_source_54 => l_array_source_54(Idx)
79720  , p_source_55 => l_array_source_55(Idx)
79721  , p_source_56 => l_array_source_56(Idx)
79722  );
79723 If(l_balance_type_code = 'A') THEN
79724   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79725 END IF;
79726 
79727 --
79728 
79729 
79730 --
79731 AcctLineType_72 (
79732  p_application_id  => p_application_id
79733  ,p_event_id     => l_event_id
79734  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79735  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79736  ,p_actual_flag => l_actual_flag
79737  ,p_balance_type_code => l_balance_type_code
79738  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79739  
79740  , p_source_1 => l_array_source_1(Idx)
79741  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
79742  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
79743  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
79744  , p_source_8 => l_array_source_8(Idx)
79745  , p_source_9 => l_array_source_9(Idx)
79746  , p_source_9_meaning => l_array_source_9_meaning(Idx)
79747  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
79748  , p_source_11 => l_array_source_11(Idx)
79749  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
79750  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
79751  , p_source_15 => l_array_source_15(Idx)
79752  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79753  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79754  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79755  , p_source_19 => l_array_source_19(Idx)
79756  , p_source_21 => l_array_source_21(Idx)
79757  , p_source_23 => l_array_source_23(Idx)
79758  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79759  , p_source_25 => l_array_source_25(Idx)
79760  , p_source_26 => l_array_source_26(Idx)
79761  , p_source_27 => l_array_source_27(Idx)
79762  , p_source_28 => l_array_source_28(Idx)
79763  , p_source_29 => l_array_source_29(Idx)
79764  , p_source_30 => l_array_source_30(Idx)
79765  , p_source_31 => l_array_source_31(Idx)
79766  , p_source_32 => l_array_source_32(Idx)
79767  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79768  , p_source_34 => l_array_source_34(Idx)
79769  , p_source_35 => l_array_source_35(Idx)
79770  , p_source_36 => l_array_source_36(Idx)
79771  , p_source_37 => l_array_source_37(Idx)
79772  , p_source_38 => l_array_source_38(Idx)
79773  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79774  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79775  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79776  , p_source_43 => l_array_source_43(Idx)
79777  , p_source_44 => l_array_source_44(Idx)
79778  , p_source_45 => l_array_source_45(Idx)
79779  , p_source_46 => l_array_source_46(Idx)
79780  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79781  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79782  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79783  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79784  , p_source_50 => l_array_source_50(Idx)
79785  , p_source_51 => l_array_source_51(Idx)
79786  , p_source_52 => l_array_source_52(Idx)
79787  , p_source_53 => l_array_source_53(Idx)
79788  , p_source_54 => l_array_source_54(Idx)
79789  , p_source_55 => l_array_source_55(Idx)
79790  , p_source_56 => l_array_source_56(Idx)
79791  , p_source_65 => l_array_source_65(Idx)
79792  , p_source_66 => l_array_source_66(Idx)
79793  );
79794 If(l_balance_type_code = 'A') THEN
79795   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79796 END IF;
79797 
79798 --
79799 
79800 
79801 --
79802 AcctLineType_75 (
79803  p_application_id  => p_application_id
79804  ,p_event_id     => l_event_id
79805  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79806  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79807  ,p_actual_flag => l_actual_flag
79808  ,p_balance_type_code => l_balance_type_code
79809  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79810  
79811  , p_source_1 => l_array_source_1(Idx)
79812  , p_source_11 => l_array_source_11(Idx)
79813  , p_source_15 => l_array_source_15(Idx)
79814  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79815  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79816  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79817  , p_source_19 => l_array_source_19(Idx)
79818  , p_source_21 => l_array_source_21(Idx)
79819  , p_source_23 => l_array_source_23(Idx)
79820  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79821  , p_source_25 => l_array_source_25(Idx)
79822  , p_source_26 => l_array_source_26(Idx)
79823  , p_source_27 => l_array_source_27(Idx)
79824  , p_source_28 => l_array_source_28(Idx)
79825  , p_source_29 => l_array_source_29(Idx)
79826  , p_source_30 => l_array_source_30(Idx)
79827  , p_source_31 => l_array_source_31(Idx)
79828  , p_source_32 => l_array_source_32(Idx)
79829  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79830  , p_source_34 => l_array_source_34(Idx)
79831  , p_source_35 => l_array_source_35(Idx)
79832  , p_source_36 => l_array_source_36(Idx)
79833  , p_source_37 => l_array_source_37(Idx)
79834  , p_source_38 => l_array_source_38(Idx)
79835  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79836  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79840  , p_source_45 => l_array_source_45(Idx)
79837  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79838  , p_source_43 => l_array_source_43(Idx)
79839  , p_source_44 => l_array_source_44(Idx)
79841  , p_source_46 => l_array_source_46(Idx)
79842  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79843  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79844  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79845  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79846  , p_source_50 => l_array_source_50(Idx)
79847  , p_source_51 => l_array_source_51(Idx)
79848  , p_source_52 => l_array_source_52(Idx)
79849  , p_source_53 => l_array_source_53(Idx)
79850  , p_source_54 => l_array_source_54(Idx)
79851  , p_source_55 => l_array_source_55(Idx)
79852  , p_source_56 => l_array_source_56(Idx)
79853  , p_source_65 => l_array_source_65(Idx)
79854  , p_source_66 => l_array_source_66(Idx)
79855  );
79856 If(l_balance_type_code = 'A') THEN
79857   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79858 END IF;
79859 
79860 --
79861 
79862 
79863 --
79864 AcctLineType_80 (
79865  p_application_id  => p_application_id
79866  ,p_event_id     => l_event_id
79867  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79868  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79869  ,p_actual_flag => l_actual_flag
79870  ,p_balance_type_code => l_balance_type_code
79871  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79872  
79873  , p_source_1 => l_array_source_1(Idx)
79874  , p_source_11 => l_array_source_11(Idx)
79875  , p_source_15 => l_array_source_15(Idx)
79876  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79877  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79878  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79879  , p_source_18 => l_array_source_18(Idx)
79880  , p_source_18_meaning => l_array_source_18_meaning(Idx)
79881  , p_source_19 => l_array_source_19(Idx)
79882  , p_source_21 => l_array_source_21(Idx)
79883  , p_source_23 => l_array_source_23(Idx)
79884  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79885  , p_source_25 => l_array_source_25(Idx)
79886  , p_source_26 => l_array_source_26(Idx)
79887  , p_source_27 => l_array_source_27(Idx)
79888  , p_source_28 => l_array_source_28(Idx)
79889  , p_source_29 => l_array_source_29(Idx)
79890  , p_source_30 => l_array_source_30(Idx)
79891  , p_source_31 => l_array_source_31(Idx)
79892  , p_source_32 => l_array_source_32(Idx)
79893  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79894  , p_source_34 => l_array_source_34(Idx)
79895  , p_source_35 => l_array_source_35(Idx)
79896  , p_source_36 => l_array_source_36(Idx)
79897  , p_source_37 => l_array_source_37(Idx)
79898  , p_source_38 => l_array_source_38(Idx)
79899  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79900  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79901  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79902  , p_source_43 => l_array_source_43(Idx)
79903  , p_source_44 => l_array_source_44(Idx)
79904  , p_source_45 => l_array_source_45(Idx)
79905  , p_source_46 => l_array_source_46(Idx)
79906  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79907  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79908  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79909  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79910  , p_source_50 => l_array_source_50(Idx)
79911  , p_source_51 => l_array_source_51(Idx)
79912  , p_source_52 => l_array_source_52(Idx)
79913  , p_source_53 => l_array_source_53(Idx)
79914  , p_source_54 => l_array_source_54(Idx)
79915  , p_source_55 => l_array_source_55(Idx)
79916  , p_source_56 => l_array_source_56(Idx)
79917  , p_source_81 => l_array_source_81(Idx)
79918  , p_source_82 => l_array_source_82(Idx)
79919  );
79920 If(l_balance_type_code = 'A') THEN
79921   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79922 END IF;
79923 
79924 --
79925 
79926 
79927 --
79928 AcctLineType_84 (
79929  p_application_id  => p_application_id
79930  ,p_event_id     => l_event_id
79931  ,p_calculate_acctd_flag => l_calculate_acctd_flag
79932  ,p_calculate_g_l_flag => l_calculate_g_l_flag
79933  ,p_actual_flag => l_actual_flag
79934  ,p_balance_type_code => l_balance_type_code
79935  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79936  
79937  , p_source_1 => l_array_source_1(Idx)
79938  , p_source_11 => l_array_source_11(Idx)
79939  , p_source_15 => l_array_source_15(Idx)
79940  , p_source_15_meaning => l_array_source_15_meaning(Idx)
79941  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
79942  , p_source_17_meaning => g_array_event(l_event_id).array_value_char('source_17_meaning')
79943  , p_source_19 => l_array_source_19(Idx)
79944  , p_source_21 => l_array_source_21(Idx)
79945  , p_source_23 => l_array_source_23(Idx)
79946  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
79947  , p_source_25 => l_array_source_25(Idx)
79948  , p_source_26 => l_array_source_26(Idx)
79949  , p_source_27 => l_array_source_27(Idx)
79950  , p_source_28 => l_array_source_28(Idx)
79951  , p_source_29 => l_array_source_29(Idx)
79952  , p_source_30 => l_array_source_30(Idx)
79953  , p_source_31 => l_array_source_31(Idx)
79954  , p_source_32 => l_array_source_32(Idx)
79955  , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
79956  , p_source_34 => l_array_source_34(Idx)
79957  , p_source_35 => l_array_source_35(Idx)
79958  , p_source_36 => l_array_source_36(Idx)
79959  , p_source_37 => l_array_source_37(Idx)
79960  , p_source_38 => l_array_source_38(Idx)
79961  , p_source_39 => g_array_event(l_event_id).array_value_date('source_39')
79962  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
79966  , p_source_45 => l_array_source_45(Idx)
79963  , p_source_41 => g_array_event(l_event_id).array_value_char('source_41')
79964  , p_source_43 => l_array_source_43(Idx)
79965  , p_source_44 => l_array_source_44(Idx)
79967  , p_source_46 => l_array_source_46(Idx)
79968  , p_source_46_meaning => l_array_source_46_meaning(Idx)
79969  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
79970  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
79971  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
79972  , p_source_50 => l_array_source_50(Idx)
79973  , p_source_51 => l_array_source_51(Idx)
79974  , p_source_52 => l_array_source_52(Idx)
79975  , p_source_53 => l_array_source_53(Idx)
79976  , p_source_54 => l_array_source_54(Idx)
79977  , p_source_55 => l_array_source_55(Idx)
79978  , p_source_56 => l_array_source_56(Idx)
79979  , p_source_65 => l_array_source_65(Idx)
79980  , p_source_66 => l_array_source_66(Idx)
79981  );
79982 If(l_balance_type_code = 'A') THEN
79983   l_actual_gain_loss_ref := l_gain_or_loss_ref;
79984 END IF;
79985 
79986 --
79987 
79988       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
79989       -- or secondary ledger that has different currency with primary
79990       -- or alc that is calculated by sla
79991       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
79992             (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'))
79993 
79994 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
79995 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
79996           AND (l_actual_flag = 'A')) THEN
79997         XLA_AE_LINES_PKG.CreateGainOrLossLines(
79998           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
79999          ,p_application_id   => p_application_id
80000          ,p_amb_context_code => 'DEFAULT'
80001          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
80002          ,p_event_class_code => C_EVENT_CLASS_CODE
80003          ,p_event_type_code  => C_EVENT_TYPE_CODE
80004          
80005          ,p_gain_ccid        => -1
80006          ,p_loss_ccid        => -1
80007 
80008          ,p_actual_flag      => l_actual_flag
80009          ,p_enc_flag         => null
80010          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
80011          ,p_enc_g_l_ref      => null
80012          );
80013       END IF;
80014    END IF;
80015 END IF;
80016 
80017    ELSE
80018       --
80019       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80020       --
80021       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80022          trace
80023             (p_msg      => 'Trancaction revesal option is Y'
80024             ,p_level    => C_LEVEL_STATEMENT
80025             ,p_module   => l_log_module);
80026       END IF;
80027    END IF;
80028 
80029 END LOOP;
80030 l_result := XLA_AE_LINES_PKG.InsertLines ;
80031 end loop;
80032 close line_cur;
80033 
80034 
80035 --
80036 -- insert headers into xla_ae_headers_gt table
80037 --
80038 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
80039 
80040 -- insert into errors table here.
80041 
80042 END LOOP;
80043 
80044 --
80045 -- 4865292
80046 --
80047 -- Compare g_hdr_extract_count with event count in
80048 -- CreateHeadersAndLines.
80049 --
80050 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
80051 
80052 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80053    trace (p_msg     => '# rows extracted from header extract objects '
80054                     || ' (running total): '
80055                     || g_hdr_extract_count
80056          ,p_level   => C_LEVEL_STATEMENT
80057          ,p_module  => l_log_module);
80058 END IF;
80059 
80060 CLOSE header_cur;
80061 --
80062 
80063 --
80064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80065    trace
80066       (p_msg      => 'END of EventClass_108'
80067       ,p_level    => C_LEVEL_PROCEDURE
80068       ,p_module   => l_log_module);
80069 END IF;
80070 --
80071 RETURN l_result;
80072 EXCEPTION
80073 WHEN xla_exceptions_pkg.application_exception THEN
80074    
80075 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
80076 
80077    
80078 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
80079 
80080    RAISE;
80081 
80082 WHEN NO_DATA_FOUND THEN
80083 
80084 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
80085 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
80086 
80087 FOR header_record IN header_cur
80088 LOOP
80089     l_array_header_events(header_record.event_id) := header_record.event_id;
80090 END LOOP;
80091 
80092 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
80093 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
80094 
80095 fnd_file.put_line(fnd_file.LOG, '                    ');
80096 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
80097 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
80098 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
80099 
80100 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
80101 LOOP
80102 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
80103 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
80104         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
80105 	END IF;
80106 END LOOP;
80110 
80107 
80108 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
80109 fnd_file.put_line(fnd_file.LOG, '                    ');
80111 
80112 xla_exceptions_pkg.raise_message
80113       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_108');
80114 
80115 
80116 WHEN OTHERS THEN
80117    xla_exceptions_pkg.raise_message
80118       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_108');
80119 END EventClass_108;
80120 --
80121 
80122 ---------------------------------------
80123 --
80124 -- PRIVATE PROCEDURE
80125 --         insert_sources_109
80126 --
80127 ----------------------------------------
80128 --
80129 PROCEDURE insert_sources_109(
80130                                 p_target_ledger_id       IN NUMBER
80131                               , p_language               IN VARCHAR2
80132                               , p_sla_ledger_id          IN NUMBER
80133                               , p_pad_start_date         IN DATE
80134                               , p_pad_end_date           IN DATE
80135                          )
80136 IS
80137 
80138 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
80139 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
80140 p_apps_owner                   VARCHAR2(30);
80141 l_log_module                   VARCHAR2(240);
80142 BEGIN
80143 IF g_log_enabled THEN
80144       l_log_module := C_DEFAULT_MODULE||'.insert_sources_109';
80145 END IF;
80146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80147 
80148       trace
80149          (p_msg      => 'BEGIN of insert_sources_109'
80150          ,p_level    => C_LEVEL_PROCEDURE
80151          ,p_module   => l_log_module);
80152 
80153 END IF;
80154 
80155 -- select APPS owner
80156 SELECT oracle_username
80157   INTO p_apps_owner
80158   FROM fnd_oracle_userid
80159  WHERE read_only_flag = 'U'
80160 ;
80161 
80162 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80163       trace
80164          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
80165                         ' - p_language = '||p_language||
80166                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
80167                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
80168                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
80169                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
80170          ,p_level    => C_LEVEL_STATEMENT
80171          ,p_module   => l_log_module);
80172 END IF;
80173 
80174  
80175 
80176 
80177 --
80178 INSERT INTO xla_diag_sources  --line2
80179 (
80180         event_id
80181       , ledger_id
80182       , sla_ledger_id
80183       , description_language
80184       , object_name
80185       , object_type_code
80186       , line_number
80187       , source_application_id
80188       , source_type_code
80189       , source_code
80190       , source_value
80191       , source_meaning
80192       , created_by
80193       , creation_date
80194       , last_update_date
80195       , last_updated_by
80196       , last_update_login
80197       , program_update_date
80198       , program_application_id
80199       , program_id
80200       , request_id
80201 )
80202 SELECT  event_id
80203       , p_target_ledger_id
80204       , p_sla_ledger_id
80205       , p_language
80206       , object_name
80207       , object_type_code
80208       , line_number
80209       , source_application_id
80210       , source_type_code
80211       , source_code
80212       , SUBSTR(source_value,1,1996)
80213       , SUBSTR(source_meaning ,1,200)
80214       , xla_environment_pkg.g_Usr_Id
80215       , TRUNC(SYSDATE)
80216       , TRUNC(SYSDATE)
80217       , xla_environment_pkg.g_Usr_Id
80218       , xla_environment_pkg.g_Login_Id
80219       , TRUNC(SYSDATE)
80220       , xla_environment_pkg.g_Prog_Appl_Id
80221       , xla_environment_pkg.g_Prog_Id
80222       , xla_environment_pkg.g_Req_Id
80223   FROM (
80224        SELECT xet.event_id                  event_id
80225             , l1.line_number                 line_number
80226             , CASE r
80227                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80228                 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V' 
80229                 WHEN 3 THEN 'PA_XLA_TASK_REF_V' 
80230                 WHEN 4 THEN 'PA_XLA_EXP_ORG_REF_V' 
80231                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80232                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80233                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80234                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80235                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80236                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80237                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80238                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80239                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80240                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80241                 WHEN 15 THEN 'PA_XLA_PROJECT_REF_V' 
80242                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80243                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80244                 WHEN 18 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80245                 WHEN 19 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80246                 WHEN 20 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80247                 WHEN 21 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80248                 WHEN 22 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80249                 WHEN 23 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80250                 WHEN 24 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80251                 WHEN 25 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80252                 WHEN 26 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80256                 WHEN 30 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80253                 WHEN 27 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80254                 WHEN 28 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80255                 WHEN 29 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80257                 WHEN 31 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80258                 WHEN 32 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80259                 WHEN 33 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80260                 WHEN 34 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80261                 WHEN 35 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80262                 WHEN 36 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80263                 WHEN 37 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80264                 WHEN 38 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80265                 WHEN 39 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80266                 WHEN 40 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80267                 WHEN 41 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80268                 WHEN 42 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80269                 WHEN 43 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80270                 WHEN 44 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80271                 WHEN 45 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
80272                 
80273                ELSE null
80274               END                           object_name
80275             , CASE r
80276                 WHEN 1 THEN 'LINE' 
80277                 WHEN 2 THEN 'LINE' 
80278                 WHEN 3 THEN 'LINE' 
80279                 WHEN 4 THEN 'LINE' 
80280                 WHEN 5 THEN 'LINE' 
80281                 WHEN 6 THEN 'LINE' 
80282                 WHEN 7 THEN 'LINE' 
80283                 WHEN 8 THEN 'LINE' 
80284                 WHEN 9 THEN 'LINE' 
80285                 WHEN 10 THEN 'LINE' 
80286                 WHEN 11 THEN 'LINE' 
80287                 WHEN 12 THEN 'LINE' 
80288                 WHEN 13 THEN 'LINE' 
80289                 WHEN 14 THEN 'LINE' 
80290                 WHEN 15 THEN 'LINE' 
80291                 WHEN 16 THEN 'LINE' 
80292                 WHEN 17 THEN 'LINE' 
80293                 WHEN 18 THEN 'LINE' 
80294                 WHEN 19 THEN 'LINE' 
80295                 WHEN 20 THEN 'LINE' 
80296                 WHEN 21 THEN 'LINE' 
80297                 WHEN 22 THEN 'LINE' 
80298                 WHEN 23 THEN 'LINE' 
80299                 WHEN 24 THEN 'LINE' 
80300                 WHEN 25 THEN 'LINE' 
80301                 WHEN 26 THEN 'LINE' 
80302                 WHEN 27 THEN 'LINE' 
80303                 WHEN 28 THEN 'LINE' 
80304                 WHEN 29 THEN 'LINE' 
80305                 WHEN 30 THEN 'LINE' 
80306                 WHEN 31 THEN 'LINE' 
80307                 WHEN 32 THEN 'LINE' 
80308                 WHEN 33 THEN 'LINE' 
80309                 WHEN 34 THEN 'LINE' 
80310                 WHEN 35 THEN 'LINE' 
80311                 WHEN 36 THEN 'LINE' 
80312                 WHEN 37 THEN 'LINE' 
80313                 WHEN 38 THEN 'LINE' 
80314                 WHEN 39 THEN 'LINE' 
80315                 WHEN 40 THEN 'LINE' 
80316                 WHEN 41 THEN 'LINE' 
80317                 WHEN 42 THEN 'LINE' 
80318                 WHEN 43 THEN 'LINE' 
80319                 WHEN 44 THEN 'LINE' 
80320                 WHEN 45 THEN 'LINE' 
80321                 
80322                 ELSE null
80323               END                           object_type_code
80324             , CASE r
80325                 WHEN 1 THEN '200' 
80326                 WHEN 2 THEN '275' 
80327                 WHEN 3 THEN '275' 
80328                 WHEN 4 THEN '275' 
80329                 WHEN 5 THEN '200' 
80330                 WHEN 6 THEN '200' 
80331                 WHEN 7 THEN '200' 
80332                 WHEN 8 THEN '200' 
80333                 WHEN 9 THEN '200' 
80334                 WHEN 10 THEN '200' 
80335                 WHEN 11 THEN '200' 
80336                 WHEN 12 THEN '200' 
80337                 WHEN 13 THEN '200' 
80338                 WHEN 14 THEN '200' 
80339                 WHEN 15 THEN '275' 
80340                 WHEN 16 THEN '200' 
80341                 WHEN 17 THEN '200' 
80342                 WHEN 18 THEN '200' 
80343                 WHEN 19 THEN '200' 
80344                 WHEN 20 THEN '200' 
80345                 WHEN 21 THEN '200' 
80346                 WHEN 22 THEN '200' 
80347                 WHEN 23 THEN '200' 
80348                 WHEN 24 THEN '200' 
80349                 WHEN 25 THEN '200' 
80350                 WHEN 26 THEN '200' 
80351                 WHEN 27 THEN '200' 
80352                 WHEN 28 THEN '200' 
80353                 WHEN 29 THEN '200' 
80354                 WHEN 30 THEN '200' 
80355                 WHEN 31 THEN '200' 
80356                 WHEN 32 THEN '200' 
80357                 WHEN 33 THEN '200' 
80358                 WHEN 34 THEN '200' 
80359                 WHEN 35 THEN '200' 
80360                 WHEN 36 THEN '200' 
80361                 WHEN 37 THEN '200' 
80362                 WHEN 38 THEN '200' 
80363                 WHEN 39 THEN '200' 
80364                 WHEN 40 THEN '200' 
80365                 WHEN 41 THEN '200' 
80366                 WHEN 42 THEN '200' 
80367                 WHEN 43 THEN '200' 
80368                 WHEN 44 THEN '200' 
80369                 WHEN 45 THEN '200' 
80370                 
80371                 ELSE null
80372               END                           source_application_id
80373             , 'S'             source_type_code
80374             , CASE r
80375                 WHEN 1 THEN 'DOCUMENT_DISTRIBUTION_TYPE' 
80376                 WHEN 2 THEN 'PROJECT_NAME' 
80377                 WHEN 3 THEN 'TASK_NUMBER' 
80378                 WHEN 4 THEN 'EXPENDITURE_ORGANIZATION_ID' 
80379                 WHEN 5 THEN 'AID_DIST_CCID' 
80380                 WHEN 6 THEN 'BUDGET_CCID' 
80381                 WHEN 7 THEN 'DISTRIBUTION_LINK_TYPE' 
80382                 WHEN 8 THEN 'AID_INVOICE_DIST_ID' 
80386                 WHEN 12 THEN 'INV_EXCHANGE_RATE_TYPE' 
80383                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
80384                 WHEN 10 THEN 'INV_EXCHANGE_DATE' 
80385                 WHEN 11 THEN 'INV_EXCHANGE_RATE' 
80387                 WHEN 13 THEN 'AID_AMOUNT' 
80388                 WHEN 14 THEN 'DOCUMENT_TYPE' 
80389                 WHEN 15 THEN 'PROJ_BURDEN_DISPLAY_METHOD' 
80390                 WHEN 16 THEN 'ACCT_REVERSAL_INDICATOR' 
80391                 WHEN 17 THEN 'ALLOC_TO_APPLN_ID' 
80392                 WHEN 18 THEN 'ALLOC_TO_DIST_TYPE' 
80393                 WHEN 19 THEN 'ALLOC_TO_ENTITY_CODE' 
80394                 WHEN 20 THEN 'ALLOC_TO_FIRST_DIST_ID' 
80395                 WHEN 21 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID' 
80396                 WHEN 22 THEN 'AP_APPLICATION_ID' 
80397                 WHEN 23 THEN 'AP_DISTRIBUTION_TYPE' 
80398                 WHEN 24 THEN 'AP_ENTITY_CODE' 
80399                 WHEN 25 THEN 'AP_FIRST_DIST_ID' 
80400                 WHEN 26 THEN 'AP_FIRST_SYS_TRANS_ID' 
80401                 WHEN 27 THEN 'AID_EXPENDITURE_TYPE' 
80402                 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS' 
80403                 WHEN 29 THEN 'ENC_UPG_CR_ACCOUNT' 
80404                 WHEN 30 THEN 'AID_BASE_AMT_NO_ROUND' 
80405                 WHEN 31 THEN 'ENC_UPG_DR_ACCT_CLASS' 
80406                 WHEN 32 THEN 'ENC_UPG_DR_ACCOUNT' 
80407                 WHEN 33 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
80408                 WHEN 34 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
80409                 WHEN 35 THEN 'AP_SECOND_DIST_ID' 
80410                 WHEN 36 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
80411                 WHEN 37 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
80412                 WHEN 38 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
80413                 WHEN 39 THEN 'BURDEN_COST_FLAG' 
80414                 WHEN 40 THEN 'PA_APPLICATION_ID' 
80415                 WHEN 41 THEN 'PA_DISTRIBUTION_TYPE' 
80416                 WHEN 42 THEN 'PA_ENTITY_CODE' 
80417                 WHEN 43 THEN 'PA_FIRST_DIST_ID' 
80418                 WHEN 44 THEN 'PA_FIRST_SYS_TRANS_ID' 
80419                 WHEN 45 THEN 'PA_SECOND_DIST_ID' 
80420                 
80421                 ELSE null
80422               END                           source_code
80423             , CASE r
80424                 WHEN 1 THEN TO_CHAR(l1.DOCUMENT_DISTRIBUTION_TYPE)
80425                 WHEN 2 THEN TO_CHAR(l3.PROJECT_NAME)
80426                 WHEN 3 THEN TO_CHAR(l4.TASK_NUMBER)
80427                 WHEN 4 THEN TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
80428                 WHEN 5 THEN TO_CHAR(l1.AID_DIST_CCID)
80429                 WHEN 6 THEN TO_CHAR(l1.BUDGET_CCID)
80430                 WHEN 7 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
80431                 WHEN 8 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
80432                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
80433                 WHEN 10 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
80434                 WHEN 11 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
80435                 WHEN 12 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
80436                 WHEN 13 THEN TO_CHAR(l1.AID_AMOUNT)
80437                 WHEN 14 THEN TO_CHAR(l1.DOCUMENT_TYPE)
80438                 WHEN 15 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
80439                 WHEN 16 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
80440                 WHEN 17 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
80441                 WHEN 18 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
80442                 WHEN 19 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
80443                 WHEN 20 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
80444                 WHEN 21 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
80445                 WHEN 22 THEN TO_CHAR(l1.AP_APPLICATION_ID)
80446                 WHEN 23 THEN TO_CHAR(l1.AP_DISTRIBUTION_TYPE)
80447                 WHEN 24 THEN TO_CHAR(l1.AP_ENTITY_CODE)
80448                 WHEN 25 THEN TO_CHAR(l1.AP_FIRST_DIST_ID)
80449                 WHEN 26 THEN TO_CHAR(l1.AP_FIRST_SYS_TRANS_ID)
80450                 WHEN 27 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
80451                 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
80452                 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
80453                 WHEN 30 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
80454                 WHEN 31 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
80455                 WHEN 32 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
80456                 WHEN 33 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
80457                 WHEN 34 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
80458                 WHEN 35 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
80459                 WHEN 36 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
80460                 WHEN 37 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
80461                 WHEN 38 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
80462                 WHEN 39 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
80463                 WHEN 40 THEN TO_CHAR(l1.PA_APPLICATION_ID)
80464                 WHEN 41 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
80465                 WHEN 42 THEN TO_CHAR(l1.PA_ENTITY_CODE)
80466                 WHEN 43 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
80467                 WHEN 44 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
80468                 WHEN 45 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
80469                 
80470                 ELSE null
80471               END                           source_value
80472             , CASE r
80473                 WHEN 4 THEN XLA_00200_AAD_S_000006_BC_PKG.GetMeaning(
80474                           1011404
80475                          ,TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
80476                          ,'EXPENDITURE_ORGANIZATION_ID'
80477                          ,'S'
80478                          ,275)
80479                 WHEN 39 THEN fvl108.meaning
80480                 
80481                 ELSE null
80482               END               source_meaning
80483          FROM  xla_events_gt     xet  
80484         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
80485         , PA_XLA_EXP_ORG_REF_V  l2
80486         , PA_XLA_PROJECT_REF_V  l3
80487         , PA_XLA_TASK_REF_V  l4
80488   , fnd_lookup_values    fvl108
80492             AND l1.event_id          = xet.event_id
80489             , (select rownum r from all_objects where rownum <= 45 and owner = p_apps_owner)
80490         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
80491           AND xet.event_class_code = C_EVENT_CLASS_CODE
80493  AND l2.expenditure_organization_id=l1.aid_expenditure_org_id AND l3.project_id=l1.aid_project_id AND l4.task_id=l1.aid_task_id   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
80494   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
80495   AND fvl108.view_application_id(+) = 275
80496   AND fvl108.language(+)            = USERENV('LANG')
80497   
80498 )
80499 ;
80500 --
80501 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80502 
80503       trace
80504          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
80505          ,p_level    => C_LEVEL_STATEMENT
80506          ,p_module   => l_log_module);
80507 
80508 END IF;
80509 
80510 
80511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80512       trace
80513          (p_msg      => 'END of insert_sources_109'
80514          ,p_level    => C_LEVEL_PROCEDURE
80515          ,p_module   => l_log_module);
80516 END IF;
80517 EXCEPTION
80518   WHEN xla_exceptions_pkg.application_exception THEN
80519       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80520             trace
80521                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80522                ,p_level    => C_LEVEL_EXCEPTION
80523                ,p_module   => l_log_module);
80524       END IF;
80525       RAISE;
80526   WHEN OTHERS THEN
80527       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80528             trace
80529                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80530                ,p_level    => C_LEVEL_EXCEPTION
80531                ,p_module   => l_log_module);
80532        END IF;
80533        xla_exceptions_pkg.raise_message
80534            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_109');
80535 END insert_sources_109;
80536 --
80537 
80538 ---------------------------------------
80539 --
80540 -- PRIVATE FUNCTION
80541 --         EventClass_109
80542 --
80543 ----------------------------------------
80544 --
80545 FUNCTION EventClass_109
80546        (p_application_id         IN NUMBER
80547        ,p_base_ledger_id         IN NUMBER
80548        ,p_target_ledger_id       IN NUMBER
80549        ,p_language               IN VARCHAR2
80550        ,p_currency_code          IN VARCHAR2
80551        ,p_sla_ledger_id          IN NUMBER
80552        ,p_pad_start_date         IN DATE
80553        ,p_pad_end_date           IN DATE
80554        ,p_primary_ledger_id      IN NUMBER)
80555 RETURN BOOLEAN IS
80556 --
80557 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
80558 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
80559 
80560 l_calculate_acctd_flag   VARCHAR2(1) :='N';
80561 l_calculate_g_l_flag     VARCHAR2(1) :='N';
80562 --
80563 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80564 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80565 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80566 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80567 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80568 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80569 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80570 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80571 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80572 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80573 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80574 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80575 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80576 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80577 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80578 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80579 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80580 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80581 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80582 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80583 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80584 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80585 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
80586 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80587 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
80588 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
80589 
80590 l_event_id                             NUMBER;
80591 l_previous_event_id                    NUMBER;
80592 l_first_event_id                       NUMBER;
80593 l_last_event_id                        NUMBER;
80594 
80595 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
80596 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
80597 --
80598 --
80599 l_result                    BOOLEAN := TRUE;
80600 l_rows                      NUMBER  := 1000;
80601 l_event_type_name           VARCHAR2(80) := 'All';
80602 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayments';
80603 l_description               VARCHAR2(4000);
80604 l_transaction_reversal      NUMBER;
80605 l_ae_header_id              NUMBER;
80606 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
80610 l_trx_reversal_source       VARCHAR2(30);
80607 l_log_module                VARCHAR2(240);
80608 --
80609 l_acct_reversal_source      VARCHAR2(30);
80611 
80612 l_continue_with_lines       BOOLEAN := TRUE;
80613 --
80614 l_acc_rev_gl_date_source    DATE;                      -- 4262811
80615 --
80616 type t_array_event_id is table of number index by binary_integer;
80617 
80618 l_rec_array_event                    t_rec_array_event;
80619 l_null_rec_array_event               t_rec_array_event;
80620 l_array_ae_header_id                 xla_number_array_type;
80621 l_actual_flag                        VARCHAR2(1) := NULL;
80622 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
80623 l_balance_type_code                  VARCHAR2(1) :=NULL;
80624 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
80625 
80626 --
80627 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
80628 --
80629 
80630 
80631 TYPE t_array_source_2 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80632 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
80633 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NUMBER%TYPE INDEX BY BINARY_INTEGER;
80634 TYPE t_array_source_5 IS TABLE OF PA_XLA_EXP_ORG_REF_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
80635 TYPE t_array_source_11 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
80636 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
80637 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
80638 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80639 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
80640 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
80641 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
80642 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
80643 TYPE t_array_source_57 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
80644 TYPE t_array_source_83 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
80645 TYPE t_array_source_84 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
80646 TYPE t_array_source_85 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
80647 TYPE t_array_source_86 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
80648 TYPE t_array_source_87 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
80649 TYPE t_array_source_88 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
80650 TYPE t_array_source_89 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80651 TYPE t_array_source_90 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
80652 TYPE t_array_source_91 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
80653 TYPE t_array_source_92 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80654 TYPE t_array_source_93 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
80655 TYPE t_array_source_94 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80656 TYPE t_array_source_95 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
80657 TYPE t_array_source_96 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
80658 TYPE t_array_source_97 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80659 TYPE t_array_source_98 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
80660 TYPE t_array_source_99 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
80661 TYPE t_array_source_100 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80662 TYPE t_array_source_101 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
80663 TYPE t_array_source_102 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
80664 TYPE t_array_source_103 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80665 TYPE t_array_source_104 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80666 TYPE t_array_source_105 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80667 TYPE t_array_source_106 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
80668 TYPE t_array_source_107 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
80669 TYPE t_array_source_108 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
80670 TYPE t_array_source_109 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
80671 TYPE t_array_source_110 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80672 TYPE t_array_source_111 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
80673 TYPE t_array_source_112 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80674 TYPE t_array_source_113 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
80675 TYPE t_array_source_114 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80676 
80677 
80678 l_array_source_2      t_array_source_2;
80679 l_array_source_3      t_array_source_3;
80680 l_array_source_4      t_array_source_4;
80681 l_array_source_5      t_array_source_5;
80682 l_array_source_11      t_array_source_11;
80686 l_array_source_33      t_array_source_33;
80683 l_array_source_14      t_array_source_14;
80684 l_array_source_21      t_array_source_21;
80685 l_array_source_30      t_array_source_30;
80687 l_array_source_39      t_array_source_39;
80688 l_array_source_40      t_array_source_40;
80689 l_array_source_41      t_array_source_41;
80690 l_array_source_57      t_array_source_57;
80691 l_array_source_83      t_array_source_83;
80692 l_array_source_84      t_array_source_84;
80693 l_array_source_85      t_array_source_85;
80694 l_array_source_86      t_array_source_86;
80695 l_array_source_87      t_array_source_87;
80696 l_array_source_88      t_array_source_88;
80697 l_array_source_89      t_array_source_89;
80698 l_array_source_90      t_array_source_90;
80699 l_array_source_91      t_array_source_91;
80700 l_array_source_92      t_array_source_92;
80701 l_array_source_93      t_array_source_93;
80702 l_array_source_94      t_array_source_94;
80703 l_array_source_95      t_array_source_95;
80704 l_array_source_96      t_array_source_96;
80705 l_array_source_97      t_array_source_97;
80706 l_array_source_98      t_array_source_98;
80707 l_array_source_99      t_array_source_99;
80708 l_array_source_100      t_array_source_100;
80709 l_array_source_101      t_array_source_101;
80710 l_array_source_102      t_array_source_102;
80711 l_array_source_103      t_array_source_103;
80712 l_array_source_104      t_array_source_104;
80713 l_array_source_105      t_array_source_105;
80714 l_array_source_106      t_array_source_106;
80715 l_array_source_107      t_array_source_107;
80716 l_array_source_108      t_array_source_108;
80717 l_array_source_108_meaning      t_array_lookup_meaning;
80718 l_array_source_109      t_array_source_109;
80719 l_array_source_110      t_array_source_110;
80720 l_array_source_111      t_array_source_111;
80721 l_array_source_112      t_array_source_112;
80722 l_array_source_113      t_array_source_113;
80723 l_array_source_114      t_array_source_114;
80724 
80725 --
80726 CURSOR header_cur
80727 IS
80728 SELECT /*+ leading(xet) cardinality(xet,1) */
80729 -- Event Class Code: PREPAYMENT_BURDEN
80730     xet.entity_id
80731    ,xet.legal_entity_id
80732    ,xet.entity_code
80733    ,xet.transaction_number
80734    ,xet.event_id
80735    ,xet.event_class_code
80736    ,xet.event_type_code
80737    ,xet.event_number
80738    ,xet.event_date
80739    ,xet.transaction_date
80740    ,xet.reference_num_1
80741    ,xet.reference_num_2
80742    ,xet.reference_num_3
80743    ,xet.reference_num_4
80744    ,xet.reference_char_1
80745    ,xet.reference_char_2
80746    ,xet.reference_char_3
80747    ,xet.reference_char_4
80748    ,xet.reference_date_1
80749    ,xet.reference_date_2
80750    ,xet.reference_date_3
80751    ,xet.reference_date_4
80752    ,xet.event_created_by
80753    ,xet.budgetary_control_flag  
80754   FROM xla_events_gt     xet  
80755  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
80756    and xet.event_class_code = C_EVENT_CLASS_CODE
80757    and xet.event_status_code <> 'N'  
80758  ORDER BY event_id
80759 ;
80760 
80761 
80762 --
80763 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
80764 IS
80765 SELECT  /*+ leading(xet) cardinality(xet,1) */
80766 -- Event Class Code: PREPAYMENT_BURDEN
80767     xet.entity_id
80768    ,xet.legal_entity_id
80769    ,xet.entity_code
80770    ,xet.transaction_number
80771    ,xet.event_id
80772    ,xet.event_class_code
80773    ,xet.event_type_code
80774    ,xet.event_number
80775    ,xet.event_date
80776    ,xet.transaction_date
80777    ,xet.reference_num_1
80778    ,xet.reference_num_2
80779    ,xet.reference_num_3
80780    ,xet.reference_num_4
80781    ,xet.reference_char_1
80782    ,xet.reference_char_2
80783    ,xet.reference_char_3
80784    ,xet.reference_char_4
80785    ,xet.reference_date_1
80786    ,xet.reference_date_2
80787    ,xet.reference_date_3
80788    ,xet.reference_date_4
80789    ,xet.event_created_by
80790    ,xet.budgetary_control_flag
80791  , l1.LINE_NUMBER  
80792   , l1.DOCUMENT_DISTRIBUTION_TYPE    source_2
80793   , l3.PROJECT_NAME    source_3
80794   , l4.TASK_NUMBER    source_4
80795   , l2.EXPENDITURE_ORGANIZATION_ID    source_5
80796   , l1.AID_DIST_CCID    source_11
80797   , l1.BUDGET_CCID    source_14
80798   , l1.DISTRIBUTION_LINK_TYPE    source_21
80799   , l1.AID_INVOICE_DIST_ID    source_30
80800   , l1.AI_INVOICE_CURRENCY_CODE    source_33
80801   , l1.INV_EXCHANGE_DATE    source_39
80802   , l1.INV_EXCHANGE_RATE    source_40
80803   , l1.INV_EXCHANGE_RATE_TYPE    source_41
80804   , l1.AID_AMOUNT    source_57
80805   , l1.DOCUMENT_TYPE    source_83
80806   , l3.PROJ_BURDEN_DISPLAY_METHOD    source_84
80807   , l1.ACCT_REVERSAL_INDICATOR    source_85
80808   , l1.ALLOC_TO_APPLN_ID    source_86
80809   , l1.ALLOC_TO_DIST_TYPE    source_87
80810   , l1.ALLOC_TO_ENTITY_CODE    source_88
80811   , l1.ALLOC_TO_FIRST_DIST_ID    source_89
80812   , l1.ALLOC_TO_FIRST_SYS_TRANS_ID    source_90
80813   , l1.AP_APPLICATION_ID    source_91
80814   , l1.AP_DISTRIBUTION_TYPE    source_92
80815   , l1.AP_ENTITY_CODE    source_93
80816   , l1.AP_FIRST_DIST_ID    source_94
80817   , l1.AP_FIRST_SYS_TRANS_ID    source_95
80818   , l1.AID_EXPENDITURE_TYPE    source_96
80819   , l1.ENC_UPG_CR_ACCT_CLASS    source_97
80820   , l1.ENC_UPG_CR_ACCOUNT    source_98
80821   , l1.AID_BASE_AMT_NO_ROUND    source_99
80822   , l1.ENC_UPG_DR_ACCT_CLASS    source_100
80823   , l1.ENC_UPG_DR_ACCOUNT    source_101
80824   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_102
80825   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_103
80826   , l1.AP_SECOND_DIST_ID    source_104
80827   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_105
80828   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_106
80832   , l1.PA_APPLICATION_ID    source_109
80829   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_107
80830   , l1.BURDEN_COST_FLAG    source_108
80831   , fvl108.meaning   source_108_meaning
80833   , l1.PA_DISTRIBUTION_TYPE    source_110
80834   , l1.PA_ENTITY_CODE    source_111
80835   , l1.PA_FIRST_DIST_ID    source_112
80836   , l1.PA_FIRST_SYS_TRANS_ID    source_113
80837   , l1.PA_SECOND_DIST_ID    source_114
80838   FROM xla_events_gt     xet 
80839   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
80840   , PA_XLA_EXP_ORG_REF_V  l2
80841   , PA_XLA_PROJECT_REF_V  l3
80842   , PA_XLA_TASK_REF_V  l4
80843   , fnd_lookup_values    fvl108
80844  WHERE xet.event_id between x_first_event_id and x_last_event_id
80845    and xet.event_date between p_pad_start_date and p_pad_end_date
80846    and xet.event_class_code = C_EVENT_CLASS_CODE
80847    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
80848  AND l2.EXPENDITURE_ORGANIZATION_ID=l1.AID_EXPENDITURE_ORG_ID AND l3.PROJECT_ID=l1.AID_PROJECT_ID AND l4.TASK_ID=l1.AID_TASK_ID   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
80849   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
80850   AND fvl108.view_application_id(+) = 275
80851   AND fvl108.language(+)            = USERENV('LANG')
80852   ;
80853 
80854 --
80855 BEGIN
80856 IF g_log_enabled THEN
80857    l_log_module := C_DEFAULT_MODULE||'.EventClass_109';
80858 END IF;
80859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80860    trace
80861       (p_msg      => 'BEGIN of EventClass_109'
80862       ,p_level    => C_LEVEL_PROCEDURE
80863       ,p_module   => l_log_module);
80864 END IF;
80865 
80866 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80867    trace
80868       (p_msg      => 'p_application_id = '||p_application_id||
80869                      ' - p_base_ledger_id = '||p_base_ledger_id||
80870                      ' - p_target_ledger_id  = '||p_target_ledger_id||
80871                      ' - p_language = '||p_language||
80872                      ' - p_currency_code = '||p_currency_code||
80873                      ' - p_sla_ledger_id = '||p_sla_ledger_id
80874       ,p_level    => C_LEVEL_STATEMENT
80875       ,p_module   => l_log_module);
80876 END IF;
80877 --
80878 -- initialze arrays
80879 --
80880 g_array_event.DELETE;
80881 l_rec_array_event := l_null_rec_array_event;
80882 --
80883 --------------------------------------
80884 -- 4262811 Initialze MPA Line Number
80885 --------------------------------------
80886 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
80887 
80888 --
80889 
80890 --
80891 OPEN header_cur;
80892 --
80893 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80894    trace
80895    (p_msg      => 'SQL - FETCH header_cur'
80896    ,p_level    => C_LEVEL_STATEMENT
80897    ,p_module   => l_log_module);
80898 END IF;
80899 --
80900 LOOP
80901 FETCH header_cur BULK COLLECT INTO
80902         l_array_entity_id
80903       , l_array_legal_entity_id
80904       , l_array_entity_code
80905       , l_array_transaction_num
80906       , l_array_event_id
80907       , l_array_class_code
80908       , l_array_event_type
80909       , l_array_event_number
80910       , l_array_event_date
80911       , l_array_transaction_date
80912       , l_array_reference_num_1
80913       , l_array_reference_num_2
80914       , l_array_reference_num_3
80915       , l_array_reference_num_4
80916       , l_array_reference_char_1
80917       , l_array_reference_char_2
80918       , l_array_reference_char_3
80919       , l_array_reference_char_4
80920       , l_array_reference_date_1
80921       , l_array_reference_date_2
80922       , l_array_reference_date_3
80923       , l_array_reference_date_4
80924       , l_array_event_created_by
80925       , l_array_budgetary_control_flag 
80926       LIMIT l_rows;
80927 --
80928 IF (C_LEVEL_EVENT >= g_log_level) THEN
80929    trace
80930    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
80931    ,p_level    => C_LEVEL_EVENT
80932    ,p_module   => l_log_module);
80933 END IF;
80934 --
80935 EXIT WHEN l_array_entity_id.COUNT = 0;
80936 
80937 -- initialize arrays
80938 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
80939 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
80940 
80941 --
80942 -- Bug 4458708
80943 --
80944 XLA_AE_LINES_PKG.g_LineNumber := 0;
80945 
80946 
80947 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
80948 g_last_hdr_idx := l_array_event_id.LAST;
80949 --
80950 -- loop for the headers. Each iteration is for each header extract row
80951 -- fetched in header cursor
80952 --
80953 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
80954 
80955 --
80956 -- set event info as cache for other routines to refer event attributes
80957 --
80958 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80959    (p_application_id           => p_application_id
80960    ,p_primary_ledger_id        => p_primary_ledger_id
80961    ,p_base_ledger_id           => p_base_ledger_id
80962    ,p_target_ledger_id         => p_target_ledger_id
80963    ,p_entity_id                => l_array_entity_id(hdr_idx)
80964    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
80965    ,p_entity_code              => l_array_entity_code(hdr_idx)
80966    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
80967    ,p_event_id                 => l_array_event_id(hdr_idx)
80968    ,p_event_class_code         => l_array_class_code(hdr_idx)
80969    ,p_event_type_code          => l_array_event_type(hdr_idx)
80970    ,p_event_number             => l_array_event_number(hdr_idx)
80971    ,p_event_date               => l_array_event_date(hdr_idx)
80972    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
80976    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
80973    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
80974    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
80975    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
80977    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
80978    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
80979    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
80980    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
80981    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
80982    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
80983    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
80984    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
80985    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
80986    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
80987 
80988 --
80989 -- set the status of entry to C_VALID (0)
80990 --
80991 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80992 
80993 --
80994 -- initialize a row for ae header
80995 --
80996 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
80997 
80998 l_event_id := l_array_event_id(hdr_idx);
80999 
81000 --
81001 -- storing the hdr_idx for event. May be used by line cursor.
81002 --
81003 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
81004 
81005 --
81006 -- store sources from header extract. This can be improved to
81007 -- store only those sources from header extract that may be used in lines
81008 --
81009 
81010 
81011 --
81012 -- initilaize the status of ae headers for diffrent balance types
81013 -- the status is initialised to C_NOT_CREATED (2)
81014 --
81015 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81016 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81017 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81018 
81019 --
81020 -- call api to validate and store accounting attributes for header
81021 --
81022 
81023 ------------------------------------------------------------
81024 -- Accrual Reversal : to get date for Standard Source (NONE)
81025 ------------------------------------------------------------
81026 l_acc_rev_gl_date_source := NULL;
81027 
81028      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
81029       l_rec_acct_attrs.array_date_value(1) := 
81030 xla_ae_sources_pkg.GetSystemSourceDate(
81031    p_source_code           => 'XLA_EVENT_DATE'
81032  , p_source_type_code      => 'Y'
81033  , p_source_application_id =>  602
81034 );
81035 
81036 
81037 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
81038 
81039 XLA_AE_HEADER_PKG.SetJeCategoryName;
81040 
81041 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
81042 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
81043 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
81044 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
81045 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
81046 
81047 
81048 -- No header level analytical criteria
81049 
81050 --
81051 --accounting attribute enhancement, bug 3612931
81052 --
81053 l_trx_reversal_source := SUBSTR(NULL, 1,30);
81054 
81055 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
81056    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
81057 
81058    xla_accounting_err_pkg.build_message
81059       (p_appli_s_name            => 'XLA'
81060       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
81061       ,p_token_1                 => 'ACCT_ATTR_NAME'
81062       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
81063       ,p_token_2                 => 'PRODUCT_NAME'
81064       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
81065       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
81066       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
81067       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
81068 
81069 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
81070    --
81071    -- following sets the accounting attributes needed to reverse
81072    -- accounting for a distributeion
81073    --
81074    xla_ae_lines_pkg.SetTrxReversalAttrs
81075       (p_event_id              => l_event_id
81076       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
81077       ,p_trx_reversal_source   => l_trx_reversal_source);
81078 
81079 END IF;
81080 
81081 
81082 ----------------------------------------------------------------
81083 -- 4262811 -  update the header statuses to invalid in need be
81084 ----------------------------------------------------------------
81085 --
81086 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
81087 
81088 
81089   -----------------------------------------------
81090   -- No accrual reversal for the event class/type
81091   -----------------------------------------------
81092 ----------------------------------------------------------------
81093 
81094 --
81095 -- this ends the header loop iteration for one bulk fetch
81096 --
81097 END LOOP;
81098 
81099 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
81100 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
81101 
81102 --
81106 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
81103 -- insert dummy rows into lines gt table that were created due to
81104 -- transaction reversals
81105 --
81107    l_result := XLA_AE_LINES_PKG.InsertLines;
81108 END IF;
81109 
81110 --
81111 -- reset the temp_line_num for each set of events fetched from header
81112 -- cursor rather than doing it for each new event in line cursor
81113 -- Bug 3939231
81114 --
81115 xla_ae_lines_pkg.g_temp_line_num := 0;
81116 
81117 
81118 
81119 --
81120 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
81121 --
81122 --
81123 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81124 
81125       trace
81126          (p_msg      => 'SQL - FETCH line_cur'
81127          ,p_level    => C_LEVEL_STATEMENT
81128          ,p_module   => l_log_module);
81129 
81130 END IF;
81131 --
81132 --
81133 LOOP
81134   --
81135   FETCH line_cur BULK COLLECT INTO
81136         l_array_entity_id
81137       , l_array_legal_entity_id
81138       , l_array_entity_code
81139       , l_array_transaction_num
81140       , l_array_event_id
81141       , l_array_class_code
81142       , l_array_event_type
81143       , l_array_event_number
81144       , l_array_event_date
81145       , l_array_transaction_date
81146       , l_array_reference_num_1
81147       , l_array_reference_num_2
81148       , l_array_reference_num_3
81149       , l_array_reference_num_4
81150       , l_array_reference_char_1
81151       , l_array_reference_char_2
81152       , l_array_reference_char_3
81153       , l_array_reference_char_4
81154       , l_array_reference_date_1
81155       , l_array_reference_date_2
81156       , l_array_reference_date_3
81157       , l_array_reference_date_4
81158       , l_array_event_created_by
81159       , l_array_budgetary_control_flag
81160       , l_array_extract_line_num 
81161       , l_array_source_2
81162       , l_array_source_3
81163       , l_array_source_4
81164       , l_array_source_5
81165       , l_array_source_11
81166       , l_array_source_14
81167       , l_array_source_21
81168       , l_array_source_30
81169       , l_array_source_33
81170       , l_array_source_39
81171       , l_array_source_40
81172       , l_array_source_41
81173       , l_array_source_57
81174       , l_array_source_83
81175       , l_array_source_84
81176       , l_array_source_85
81177       , l_array_source_86
81178       , l_array_source_87
81179       , l_array_source_88
81180       , l_array_source_89
81181       , l_array_source_90
81182       , l_array_source_91
81183       , l_array_source_92
81184       , l_array_source_93
81185       , l_array_source_94
81186       , l_array_source_95
81187       , l_array_source_96
81188       , l_array_source_97
81189       , l_array_source_98
81190       , l_array_source_99
81191       , l_array_source_100
81192       , l_array_source_101
81193       , l_array_source_102
81194       , l_array_source_103
81195       , l_array_source_104
81196       , l_array_source_105
81197       , l_array_source_106
81198       , l_array_source_107
81199       , l_array_source_108
81200       , l_array_source_108_meaning
81201       , l_array_source_109
81202       , l_array_source_110
81203       , l_array_source_111
81204       , l_array_source_112
81205       , l_array_source_113
81206       , l_array_source_114
81207       LIMIT l_rows;
81208 
81209   --
81210   IF (C_LEVEL_EVENT >= g_log_level) THEN
81211             trace
81212                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
81213                ,p_level    => C_LEVEL_EVENT
81214                ,p_module   => l_log_module);
81215   END IF;
81216   --
81217   EXIT WHEN l_array_entity_id.count = 0;
81218 
81219   XLA_AE_LINES_PKG.g_rec_lines := null;
81220 
81221 --
81222 -- Bug 4458708
81223 --
81224 XLA_AE_LINES_PKG.g_LineNumber := 0;
81225 --
81226 --
81227 
81228 FOR Idx IN 1..l_array_event_id.count LOOP
81229    --
81230    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
81231    --
81232    l_event_id := l_array_event_id(idx);  -- 5648433
81233 
81234    --
81235    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81236    --
81237 
81238    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
81239              (g_array_event(l_event_id).array_value_num('header_index'))
81240          ,'N'
81241          ) <> 'Y'
81242    THEN
81243       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81244          trace
81245             (p_msg      => 'Trancaction revesal option is not Y '
81246             ,p_level    => C_LEVEL_STATEMENT
81247             ,p_module   => l_log_module);
81248       END IF;
81249 
81250 --
81251 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
81252 --
81253 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
81254 --
81255 -- set event info as cache for other routines to refer event attributes
81256 --
81257 
81258 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
81259    l_previous_event_id := l_event_id;
81260 
81261    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
81262       (p_application_id           => p_application_id
81263       ,p_primary_ledger_id        => p_primary_ledger_id
81264       ,p_base_ledger_id           => p_base_ledger_id
81265       ,p_target_ledger_id         => p_target_ledger_id
81266       ,p_entity_id                => l_array_entity_id(Idx)
81267       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
81271       ,p_event_class_code         => l_array_class_code(Idx)
81268       ,p_entity_code              => l_array_entity_code(Idx)
81269       ,p_transaction_num          => l_array_transaction_num(Idx)
81270       ,p_event_id                 => l_array_event_id(Idx)
81272       ,p_event_type_code          => l_array_event_type(Idx)
81273       ,p_event_number             => l_array_event_number(Idx)
81274       ,p_event_date               => l_array_event_date(Idx)
81275       ,p_transaction_date         => l_array_transaction_date(Idx)
81276       ,p_reference_num_1          => l_array_reference_num_1(Idx)
81277       ,p_reference_num_2          => l_array_reference_num_2(Idx)
81278       ,p_reference_num_3          => l_array_reference_num_3(Idx)
81279       ,p_reference_num_4          => l_array_reference_num_4(Idx)
81280       ,p_reference_char_1         => l_array_reference_char_1(Idx)
81281       ,p_reference_char_2         => l_array_reference_char_2(Idx)
81282       ,p_reference_char_3         => l_array_reference_char_3(Idx)
81283       ,p_reference_char_4         => l_array_reference_char_4(Idx)
81284       ,p_reference_date_1         => l_array_reference_date_1(Idx)
81285       ,p_reference_date_2         => l_array_reference_date_2(Idx)
81286       ,p_reference_date_3         => l_array_reference_date_3(Idx)
81287       ,p_reference_date_4         => l_array_reference_date_4(Idx)
81288       ,p_event_created_by         => l_array_event_created_by(Idx)
81289       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
81290        --
81291 END IF;
81292 
81293 
81294 
81295 --
81296 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
81297 
81298 l_acct_reversal_source := SUBSTR(l_array_source_85(Idx), 1,30);
81299 
81300 IF l_continue_with_lines THEN
81301    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
81302       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
81303 
81304       xla_accounting_err_pkg.build_message
81305          (p_appli_s_name            => 'XLA'
81306          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
81307          ,p_token_1                 => 'LINE_NUMBER'
81308          ,p_value_1                 => l_array_extract_line_num(Idx)
81309          ,p_token_2                 => 'PRODUCT_NAME'
81310          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
81311          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
81312          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
81313          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
81314 
81315    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
81316       --
81317       -- following sets the accounting attributes needed to reverse
81318       -- accounting for a distributeion
81319       --
81320 
81321       --
81322       -- 5217187
81323       --
81324       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
81325       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
81326                                        g_array_event(l_event_id).array_value_num('header_index'));
81327       --
81328       --
81329 
81330       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
81331       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_85(Idx);
81332       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
81333       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
81334       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
81335       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_96(Idx);
81336       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
81337       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_21(Idx);
81338       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
81339       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_97(Idx);
81340       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
81341       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_98(Idx);
81342       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
81343       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_57(Idx);
81344       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
81345       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_33(Idx);
81346       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
81347       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_99(Idx);
81348       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
81349       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_100(Idx);
81350       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
81351       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_101(Idx);
81352       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
81353       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_57(Idx);
81354       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
81355       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_33(Idx);
81356       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
81357       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_99(Idx);
81358       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
81359       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_102(Idx);
81360       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
81361       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_103(Idx);
81362       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
81363       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_104(Idx);
81364       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
81368       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
81365       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_105(Idx);
81366       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
81367       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_106(Idx);
81369       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_107(Idx);
81370 
81371 
81372       xla_ae_lines_pkg.SetAcctReversalAttrs
81373          (p_event_id             => l_event_id
81374          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
81375          ,p_calculate_acctd_flag => l_calculate_acctd_flag
81376          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
81377    END IF;
81378 
81379    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
81380        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
81381 
81382 --
81383 AcctLineType_90 (
81384  p_application_id  => p_application_id
81385  ,p_event_id     => l_event_id
81386  ,p_calculate_acctd_flag => l_calculate_acctd_flag
81387  ,p_calculate_g_l_flag => l_calculate_g_l_flag
81388  ,p_actual_flag => l_actual_flag
81389  ,p_balance_type_code => l_balance_type_code
81390  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81391  
81392  , p_source_2 => l_array_source_2(Idx)
81393  , p_source_3 => l_array_source_3(Idx)
81394  , p_source_4 => l_array_source_4(Idx)
81395  , p_source_5 => l_array_source_5(Idx)
81396  , p_source_14 => l_array_source_14(Idx)
81397  , p_source_21 => l_array_source_21(Idx)
81398  , p_source_30 => l_array_source_30(Idx)
81399  , p_source_33 => l_array_source_33(Idx)
81400  , p_source_39 => l_array_source_39(Idx)
81401  , p_source_40 => l_array_source_40(Idx)
81402  , p_source_41 => l_array_source_41(Idx)
81403  , p_source_57 => l_array_source_57(Idx)
81404  , p_source_83 => l_array_source_83(Idx)
81405  , p_source_84 => l_array_source_84(Idx)
81406  , p_source_85 => l_array_source_85(Idx)
81407  , p_source_86 => l_array_source_86(Idx)
81408  , p_source_87 => l_array_source_87(Idx)
81409  , p_source_88 => l_array_source_88(Idx)
81410  , p_source_89 => l_array_source_89(Idx)
81411  , p_source_90 => l_array_source_90(Idx)
81412  , p_source_91 => l_array_source_91(Idx)
81413  , p_source_92 => l_array_source_92(Idx)
81414  , p_source_93 => l_array_source_93(Idx)
81415  , p_source_94 => l_array_source_94(Idx)
81416  , p_source_95 => l_array_source_95(Idx)
81417  , p_source_96 => l_array_source_96(Idx)
81418  , p_source_97 => l_array_source_97(Idx)
81419  , p_source_98 => l_array_source_98(Idx)
81420  , p_source_99 => l_array_source_99(Idx)
81421  , p_source_100 => l_array_source_100(Idx)
81422  , p_source_101 => l_array_source_101(Idx)
81423  , p_source_102 => l_array_source_102(Idx)
81424  , p_source_103 => l_array_source_103(Idx)
81425  , p_source_104 => l_array_source_104(Idx)
81426  , p_source_105 => l_array_source_105(Idx)
81427  , p_source_106 => l_array_source_106(Idx)
81428  , p_source_107 => l_array_source_107(Idx)
81429  );
81430 If(l_balance_type_code = 'A') THEN
81431   l_actual_gain_loss_ref := l_gain_or_loss_ref;
81432 END IF;
81433 
81434 --
81435 
81436 
81437 --
81438 AcctLineType_91 (
81439  p_application_id  => p_application_id
81440  ,p_event_id     => l_event_id
81441  ,p_calculate_acctd_flag => l_calculate_acctd_flag
81442  ,p_calculate_g_l_flag => l_calculate_g_l_flag
81443  ,p_actual_flag => l_actual_flag
81444  ,p_balance_type_code => l_balance_type_code
81445  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81446  
81447  , p_source_2 => l_array_source_2(Idx)
81448  , p_source_3 => l_array_source_3(Idx)
81449  , p_source_4 => l_array_source_4(Idx)
81450  , p_source_5 => l_array_source_5(Idx)
81451  , p_source_11 => l_array_source_11(Idx)
81452  , p_source_14 => l_array_source_14(Idx)
81453  , p_source_21 => l_array_source_21(Idx)
81454  , p_source_30 => l_array_source_30(Idx)
81455  , p_source_33 => l_array_source_33(Idx)
81456  , p_source_39 => l_array_source_39(Idx)
81457  , p_source_40 => l_array_source_40(Idx)
81458  , p_source_41 => l_array_source_41(Idx)
81459  , p_source_57 => l_array_source_57(Idx)
81460  , p_source_83 => l_array_source_83(Idx)
81461  , p_source_84 => l_array_source_84(Idx)
81462  , p_source_85 => l_array_source_85(Idx)
81463  , p_source_86 => l_array_source_86(Idx)
81464  , p_source_87 => l_array_source_87(Idx)
81465  , p_source_88 => l_array_source_88(Idx)
81466  , p_source_89 => l_array_source_89(Idx)
81467  , p_source_90 => l_array_source_90(Idx)
81468  , p_source_91 => l_array_source_91(Idx)
81469  , p_source_92 => l_array_source_92(Idx)
81470  , p_source_93 => l_array_source_93(Idx)
81471  , p_source_94 => l_array_source_94(Idx)
81472  , p_source_95 => l_array_source_95(Idx)
81473  , p_source_96 => l_array_source_96(Idx)
81474  , p_source_97 => l_array_source_97(Idx)
81475  , p_source_98 => l_array_source_98(Idx)
81476  , p_source_99 => l_array_source_99(Idx)
81477  , p_source_100 => l_array_source_100(Idx)
81478  , p_source_101 => l_array_source_101(Idx)
81479  , p_source_102 => l_array_source_102(Idx)
81480  , p_source_103 => l_array_source_103(Idx)
81481  , p_source_104 => l_array_source_104(Idx)
81482  , p_source_105 => l_array_source_105(Idx)
81483  , p_source_106 => l_array_source_106(Idx)
81484  , p_source_107 => l_array_source_107(Idx)
81485  , p_source_108 => l_array_source_108(Idx)
81486  , p_source_108_meaning => l_array_source_108_meaning(Idx)
81487  );
81488 If(l_balance_type_code = 'A') THEN
81489   l_actual_gain_loss_ref := l_gain_or_loss_ref;
81490 END IF;
81491 
81492 --
81493 
81494 
81495 --
81496 AcctLineType_92 (
81497  p_application_id  => p_application_id
81498  ,p_event_id     => l_event_id
81499  ,p_calculate_acctd_flag => l_calculate_acctd_flag
81500  ,p_calculate_g_l_flag => l_calculate_g_l_flag
81501  ,p_actual_flag => l_actual_flag
81502  ,p_balance_type_code => l_balance_type_code
81506  , p_source_3 => l_array_source_3(Idx)
81503  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81504  
81505  , p_source_2 => l_array_source_2(Idx)
81507  , p_source_4 => l_array_source_4(Idx)
81508  , p_source_5 => l_array_source_5(Idx)
81509  , p_source_14 => l_array_source_14(Idx)
81510  , p_source_21 => l_array_source_21(Idx)
81511  , p_source_30 => l_array_source_30(Idx)
81512  , p_source_33 => l_array_source_33(Idx)
81513  , p_source_39 => l_array_source_39(Idx)
81514  , p_source_40 => l_array_source_40(Idx)
81515  , p_source_41 => l_array_source_41(Idx)
81516  , p_source_57 => l_array_source_57(Idx)
81517  , p_source_83 => l_array_source_83(Idx)
81518  , p_source_84 => l_array_source_84(Idx)
81519  , p_source_85 => l_array_source_85(Idx)
81520  , p_source_86 => l_array_source_86(Idx)
81521  , p_source_87 => l_array_source_87(Idx)
81522  , p_source_88 => l_array_source_88(Idx)
81523  , p_source_89 => l_array_source_89(Idx)
81524  , p_source_90 => l_array_source_90(Idx)
81525  , p_source_91 => l_array_source_91(Idx)
81526  , p_source_92 => l_array_source_92(Idx)
81527  , p_source_93 => l_array_source_93(Idx)
81528  , p_source_94 => l_array_source_94(Idx)
81529  , p_source_95 => l_array_source_95(Idx)
81530  , p_source_96 => l_array_source_96(Idx)
81531  , p_source_97 => l_array_source_97(Idx)
81532  , p_source_98 => l_array_source_98(Idx)
81533  , p_source_99 => l_array_source_99(Idx)
81534  , p_source_100 => l_array_source_100(Idx)
81535  , p_source_101 => l_array_source_101(Idx)
81536  , p_source_102 => l_array_source_102(Idx)
81537  , p_source_103 => l_array_source_103(Idx)
81538  , p_source_104 => l_array_source_104(Idx)
81539  , p_source_105 => l_array_source_105(Idx)
81540  , p_source_106 => l_array_source_106(Idx)
81541  , p_source_107 => l_array_source_107(Idx)
81542  , p_source_108 => l_array_source_108(Idx)
81543  , p_source_108_meaning => l_array_source_108_meaning(Idx)
81544  );
81545 If(l_balance_type_code = 'A') THEN
81546   l_actual_gain_loss_ref := l_gain_or_loss_ref;
81547 END IF;
81548 
81549 --
81550 
81551 
81552 --
81553 AcctLineType_94 (
81554  p_application_id  => p_application_id
81555  ,p_event_id     => l_event_id
81556  ,p_calculate_acctd_flag => l_calculate_acctd_flag
81557  ,p_calculate_g_l_flag => l_calculate_g_l_flag
81558  ,p_actual_flag => l_actual_flag
81559  ,p_balance_type_code => l_balance_type_code
81560  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81561  
81562  , p_source_2 => l_array_source_2(Idx)
81563  , p_source_3 => l_array_source_3(Idx)
81564  , p_source_4 => l_array_source_4(Idx)
81565  , p_source_5 => l_array_source_5(Idx)
81566  , p_source_21 => l_array_source_21(Idx)
81567  , p_source_30 => l_array_source_30(Idx)
81568  , p_source_33 => l_array_source_33(Idx)
81569  , p_source_57 => l_array_source_57(Idx)
81570  , p_source_83 => l_array_source_83(Idx)
81571  , p_source_85 => l_array_source_85(Idx)
81572  , p_source_86 => l_array_source_86(Idx)
81573  , p_source_87 => l_array_source_87(Idx)
81574  , p_source_88 => l_array_source_88(Idx)
81575  , p_source_89 => l_array_source_89(Idx)
81576  , p_source_90 => l_array_source_90(Idx)
81577  , p_source_96 => l_array_source_96(Idx)
81578  , p_source_97 => l_array_source_97(Idx)
81579  , p_source_98 => l_array_source_98(Idx)
81580  , p_source_99 => l_array_source_99(Idx)
81581  , p_source_100 => l_array_source_100(Idx)
81582  , p_source_101 => l_array_source_101(Idx)
81583  , p_source_102 => l_array_source_102(Idx)
81584  , p_source_103 => l_array_source_103(Idx)
81585  , p_source_104 => l_array_source_104(Idx)
81586  , p_source_105 => l_array_source_105(Idx)
81587  , p_source_106 => l_array_source_106(Idx)
81588  , p_source_107 => l_array_source_107(Idx)
81589  , p_source_109 => l_array_source_109(Idx)
81590  , p_source_110 => l_array_source_110(Idx)
81591  , p_source_111 => l_array_source_111(Idx)
81592  , p_source_112 => l_array_source_112(Idx)
81593  , p_source_113 => l_array_source_113(Idx)
81594  , p_source_114 => l_array_source_114(Idx)
81595  );
81596 If(l_balance_type_code = 'A') THEN
81597   l_actual_gain_loss_ref := l_gain_or_loss_ref;
81598 END IF;
81599 
81600 --
81601 
81602 
81603 --
81604 AcctLineType_98 (
81605  p_application_id  => p_application_id
81606  ,p_event_id     => l_event_id
81607  ,p_calculate_acctd_flag => l_calculate_acctd_flag
81608  ,p_calculate_g_l_flag => l_calculate_g_l_flag
81609  ,p_actual_flag => l_actual_flag
81610  ,p_balance_type_code => l_balance_type_code
81611  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81612  
81613  , p_source_2 => l_array_source_2(Idx)
81614  , p_source_3 => l_array_source_3(Idx)
81615  , p_source_4 => l_array_source_4(Idx)
81616  , p_source_5 => l_array_source_5(Idx)
81617  , p_source_21 => l_array_source_21(Idx)
81618  , p_source_30 => l_array_source_30(Idx)
81619  , p_source_33 => l_array_source_33(Idx)
81620  , p_source_57 => l_array_source_57(Idx)
81621  , p_source_83 => l_array_source_83(Idx)
81622  , p_source_85 => l_array_source_85(Idx)
81623  , p_source_86 => l_array_source_86(Idx)
81624  , p_source_87 => l_array_source_87(Idx)
81625  , p_source_88 => l_array_source_88(Idx)
81626  , p_source_89 => l_array_source_89(Idx)
81627  , p_source_90 => l_array_source_90(Idx)
81628  , p_source_96 => l_array_source_96(Idx)
81629  , p_source_97 => l_array_source_97(Idx)
81630  , p_source_98 => l_array_source_98(Idx)
81631  , p_source_99 => l_array_source_99(Idx)
81632  , p_source_100 => l_array_source_100(Idx)
81633  , p_source_101 => l_array_source_101(Idx)
81634  , p_source_102 => l_array_source_102(Idx)
81635  , p_source_103 => l_array_source_103(Idx)
81636  , p_source_104 => l_array_source_104(Idx)
81637  , p_source_105 => l_array_source_105(Idx)
81638  , p_source_106 => l_array_source_106(Idx)
81639  , p_source_107 => l_array_source_107(Idx)
81640  , p_source_109 => l_array_source_109(Idx)
81641  , p_source_110 => l_array_source_110(Idx)
81645  , p_source_114 => l_array_source_114(Idx)
81642  , p_source_111 => l_array_source_111(Idx)
81643  , p_source_112 => l_array_source_112(Idx)
81644  , p_source_113 => l_array_source_113(Idx)
81646  );
81647 If(l_balance_type_code = 'A') THEN
81648   l_actual_gain_loss_ref := l_gain_or_loss_ref;
81649 END IF;
81650 
81651 --
81652 
81653       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
81654       -- or secondary ledger that has different currency with primary
81655       -- or alc that is calculated by sla
81656       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
81657             (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'))
81658 
81659 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
81660 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
81661           AND (l_actual_flag = 'A')) THEN
81662         XLA_AE_LINES_PKG.CreateGainOrLossLines(
81663           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
81664          ,p_application_id   => p_application_id
81665          ,p_amb_context_code => 'DEFAULT'
81666          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
81667          ,p_event_class_code => C_EVENT_CLASS_CODE
81668          ,p_event_type_code  => C_EVENT_TYPE_CODE
81669          
81670          ,p_gain_ccid        => -1
81671          ,p_loss_ccid        => -1
81672 
81673          ,p_actual_flag      => l_actual_flag
81674          ,p_enc_flag         => null
81675          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
81676          ,p_enc_g_l_ref      => null
81677          );
81678       END IF;
81679    END IF;
81680 END IF;
81681 
81682    ELSE
81683       --
81684       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81685       --
81686       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81687          trace
81688             (p_msg      => 'Trancaction revesal option is Y'
81689             ,p_level    => C_LEVEL_STATEMENT
81690             ,p_module   => l_log_module);
81691       END IF;
81692    END IF;
81693 
81694 END LOOP;
81695 l_result := XLA_AE_LINES_PKG.InsertLines ;
81696 end loop;
81697 close line_cur;
81698 
81699 
81700 --
81701 -- insert headers into xla_ae_headers_gt table
81702 --
81703 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
81704 
81705 -- insert into errors table here.
81706 
81707 END LOOP;
81708 
81709 --
81710 -- 4865292
81711 --
81712 -- Compare g_hdr_extract_count with event count in
81713 -- CreateHeadersAndLines.
81714 --
81715 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
81716 
81717 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81718    trace (p_msg     => '# rows extracted from header extract objects '
81719                     || ' (running total): '
81720                     || g_hdr_extract_count
81721          ,p_level   => C_LEVEL_STATEMENT
81722          ,p_module  => l_log_module);
81723 END IF;
81724 
81725 CLOSE header_cur;
81726 --
81727 
81728 --
81729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81730    trace
81731       (p_msg      => 'END of EventClass_109'
81732       ,p_level    => C_LEVEL_PROCEDURE
81733       ,p_module   => l_log_module);
81734 END IF;
81735 --
81736 RETURN l_result;
81737 EXCEPTION
81738 WHEN xla_exceptions_pkg.application_exception THEN
81739    
81740 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81741 
81742    
81743 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
81744 
81745    RAISE;
81746 
81747 WHEN NO_DATA_FOUND THEN
81748 
81749 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81750 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
81751 
81752 FOR header_record IN header_cur
81753 LOOP
81754     l_array_header_events(header_record.event_id) := header_record.event_id;
81755 END LOOP;
81756 
81757 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
81758 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
81759 
81760 fnd_file.put_line(fnd_file.LOG, '                    ');
81761 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81762 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
81763 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
81764 
81765 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
81766 LOOP
81767 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
81768 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
81769         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
81770 	END IF;
81771 END LOOP;
81772 
81773 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81774 fnd_file.put_line(fnd_file.LOG, '                    ');
81775 
81776 
81777 xla_exceptions_pkg.raise_message
81778       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_109');
81779 
81780 
81781 WHEN OTHERS THEN
81782    xla_exceptions_pkg.raise_message
81783       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_109');
81784 END EventClass_109;
81785 --
81786 
81787 ---------------------------------------
81788 --
81789 -- PRIVATE PROCEDURE
81790 --         insert_sources_110
81791 --
81792 ----------------------------------------
81793 --
81797                               , p_sla_ledger_id          IN NUMBER
81794 PROCEDURE insert_sources_110(
81795                                 p_target_ledger_id       IN NUMBER
81796                               , p_language               IN VARCHAR2
81798                               , p_pad_start_date         IN DATE
81799                               , p_pad_end_date           IN DATE
81800                          )
81801 IS
81802 
81803 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
81804 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
81805 p_apps_owner                   VARCHAR2(30);
81806 l_log_module                   VARCHAR2(240);
81807 BEGIN
81808 IF g_log_enabled THEN
81809       l_log_module := C_DEFAULT_MODULE||'.insert_sources_110';
81810 END IF;
81811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81812 
81813       trace
81814          (p_msg      => 'BEGIN of insert_sources_110'
81815          ,p_level    => C_LEVEL_PROCEDURE
81816          ,p_module   => l_log_module);
81817 
81818 END IF;
81819 
81820 -- select APPS owner
81821 SELECT oracle_username
81822   INTO p_apps_owner
81823   FROM fnd_oracle_userid
81824  WHERE read_only_flag = 'U'
81825 ;
81826 
81827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81828       trace
81829          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
81830                         ' - p_language = '||p_language||
81831                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
81832                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
81833                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
81834                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
81835          ,p_level    => C_LEVEL_STATEMENT
81836          ,p_module   => l_log_module);
81837 END IF;
81838 
81839  
81840 
81841 
81842 --
81843 INSERT INTO xla_diag_sources  --line2
81844 (
81845         event_id
81846       , ledger_id
81847       , sla_ledger_id
81848       , description_language
81849       , object_name
81850       , object_type_code
81851       , line_number
81852       , source_application_id
81853       , source_type_code
81854       , source_code
81855       , source_value
81856       , source_meaning
81857       , created_by
81858       , creation_date
81859       , last_update_date
81860       , last_updated_by
81861       , last_update_login
81862       , program_update_date
81863       , program_application_id
81864       , program_id
81865       , request_id
81866 )
81867 SELECT  event_id
81868       , p_target_ledger_id
81869       , p_sla_ledger_id
81870       , p_language
81871       , object_name
81872       , object_type_code
81873       , line_number
81874       , source_application_id
81875       , source_type_code
81876       , source_code
81877       , SUBSTR(source_value,1,1996)
81878       , SUBSTR(source_meaning ,1,200)
81879       , xla_environment_pkg.g_Usr_Id
81880       , TRUNC(SYSDATE)
81881       , TRUNC(SYSDATE)
81882       , xla_environment_pkg.g_Usr_Id
81883       , xla_environment_pkg.g_Login_Id
81884       , TRUNC(SYSDATE)
81885       , xla_environment_pkg.g_Prog_Appl_Id
81886       , xla_environment_pkg.g_Prog_Id
81887       , xla_environment_pkg.g_Req_Id
81888   FROM (
81889        SELECT xet.event_id                  event_id
81890             , l1.line_number                 line_number
81891             , CASE r
81892                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81893                 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V' 
81894                 WHEN 3 THEN 'PA_XLA_TASK_REF_V' 
81895                 WHEN 4 THEN 'PA_XLA_EXP_ORG_REF_V' 
81896                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81897                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81898                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81899                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81900                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81901                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81902                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81903                 WHEN 12 THEN 'PA_XLA_PROJECT_REF_V' 
81904                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81905                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81906                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81907                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81908                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81909                 WHEN 18 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81910                 WHEN 19 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81911                 WHEN 20 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81912                 WHEN 21 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81913                 WHEN 22 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81914                 WHEN 23 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81915                 WHEN 24 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81916                 WHEN 25 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81917                 WHEN 26 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81918                 WHEN 27 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81919                 WHEN 28 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81920                 WHEN 29 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81921                 WHEN 30 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81922                 WHEN 31 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81923                 WHEN 32 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81924                 WHEN 33 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81925                 WHEN 34 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81926                 WHEN 35 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81927                 WHEN 36 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81928                 WHEN 37 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81929                 WHEN 38 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81933                 WHEN 42 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81930                 WHEN 39 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81931                 WHEN 40 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81932                 WHEN 41 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
81934                 
81935                ELSE null
81936               END                           object_name
81937             , CASE r
81938                 WHEN 1 THEN 'LINE' 
81939                 WHEN 2 THEN 'LINE' 
81940                 WHEN 3 THEN 'LINE' 
81941                 WHEN 4 THEN 'LINE' 
81942                 WHEN 5 THEN 'LINE' 
81943                 WHEN 6 THEN 'LINE' 
81944                 WHEN 7 THEN 'LINE' 
81945                 WHEN 8 THEN 'LINE' 
81946                 WHEN 9 THEN 'LINE' 
81947                 WHEN 10 THEN 'LINE' 
81948                 WHEN 11 THEN 'LINE' 
81949                 WHEN 12 THEN 'LINE' 
81950                 WHEN 13 THEN 'LINE' 
81951                 WHEN 14 THEN 'LINE' 
81952                 WHEN 15 THEN 'LINE' 
81953                 WHEN 16 THEN 'LINE' 
81954                 WHEN 17 THEN 'LINE' 
81955                 WHEN 18 THEN 'LINE' 
81956                 WHEN 19 THEN 'LINE' 
81957                 WHEN 20 THEN 'LINE' 
81958                 WHEN 21 THEN 'LINE' 
81959                 WHEN 22 THEN 'LINE' 
81960                 WHEN 23 THEN 'LINE' 
81961                 WHEN 24 THEN 'LINE' 
81962                 WHEN 25 THEN 'LINE' 
81963                 WHEN 26 THEN 'LINE' 
81964                 WHEN 27 THEN 'LINE' 
81965                 WHEN 28 THEN 'LINE' 
81966                 WHEN 29 THEN 'LINE' 
81967                 WHEN 30 THEN 'LINE' 
81968                 WHEN 31 THEN 'LINE' 
81969                 WHEN 32 THEN 'LINE' 
81970                 WHEN 33 THEN 'LINE' 
81971                 WHEN 34 THEN 'LINE' 
81972                 WHEN 35 THEN 'LINE' 
81973                 WHEN 36 THEN 'LINE' 
81974                 WHEN 37 THEN 'LINE' 
81975                 WHEN 38 THEN 'LINE' 
81976                 WHEN 39 THEN 'LINE' 
81977                 WHEN 40 THEN 'LINE' 
81978                 WHEN 41 THEN 'LINE' 
81979                 WHEN 42 THEN 'LINE' 
81980                 
81981                 ELSE null
81982               END                           object_type_code
81983             , CASE r
81984                 WHEN 1 THEN '200' 
81985                 WHEN 2 THEN '275' 
81986                 WHEN 3 THEN '275' 
81987                 WHEN 4 THEN '275' 
81988                 WHEN 5 THEN '200' 
81989                 WHEN 6 THEN '200' 
81990                 WHEN 7 THEN '200' 
81991                 WHEN 8 THEN '200' 
81992                 WHEN 9 THEN '200' 
81993                 WHEN 10 THEN '200' 
81994                 WHEN 11 THEN '200' 
81995                 WHEN 12 THEN '275' 
81996                 WHEN 13 THEN '200' 
81997                 WHEN 14 THEN '200' 
81998                 WHEN 15 THEN '200' 
81999                 WHEN 16 THEN '200' 
82000                 WHEN 17 THEN '200' 
82001                 WHEN 18 THEN '200' 
82002                 WHEN 19 THEN '200' 
82003                 WHEN 20 THEN '200' 
82004                 WHEN 21 THEN '200' 
82005                 WHEN 22 THEN '200' 
82006                 WHEN 23 THEN '200' 
82007                 WHEN 24 THEN '200' 
82008                 WHEN 25 THEN '200' 
82009                 WHEN 26 THEN '200' 
82010                 WHEN 27 THEN '200' 
82011                 WHEN 28 THEN '200' 
82012                 WHEN 29 THEN '200' 
82013                 WHEN 30 THEN '200' 
82014                 WHEN 31 THEN '200' 
82015                 WHEN 32 THEN '200' 
82016                 WHEN 33 THEN '200' 
82017                 WHEN 34 THEN '200' 
82018                 WHEN 35 THEN '200' 
82019                 WHEN 36 THEN '200' 
82020                 WHEN 37 THEN '200' 
82021                 WHEN 38 THEN '200' 
82022                 WHEN 39 THEN '200' 
82023                 WHEN 40 THEN '200' 
82024                 WHEN 41 THEN '200' 
82025                 WHEN 42 THEN '200' 
82026                 
82027                 ELSE null
82028               END                           source_application_id
82029             , 'S'             source_type_code
82030             , CASE r
82031                 WHEN 1 THEN 'DOCUMENT_DISTRIBUTION_TYPE' 
82032                 WHEN 2 THEN 'PROJECT_NAME' 
82033                 WHEN 3 THEN 'TASK_NUMBER' 
82034                 WHEN 4 THEN 'EXPENDITURE_ORGANIZATION_ID' 
82035                 WHEN 5 THEN 'AID_DIST_CCID' 
82036                 WHEN 6 THEN 'BUDGET_CCID' 
82037                 WHEN 7 THEN 'DISTRIBUTION_LINK_TYPE' 
82038                 WHEN 8 THEN 'AID_INVOICE_DIST_ID' 
82039                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
82040                 WHEN 10 THEN 'AID_AMOUNT' 
82041                 WHEN 11 THEN 'DOCUMENT_TYPE' 
82042                 WHEN 12 THEN 'PROJ_BURDEN_DISPLAY_METHOD' 
82043                 WHEN 13 THEN 'ACCT_REVERSAL_INDICATOR' 
82044                 WHEN 14 THEN 'ALLOC_TO_APPLN_ID' 
82045                 WHEN 15 THEN 'ALLOC_TO_DIST_TYPE' 
82046                 WHEN 16 THEN 'ALLOC_TO_ENTITY_CODE' 
82047                 WHEN 17 THEN 'ALLOC_TO_FIRST_DIST_ID' 
82048                 WHEN 18 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID' 
82049                 WHEN 19 THEN 'AP_APPLICATION_ID' 
82050                 WHEN 20 THEN 'AP_DISTRIBUTION_TYPE' 
82051                 WHEN 21 THEN 'AP_ENTITY_CODE' 
82052                 WHEN 22 THEN 'AP_FIRST_DIST_ID' 
82053                 WHEN 23 THEN 'AP_FIRST_SYS_TRANS_ID' 
82054                 WHEN 24 THEN 'AID_EXPENDITURE_TYPE' 
82055                 WHEN 25 THEN 'ENC_UPG_CR_ACCT_CLASS' 
82056                 WHEN 26 THEN 'ENC_UPG_CR_ACCOUNT' 
82057                 WHEN 27 THEN 'AID_BASE_AMT_NO_ROUND' 
82058                 WHEN 28 THEN 'ENC_UPG_DR_ACCT_CLASS' 
82059                 WHEN 29 THEN 'ENC_UPG_DR_ACCOUNT' 
82063                 WHEN 33 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
82060                 WHEN 30 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
82061                 WHEN 31 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
82062                 WHEN 32 THEN 'AP_SECOND_DIST_ID' 
82064                 WHEN 34 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
82065                 WHEN 35 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
82066                 WHEN 36 THEN 'BURDEN_COST_FLAG' 
82067                 WHEN 37 THEN 'PA_APPLICATION_ID' 
82068                 WHEN 38 THEN 'PA_DISTRIBUTION_TYPE' 
82069                 WHEN 39 THEN 'PA_ENTITY_CODE' 
82070                 WHEN 40 THEN 'PA_FIRST_DIST_ID' 
82071                 WHEN 41 THEN 'PA_FIRST_SYS_TRANS_ID' 
82072                 WHEN 42 THEN 'PA_SECOND_DIST_ID' 
82073                 
82074                 ELSE null
82075               END                           source_code
82076             , CASE r
82077                 WHEN 1 THEN TO_CHAR(l1.DOCUMENT_DISTRIBUTION_TYPE)
82078                 WHEN 2 THEN TO_CHAR(l3.PROJECT_NAME)
82079                 WHEN 3 THEN TO_CHAR(l4.TASK_NUMBER)
82080                 WHEN 4 THEN TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
82081                 WHEN 5 THEN TO_CHAR(l1.AID_DIST_CCID)
82082                 WHEN 6 THEN TO_CHAR(l1.BUDGET_CCID)
82083                 WHEN 7 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
82084                 WHEN 8 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
82085                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
82086                 WHEN 10 THEN TO_CHAR(l1.AID_AMOUNT)
82087                 WHEN 11 THEN TO_CHAR(l1.DOCUMENT_TYPE)
82088                 WHEN 12 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
82089                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
82090                 WHEN 14 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
82091                 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
82092                 WHEN 16 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
82093                 WHEN 17 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
82094                 WHEN 18 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
82095                 WHEN 19 THEN TO_CHAR(l1.AP_APPLICATION_ID)
82096                 WHEN 20 THEN TO_CHAR(l1.AP_DISTRIBUTION_TYPE)
82097                 WHEN 21 THEN TO_CHAR(l1.AP_ENTITY_CODE)
82098                 WHEN 22 THEN TO_CHAR(l1.AP_FIRST_DIST_ID)
82099                 WHEN 23 THEN TO_CHAR(l1.AP_FIRST_SYS_TRANS_ID)
82100                 WHEN 24 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
82101                 WHEN 25 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
82102                 WHEN 26 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
82103                 WHEN 27 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
82104                 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
82105                 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
82106                 WHEN 30 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
82107                 WHEN 31 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
82108                 WHEN 32 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
82109                 WHEN 33 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
82110                 WHEN 34 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
82111                 WHEN 35 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
82112                 WHEN 36 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
82113                 WHEN 37 THEN TO_CHAR(l1.PA_APPLICATION_ID)
82114                 WHEN 38 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
82115                 WHEN 39 THEN TO_CHAR(l1.PA_ENTITY_CODE)
82116                 WHEN 40 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
82117                 WHEN 41 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
82118                 WHEN 42 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
82119                 
82120                 ELSE null
82121               END                           source_value
82122             , CASE r
82123                 WHEN 4 THEN XLA_00200_AAD_S_000006_BC_PKG.GetMeaning(
82124                           1011404
82125                          ,TO_CHAR(l2.EXPENDITURE_ORGANIZATION_ID)
82126                          ,'EXPENDITURE_ORGANIZATION_ID'
82127                          ,'S'
82128                          ,275)
82129                 WHEN 36 THEN fvl108.meaning
82130                 
82131                 ELSE null
82132               END               source_meaning
82133          FROM  xla_events_gt     xet  
82134         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
82135         , PA_XLA_EXP_ORG_REF_V  l2
82136         , PA_XLA_PROJECT_REF_V  l3
82137         , PA_XLA_TASK_REF_V  l4
82138   , fnd_lookup_values    fvl108
82139             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
82140         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
82141           AND xet.event_class_code = C_EVENT_CLASS_CODE
82142             AND l1.event_id          = xet.event_id
82143  AND l2.expenditure_organization_id=l1.aid_expenditure_org_id AND l3.project_id=l1.aid_project_id AND l4.task_id=l1.aid_task_id   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
82144   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
82145   AND fvl108.view_application_id(+) = 275
82146   AND fvl108.language(+)            = USERENV('LANG')
82147   
82148 )
82149 ;
82150 --
82151 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82152 
82153       trace
82154          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
82155          ,p_level    => C_LEVEL_STATEMENT
82156          ,p_module   => l_log_module);
82157 
82158 END IF;
82159 
82160 
82161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82162       trace
82163          (p_msg      => 'END of insert_sources_110'
82164          ,p_level    => C_LEVEL_PROCEDURE
82165          ,p_module   => l_log_module);
82166 END IF;
82167 EXCEPTION
82168   WHEN xla_exceptions_pkg.application_exception THEN
82169       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
82170             trace
82171                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
82172                ,p_level    => C_LEVEL_EXCEPTION
82173                ,p_module   => l_log_module);
82177       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
82174       END IF;
82175       RAISE;
82176   WHEN OTHERS THEN
82178             trace
82179                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
82180                ,p_level    => C_LEVEL_EXCEPTION
82181                ,p_module   => l_log_module);
82182        END IF;
82183        xla_exceptions_pkg.raise_message
82184            (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.insert_sources_110');
82185 END insert_sources_110;
82186 --
82187 
82188 ---------------------------------------
82189 --
82190 -- PRIVATE FUNCTION
82191 --         EventClass_110
82192 --
82193 ----------------------------------------
82194 --
82195 FUNCTION EventClass_110
82196        (p_application_id         IN NUMBER
82197        ,p_base_ledger_id         IN NUMBER
82198        ,p_target_ledger_id       IN NUMBER
82199        ,p_language               IN VARCHAR2
82200        ,p_currency_code          IN VARCHAR2
82201        ,p_sla_ledger_id          IN NUMBER
82202        ,p_pad_start_date         IN DATE
82203        ,p_pad_end_date           IN DATE
82204        ,p_primary_ledger_id      IN NUMBER)
82205 RETURN BOOLEAN IS
82206 --
82207 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
82208 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
82209 
82210 l_calculate_acctd_flag   VARCHAR2(1) :='N';
82211 l_calculate_g_l_flag     VARCHAR2(1) :='N';
82212 --
82213 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82214 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82215 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82216 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82217 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82218 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82219 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82220 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82221 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82222 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82223 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82224 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82225 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82226 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82227 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82228 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82229 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82230 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82231 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82232 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82233 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82234 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82235 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
82236 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82237 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
82238 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
82239 
82240 l_event_id                             NUMBER;
82241 l_previous_event_id                    NUMBER;
82242 l_first_event_id                       NUMBER;
82243 l_last_event_id                        NUMBER;
82244 
82245 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
82246 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
82247 --
82248 --
82249 l_result                    BOOLEAN := TRUE;
82250 l_rows                      NUMBER  := 1000;
82251 l_event_type_name           VARCHAR2(80) := 'All';
82252 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayment Applications';
82253 l_description               VARCHAR2(4000);
82254 l_transaction_reversal      NUMBER;
82255 l_ae_header_id              NUMBER;
82256 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
82257 l_log_module                VARCHAR2(240);
82258 --
82259 l_acct_reversal_source      VARCHAR2(30);
82260 l_trx_reversal_source       VARCHAR2(30);
82261 
82262 l_continue_with_lines       BOOLEAN := TRUE;
82263 --
82264 l_acc_rev_gl_date_source    DATE;                      -- 4262811
82265 --
82266 type t_array_event_id is table of number index by binary_integer;
82267 
82268 l_rec_array_event                    t_rec_array_event;
82269 l_null_rec_array_event               t_rec_array_event;
82270 l_array_ae_header_id                 xla_number_array_type;
82271 l_actual_flag                        VARCHAR2(1) := NULL;
82272 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
82273 l_balance_type_code                  VARCHAR2(1) :=NULL;
82274 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
82275 
82276 --
82277 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
82278 --
82279 
82280 
82281 TYPE t_array_source_2 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82282 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
82283 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NUMBER%TYPE INDEX BY BINARY_INTEGER;
82284 TYPE t_array_source_5 IS TABLE OF PA_XLA_EXP_ORG_REF_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
82285 TYPE t_array_source_11 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
82289 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
82286 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
82287 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
82288 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82290 TYPE t_array_source_57 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
82291 TYPE t_array_source_83 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
82292 TYPE t_array_source_84 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
82293 TYPE t_array_source_85 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
82294 TYPE t_array_source_86 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
82295 TYPE t_array_source_87 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
82296 TYPE t_array_source_88 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
82297 TYPE t_array_source_89 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82298 TYPE t_array_source_90 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
82299 TYPE t_array_source_91 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
82300 TYPE t_array_source_92 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82301 TYPE t_array_source_93 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
82302 TYPE t_array_source_94 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82303 TYPE t_array_source_95 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
82304 TYPE t_array_source_96 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
82305 TYPE t_array_source_97 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
82306 TYPE t_array_source_98 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
82307 TYPE t_array_source_99 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
82308 TYPE t_array_source_100 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
82309 TYPE t_array_source_101 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
82310 TYPE t_array_source_102 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
82311 TYPE t_array_source_103 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82312 TYPE t_array_source_104 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82313 TYPE t_array_source_105 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82314 TYPE t_array_source_106 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
82315 TYPE t_array_source_107 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
82316 TYPE t_array_source_108 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
82317 TYPE t_array_source_109 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
82318 TYPE t_array_source_110 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82319 TYPE t_array_source_111 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
82320 TYPE t_array_source_112 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82321 TYPE t_array_source_113 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
82322 TYPE t_array_source_114 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
82323 
82324 
82325 l_array_source_2      t_array_source_2;
82326 l_array_source_3      t_array_source_3;
82327 l_array_source_4      t_array_source_4;
82328 l_array_source_5      t_array_source_5;
82329 l_array_source_11      t_array_source_11;
82330 l_array_source_14      t_array_source_14;
82331 l_array_source_21      t_array_source_21;
82332 l_array_source_30      t_array_source_30;
82333 l_array_source_33      t_array_source_33;
82334 l_array_source_57      t_array_source_57;
82335 l_array_source_83      t_array_source_83;
82336 l_array_source_84      t_array_source_84;
82337 l_array_source_85      t_array_source_85;
82338 l_array_source_86      t_array_source_86;
82339 l_array_source_87      t_array_source_87;
82340 l_array_source_88      t_array_source_88;
82341 l_array_source_89      t_array_source_89;
82342 l_array_source_90      t_array_source_90;
82343 l_array_source_91      t_array_source_91;
82344 l_array_source_92      t_array_source_92;
82345 l_array_source_93      t_array_source_93;
82346 l_array_source_94      t_array_source_94;
82347 l_array_source_95      t_array_source_95;
82348 l_array_source_96      t_array_source_96;
82349 l_array_source_97      t_array_source_97;
82350 l_array_source_98      t_array_source_98;
82351 l_array_source_99      t_array_source_99;
82352 l_array_source_100      t_array_source_100;
82353 l_array_source_101      t_array_source_101;
82354 l_array_source_102      t_array_source_102;
82355 l_array_source_103      t_array_source_103;
82356 l_array_source_104      t_array_source_104;
82357 l_array_source_105      t_array_source_105;
82358 l_array_source_106      t_array_source_106;
82359 l_array_source_107      t_array_source_107;
82360 l_array_source_108      t_array_source_108;
82361 l_array_source_108_meaning      t_array_lookup_meaning;
82362 l_array_source_109      t_array_source_109;
82363 l_array_source_110      t_array_source_110;
82364 l_array_source_111      t_array_source_111;
82365 l_array_source_112      t_array_source_112;
82366 l_array_source_113      t_array_source_113;
82367 l_array_source_114      t_array_source_114;
82371 IS
82368 
82369 --
82370 CURSOR header_cur
82372 SELECT /*+ leading(xet) cardinality(xet,1) */
82373 -- Event Class Code: PREPAY_APPLICATION_BURDEN
82374     xet.entity_id
82375    ,xet.legal_entity_id
82376    ,xet.entity_code
82377    ,xet.transaction_number
82378    ,xet.event_id
82379    ,xet.event_class_code
82380    ,xet.event_type_code
82381    ,xet.event_number
82382    ,xet.event_date
82383    ,xet.transaction_date
82384    ,xet.reference_num_1
82385    ,xet.reference_num_2
82386    ,xet.reference_num_3
82387    ,xet.reference_num_4
82388    ,xet.reference_char_1
82389    ,xet.reference_char_2
82390    ,xet.reference_char_3
82391    ,xet.reference_char_4
82392    ,xet.reference_date_1
82393    ,xet.reference_date_2
82394    ,xet.reference_date_3
82395    ,xet.reference_date_4
82396    ,xet.event_created_by
82397    ,xet.budgetary_control_flag  
82398   FROM xla_events_gt     xet  
82399  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
82400    and xet.event_class_code = C_EVENT_CLASS_CODE
82401    and xet.event_status_code <> 'N'  
82402  ORDER BY event_id
82403 ;
82404 
82405 
82406 --
82407 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
82408 IS
82409 SELECT  /*+ leading(xet) cardinality(xet,1) */
82410 -- Event Class Code: PREPAY_APPLICATION_BURDEN
82411     xet.entity_id
82412    ,xet.legal_entity_id
82413    ,xet.entity_code
82414    ,xet.transaction_number
82415    ,xet.event_id
82416    ,xet.event_class_code
82417    ,xet.event_type_code
82418    ,xet.event_number
82419    ,xet.event_date
82420    ,xet.transaction_date
82421    ,xet.reference_num_1
82422    ,xet.reference_num_2
82423    ,xet.reference_num_3
82424    ,xet.reference_num_4
82425    ,xet.reference_char_1
82426    ,xet.reference_char_2
82427    ,xet.reference_char_3
82428    ,xet.reference_char_4
82429    ,xet.reference_date_1
82430    ,xet.reference_date_2
82431    ,xet.reference_date_3
82432    ,xet.reference_date_4
82433    ,xet.event_created_by
82434    ,xet.budgetary_control_flag
82435  , l1.LINE_NUMBER  
82436   , l1.DOCUMENT_DISTRIBUTION_TYPE    source_2
82437   , l3.PROJECT_NAME    source_3
82438   , l4.TASK_NUMBER    source_4
82439   , l2.EXPENDITURE_ORGANIZATION_ID    source_5
82440   , l1.AID_DIST_CCID    source_11
82441   , l1.BUDGET_CCID    source_14
82442   , l1.DISTRIBUTION_LINK_TYPE    source_21
82443   , l1.AID_INVOICE_DIST_ID    source_30
82444   , l1.AI_INVOICE_CURRENCY_CODE    source_33
82445   , l1.AID_AMOUNT    source_57
82446   , l1.DOCUMENT_TYPE    source_83
82447   , l3.PROJ_BURDEN_DISPLAY_METHOD    source_84
82448   , l1.ACCT_REVERSAL_INDICATOR    source_85
82449   , l1.ALLOC_TO_APPLN_ID    source_86
82450   , l1.ALLOC_TO_DIST_TYPE    source_87
82451   , l1.ALLOC_TO_ENTITY_CODE    source_88
82452   , l1.ALLOC_TO_FIRST_DIST_ID    source_89
82453   , l1.ALLOC_TO_FIRST_SYS_TRANS_ID    source_90
82454   , l1.AP_APPLICATION_ID    source_91
82455   , l1.AP_DISTRIBUTION_TYPE    source_92
82456   , l1.AP_ENTITY_CODE    source_93
82457   , l1.AP_FIRST_DIST_ID    source_94
82458   , l1.AP_FIRST_SYS_TRANS_ID    source_95
82459   , l1.AID_EXPENDITURE_TYPE    source_96
82460   , l1.ENC_UPG_CR_ACCT_CLASS    source_97
82461   , l1.ENC_UPG_CR_ACCOUNT    source_98
82462   , l1.AID_BASE_AMT_NO_ROUND    source_99
82463   , l1.ENC_UPG_DR_ACCT_CLASS    source_100
82464   , l1.ENC_UPG_DR_ACCOUNT    source_101
82465   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_102
82466   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_103
82467   , l1.AP_SECOND_DIST_ID    source_104
82468   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_105
82469   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_106
82470   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_107
82471   , l1.BURDEN_COST_FLAG    source_108
82472   , fvl108.meaning   source_108_meaning
82473   , l1.PA_APPLICATION_ID    source_109
82474   , l1.PA_DISTRIBUTION_TYPE    source_110
82475   , l1.PA_ENTITY_CODE    source_111
82476   , l1.PA_FIRST_DIST_ID    source_112
82477   , l1.PA_FIRST_SYS_TRANS_ID    source_113
82478   , l1.PA_SECOND_DIST_ID    source_114
82479   FROM xla_events_gt     xet 
82480   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
82481   , PA_XLA_EXP_ORG_REF_V  l2
82482   , PA_XLA_PROJECT_REF_V  l3
82483   , PA_XLA_TASK_REF_V  l4
82484   , fnd_lookup_values    fvl108
82485  WHERE xet.event_id between x_first_event_id and x_last_event_id
82486    and xet.event_date between p_pad_start_date and p_pad_end_date
82487    and xet.event_class_code = C_EVENT_CLASS_CODE
82488    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
82489  AND l2.EXPENDITURE_ORGANIZATION_ID=l1.AID_EXPENDITURE_ORG_ID AND l3.PROJECT_ID=l1.AID_PROJECT_ID AND l4.TASK_ID=l1.AID_TASK_ID   AND fvl108.lookup_type(+)         = 'BC_PKT_BURDEN_COST_FLAG'
82490   AND fvl108.lookup_code(+)         = l1.BURDEN_COST_FLAG
82491   AND fvl108.view_application_id(+) = 275
82492   AND fvl108.language(+)            = USERENV('LANG')
82493   ;
82494 
82495 --
82496 BEGIN
82497 IF g_log_enabled THEN
82498    l_log_module := C_DEFAULT_MODULE||'.EventClass_110';
82499 END IF;
82500 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82501    trace
82502       (p_msg      => 'BEGIN of EventClass_110'
82503       ,p_level    => C_LEVEL_PROCEDURE
82504       ,p_module   => l_log_module);
82505 END IF;
82506 
82507 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82508    trace
82509       (p_msg      => 'p_application_id = '||p_application_id||
82510                      ' - p_base_ledger_id = '||p_base_ledger_id||
82511                      ' - p_target_ledger_id  = '||p_target_ledger_id||
82512                      ' - p_language = '||p_language||
82513                      ' - p_currency_code = '||p_currency_code||
82514                      ' - p_sla_ledger_id = '||p_sla_ledger_id
82518 --
82515       ,p_level    => C_LEVEL_STATEMENT
82516       ,p_module   => l_log_module);
82517 END IF;
82519 -- initialze arrays
82520 --
82521 g_array_event.DELETE;
82522 l_rec_array_event := l_null_rec_array_event;
82523 --
82524 --------------------------------------
82525 -- 4262811 Initialze MPA Line Number
82526 --------------------------------------
82527 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
82528 
82529 --
82530 
82531 --
82532 OPEN header_cur;
82533 --
82534 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82535    trace
82536    (p_msg      => 'SQL - FETCH header_cur'
82537    ,p_level    => C_LEVEL_STATEMENT
82538    ,p_module   => l_log_module);
82539 END IF;
82540 --
82541 LOOP
82542 FETCH header_cur BULK COLLECT INTO
82543         l_array_entity_id
82544       , l_array_legal_entity_id
82545       , l_array_entity_code
82546       , l_array_transaction_num
82547       , l_array_event_id
82548       , l_array_class_code
82549       , l_array_event_type
82550       , l_array_event_number
82551       , l_array_event_date
82552       , l_array_transaction_date
82553       , l_array_reference_num_1
82554       , l_array_reference_num_2
82555       , l_array_reference_num_3
82556       , l_array_reference_num_4
82557       , l_array_reference_char_1
82558       , l_array_reference_char_2
82559       , l_array_reference_char_3
82560       , l_array_reference_char_4
82561       , l_array_reference_date_1
82562       , l_array_reference_date_2
82563       , l_array_reference_date_3
82564       , l_array_reference_date_4
82565       , l_array_event_created_by
82566       , l_array_budgetary_control_flag 
82567       LIMIT l_rows;
82568 --
82569 IF (C_LEVEL_EVENT >= g_log_level) THEN
82570    trace
82571    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
82572    ,p_level    => C_LEVEL_EVENT
82573    ,p_module   => l_log_module);
82574 END IF;
82575 --
82576 EXIT WHEN l_array_entity_id.COUNT = 0;
82577 
82578 -- initialize arrays
82579 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
82580 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
82581 
82582 --
82583 -- Bug 4458708
82584 --
82585 XLA_AE_LINES_PKG.g_LineNumber := 0;
82586 
82587 
82588 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
82589 g_last_hdr_idx := l_array_event_id.LAST;
82590 --
82591 -- loop for the headers. Each iteration is for each header extract row
82592 -- fetched in header cursor
82593 --
82594 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
82595 
82596 --
82597 -- set event info as cache for other routines to refer event attributes
82598 --
82599 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82600    (p_application_id           => p_application_id
82601    ,p_primary_ledger_id        => p_primary_ledger_id
82602    ,p_base_ledger_id           => p_base_ledger_id
82603    ,p_target_ledger_id         => p_target_ledger_id
82604    ,p_entity_id                => l_array_entity_id(hdr_idx)
82605    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
82606    ,p_entity_code              => l_array_entity_code(hdr_idx)
82607    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
82608    ,p_event_id                 => l_array_event_id(hdr_idx)
82609    ,p_event_class_code         => l_array_class_code(hdr_idx)
82610    ,p_event_type_code          => l_array_event_type(hdr_idx)
82611    ,p_event_number             => l_array_event_number(hdr_idx)
82612    ,p_event_date               => l_array_event_date(hdr_idx)
82613    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
82614    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
82615    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
82616    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
82617    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
82618    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
82619    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
82620    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
82621    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
82622    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
82623    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
82624    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
82625    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
82626    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
82627    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
82628 
82629 --
82630 -- set the status of entry to C_VALID (0)
82631 --
82632 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82633 
82634 --
82635 -- initialize a row for ae header
82636 --
82637 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
82638 
82639 l_event_id := l_array_event_id(hdr_idx);
82640 
82641 --
82642 -- storing the hdr_idx for event. May be used by line cursor.
82643 --
82644 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
82645 
82646 --
82647 -- store sources from header extract. This can be improved to
82648 -- store only those sources from header extract that may be used in lines
82649 --
82650 
82651 
82652 --
82653 -- initilaize the status of ae headers for diffrent balance types
82654 -- the status is initialised to C_NOT_CREATED (2)
82655 --
82656 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82657 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82661 -- call api to validate and store accounting attributes for header
82658 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82659 
82660 --
82662 --
82663 
82664 ------------------------------------------------------------
82665 -- Accrual Reversal : to get date for Standard Source (NONE)
82666 ------------------------------------------------------------
82667 l_acc_rev_gl_date_source := NULL;
82668 
82669      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
82670       l_rec_acct_attrs.array_date_value(1) := 
82671 xla_ae_sources_pkg.GetSystemSourceDate(
82672    p_source_code           => 'XLA_EVENT_DATE'
82673  , p_source_type_code      => 'Y'
82674  , p_source_application_id =>  602
82675 );
82676 
82677 
82678 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
82679 
82680 XLA_AE_HEADER_PKG.SetJeCategoryName;
82681 
82682 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
82683 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
82684 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
82685 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
82686 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
82687 
82688 
82689 -- No header level analytical criteria
82690 
82691 --
82692 --accounting attribute enhancement, bug 3612931
82693 --
82694 l_trx_reversal_source := SUBSTR(NULL, 1,30);
82695 
82696 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
82697    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
82698 
82699    xla_accounting_err_pkg.build_message
82700       (p_appli_s_name            => 'XLA'
82701       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
82702       ,p_token_1                 => 'ACCT_ATTR_NAME'
82703       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
82704       ,p_token_2                 => 'PRODUCT_NAME'
82705       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82706       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82707       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
82708       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82709 
82710 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
82711    --
82712    -- following sets the accounting attributes needed to reverse
82713    -- accounting for a distributeion
82714    --
82715    xla_ae_lines_pkg.SetTrxReversalAttrs
82716       (p_event_id              => l_event_id
82717       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
82718       ,p_trx_reversal_source   => l_trx_reversal_source);
82719 
82720 END IF;
82721 
82722 
82723 ----------------------------------------------------------------
82724 -- 4262811 -  update the header statuses to invalid in need be
82725 ----------------------------------------------------------------
82726 --
82727 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
82728 
82729 
82730   -----------------------------------------------
82731   -- No accrual reversal for the event class/type
82732   -----------------------------------------------
82733 ----------------------------------------------------------------
82734 
82735 --
82736 -- this ends the header loop iteration for one bulk fetch
82737 --
82738 END LOOP;
82739 
82740 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
82741 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
82742 
82743 --
82744 -- insert dummy rows into lines gt table that were created due to
82745 -- transaction reversals
82746 --
82747 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
82748    l_result := XLA_AE_LINES_PKG.InsertLines;
82749 END IF;
82750 
82751 --
82752 -- reset the temp_line_num for each set of events fetched from header
82753 -- cursor rather than doing it for each new event in line cursor
82754 -- Bug 3939231
82755 --
82756 xla_ae_lines_pkg.g_temp_line_num := 0;
82757 
82758 
82759 
82760 --
82761 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
82762 --
82763 --
82764 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82765 
82766       trace
82767          (p_msg      => 'SQL - FETCH line_cur'
82768          ,p_level    => C_LEVEL_STATEMENT
82769          ,p_module   => l_log_module);
82770 
82771 END IF;
82772 --
82773 --
82774 LOOP
82775   --
82776   FETCH line_cur BULK COLLECT INTO
82777         l_array_entity_id
82778       , l_array_legal_entity_id
82779       , l_array_entity_code
82780       , l_array_transaction_num
82781       , l_array_event_id
82782       , l_array_class_code
82783       , l_array_event_type
82784       , l_array_event_number
82785       , l_array_event_date
82786       , l_array_transaction_date
82787       , l_array_reference_num_1
82788       , l_array_reference_num_2
82789       , l_array_reference_num_3
82790       , l_array_reference_num_4
82791       , l_array_reference_char_1
82792       , l_array_reference_char_2
82793       , l_array_reference_char_3
82794       , l_array_reference_char_4
82795       , l_array_reference_date_1
82796       , l_array_reference_date_2
82797       , l_array_reference_date_3
82798       , l_array_reference_date_4
82799       , l_array_event_created_by
82800       , l_array_budgetary_control_flag
82801       , l_array_extract_line_num 
82802       , l_array_source_2
82803       , l_array_source_3
82807       , l_array_source_14
82804       , l_array_source_4
82805       , l_array_source_5
82806       , l_array_source_11
82808       , l_array_source_21
82809       , l_array_source_30
82810       , l_array_source_33
82811       , l_array_source_57
82812       , l_array_source_83
82813       , l_array_source_84
82814       , l_array_source_85
82815       , l_array_source_86
82816       , l_array_source_87
82817       , l_array_source_88
82818       , l_array_source_89
82819       , l_array_source_90
82820       , l_array_source_91
82821       , l_array_source_92
82822       , l_array_source_93
82823       , l_array_source_94
82824       , l_array_source_95
82825       , l_array_source_96
82826       , l_array_source_97
82827       , l_array_source_98
82828       , l_array_source_99
82829       , l_array_source_100
82830       , l_array_source_101
82831       , l_array_source_102
82832       , l_array_source_103
82833       , l_array_source_104
82834       , l_array_source_105
82835       , l_array_source_106
82836       , l_array_source_107
82837       , l_array_source_108
82838       , l_array_source_108_meaning
82839       , l_array_source_109
82840       , l_array_source_110
82841       , l_array_source_111
82842       , l_array_source_112
82843       , l_array_source_113
82844       , l_array_source_114
82845       LIMIT l_rows;
82846 
82847   --
82848   IF (C_LEVEL_EVENT >= g_log_level) THEN
82849             trace
82850                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
82851                ,p_level    => C_LEVEL_EVENT
82852                ,p_module   => l_log_module);
82853   END IF;
82854   --
82855   EXIT WHEN l_array_entity_id.count = 0;
82856 
82857   XLA_AE_LINES_PKG.g_rec_lines := null;
82858 
82859 --
82860 -- Bug 4458708
82861 --
82862 XLA_AE_LINES_PKG.g_LineNumber := 0;
82863 --
82864 --
82865 
82866 FOR Idx IN 1..l_array_event_id.count LOOP
82867    --
82868    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
82869    --
82870    l_event_id := l_array_event_id(idx);  -- 5648433
82871 
82872    --
82873    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82874    --
82875 
82876    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
82877              (g_array_event(l_event_id).array_value_num('header_index'))
82878          ,'N'
82879          ) <> 'Y'
82880    THEN
82881       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82882          trace
82883             (p_msg      => 'Trancaction revesal option is not Y '
82884             ,p_level    => C_LEVEL_STATEMENT
82885             ,p_module   => l_log_module);
82886       END IF;
82887 
82888 --
82889 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
82890 --
82891 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82892 --
82893 -- set event info as cache for other routines to refer event attributes
82894 --
82895 
82896 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
82897    l_previous_event_id := l_event_id;
82898 
82899    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82900       (p_application_id           => p_application_id
82901       ,p_primary_ledger_id        => p_primary_ledger_id
82902       ,p_base_ledger_id           => p_base_ledger_id
82903       ,p_target_ledger_id         => p_target_ledger_id
82904       ,p_entity_id                => l_array_entity_id(Idx)
82905       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
82906       ,p_entity_code              => l_array_entity_code(Idx)
82907       ,p_transaction_num          => l_array_transaction_num(Idx)
82908       ,p_event_id                 => l_array_event_id(Idx)
82909       ,p_event_class_code         => l_array_class_code(Idx)
82910       ,p_event_type_code          => l_array_event_type(Idx)
82911       ,p_event_number             => l_array_event_number(Idx)
82912       ,p_event_date               => l_array_event_date(Idx)
82913       ,p_transaction_date         => l_array_transaction_date(Idx)
82914       ,p_reference_num_1          => l_array_reference_num_1(Idx)
82915       ,p_reference_num_2          => l_array_reference_num_2(Idx)
82916       ,p_reference_num_3          => l_array_reference_num_3(Idx)
82917       ,p_reference_num_4          => l_array_reference_num_4(Idx)
82918       ,p_reference_char_1         => l_array_reference_char_1(Idx)
82919       ,p_reference_char_2         => l_array_reference_char_2(Idx)
82920       ,p_reference_char_3         => l_array_reference_char_3(Idx)
82921       ,p_reference_char_4         => l_array_reference_char_4(Idx)
82922       ,p_reference_date_1         => l_array_reference_date_1(Idx)
82923       ,p_reference_date_2         => l_array_reference_date_2(Idx)
82924       ,p_reference_date_3         => l_array_reference_date_3(Idx)
82925       ,p_reference_date_4         => l_array_reference_date_4(Idx)
82926       ,p_event_created_by         => l_array_event_created_by(Idx)
82927       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
82928        --
82929 END IF;
82930 
82931 
82932 
82933 --
82934 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
82935 
82936 l_acct_reversal_source := SUBSTR(l_array_source_85(Idx), 1,30);
82937 
82938 IF l_continue_with_lines THEN
82939    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
82940       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
82941 
82942       xla_accounting_err_pkg.build_message
82943          (p_appli_s_name            => 'XLA'
82944          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
82945          ,p_token_1                 => 'LINE_NUMBER'
82949          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82946          ,p_value_1                 => l_array_extract_line_num(Idx)
82947          ,p_token_2                 => 'PRODUCT_NAME'
82948          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82950          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
82951          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82952 
82953    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
82954       --
82955       -- following sets the accounting attributes needed to reverse
82956       -- accounting for a distributeion
82957       --
82958 
82959       --
82960       -- 5217187
82961       --
82962       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
82963       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
82964                                        g_array_event(l_event_id).array_value_num('header_index'));
82965       --
82966       --
82967 
82968       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
82969       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_85(Idx);
82970       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
82971       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_30(Idx);
82972       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
82973       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_96(Idx);
82974       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
82975       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_21(Idx);
82976       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
82977       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_97(Idx);
82978       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
82979       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_98(Idx);
82980       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
82981       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_57(Idx);
82982       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
82983       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_33(Idx);
82984       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
82985       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_99(Idx);
82986       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
82987       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_100(Idx);
82988       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
82989       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_101(Idx);
82990       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
82991       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_57(Idx);
82992       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
82993       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_33(Idx);
82994       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
82995       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_99(Idx);
82996       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
82997       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_102(Idx);
82998       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
82999       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_103(Idx);
83000       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
83001       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_104(Idx);
83002       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
83003       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_105(Idx);
83004       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
83005       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_106(Idx);
83006       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
83007       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_107(Idx);
83008 
83009 
83010       xla_ae_lines_pkg.SetAcctReversalAttrs
83011          (p_event_id             => l_event_id
83012          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
83013          ,p_calculate_acctd_flag => l_calculate_acctd_flag
83014          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
83015    END IF;
83016 
83017    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
83018        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
83019 
83020 --
83021 AcctLineType_87 (
83022  p_application_id  => p_application_id
83023  ,p_event_id     => l_event_id
83024  ,p_calculate_acctd_flag => l_calculate_acctd_flag
83025  ,p_calculate_g_l_flag => l_calculate_g_l_flag
83026  ,p_actual_flag => l_actual_flag
83027  ,p_balance_type_code => l_balance_type_code
83028  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83029  
83030  , p_source_2 => l_array_source_2(Idx)
83031  , p_source_3 => l_array_source_3(Idx)
83032  , p_source_4 => l_array_source_4(Idx)
83033  , p_source_5 => l_array_source_5(Idx)
83034  , p_source_21 => l_array_source_21(Idx)
83035  , p_source_30 => l_array_source_30(Idx)
83036  , p_source_33 => l_array_source_33(Idx)
83037  , p_source_57 => l_array_source_57(Idx)
83038  , p_source_83 => l_array_source_83(Idx)
83039  , p_source_84 => l_array_source_84(Idx)
83040  , p_source_85 => l_array_source_85(Idx)
83041  , p_source_86 => l_array_source_86(Idx)
83042  , p_source_87 => l_array_source_87(Idx)
83043  , p_source_88 => l_array_source_88(Idx)
83044  , p_source_89 => l_array_source_89(Idx)
83045  , p_source_90 => l_array_source_90(Idx)
83046  , p_source_91 => l_array_source_91(Idx)
83047  , p_source_92 => l_array_source_92(Idx)
83048  , p_source_93 => l_array_source_93(Idx)
83049  , p_source_94 => l_array_source_94(Idx)
83053  , p_source_98 => l_array_source_98(Idx)
83050  , p_source_95 => l_array_source_95(Idx)
83051  , p_source_96 => l_array_source_96(Idx)
83052  , p_source_97 => l_array_source_97(Idx)
83054  , p_source_99 => l_array_source_99(Idx)
83055  , p_source_100 => l_array_source_100(Idx)
83056  , p_source_101 => l_array_source_101(Idx)
83057  , p_source_102 => l_array_source_102(Idx)
83058  , p_source_103 => l_array_source_103(Idx)
83059  , p_source_104 => l_array_source_104(Idx)
83060  , p_source_105 => l_array_source_105(Idx)
83061  , p_source_106 => l_array_source_106(Idx)
83062  , p_source_107 => l_array_source_107(Idx)
83063  );
83064 If(l_balance_type_code = 'A') THEN
83065   l_actual_gain_loss_ref := l_gain_or_loss_ref;
83066 END IF;
83067 
83068 --
83069 
83070 
83071 --
83072 AcctLineType_88 (
83073  p_application_id  => p_application_id
83074  ,p_event_id     => l_event_id
83075  ,p_calculate_acctd_flag => l_calculate_acctd_flag
83076  ,p_calculate_g_l_flag => l_calculate_g_l_flag
83077  ,p_actual_flag => l_actual_flag
83078  ,p_balance_type_code => l_balance_type_code
83079  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83080  
83081  , p_source_2 => l_array_source_2(Idx)
83082  , p_source_3 => l_array_source_3(Idx)
83083  , p_source_4 => l_array_source_4(Idx)
83084  , p_source_5 => l_array_source_5(Idx)
83085  , p_source_21 => l_array_source_21(Idx)
83086  , p_source_30 => l_array_source_30(Idx)
83087  , p_source_33 => l_array_source_33(Idx)
83088  , p_source_57 => l_array_source_57(Idx)
83089  , p_source_83 => l_array_source_83(Idx)
83090  , p_source_84 => l_array_source_84(Idx)
83091  , p_source_85 => l_array_source_85(Idx)
83092  , p_source_86 => l_array_source_86(Idx)
83093  , p_source_87 => l_array_source_87(Idx)
83094  , p_source_88 => l_array_source_88(Idx)
83095  , p_source_89 => l_array_source_89(Idx)
83096  , p_source_90 => l_array_source_90(Idx)
83097  , p_source_91 => l_array_source_91(Idx)
83098  , p_source_92 => l_array_source_92(Idx)
83099  , p_source_93 => l_array_source_93(Idx)
83100  , p_source_94 => l_array_source_94(Idx)
83101  , p_source_95 => l_array_source_95(Idx)
83102  , p_source_96 => l_array_source_96(Idx)
83103  , p_source_97 => l_array_source_97(Idx)
83104  , p_source_98 => l_array_source_98(Idx)
83105  , p_source_99 => l_array_source_99(Idx)
83106  , p_source_100 => l_array_source_100(Idx)
83107  , p_source_101 => l_array_source_101(Idx)
83108  , p_source_102 => l_array_source_102(Idx)
83109  , p_source_103 => l_array_source_103(Idx)
83110  , p_source_104 => l_array_source_104(Idx)
83111  , p_source_105 => l_array_source_105(Idx)
83112  , p_source_106 => l_array_source_106(Idx)
83113  , p_source_107 => l_array_source_107(Idx)
83114  , p_source_108 => l_array_source_108(Idx)
83115  , p_source_108_meaning => l_array_source_108_meaning(Idx)
83116  );
83117 If(l_balance_type_code = 'A') THEN
83118   l_actual_gain_loss_ref := l_gain_or_loss_ref;
83119 END IF;
83120 
83121 --
83122 
83123 
83124 --
83125 AcctLineType_89 (
83126  p_application_id  => p_application_id
83127  ,p_event_id     => l_event_id
83128  ,p_calculate_acctd_flag => l_calculate_acctd_flag
83129  ,p_calculate_g_l_flag => l_calculate_g_l_flag
83130  ,p_actual_flag => l_actual_flag
83131  ,p_balance_type_code => l_balance_type_code
83132  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83133  
83134  , p_source_2 => l_array_source_2(Idx)
83135  , p_source_3 => l_array_source_3(Idx)
83136  , p_source_4 => l_array_source_4(Idx)
83137  , p_source_5 => l_array_source_5(Idx)
83138  , p_source_11 => l_array_source_11(Idx)
83139  , p_source_14 => l_array_source_14(Idx)
83140  , p_source_21 => l_array_source_21(Idx)
83141  , p_source_30 => l_array_source_30(Idx)
83142  , p_source_33 => l_array_source_33(Idx)
83143  , p_source_57 => l_array_source_57(Idx)
83144  , p_source_83 => l_array_source_83(Idx)
83145  , p_source_84 => l_array_source_84(Idx)
83146  , p_source_85 => l_array_source_85(Idx)
83147  , p_source_86 => l_array_source_86(Idx)
83148  , p_source_87 => l_array_source_87(Idx)
83149  , p_source_88 => l_array_source_88(Idx)
83150  , p_source_89 => l_array_source_89(Idx)
83151  , p_source_90 => l_array_source_90(Idx)
83152  , p_source_91 => l_array_source_91(Idx)
83153  , p_source_92 => l_array_source_92(Idx)
83154  , p_source_93 => l_array_source_93(Idx)
83155  , p_source_94 => l_array_source_94(Idx)
83156  , p_source_95 => l_array_source_95(Idx)
83157  , p_source_96 => l_array_source_96(Idx)
83158  , p_source_97 => l_array_source_97(Idx)
83159  , p_source_98 => l_array_source_98(Idx)
83160  , p_source_99 => l_array_source_99(Idx)
83161  , p_source_100 => l_array_source_100(Idx)
83162  , p_source_101 => l_array_source_101(Idx)
83163  , p_source_102 => l_array_source_102(Idx)
83164  , p_source_103 => l_array_source_103(Idx)
83165  , p_source_104 => l_array_source_104(Idx)
83166  , p_source_105 => l_array_source_105(Idx)
83167  , p_source_106 => l_array_source_106(Idx)
83168  , p_source_107 => l_array_source_107(Idx)
83169  , p_source_108 => l_array_source_108(Idx)
83170  , p_source_108_meaning => l_array_source_108_meaning(Idx)
83171  );
83172 If(l_balance_type_code = 'A') THEN
83173   l_actual_gain_loss_ref := l_gain_or_loss_ref;
83174 END IF;
83175 
83176 --
83177 
83178 
83179 --
83180 AcctLineType_95 (
83181  p_application_id  => p_application_id
83182  ,p_event_id     => l_event_id
83183  ,p_calculate_acctd_flag => l_calculate_acctd_flag
83184  ,p_calculate_g_l_flag => l_calculate_g_l_flag
83185  ,p_actual_flag => l_actual_flag
83186  ,p_balance_type_code => l_balance_type_code
83187  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83188  
83189  , p_source_2 => l_array_source_2(Idx)
83190  , p_source_3 => l_array_source_3(Idx)
83191  , p_source_4 => l_array_source_4(Idx)
83192  , p_source_5 => l_array_source_5(Idx)
83196  , p_source_57 => l_array_source_57(Idx)
83193  , p_source_21 => l_array_source_21(Idx)
83194  , p_source_30 => l_array_source_30(Idx)
83195  , p_source_33 => l_array_source_33(Idx)
83197  , p_source_83 => l_array_source_83(Idx)
83198  , p_source_85 => l_array_source_85(Idx)
83199  , p_source_86 => l_array_source_86(Idx)
83200  , p_source_87 => l_array_source_87(Idx)
83201  , p_source_88 => l_array_source_88(Idx)
83202  , p_source_89 => l_array_source_89(Idx)
83203  , p_source_90 => l_array_source_90(Idx)
83204  , p_source_96 => l_array_source_96(Idx)
83205  , p_source_97 => l_array_source_97(Idx)
83206  , p_source_98 => l_array_source_98(Idx)
83207  , p_source_99 => l_array_source_99(Idx)
83208  , p_source_100 => l_array_source_100(Idx)
83209  , p_source_101 => l_array_source_101(Idx)
83210  , p_source_102 => l_array_source_102(Idx)
83211  , p_source_103 => l_array_source_103(Idx)
83212  , p_source_104 => l_array_source_104(Idx)
83213  , p_source_105 => l_array_source_105(Idx)
83214  , p_source_106 => l_array_source_106(Idx)
83215  , p_source_107 => l_array_source_107(Idx)
83216  , p_source_109 => l_array_source_109(Idx)
83217  , p_source_110 => l_array_source_110(Idx)
83218  , p_source_111 => l_array_source_111(Idx)
83219  , p_source_112 => l_array_source_112(Idx)
83220  , p_source_113 => l_array_source_113(Idx)
83221  , p_source_114 => l_array_source_114(Idx)
83222  );
83223 If(l_balance_type_code = 'A') THEN
83224   l_actual_gain_loss_ref := l_gain_or_loss_ref;
83225 END IF;
83226 
83227 --
83228 
83229 
83230 --
83231 AcctLineType_97 (
83232  p_application_id  => p_application_id
83233  ,p_event_id     => l_event_id
83234  ,p_calculate_acctd_flag => l_calculate_acctd_flag
83235  ,p_calculate_g_l_flag => l_calculate_g_l_flag
83236  ,p_actual_flag => l_actual_flag
83237  ,p_balance_type_code => l_balance_type_code
83238  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83239  
83240  , p_source_2 => l_array_source_2(Idx)
83241  , p_source_3 => l_array_source_3(Idx)
83242  , p_source_4 => l_array_source_4(Idx)
83243  , p_source_5 => l_array_source_5(Idx)
83244  , p_source_21 => l_array_source_21(Idx)
83245  , p_source_30 => l_array_source_30(Idx)
83246  , p_source_33 => l_array_source_33(Idx)
83247  , p_source_57 => l_array_source_57(Idx)
83248  , p_source_83 => l_array_source_83(Idx)
83249  , p_source_85 => l_array_source_85(Idx)
83250  , p_source_86 => l_array_source_86(Idx)
83251  , p_source_87 => l_array_source_87(Idx)
83252  , p_source_88 => l_array_source_88(Idx)
83253  , p_source_89 => l_array_source_89(Idx)
83254  , p_source_90 => l_array_source_90(Idx)
83255  , p_source_96 => l_array_source_96(Idx)
83256  , p_source_97 => l_array_source_97(Idx)
83257  , p_source_98 => l_array_source_98(Idx)
83258  , p_source_99 => l_array_source_99(Idx)
83259  , p_source_100 => l_array_source_100(Idx)
83260  , p_source_101 => l_array_source_101(Idx)
83261  , p_source_102 => l_array_source_102(Idx)
83262  , p_source_103 => l_array_source_103(Idx)
83263  , p_source_104 => l_array_source_104(Idx)
83264  , p_source_105 => l_array_source_105(Idx)
83265  , p_source_106 => l_array_source_106(Idx)
83266  , p_source_107 => l_array_source_107(Idx)
83267  , p_source_109 => l_array_source_109(Idx)
83268  , p_source_110 => l_array_source_110(Idx)
83269  , p_source_111 => l_array_source_111(Idx)
83270  , p_source_112 => l_array_source_112(Idx)
83271  , p_source_113 => l_array_source_113(Idx)
83272  , p_source_114 => l_array_source_114(Idx)
83273  );
83274 If(l_balance_type_code = 'A') THEN
83275   l_actual_gain_loss_ref := l_gain_or_loss_ref;
83276 END IF;
83277 
83278 --
83279 
83280       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
83281       -- or secondary ledger that has different currency with primary
83282       -- or alc that is calculated by sla
83283       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
83284             (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'))
83285 
83286 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
83287 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
83288           AND (l_actual_flag = 'A')) THEN
83289         XLA_AE_LINES_PKG.CreateGainOrLossLines(
83290           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
83291          ,p_application_id   => p_application_id
83292          ,p_amb_context_code => 'DEFAULT'
83293          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
83294          ,p_event_class_code => C_EVENT_CLASS_CODE
83295          ,p_event_type_code  => C_EVENT_TYPE_CODE
83296          
83297          ,p_gain_ccid        => -1
83298          ,p_loss_ccid        => -1
83299 
83300          ,p_actual_flag      => l_actual_flag
83301          ,p_enc_flag         => null
83302          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
83303          ,p_enc_g_l_ref      => null
83304          );
83305       END IF;
83306    END IF;
83307 END IF;
83308 
83309    ELSE
83310       --
83311       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
83312       --
83313       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83314          trace
83315             (p_msg      => 'Trancaction revesal option is Y'
83316             ,p_level    => C_LEVEL_STATEMENT
83317             ,p_module   => l_log_module);
83318       END IF;
83319    END IF;
83320 
83321 END LOOP;
83322 l_result := XLA_AE_LINES_PKG.InsertLines ;
83323 end loop;
83324 close line_cur;
83325 
83326 
83327 --
83328 -- insert headers into xla_ae_headers_gt table
83329 --
83330 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
83331 
83335 
83332 -- insert into errors table here.
83333 
83334 END LOOP;
83336 --
83337 -- 4865292
83338 --
83339 -- Compare g_hdr_extract_count with event count in
83340 -- CreateHeadersAndLines.
83341 --
83342 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
83343 
83344 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83345    trace (p_msg     => '# rows extracted from header extract objects '
83346                     || ' (running total): '
83347                     || g_hdr_extract_count
83348          ,p_level   => C_LEVEL_STATEMENT
83349          ,p_module  => l_log_module);
83350 END IF;
83351 
83352 CLOSE header_cur;
83353 --
83354 
83355 --
83356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83357    trace
83358       (p_msg      => 'END of EventClass_110'
83359       ,p_level    => C_LEVEL_PROCEDURE
83360       ,p_module   => l_log_module);
83361 END IF;
83362 --
83363 RETURN l_result;
83364 EXCEPTION
83365 WHEN xla_exceptions_pkg.application_exception THEN
83366    
83367 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83368 
83369    
83370 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
83371 
83372    RAISE;
83373 
83374 WHEN NO_DATA_FOUND THEN
83375 
83376 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83377 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
83378 
83379 FOR header_record IN header_cur
83380 LOOP
83381     l_array_header_events(header_record.event_id) := header_record.event_id;
83382 END LOOP;
83383 
83384 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
83385 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
83386 
83387 fnd_file.put_line(fnd_file.LOG, '                    ');
83388 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
83389 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
83390 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
83391 
83392 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
83393 LOOP
83394 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
83395 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
83396         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
83397 	END IF;
83398 END LOOP;
83399 
83400 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
83401 fnd_file.put_line(fnd_file.LOG, '                    ');
83402 
83403 
83404 xla_exceptions_pkg.raise_message
83405       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_110');
83406 
83407 
83408 WHEN OTHERS THEN
83409    xla_exceptions_pkg.raise_message
83410       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.EventClass_110');
83411 END EventClass_110;
83412 --
83413 
83414 --
83415 --+============================================+
83416 --|                                            |
83417 --|  PRIVATE FUNCTION                          |
83418 --|                                            |
83419 --+============================================+
83420 --
83421 FUNCTION CreateHeadersAndLines
83422        (p_application_id         IN NUMBER
83423        ,p_base_ledger_id         IN NUMBER
83424        ,p_target_ledger_id       IN NUMBER
83425        ,p_pad_start_date         IN DATE
83426        ,p_pad_end_date           IN DATE
83427        ,p_primary_ledger_id      IN NUMBER)
83428 RETURN BOOLEAN IS
83429 l_created                   BOOLEAN:=FALSE;
83430 l_event_id                  NUMBER;
83431 l_event_date                DATE;
83432 l_language                  VARCHAR2(30);
83433 l_currency_code             VARCHAR2(30);
83434 l_sla_ledger_id             NUMBER;
83435 l_log_module                VARCHAR2(240);
83436 
83437 BEGIN
83438 --
83439 IF g_log_enabled THEN
83440    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
83441 END IF;
83442 --
83443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83444    trace
83445       (p_msg      => 'BEGIN of CreateHeadersAndLines'
83446       ,p_level    => C_LEVEL_PROCEDURE
83447       ,p_module   => l_log_module);
83448 END IF;
83449 
83450 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
83451 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
83452 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
83453 
83454 --
83455 -- initialize array of lines with NULL
83456 --
83457 xla_ae_lines_pkg.SetNullLine;
83458 
83459 --
83460 -- initialize header extract count -- Bug 4865292
83461 --
83462 g_hdr_extract_count:= 0;
83463 
83464 
83465 l_created := EventClass_103(
83466    p_application_id         => p_application_id
83467  , p_base_ledger_id         => p_base_ledger_id
83468  , p_target_ledger_id       => p_target_ledger_id
83469  , p_language               => l_language
83470  , p_currency_code          => l_currency_code
83471  , p_sla_ledger_id          => l_sla_ledger_id
83472  , p_pad_start_date         => p_pad_start_date
83473  , p_pad_end_date           => p_pad_end_date
83474  , p_primary_ledger_id      => p_primary_ledger_id
83475 );
83476 
83477 
83478 
83479      IF ( g_diagnostics_mode ='Y' ) THEN
83480 
83481          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83482           trace
83483               (p_msg      => 'CALL Transaction Objects Diagnostics'
83484               ,p_level    => C_LEVEL_STATEMENT
83485               ,p_module   => l_log_module);
83486 
83487          END IF;
83488 
83492                         , p_sla_ledger_id    => l_sla_ledger_id
83489          insert_sources_103(
83490                           p_target_ledger_id => p_target_ledger_id
83491                         , p_language         => l_language
83493                         , p_pad_start_date   => p_pad_start_date
83494                         , p_pad_end_date     => p_pad_end_date
83495                           );
83496 
83497      END IF;
83498 
83499 l_created := EventClass_104(
83500    p_application_id         => p_application_id
83501  , p_base_ledger_id         => p_base_ledger_id
83502  , p_target_ledger_id       => p_target_ledger_id
83503  , p_language               => l_language
83504  , p_currency_code          => l_currency_code
83505  , p_sla_ledger_id          => l_sla_ledger_id
83506  , p_pad_start_date         => p_pad_start_date
83507  , p_pad_end_date           => p_pad_end_date
83508  , p_primary_ledger_id      => p_primary_ledger_id
83509 );
83510 
83511 
83512 
83513      IF ( g_diagnostics_mode ='Y' ) THEN
83514 
83515          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83516           trace
83517               (p_msg      => 'CALL Transaction Objects Diagnostics'
83518               ,p_level    => C_LEVEL_STATEMENT
83519               ,p_module   => l_log_module);
83520 
83521          END IF;
83522 
83523          insert_sources_104(
83524                           p_target_ledger_id => p_target_ledger_id
83525                         , p_language         => l_language
83526                         , p_sla_ledger_id    => l_sla_ledger_id
83527                         , p_pad_start_date   => p_pad_start_date
83528                         , p_pad_end_date     => p_pad_end_date
83529                           );
83530 
83531      END IF;
83532 
83533 l_created := EventClass_105(
83534    p_application_id         => p_application_id
83535  , p_base_ledger_id         => p_base_ledger_id
83536  , p_target_ledger_id       => p_target_ledger_id
83537  , p_language               => l_language
83538  , p_currency_code          => l_currency_code
83539  , p_sla_ledger_id          => l_sla_ledger_id
83540  , p_pad_start_date         => p_pad_start_date
83541  , p_pad_end_date           => p_pad_end_date
83542  , p_primary_ledger_id      => p_primary_ledger_id
83543 );
83544 
83545 
83546 
83547      IF ( g_diagnostics_mode ='Y' ) THEN
83548 
83549          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83550           trace
83551               (p_msg      => 'CALL Transaction Objects Diagnostics'
83552               ,p_level    => C_LEVEL_STATEMENT
83553               ,p_module   => l_log_module);
83554 
83555          END IF;
83556 
83557          insert_sources_105(
83558                           p_target_ledger_id => p_target_ledger_id
83559                         , p_language         => l_language
83560                         , p_sla_ledger_id    => l_sla_ledger_id
83561                         , p_pad_start_date   => p_pad_start_date
83562                         , p_pad_end_date     => p_pad_end_date
83563                           );
83564 
83565      END IF;
83566 
83567 l_created := EventClass_106(
83568    p_application_id         => p_application_id
83569  , p_base_ledger_id         => p_base_ledger_id
83570  , p_target_ledger_id       => p_target_ledger_id
83571  , p_language               => l_language
83572  , p_currency_code          => l_currency_code
83573  , p_sla_ledger_id          => l_sla_ledger_id
83574  , p_pad_start_date         => p_pad_start_date
83575  , p_pad_end_date           => p_pad_end_date
83576  , p_primary_ledger_id      => p_primary_ledger_id
83577 );
83578 
83579 
83580 
83581      IF ( g_diagnostics_mode ='Y' ) THEN
83582 
83583          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83584           trace
83585               (p_msg      => 'CALL Transaction Objects Diagnostics'
83586               ,p_level    => C_LEVEL_STATEMENT
83587               ,p_module   => l_log_module);
83588 
83589          END IF;
83590 
83591          insert_sources_106(
83592                           p_target_ledger_id => p_target_ledger_id
83593                         , p_language         => l_language
83594                         , p_sla_ledger_id    => l_sla_ledger_id
83595                         , p_pad_start_date   => p_pad_start_date
83596                         , p_pad_end_date     => p_pad_end_date
83597                           );
83598 
83599      END IF;
83600 
83601 l_created := EventClass_107(
83602    p_application_id         => p_application_id
83603  , p_base_ledger_id         => p_base_ledger_id
83604  , p_target_ledger_id       => p_target_ledger_id
83605  , p_language               => l_language
83606  , p_currency_code          => l_currency_code
83607  , p_sla_ledger_id          => l_sla_ledger_id
83608  , p_pad_start_date         => p_pad_start_date
83609  , p_pad_end_date           => p_pad_end_date
83610  , p_primary_ledger_id      => p_primary_ledger_id
83611 );
83612 
83613 
83614 
83615      IF ( g_diagnostics_mode ='Y' ) THEN
83616 
83617          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83618           trace
83619               (p_msg      => 'CALL Transaction Objects Diagnostics'
83620               ,p_level    => C_LEVEL_STATEMENT
83621               ,p_module   => l_log_module);
83622 
83623          END IF;
83624 
83625          insert_sources_107(
83626                           p_target_ledger_id => p_target_ledger_id
83627                         , p_language         => l_language
83628                         , p_sla_ledger_id    => l_sla_ledger_id
83629                         , p_pad_start_date   => p_pad_start_date
83630                         , p_pad_end_date     => p_pad_end_date
83631                           );
83632 
83633      END IF;
83634 
83638  , p_target_ledger_id       => p_target_ledger_id
83635 l_created := EventClass_108(
83636    p_application_id         => p_application_id
83637  , p_base_ledger_id         => p_base_ledger_id
83639  , p_language               => l_language
83640  , p_currency_code          => l_currency_code
83641  , p_sla_ledger_id          => l_sla_ledger_id
83642  , p_pad_start_date         => p_pad_start_date
83643  , p_pad_end_date           => p_pad_end_date
83644  , p_primary_ledger_id      => p_primary_ledger_id
83645 );
83646 
83647 
83648 
83649      IF ( g_diagnostics_mode ='Y' ) THEN
83650 
83651          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83652           trace
83653               (p_msg      => 'CALL Transaction Objects Diagnostics'
83654               ,p_level    => C_LEVEL_STATEMENT
83655               ,p_module   => l_log_module);
83656 
83657          END IF;
83658 
83659          insert_sources_108(
83660                           p_target_ledger_id => p_target_ledger_id
83661                         , p_language         => l_language
83662                         , p_sla_ledger_id    => l_sla_ledger_id
83663                         , p_pad_start_date   => p_pad_start_date
83664                         , p_pad_end_date     => p_pad_end_date
83665                           );
83666 
83667      END IF;
83668 
83669 l_created := EventClass_109(
83670    p_application_id         => p_application_id
83671  , p_base_ledger_id         => p_base_ledger_id
83672  , p_target_ledger_id       => p_target_ledger_id
83673  , p_language               => l_language
83674  , p_currency_code          => l_currency_code
83675  , p_sla_ledger_id          => l_sla_ledger_id
83676  , p_pad_start_date         => p_pad_start_date
83677  , p_pad_end_date           => p_pad_end_date
83678  , p_primary_ledger_id      => p_primary_ledger_id
83679 );
83680 
83681 
83682 
83683      IF ( g_diagnostics_mode ='Y' ) THEN
83684 
83685          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83686           trace
83687               (p_msg      => 'CALL Transaction Objects Diagnostics'
83688               ,p_level    => C_LEVEL_STATEMENT
83689               ,p_module   => l_log_module);
83690 
83691          END IF;
83692 
83693          insert_sources_109(
83694                           p_target_ledger_id => p_target_ledger_id
83695                         , p_language         => l_language
83696                         , p_sla_ledger_id    => l_sla_ledger_id
83697                         , p_pad_start_date   => p_pad_start_date
83698                         , p_pad_end_date     => p_pad_end_date
83699                           );
83700 
83701      END IF;
83702 
83703 l_created := EventClass_110(
83704    p_application_id         => p_application_id
83705  , p_base_ledger_id         => p_base_ledger_id
83706  , p_target_ledger_id       => p_target_ledger_id
83707  , p_language               => l_language
83708  , p_currency_code          => l_currency_code
83709  , p_sla_ledger_id          => l_sla_ledger_id
83710  , p_pad_start_date         => p_pad_start_date
83711  , p_pad_end_date           => p_pad_end_date
83712  , p_primary_ledger_id      => p_primary_ledger_id
83713 );
83714 
83715 
83716 
83717      IF ( g_diagnostics_mode ='Y' ) THEN
83718 
83719          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83720           trace
83721               (p_msg      => 'CALL Transaction Objects Diagnostics'
83722               ,p_level    => C_LEVEL_STATEMENT
83723               ,p_module   => l_log_module);
83724 
83725          END IF;
83726 
83727          insert_sources_110(
83728                           p_target_ledger_id => p_target_ledger_id
83729                         , p_language         => l_language
83730                         , p_sla_ledger_id    => l_sla_ledger_id
83731                         , p_pad_start_date   => p_pad_start_date
83732                         , p_pad_end_date     => p_pad_end_date
83733                           );
83734 
83735      END IF;
83736 
83737 
83738  --
83739  -- Bug 4865292
83740  -- When the number of events and that of header extract do not match,
83741  -- set the no header extract flag to indicate there are some issues
83742  -- in header extract.
83743  --
83744  -- Event count context is set in xla_accounting_pkg.unit_processor.
83745  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
83746  -- to report it as a general error.
83747  --
83748  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
83749  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
83750 
83751      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83752         trace
83753           (p_msg      => '# of extracted headers and events does not match'
83754           ,p_level    => C_LEVEL_STATEMENT
83755           ,p_module   => l_log_module);
83756 
83757         trace
83758           (p_msg      => '# of extracted headers: '
83759                          ||g_hdr_extract_count
83760           ,p_level    => C_LEVEL_STATEMENT
83761           ,p_module   => l_log_module);
83762 
83763         trace
83764           (p_msg      => '# of events in xla_events_gt: '
83765                          ||xla_context_pkg.get_event_count_context
83766           ,p_level    => C_LEVEL_STATEMENT
83767           ,p_module   => l_log_module);
83768 
83769         trace
83770           (p_msg      => 'Event No Header Extract Context: '
83771                          ||xla_context_pkg.get_event_nohdr_context
83772           ,p_level    => C_LEVEL_STATEMENT
83773           ,p_module   => l_log_module);
83774 
83775      END IF;
83776 
83777 
83778      xla_context_pkg.set_event_nohdr_context
83779        (p_nohdr_extract_flag => 'Y'
83783         trace
83780        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
83781 
83782      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83784           (p_msg      => 'No Header Extract Flag is set to Y'
83785           ,p_level    => C_LEVEL_STATEMENT
83786           ,p_module   => l_log_module);
83787      END IF;
83788 
83789  END IF;
83790 
83791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83792    trace
83793       (p_msg      => 'END of CreateHeadersAndLines'
83794       ,p_level    => C_LEVEL_PROCEDURE
83795       ,p_module   => l_log_module);
83796 END IF;
83797 
83798 RETURN l_created;
83799 EXCEPTION
83800 WHEN xla_exceptions_pkg.application_exception THEN
83801    RAISE;
83802 WHEN OTHERS THEN
83803    xla_exceptions_pkg.raise_message
83804       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.CreateHeadersAndLines');
83805 END CreateHeadersAndLines;
83806 --
83807 --
83808 
83809 --
83810 --+============================================+
83811 --|                                            |
83812 --|  PUBLIC FUNCTION                           |
83813 --|                                            |
83814 --+============================================+
83815 --
83816 FUNCTION CreateJournalEntries
83817        (p_application_id         IN NUMBER
83818        ,p_base_ledger_id         IN NUMBER
83819        ,p_pad_start_date         IN DATE
83820        ,p_pad_end_date           IN DATE
83821        ,p_primary_ledger_id      IN NUMBER)
83822 RETURN NUMBER IS
83823 l_log_module                   VARCHAR2(240);
83824 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
83825 l_temp_result                  BOOLEAN;
83826 l_result                       NUMBER;
83827 BEGIN
83828 --
83829 IF g_log_enabled THEN
83830    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
83831 END IF;
83832 --
83833 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83834    trace
83835       (p_msg      => 'BEGIN of CreateJournalEntries'||
83836                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
83837       ,p_level    => C_LEVEL_PROCEDURE
83838       ,p_module   => l_log_module);
83839 
83840 END IF;
83841 
83842 --
83843 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
83844 
83845 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83846    trace
83847       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
83848       ,p_level    => C_LEVEL_STATEMENT
83849       ,p_module   => l_log_module);
83850 END IF;
83851 --
83852 xla_ae_journal_entry_pkg.SetProductAcctDefinition
83853    (p_product_rule_code      => 'AP_ENC_ACCRUAL'
83854    ,p_product_rule_type_code => 'S'
83855    ,p_product_rule_version   => ''
83856    ,p_product_rule_name      => 'Encumbrance Accrual'
83857    ,p_amb_context_code       => 'DEFAULT'
83858    );
83859 
83860 l_array_ledgers :=
83861    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
83862       (p_base_ledger_id  => p_base_ledger_id);
83863 
83864 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
83865    l_temp_result :=
83866       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
83867          (p_application_id           => p_application_id
83868          ,p_base_ledger_id           => p_base_ledger_id
83869          ,p_target_ledger_id         => l_array_ledgers(Idx)
83870          ,p_primary_ledger_id        => p_primary_ledger_id
83871          ,p_pad_start_date           => p_pad_start_date
83872          ,p_pad_end_date             => p_pad_end_date);
83873 
83874    l_temp_result :=
83875       l_temp_result AND
83876       CreateHeadersAndLines
83877          (p_application_id             => p_application_id
83878          ,p_base_ledger_id             => p_base_ledger_id
83879          ,p_target_ledger_id           => l_array_ledgers(Idx)
83880          ,p_pad_start_date             => p_pad_start_date
83881          ,p_pad_end_date               => p_pad_end_date
83882          ,p_primary_ledger_id          => p_primary_ledger_id
83883          );
83884 END LOOP;
83885 
83886 
83887 IF (g_diagnostics_mode = 'Y' AND
83888     C_LEVEL_UNEXPECTED >= g_log_level AND
83889     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
83890 
83891    xla_accounting_dump_pkg.acctg_event_extract_log(
83892     p_application_id  => p_application_id
83893     ,p_request_id     => xla_environment_pkg.g_Req_Id
83894    );
83895 
83896 END IF;
83897 
83898 CASE l_temp_result
83899   WHEN TRUE THEN l_result := 0;
83900   ELSE l_result := 2;
83901 END CASE;
83902 
83903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83904    trace
83905       (p_msg      => 'return value. = '||TO_CHAR(l_result)
83906       ,p_level    => C_LEVEL_PROCEDURE
83907       ,p_module   => l_log_module);
83908    trace
83909       (p_msg      => 'END of CreateJournalEntries '
83910       ,p_level    => C_LEVEL_PROCEDURE
83911       ,p_module   => l_log_module);
83912 END IF;
83913 
83914 RETURN l_result;
83915 EXCEPTION
83916 WHEN xla_exceptions_pkg.application_exception THEN
83917    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83918    trace
83919       (p_msg      => 'ERROR. = '||sqlerrm
83920       ,p_level    => C_LEVEL_PROCEDURE
83921       ,p_module   => l_log_module);
83922    END IF;
83923    RAISE;
83924 WHEN OTHERS THEN
83925    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83926    trace
83927       (p_msg      => 'ERROR. = '||sqlerrm
83928       ,p_level    => C_LEVEL_PROCEDURE
83929       ,p_module   => l_log_module);
83930    END IF;
83931    xla_exceptions_pkg.raise_message
83932       (p_location => 'XLA_00200_AAD_S_000006_BC_PKG.CreateJournalEntries');
83933 END CreateJournalEntries;
83934 --
83938 --
83935 --=============================================================================
83936 --
83937 --
83939 --
83940 --
83941 --
83942 --
83943 --
83944 --
83945 --
83946 --
83947 --
83948 --
83949 --
83950 --
83951 --
83952 --
83953 --
83954 --
83955 --
83956 --
83957 --
83958 --=============================================================================
83959 --=============================================================================
83960 --          *********** Initialization routine **********
83961 --=============================================================================
83962 
83963 BEGIN
83964    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
83965    g_log_enabled    := fnd_log.test
83966                           (log_level  => g_log_level
83967                           ,module     => C_DEFAULT_MODULE);
83968 
83969    IF NOT g_log_enabled  THEN
83970       g_log_level := C_LEVEL_LOG_DISABLED;
83971    END IF;
83972 --
83973 END XLA_00200_AAD_S_000006_BC_PKG;
83974 --